APE Price: $1.20 (-1.66%)

Contract

0xcbe687Ed3AF5E9493888119cD419F25668eAFd54

Overview

APE Balance

Apechain LogoApechain LogoApechain Logo0 APE

APE Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute Airdrop73892452024-12-31 15:24:178 hrs ago1735658657IN
0xcbe687Ed...668eAFd54
0 APE0.0214194225.42069
Snapshot Old Tok...73892212024-12-31 15:23:288 hrs ago1735658608IN
0xcbe687Ed...668eAFd54
0 APE0.0197492325.42069
Store Holders Sn...73891852024-12-31 15:22:308 hrs ago1735658550IN
0xcbe687Ed...668eAFd54
0 APE0.0040495425.42069
Store Holders Sn...73891742024-12-31 15:22:068 hrs ago1735658526IN
0xcbe687Ed...668eAFd54
0 APE0.0170625125.42069
Snapshot Old Tok...73889062024-12-31 15:12:408 hrs ago1735657960IN
0xcbe687Ed...668eAFd54
0 APE0.0006644225.42069
Transfer69259442024-12-20 17:03:5611 days ago1734714236IN
0xcbe687Ed...668eAFd54
0 APE0.0023053725.42069
Transfer69259392024-12-20 17:03:4811 days ago1734714228IN
0xcbe687Ed...668eAFd54
0 APE0.0023053725.42069
Transfer69259322024-12-20 17:03:4311 days ago1734714223IN
0xcbe687Ed...668eAFd54
0 APE0.0023053725.42069
Transfer69259002024-12-20 17:03:0211 days ago1734714182IN
0xcbe687Ed...668eAFd54
0 APE0.0027400725.42069
Approve69257862024-12-20 17:01:3111 days ago1734714091IN
0xcbe687Ed...668eAFd54
0 APE0.0007434725.42069
Transfer69254712024-12-20 16:59:0911 days ago1734713949IN
0xcbe687Ed...668eAFd54
0 APE0.002101625.42069
Approve69254522024-12-20 16:58:3811 days ago1734713918IN
0xcbe687Ed...668eAFd54
0 APE0.000750825.42069
Transfer69254202024-12-20 16:57:4011 days ago1734713860IN
0xcbe687Ed...668eAFd54
0 APE0.002101625.42069
Setup Exemptions69254032024-12-20 16:57:2011 days ago1734713840IN
0xcbe687Ed...668eAFd54
0 APE0.0012378825.42069
Transfer69253892024-12-20 16:56:5511 days ago1734713815IN
0xcbe687Ed...668eAFd54
0 APE0.002101625.42069
Approve69253602024-12-20 16:56:0711 days ago1734713767IN
0xcbe687Ed...668eAFd54
0 APE0.0011854925.42069
Approve69253452024-12-20 16:55:1511 days ago1734713715IN
0xcbe687Ed...668eAFd54
0 APE0.0011854925.42069
Transfer69251152024-12-20 16:49:5611 days ago1734713396IN
0xcbe687Ed...668eAFd54
0 APE0.002101625.42069
Approve69245342024-12-20 16:36:4711 days ago1734712607IN
0xcbe687Ed...668eAFd54
0 APE0.0011854925.42069
Approve69243082024-12-20 16:32:2011 days ago1734712340IN
0xcbe687Ed...668eAFd54
0 APE0.0011775625.42069
Approve69242722024-12-20 16:31:2411 days ago1734712284IN
0xcbe687Ed...668eAFd54
0 APE0.0011775625.42069
Approve69236392024-12-20 16:20:1511 days ago1734711615IN
0xcbe687Ed...668eAFd54
0 APE0.0011854925.42069
Set Trading Enab...69219032024-12-20 15:51:0611 days ago1734709866IN
0xcbe687Ed...668eAFd54
0 APE0.0006373225.42069
Set Exempt From ...69218902024-12-20 15:50:5111 days ago1734709851IN
0xcbe687Ed...668eAFd54
0 APE0.0012169125.42069
Set Exempt From ...69218292024-12-20 15:49:5111 days ago1734709791IN
0xcbe687Ed...668eAFd54
0 APE0.001216625.42069
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HACoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-12-20
*/

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

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

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

    function name() public view virtual 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 override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

// ============ OpenZeppelin Ownable ============
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// ============ OpenZeppelin Pausable ============
abstract contract Pausable is Context {
    bool private _paused;

    event Paused(address account);
    event Unpaused(address account);

    constructor() {
        _paused = false;
    }

    function paused() public view virtual returns (bool) {
        return _paused;
    }

    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// ============ Your Original Interfaces ============
interface IOldToken {
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
}

// ============ Your Original Structs ============
struct TaxHoliday {
    uint256 startTime;    
    uint256 endTime;      
    uint256 temporaryTaxRate;  
}

// ============ Your Original Contract ============
contract HACoin is ERC20, Ownable, Pausable {
    // ============ Events ============
    event MaxTransferAmountUpdated(uint256 newAmount);
    event MaxWalletBalanceUpdated(uint256 newAmount);
    event TaxRateUpdated(uint256 newRate);
    event BurnRateUpdated(uint256 newRate);
    event TaxHolidaySet(uint256 start, uint256 end, uint256 rate);
    event AntiBottingStatusUpdated(bool enabled);
    event ExemptionStatusUpdated(address indexed account, bool status);
    event TradingStatusUpdated(bool enabled);
    event TeamWalletUpdated(address newWallet);
    event BlacklistStatusUpdated(address indexed account, bool status);
    event AntiBottingDurationUpdated(uint256 newDuration);
    event TaxHolidayCleared();

    // ============ Constants ============
    uint256 public constant MAX_ANTI_BOTTING_DURATION = 24 hours;

    // ============ Trading Control Variables ============
    bool public tradingEnabled;
    bool public antiBottingEnabled;
    uint256 public antiBottingDuration;
    uint256 public tradingEnabledAt;
    mapping(address => bool) public blacklisted;
    mapping(address => bool) public isExemptFromLimits;

    // ============ Token Configuration ============
    address public teamWallet;
    uint256 public taxRate;    // Tax rate in basis points (e.g., 100 = 1%)
    uint256 public burnRate;   // Burn rate in basis points (e.g., 100 = 1%)
    uint256 public maxTransferAmount;
    uint256 public maxWalletBalance;
    TaxHoliday public currentHoliday;

    // ============ Snapshot Variables ============
    mapping(address => uint256) public oldTokenBalances;
    address[] public holdersSnapshot;

    // ============ Constructor ============
    constructor(
        string memory name,
        string memory symbol,
        uint256 initialSupply,
        address _teamWallet,
        uint256 _taxRate,
        uint256 _burnRate
    ) ERC20(name, symbol) {
        _mint(msg.sender, initialSupply);
        teamWallet = _teamWallet;
        taxRate = _taxRate;
        burnRate = _burnRate;
        
        // Set initial limits
        maxTransferAmount = initialSupply * 1 / 100; // 1% of total supply
        maxWalletBalance = initialSupply * 2 / 100;  // 2% of total supply
        
        antiBottingDuration = 5 minutes;
        tradingEnabled = false;
        antiBottingEnabled = true;
    }

    // ============ Core Transfer Logic ============
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override(ERC20) {
        require(!paused(), "Token transfers are paused");
        require(!blacklisted[from] && !blacklisted[to], "Address is blacklisted");
        
        // Skip checks for minting, burning, and exempt addresses
        if (from != address(0) && to != address(0) && 
            !isExemptFromLimits[from] && !isExemptFromLimits[to]) {
            
            // If trading is not enabled, simply block
            if (!tradingEnabled) {
                revert("Trading not enabled");
            }
            
            // Anti-botting checks (modified to not use whitelist)
            if (antiBottingEnabled && tradingEnabled && 
                block.timestamp < tradingEnabledAt + antiBottingDuration) {
                require(amount <= maxTransferAmount / 2, "Anti-bot: Amount too high");
            }
            
            require(amount <= maxTransferAmount, "Transfer amount exceeds limit");

            // Skip check for exempt addresses and exclude burning
            if (to != address(0) && !isExemptFromLimits[to]) { 
                require(balanceOf(to) + amount <= maxWalletBalance, "Balance exceeds wallet limit");
            }
        }
        
        super._beforeTokenTransfer(from, to, amount);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        uint256 currentTax = getCurrentTaxRate();
        require(currentTax + burnRate <= 10000, "Combined rates exceed 100%");
        
        uint256 taxAmount = (amount * currentTax) / 10000;
        uint256 burnAmount = (amount * burnRate) / 10000;
        uint256 amountAfterTaxBurn = amount - taxAmount - burnAmount;

        // Send the tax amount in HACoin tokens to team wallet
        if (taxAmount > 0) {
            super._transfer(sender, teamWallet, taxAmount);
        }

        // Burn the tokens
        if (burnAmount > 0) {
            _burn(sender, burnAmount);
        }

        // Transfer the remaining tokens
        super._transfer(sender, recipient, amountAfterTaxBurn);
    }

    // ============ View Functions ============
    function getCurrentTaxRate() public view returns (uint256) {
        if (block.timestamp >= currentHoliday.startTime && 
            block.timestamp <= currentHoliday.endTime) {
            return currentHoliday.temporaryTaxRate;
        }
        return taxRate;
    }

    function getAllSnapshotHolders() external view returns (address[] memory) {
        return holdersSnapshot;
    }

    function getSnapshotHoldersCount() external view returns (uint256) {
        return holdersSnapshot.length;
    }

    // ============ Admin Functions ============
    // Pause/Unpause
    function pause() external onlyOwner {
        _pause();
    }

    function unpause() external onlyOwner {
        _unpause();
    }

    // Trading Control
    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already enabled");
        tradingEnabled = true;
        tradingEnabledAt = block.timestamp;
    }

    function setTradingEnabled(bool _enabled) external onlyOwner {
        tradingEnabled = _enabled;
        emit TradingStatusUpdated(_enabled);
    }

    // Anti-botting Control
    function setAntiBottingEnabled(bool enabled) external onlyOwner {
        antiBottingEnabled = enabled;
        emit AntiBottingStatusUpdated(enabled);
    }

    function setAntiBottingDuration(uint256 duration) external onlyOwner {
        require(duration <= MAX_ANTI_BOTTING_DURATION, "Duration exceeds maximum limit");
        antiBottingDuration = duration;
        emit AntiBottingDurationUpdated(duration);
    }

    // Limits Management
    function setMaxTransferAmount(uint256 amount) external onlyOwner {
        maxTransferAmount = amount;
        emit MaxTransferAmountUpdated(amount);
    }

    function setMaxWalletBalance(uint256 amount) external onlyOwner {
        maxWalletBalance = amount;
        emit MaxWalletBalanceUpdated(amount);
    }

    // Tax and Burn Rate Management
    function setTaxRate(uint256 newTaxRate) external onlyOwner {
        require(newTaxRate <= 10000, "Tax rate cannot exceed 100%");
        taxRate = newTaxRate;
        emit TaxRateUpdated(newTaxRate);
    }

    function setBurnRate(uint256 newBurnRate) external onlyOwner {
        require(newBurnRate <= 10000, "Burn rate cannot exceed 100%");
        burnRate = newBurnRate;
        emit BurnRateUpdated(newBurnRate);
    }

    // Tax Holiday Management
    function setTaxHoliday(uint256 start, uint256 end, uint256 tempRate) external onlyOwner {
        require(end > start, "Invalid time period");
        require(tempRate <= 10000, "Tax rate cannot exceed 100%");
        currentHoliday = TaxHoliday(start, end, tempRate);
        emit TaxHolidaySet(start, end, tempRate);
    }

    function clearTaxHoliday() external onlyOwner {
        delete currentHoliday;
        emit TaxHolidayCleared();
    }

    // Wallet Management
    function setTeamWallet(address newTeamWallet) external onlyOwner {
        require(newTeamWallet != address(0), "Invalid team wallet");
        teamWallet = newTeamWallet;
        emit TeamWalletUpdated(newTeamWallet);
    }

    // Access Control Management
    function setExemptFromLimits(address account, bool exempt) external onlyOwner {
        isExemptFromLimits[account] = exempt;
        emit ExemptionStatusUpdated(account, exempt);
    }

    function setupExemptions(address[] calldata accounts) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            isExemptFromLimits[accounts[i]] = true;
            emit ExemptionStatusUpdated(accounts[i], true);
        }
    }

    function setBlacklist(address account, bool status) external onlyOwner {
        blacklisted[account] = status;
        emit BlacklistStatusUpdated(account, status);
    }

    function batchSetBlacklist(address[] calldata accounts, bool status) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            blacklisted[accounts[i]] = status;
            emit BlacklistStatusUpdated(accounts[i], status);
        }
    }

    // ============ Snapshot and Airdrop Functions ============
    function storeHoldersSnapshot(address[] calldata holders) external onlyOwner {
        delete holdersSnapshot; // Clear previous snapshot to avoid duplicates
        for (uint256 i = 0; i < holders.length; i++) {
            holdersSnapshot.push(holders[i]);
        }
    }

    function snapshotOldTokenBalances(address oldTokenAddress) external onlyOwner {
        IOldToken oldToken = IOldToken(oldTokenAddress);
        for (uint256 i = 0; i < holdersSnapshot.length; i++) {
            address holder = holdersSnapshot[i];
            uint256 balance = oldToken.balanceOf(holder);
            if (balance > 0) {
                oldTokenBalances[holder] = balance;
            }
        }
    }

    function executeAirdrop() external onlyOwner {
        for (uint256 i = 0; i < holdersSnapshot.length; i++) {
            address holder = holdersSnapshot[i];
            uint256 balance = oldTokenBalances[holder];
            if (balance > 0) {
                _mint(holder, balance);
                oldTokenBalances[holder] = 0; // Clear balance to prevent double airdrop
            }
        }
    }

    // ============ Recovery Functions ============
    function recoverToken(address tokenAddress, uint256 amount) external onlyOwner {
        require(tokenAddress != address(this), "Cannot recover native token");
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function sendRewardsToStaking(address stakingContract, uint256 amount) external onlyOwner {
        // First, ensure the staking contract is exempt from limits
        if (!isExemptFromLimits[stakingContract]) {
            isExemptFromLimits[stakingContract] = true;
            emit ExemptionStatusUpdated(stakingContract, true);
        }
        // Transfer HACoins to staking contract
        transfer(stakingContract, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"_teamWallet","type":"address"},{"internalType":"uint256","name":"_taxRate","type":"uint256"},{"internalType":"uint256","name":"_burnRate","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"AntiBottingDurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"AntiBottingStatusUpdated","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"BlacklistStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"BurnRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ExemptionStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"MaxTransferAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"MaxWalletBalanceUpdated","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":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxHolidayCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"TaxHolidaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"TaxRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"}],"name":"TeamWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"TradingStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"MAX_ANTI_BOTTING_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBottingDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBottingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"batchSetBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearTaxHoliday","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentHoliday","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"temporaryTaxRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllSnapshotHolders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSnapshotHoldersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holdersSnapshot","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oldTokenBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingContract","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendRewardsToStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"setAntiBottingDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setAntiBottingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBurnRate","type":"uint256"}],"name":"setBurnRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setExemptFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransferAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"tempRate","type":"uint256"}],"name":"setTaxHoliday","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxRate","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTeamWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"setupExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oldTokenAddress","type":"address"}],"name":"snapshotOldTokenBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"}],"name":"storeHoldersSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabledAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801562000010575f80fd5b506040516200303d3803806200303d83398101604081905262000033916200067d565b85856003620000438382620007aa565b506004620000528282620007aa565b5050506200006f620000696200011060201b60201c565b62000114565b6005805460ff60a01b1916905562000088338562000165565b600a80546001600160a01b0319166001600160a01b038516179055600b829055600c8190556064620000bc85600162000886565b620000c89190620008a6565b600d556064620000da85600262000886565b620000e69190620008a6565b600e55505061012c60065550506005805461ffff60a81b1916600160b01b17905550620008dc9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001c15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b620001ce5f838362000237565b8060025f828254620001e19190620008c6565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6200024b600554600160a01b900460ff1690565b156200029a5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e207472616e736665727320617265207061757365640000000000006044820152606401620001b8565b6001600160a01b0383165f9081526008602052604090205460ff16158015620002db57506001600160a01b0382165f9081526008602052604090205460ff16155b620003295760405162461bcd60e51b815260206004820152601660248201527f4164647265737320697320626c61636b6c6973746564000000000000000000006044820152606401620001b8565b6001600160a01b038316158015906200034a57506001600160a01b03821615155b80156200036f57506001600160a01b0383165f9081526009602052604090205460ff16155b80156200039457506001600160a01b0382165f9081526009602052604090205460ff16155b15620005a757600554600160a81b900460ff16620003f55760405162461bcd60e51b815260206004820152601360248201527f54726164696e67206e6f7420656e61626c6564000000000000000000000000006044820152606401620001b8565b600554600160b01b900460ff168015620004185750600554600160a81b900460ff165b8015620004355750600654600754620004329190620008c6565b42105b156200049d576002600d546200044c9190620008a6565b8111156200049d5760405162461bcd60e51b815260206004820152601960248201527f416e74692d626f743a20416d6f756e7420746f6f2068696768000000000000006044820152606401620001b8565b600d54811115620004f15760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d69740000006044820152606401620001b8565b6001600160a01b038216158015906200052257506001600160a01b0382165f9081526009602052604090205460ff16155b15620005a757600e54816200054b846001600160a01b03165f9081526020819052604090205490565b620005579190620008c6565b1115620005a75760405162461bcd60e51b815260206004820152601c60248201527f42616c616e636520657863656564732077616c6c6574206c696d6974000000006044820152606401620001b8565b620005ba8383836001600160e01b038416565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620005e3575f80fd5b81516001600160401b0380821115620006005762000600620005bf565b604051601f8301601f19908116603f011681019082821181831017156200062b576200062b620005bf565b8160405283815260209250868385880101111562000647575f80fd5b5f91505b838210156200066a57858201830151818301840152908201906200064b565b5f93810190920192909252949350505050565b5f805f805f8060c0878903121562000693575f80fd5b86516001600160401b0380821115620006aa575f80fd5b620006b88a838b01620005d3565b97506020890151915080821115620006ce575f80fd5b50620006dd89828a01620005d3565b604089015160608a0151919750955090506001600160a01b038116811462000703575f80fd5b809350506080870151915060a087015190509295509295509295565b600181811c908216806200073457607f821691505b6020821081036200075357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005ba575f81815260208120601f850160051c81016020861015620007815750805b601f850160051c820191505b81811015620007a2578281556001016200078d565b505050505050565b81516001600160401b03811115620007c657620007c6620005bf565b620007de81620007d784546200071f565b8462000759565b602080601f83116001811462000814575f8415620007fc5750858301515b5f19600386901b1c1916600185901b178555620007a2565b5f85815260208120601f198616915b82811015620008445788860151825594840194600190910190840162000823565b50858210156200086257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620008a057620008a062000872565b92915050565b5f82620008c157634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620008a057620008a062000872565b61275380620008ea5f395ff3fe608060405234801561000f575f80fd5b5060043610610319575f3560e01c806374423eb4116101af578063af9c53da116100fe578063cd2c6a991161009e578063df6dd30311610079578063df6dd303146106d2578063edd3b199146106da578063f2b2f309146106ed578063f2fde38b14610700575f80fd5b8063cd2c6a9914610656578063dbac26e914610678578063dd62ed3e1461069a575f80fd5b8063bed99850116100d9578063bed998501461061e578063c2e5ec0414610627578063c31fe80a1461063a578063c6d69a3014610643575f80fd5b8063af9c53da146105ef578063b29a814014610602578063bbde77c114610615575f80fd5b806395d89b4111610169578063a13d1a2b11610144578063a13d1a2b146105ad578063a4247076146105c0578063a9059cbb146105d3578063a9e75723146105e6575f80fd5b806395d89b41146105895780639cf36b32146105915780639dcd06e9146105a4575f80fd5b806374423eb41461051f578063771a3a1d1461054c5780638456cb59146105555780638a8c523c1461055d5780638bf55409146105655780638da5cb5b14610578575f80fd5b80634b21a2dd1161026b57806364f53f2e116102255780636f6c9ac4116102005780636f6c9ac4146104c95780636f7b8d58146104dc57806370a08231146104ef578063715018a614610517575f80fd5b806364f53f2e146104a65780636c9c08fc146104ae5780636ddb5c41146104c1575f80fd5b80634b21a2dd1461040e5780634de7f64b1461042d57806359927044146104405780635c975abb1461046b5780635d06db791461047d57806361f2203a14610491575f80fd5b806323b872dd116102d657806333911f7f116102b157806333911f7f146103d55780633a9e00de146103df5780633f4ba83a146103f25780634ada218b146103fa575f80fd5b806323b872dd146103ab5780632b6886f3146103be578063313ce567146103c6575f80fd5b806306fdde031461031d578063095ea7b31461033b5780631525ff7d1461035e578063153b0d1e1461037357806318160ddd14610386578063189d165e14610398575b5f80fd5b610325610713565b6040516103329190612307565b60405180910390f35b61034e61034936600461236d565b6107a3565b6040519015158152602001610332565b61037161036c366004612395565b6107bc565b005b6103716103813660046123c2565b610890565b6002545b604051908152602001610332565b6103716103a63660046123f7565b610919565b61034e6103b936600461240e565b6109ca565b60135461038a565b60405160128152602001610332565b61038a6201518081565b6103716103ed3660046123f7565b6109ed565b610371610a4c565b60055461034e90600160a81b900460ff1681565b61038a61041c366004612395565b60126020525f908152604090205481565b61037161043b366004612447565b610a80565b600a54610453906001600160a01b031681565b6040516001600160a01b039091168152602001610332565b600554600160a01b900460ff1661034e565b60055461034e90600160b01b900460ff1681565b610499610af7565b6040516103329190612462565b61038a610b56565b6103716104bc3660046123f7565b610b7f565b610371610c31565b6103716104d736600461236d565b610ce3565b6103716104ea3660046124ae565b610d95565b61038a6104fd366004612395565b6001600160a01b03165f9081526020819052604090205490565b610371610ec2565b600f5460105460115461053192919083565b60408051938452602084019290925290820152606001610332565b61038a600b5481565b610371610ef5565b610371610f27565b6103716105733660046123f7565b610fc4565b6005546001600160a01b0316610453565b610325611023565b61045361059f3660046123f7565b611032565b61038a60065481565b6103716105bb3660046123c2565b61105a565b6103716105ce36600461251f565b6110db565b61034e6105e136600461236d565b611186565b61038a600d5481565b6103716105fd36600461255e565b611193565b61037161061036600461236d565b61129c565b61038a600e5481565b61038a600c5481565b610371610635366004612447565b6113ad565b61038a60075481565b6103716106513660046123f7565b611424565b61034e610664366004612395565b60096020525f908152604090205460ff1681565b61034e610686366004612395565b60086020525f908152604090205460ff1681565b61038a6106a83660046125b1565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6103716114d5565b6103716106e836600461251f565b611538565b6103716106fb366004612395565b61163d565b61037161070e366004612395565b611737565b606060038054610722906125e2565b80601f016020809104026020016040519081016040528092919081815260200182805461074e906125e2565b80156107995780601f1061077057610100808354040283529160200191610799565b820191905f5260205f20905b81548152906001019060200180831161077c57829003601f168201915b5050505050905090565b5f336107b08185856117cf565b60019150505b92915050565b6005546001600160a01b031633146107ef5760405162461bcd60e51b81526004016107e69061261a565b60405180910390fd5b6001600160a01b03811661083b5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d19585b481dd85b1b195d606a1b60448201526064016107e6565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff6215f245bfd24e51265c56ef650fdd856aa4ece6221ee1ef395bbe0a5558010906020015b60405180910390a150565b6005546001600160a01b031633146108ba5760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f92d364d140f902817e5eaa71cedfe20bae2a3c66a2725cee3d9a51d73f052fb691015b60405180910390a25050565b6005546001600160a01b031633146109435760405162461bcd60e51b81526004016107e69061261a565b6127108111156109955760405162461bcd60e51b815260206004820152601c60248201527f4275726e20726174652063616e6e6f742065786365656420313030250000000060448201526064016107e6565b600c8190556040518181527f47863b595116a31383855975a4078913dce7881e717b75a06ced2db5d534ff7890602001610885565b5f336109d78582856118f2565b6109e285858561197c565b506001949350505050565b6005546001600160a01b03163314610a175760405162461bcd60e51b81526004016107e69061261a565b600e8190556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610885565b6005546001600160a01b03163314610a765760405162461bcd60e51b81526004016107e69061261a565b610a7e611a78565b565b6005546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107e69061261a565b60058054821515600160b01b0260ff60b01b199091161790556040517f8f262e7a589d4b38506f6d777029842008946c0a09f4c412a73818cc112050f09061088590831515815260200190565b6060601380548060200260200160405190810160405280929190818152602001828054801561079957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b2f575050505050905090565b600f545f904210801590610b6c57506010544211155b15610b78575060115490565b50600b5490565b6005546001600160a01b03163314610ba95760405162461bcd60e51b81526004016107e69061261a565b62015180811115610bfc5760405162461bcd60e51b815260206004820152601e60248201527f4475726174696f6e2065786365656473206d6178696d756d206c696d6974000060448201526064016107e6565b60068190556040518181527f4cb18f502c8c2321d7ade4b46efde29305a3ceb110394358a1508cdc5b93dfe590602001610885565b6005546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016107e69061261a565b5f5b601354811015610ce0575f60138281548110610c7b57610c7b61264f565b5f9182526020808320909101546001600160a01b031680835260129091526040909120549091508015610ccb57610cb28282611b15565b6001600160a01b0382165f908152601260205260408120555b50508080610cd890612677565b915050610c5d565b50565b6005546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0382165f9081526009602052604090205460ff16610d86576001600160a01b0382165f81815260096020908152604091829020805460ff1916600190811790915591519182527fbd24dbb5b90a3c07b98750f435a50e12417c08cf6378c4827d90c07a1d6e8c37910160405180910390a25b610d908282611186565b505050565b6005546001600160a01b03163314610dbf5760405162461bcd60e51b81526004016107e69061261a565b828211610e045760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d1a5b59481c195c9a5bd9606a1b60448201526064016107e6565b612710811115610e565760405162461bcd60e51b815260206004820152601b60248201527f54617820726174652063616e6e6f74206578636565642031303025000000000060448201526064016107e6565b60408051606080820183528582526020808301869052918301849052600f8690556010859055601184905582518681529182018590529181018390527fbe7c838e90da3c126d049b7705a6dcb930fc0b21ce35476da79ce867156286b7910160405180910390a1505050565b6005546001600160a01b03163314610eec5760405162461bcd60e51b81526004016107e69061261a565b610a7e5f611bdd565b6005546001600160a01b03163314610f1f5760405162461bcd60e51b81526004016107e69061261a565b610a7e611c2e565b6005546001600160a01b03163314610f515760405162461bcd60e51b81526004016107e69061261a565b600554600160a81b900460ff1615610fab5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016107e6565b6005805460ff60a81b1916600160a81b17905542600755565b6005546001600160a01b03163314610fee5760405162461bcd60e51b81526004016107e69061261a565b600d8190556040518181527fb81a465c2b79d7b689b78d9aaf5a787dd386b73a952be0569f2fbc637aabb89790602001610885565b606060048054610722906125e2565b60138181548110611041575f80fd5b5f918252602090912001546001600160a01b0316905081565b6005546001600160a01b031633146110845760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527fbd24dbb5b90a3c07b98750f435a50e12417c08cf6378c4827d90c07a1d6e8c37910161090d565b6005546001600160a01b031633146111055760405162461bcd60e51b81526004016107e69061261a565b61111060135f6122d9565b5f5b81811015610d9057601383838381811061112e5761112e61264f565b90506020020160208101906111439190612395565b81546001810183555f928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790558061117e81612677565b915050611112565b5f336107b081858561197c565b6005546001600160a01b031633146111bd5760405162461bcd60e51b81526004016107e69061261a565b5f5b82811015611296578160085f8686858181106111dd576111dd61264f565b90506020020160208101906111f29190612395565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905583838281811061122b5761122b61264f565b90506020020160208101906112409190612395565b6001600160a01b03167f92d364d140f902817e5eaa71cedfe20bae2a3c66a2725cee3d9a51d73f052fb68360405161127c911515815260200190565b60405180910390a28061128e81612677565b9150506111bf565b50505050565b6005546001600160a01b031633146112c65760405162461bcd60e51b81526004016107e69061261a565b306001600160a01b0383160361131e5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f766572206e617469766520746f6b656e000000000060448201526064016107e6565b816001600160a01b031663a9059cbb61133f6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015611389573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d90919061268f565b6005546001600160a01b031633146113d75760405162461bcd60e51b81526004016107e69061261a565b60058054821515600160a81b0260ff60a81b199091161790556040517f44025b4c6266facf728a25ba1ed858c89e2215e03094486152577b87636ea7ab9061088590831515815260200190565b6005546001600160a01b0316331461144e5760405162461bcd60e51b81526004016107e69061261a565b6127108111156114a05760405162461bcd60e51b815260206004820152601b60248201527f54617820726174652063616e6e6f74206578636565642031303025000000000060448201526064016107e6565b600b8190556040518181527f82754e7bf8e3395ddb4a767c52b21ed0c3b9da843001b2e07ab46f258032345790602001610885565b6005546001600160a01b031633146114ff5760405162461bcd60e51b81526004016107e69061261a565b5f600f819055601081905560118190556040517fa7b7d981f842d4950718928ef33ded3744b1df8e8f32d056a4a5d018897c7d0e9190a1565b6005546001600160a01b031633146115625760405162461bcd60e51b81526004016107e69061261a565b5f5b81811015610d9057600160095f8585858181106115835761158361264f565b90506020020160208101906115989190612395565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558282828181106115d1576115d161264f565b90506020020160208101906115e69190612395565b6001600160a01b03167fbd24dbb5b90a3c07b98750f435a50e12417c08cf6378c4827d90c07a1d6e8c376001604051611623911515815260200190565b60405180910390a28061163581612677565b915050611564565b6005546001600160a01b031633146116675760405162461bcd60e51b81526004016107e69061261a565b805f5b601354811015610d90575f601382815481106116885761168861264f565b5f9182526020822001546040516370a0823160e01b81526001600160a01b03918216600482018190529350908516906370a0823190602401602060405180830381865afa1580156116db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ff91906126aa565b90508015611722576001600160a01b0382165f9081526012602052604090208190555b5050808061172f90612677565b91505061166a565b6005546001600160a01b031633146117615760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0381166117c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e6565b610ce081611bdd565b6001600160a01b0383166118315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107e6565b6001600160a01b0382166118925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107e6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114611296578181101561196f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107e6565b61129684848484036117cf565b5f611985610b56565b9050612710600c548261199891906126c1565b11156119e65760405162461bcd60e51b815260206004820152601a60248201527f436f6d62696e656420726174657320657863656564203130302500000000000060448201526064016107e6565b5f6127106119f483856126d4565b6119fe91906126eb565b90505f612710600c5485611a1291906126d4565b611a1c91906126eb565b90505f81611a2a848761270a565b611a34919061270a565b90508215611a5457600a54611a549088906001600160a01b031685611cb6565b8115611a6457611a648783611e63565b611a6f878783611cb6565b50505050505050565b600554600160a01b900460ff16611ac85760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107e6565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216611b6b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107e6565b611b765f8383611f9e565b8060025f828254611b8791906126c1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600554600160a01b900460ff1615611c7b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107e6565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611af83390565b6001600160a01b038316611d1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107e6565b6001600160a01b038216611d7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107e6565b611d87838383611f9e565b6001600160a01b0383165f9081526020819052604090205481811015611dfe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107e6565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611296565b6001600160a01b038216611ec35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107e6565b611ece825f83611f9e565b6001600160a01b0382165f9081526020819052604090205481811015611f415760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107e6565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600554600160a01b900460ff1615611ff85760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e207472616e7366657273206172652070617573656400000000000060448201526064016107e6565b6001600160a01b0383165f9081526008602052604090205460ff1615801561203857506001600160a01b0382165f9081526008602052604090205460ff16155b61207d5760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b60448201526064016107e6565b6001600160a01b0383161580159061209d57506001600160a01b03821615155b80156120c157506001600160a01b0383165f9081526009602052604090205460ff16155b80156120e557506001600160a01b0382165f9081526009602052604090205460ff16155b15610d9057600554600160a81b900460ff166121395760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107e6565b600554600160b01b900460ff16801561215b5750600554600160a81b900460ff165b8015612175575060065460075461217291906126c1565b42105b156121d8576002600d5461218991906126eb565b8111156121d85760405162461bcd60e51b815260206004820152601960248201527f416e74692d626f743a20416d6f756e7420746f6f20686967680000000000000060448201526064016107e6565b600d5481111561222a5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d697400000060448201526064016107e6565b6001600160a01b0382161580159061225a57506001600160a01b0382165f9081526009602052604090205460ff16155b15610d9057600e5481612281846001600160a01b03165f9081526020819052604090205490565b61228b91906126c1565b1115610d905760405162461bcd60e51b815260206004820152601c60248201527f42616c616e636520657863656564732077616c6c6574206c696d69740000000060448201526064016107e6565b5080545f8255905f5260205f2090810190610ce091905b80821115612303575f81556001016122f0565b5090565b5f6020808352835180828501525f5b8181101561233257858101830151858201604001528201612316565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612368575f80fd5b919050565b5f806040838503121561237e575f80fd5b61238783612352565b946020939093013593505050565b5f602082840312156123a5575f80fd5b6123ae82612352565b9392505050565b8015158114610ce0575f80fd5b5f80604083850312156123d3575f80fd5b6123dc83612352565b915060208301356123ec816123b5565b809150509250929050565b5f60208284031215612407575f80fd5b5035919050565b5f805f60608486031215612420575f80fd5b61242984612352565b925061243760208501612352565b9150604084013590509250925092565b5f60208284031215612457575f80fd5b81356123ae816123b5565b602080825282518282018190525f9190848201906040850190845b818110156124a25783516001600160a01b03168352928401929184019160010161247d565b50909695505050505050565b5f805f606084860312156124c0575f80fd5b505081359360208301359350604090920135919050565b5f8083601f8401126124e7575f80fd5b50813567ffffffffffffffff8111156124fe575f80fd5b6020830191508360208260051b8501011115612518575f80fd5b9250929050565b5f8060208385031215612530575f80fd5b823567ffffffffffffffff811115612546575f80fd5b612552858286016124d7565b90969095509350505050565b5f805f60408486031215612570575f80fd5b833567ffffffffffffffff811115612586575f80fd5b612592868287016124d7565b90945092505060208401356125a6816123b5565b809150509250925092565b5f80604083850312156125c2575f80fd5b6125cb83612352565b91506125d960208401612352565b90509250929050565b600181811c908216806125f657607f821691505b60208210810361261457634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161268857612688612663565b5060010190565b5f6020828403121561269f575f80fd5b81516123ae816123b5565b5f602082840312156126ba575f80fd5b5051919050565b808201808211156107b6576107b6612663565b80820281158282048414176107b6576107b6612663565b5f8261270557634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156107b6576107b661266356fea2646970667358221220b2cbef0d4b0f5c2cc3b717beb01a133e6a8259aa00030cd42448038e6992324264736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000295be96e64066972000000000000000000000000000000f9fadbbd940311aca24563159a21f2286d3324aa0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000064841436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034841430000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610319575f3560e01c806374423eb4116101af578063af9c53da116100fe578063cd2c6a991161009e578063df6dd30311610079578063df6dd303146106d2578063edd3b199146106da578063f2b2f309146106ed578063f2fde38b14610700575f80fd5b8063cd2c6a9914610656578063dbac26e914610678578063dd62ed3e1461069a575f80fd5b8063bed99850116100d9578063bed998501461061e578063c2e5ec0414610627578063c31fe80a1461063a578063c6d69a3014610643575f80fd5b8063af9c53da146105ef578063b29a814014610602578063bbde77c114610615575f80fd5b806395d89b4111610169578063a13d1a2b11610144578063a13d1a2b146105ad578063a4247076146105c0578063a9059cbb146105d3578063a9e75723146105e6575f80fd5b806395d89b41146105895780639cf36b32146105915780639dcd06e9146105a4575f80fd5b806374423eb41461051f578063771a3a1d1461054c5780638456cb59146105555780638a8c523c1461055d5780638bf55409146105655780638da5cb5b14610578575f80fd5b80634b21a2dd1161026b57806364f53f2e116102255780636f6c9ac4116102005780636f6c9ac4146104c95780636f7b8d58146104dc57806370a08231146104ef578063715018a614610517575f80fd5b806364f53f2e146104a65780636c9c08fc146104ae5780636ddb5c41146104c1575f80fd5b80634b21a2dd1461040e5780634de7f64b1461042d57806359927044146104405780635c975abb1461046b5780635d06db791461047d57806361f2203a14610491575f80fd5b806323b872dd116102d657806333911f7f116102b157806333911f7f146103d55780633a9e00de146103df5780633f4ba83a146103f25780634ada218b146103fa575f80fd5b806323b872dd146103ab5780632b6886f3146103be578063313ce567146103c6575f80fd5b806306fdde031461031d578063095ea7b31461033b5780631525ff7d1461035e578063153b0d1e1461037357806318160ddd14610386578063189d165e14610398575b5f80fd5b610325610713565b6040516103329190612307565b60405180910390f35b61034e61034936600461236d565b6107a3565b6040519015158152602001610332565b61037161036c366004612395565b6107bc565b005b6103716103813660046123c2565b610890565b6002545b604051908152602001610332565b6103716103a63660046123f7565b610919565b61034e6103b936600461240e565b6109ca565b60135461038a565b60405160128152602001610332565b61038a6201518081565b6103716103ed3660046123f7565b6109ed565b610371610a4c565b60055461034e90600160a81b900460ff1681565b61038a61041c366004612395565b60126020525f908152604090205481565b61037161043b366004612447565b610a80565b600a54610453906001600160a01b031681565b6040516001600160a01b039091168152602001610332565b600554600160a01b900460ff1661034e565b60055461034e90600160b01b900460ff1681565b610499610af7565b6040516103329190612462565b61038a610b56565b6103716104bc3660046123f7565b610b7f565b610371610c31565b6103716104d736600461236d565b610ce3565b6103716104ea3660046124ae565b610d95565b61038a6104fd366004612395565b6001600160a01b03165f9081526020819052604090205490565b610371610ec2565b600f5460105460115461053192919083565b60408051938452602084019290925290820152606001610332565b61038a600b5481565b610371610ef5565b610371610f27565b6103716105733660046123f7565b610fc4565b6005546001600160a01b0316610453565b610325611023565b61045361059f3660046123f7565b611032565b61038a60065481565b6103716105bb3660046123c2565b61105a565b6103716105ce36600461251f565b6110db565b61034e6105e136600461236d565b611186565b61038a600d5481565b6103716105fd36600461255e565b611193565b61037161061036600461236d565b61129c565b61038a600e5481565b61038a600c5481565b610371610635366004612447565b6113ad565b61038a60075481565b6103716106513660046123f7565b611424565b61034e610664366004612395565b60096020525f908152604090205460ff1681565b61034e610686366004612395565b60086020525f908152604090205460ff1681565b61038a6106a83660046125b1565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6103716114d5565b6103716106e836600461251f565b611538565b6103716106fb366004612395565b61163d565b61037161070e366004612395565b611737565b606060038054610722906125e2565b80601f016020809104026020016040519081016040528092919081815260200182805461074e906125e2565b80156107995780601f1061077057610100808354040283529160200191610799565b820191905f5260205f20905b81548152906001019060200180831161077c57829003601f168201915b5050505050905090565b5f336107b08185856117cf565b60019150505b92915050565b6005546001600160a01b031633146107ef5760405162461bcd60e51b81526004016107e69061261a565b60405180910390fd5b6001600160a01b03811661083b5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d19585b481dd85b1b195d606a1b60448201526064016107e6565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff6215f245bfd24e51265c56ef650fdd856aa4ece6221ee1ef395bbe0a5558010906020015b60405180910390a150565b6005546001600160a01b031633146108ba5760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f92d364d140f902817e5eaa71cedfe20bae2a3c66a2725cee3d9a51d73f052fb691015b60405180910390a25050565b6005546001600160a01b031633146109435760405162461bcd60e51b81526004016107e69061261a565b6127108111156109955760405162461bcd60e51b815260206004820152601c60248201527f4275726e20726174652063616e6e6f742065786365656420313030250000000060448201526064016107e6565b600c8190556040518181527f47863b595116a31383855975a4078913dce7881e717b75a06ced2db5d534ff7890602001610885565b5f336109d78582856118f2565b6109e285858561197c565b506001949350505050565b6005546001600160a01b03163314610a175760405162461bcd60e51b81526004016107e69061261a565b600e8190556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610885565b6005546001600160a01b03163314610a765760405162461bcd60e51b81526004016107e69061261a565b610a7e611a78565b565b6005546001600160a01b03163314610aaa5760405162461bcd60e51b81526004016107e69061261a565b60058054821515600160b01b0260ff60b01b199091161790556040517f8f262e7a589d4b38506f6d777029842008946c0a09f4c412a73818cc112050f09061088590831515815260200190565b6060601380548060200260200160405190810160405280929190818152602001828054801561079957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b2f575050505050905090565b600f545f904210801590610b6c57506010544211155b15610b78575060115490565b50600b5490565b6005546001600160a01b03163314610ba95760405162461bcd60e51b81526004016107e69061261a565b62015180811115610bfc5760405162461bcd60e51b815260206004820152601e60248201527f4475726174696f6e2065786365656473206d6178696d756d206c696d6974000060448201526064016107e6565b60068190556040518181527f4cb18f502c8c2321d7ade4b46efde29305a3ceb110394358a1508cdc5b93dfe590602001610885565b6005546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016107e69061261a565b5f5b601354811015610ce0575f60138281548110610c7b57610c7b61264f565b5f9182526020808320909101546001600160a01b031680835260129091526040909120549091508015610ccb57610cb28282611b15565b6001600160a01b0382165f908152601260205260408120555b50508080610cd890612677565b915050610c5d565b50565b6005546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0382165f9081526009602052604090205460ff16610d86576001600160a01b0382165f81815260096020908152604091829020805460ff1916600190811790915591519182527fbd24dbb5b90a3c07b98750f435a50e12417c08cf6378c4827d90c07a1d6e8c37910160405180910390a25b610d908282611186565b505050565b6005546001600160a01b03163314610dbf5760405162461bcd60e51b81526004016107e69061261a565b828211610e045760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d1a5b59481c195c9a5bd9606a1b60448201526064016107e6565b612710811115610e565760405162461bcd60e51b815260206004820152601b60248201527f54617820726174652063616e6e6f74206578636565642031303025000000000060448201526064016107e6565b60408051606080820183528582526020808301869052918301849052600f8690556010859055601184905582518681529182018590529181018390527fbe7c838e90da3c126d049b7705a6dcb930fc0b21ce35476da79ce867156286b7910160405180910390a1505050565b6005546001600160a01b03163314610eec5760405162461bcd60e51b81526004016107e69061261a565b610a7e5f611bdd565b6005546001600160a01b03163314610f1f5760405162461bcd60e51b81526004016107e69061261a565b610a7e611c2e565b6005546001600160a01b03163314610f515760405162461bcd60e51b81526004016107e69061261a565b600554600160a81b900460ff1615610fab5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016107e6565b6005805460ff60a81b1916600160a81b17905542600755565b6005546001600160a01b03163314610fee5760405162461bcd60e51b81526004016107e69061261a565b600d8190556040518181527fb81a465c2b79d7b689b78d9aaf5a787dd386b73a952be0569f2fbc637aabb89790602001610885565b606060048054610722906125e2565b60138181548110611041575f80fd5b5f918252602090912001546001600160a01b0316905081565b6005546001600160a01b031633146110845760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527fbd24dbb5b90a3c07b98750f435a50e12417c08cf6378c4827d90c07a1d6e8c37910161090d565b6005546001600160a01b031633146111055760405162461bcd60e51b81526004016107e69061261a565b61111060135f6122d9565b5f5b81811015610d9057601383838381811061112e5761112e61264f565b90506020020160208101906111439190612395565b81546001810183555f928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790558061117e81612677565b915050611112565b5f336107b081858561197c565b6005546001600160a01b031633146111bd5760405162461bcd60e51b81526004016107e69061261a565b5f5b82811015611296578160085f8686858181106111dd576111dd61264f565b90506020020160208101906111f29190612395565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905583838281811061122b5761122b61264f565b90506020020160208101906112409190612395565b6001600160a01b03167f92d364d140f902817e5eaa71cedfe20bae2a3c66a2725cee3d9a51d73f052fb68360405161127c911515815260200190565b60405180910390a28061128e81612677565b9150506111bf565b50505050565b6005546001600160a01b031633146112c65760405162461bcd60e51b81526004016107e69061261a565b306001600160a01b0383160361131e5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f766572206e617469766520746f6b656e000000000060448201526064016107e6565b816001600160a01b031663a9059cbb61133f6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015611389573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d90919061268f565b6005546001600160a01b031633146113d75760405162461bcd60e51b81526004016107e69061261a565b60058054821515600160a81b0260ff60a81b199091161790556040517f44025b4c6266facf728a25ba1ed858c89e2215e03094486152577b87636ea7ab9061088590831515815260200190565b6005546001600160a01b0316331461144e5760405162461bcd60e51b81526004016107e69061261a565b6127108111156114a05760405162461bcd60e51b815260206004820152601b60248201527f54617820726174652063616e6e6f74206578636565642031303025000000000060448201526064016107e6565b600b8190556040518181527f82754e7bf8e3395ddb4a767c52b21ed0c3b9da843001b2e07ab46f258032345790602001610885565b6005546001600160a01b031633146114ff5760405162461bcd60e51b81526004016107e69061261a565b5f600f819055601081905560118190556040517fa7b7d981f842d4950718928ef33ded3744b1df8e8f32d056a4a5d018897c7d0e9190a1565b6005546001600160a01b031633146115625760405162461bcd60e51b81526004016107e69061261a565b5f5b81811015610d9057600160095f8585858181106115835761158361264f565b90506020020160208101906115989190612395565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558282828181106115d1576115d161264f565b90506020020160208101906115e69190612395565b6001600160a01b03167fbd24dbb5b90a3c07b98750f435a50e12417c08cf6378c4827d90c07a1d6e8c376001604051611623911515815260200190565b60405180910390a28061163581612677565b915050611564565b6005546001600160a01b031633146116675760405162461bcd60e51b81526004016107e69061261a565b805f5b601354811015610d90575f601382815481106116885761168861264f565b5f9182526020822001546040516370a0823160e01b81526001600160a01b03918216600482018190529350908516906370a0823190602401602060405180830381865afa1580156116db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ff91906126aa565b90508015611722576001600160a01b0382165f9081526012602052604090208190555b5050808061172f90612677565b91505061166a565b6005546001600160a01b031633146117615760405162461bcd60e51b81526004016107e69061261a565b6001600160a01b0381166117c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e6565b610ce081611bdd565b6001600160a01b0383166118315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107e6565b6001600160a01b0382166118925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107e6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114611296578181101561196f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107e6565b61129684848484036117cf565b5f611985610b56565b9050612710600c548261199891906126c1565b11156119e65760405162461bcd60e51b815260206004820152601a60248201527f436f6d62696e656420726174657320657863656564203130302500000000000060448201526064016107e6565b5f6127106119f483856126d4565b6119fe91906126eb565b90505f612710600c5485611a1291906126d4565b611a1c91906126eb565b90505f81611a2a848761270a565b611a34919061270a565b90508215611a5457600a54611a549088906001600160a01b031685611cb6565b8115611a6457611a648783611e63565b611a6f878783611cb6565b50505050505050565b600554600160a01b900460ff16611ac85760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107e6565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216611b6b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107e6565b611b765f8383611f9e565b8060025f828254611b8791906126c1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600554600160a01b900460ff1615611c7b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107e6565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611af83390565b6001600160a01b038316611d1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107e6565b6001600160a01b038216611d7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107e6565b611d87838383611f9e565b6001600160a01b0383165f9081526020819052604090205481811015611dfe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107e6565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611296565b6001600160a01b038216611ec35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107e6565b611ece825f83611f9e565b6001600160a01b0382165f9081526020819052604090205481811015611f415760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107e6565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600554600160a01b900460ff1615611ff85760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e207472616e7366657273206172652070617573656400000000000060448201526064016107e6565b6001600160a01b0383165f9081526008602052604090205460ff1615801561203857506001600160a01b0382165f9081526008602052604090205460ff16155b61207d5760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b60448201526064016107e6565b6001600160a01b0383161580159061209d57506001600160a01b03821615155b80156120c157506001600160a01b0383165f9081526009602052604090205460ff16155b80156120e557506001600160a01b0382165f9081526009602052604090205460ff16155b15610d9057600554600160a81b900460ff166121395760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107e6565b600554600160b01b900460ff16801561215b5750600554600160a81b900460ff165b8015612175575060065460075461217291906126c1565b42105b156121d8576002600d5461218991906126eb565b8111156121d85760405162461bcd60e51b815260206004820152601960248201527f416e74692d626f743a20416d6f756e7420746f6f20686967680000000000000060448201526064016107e6565b600d5481111561222a5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d697400000060448201526064016107e6565b6001600160a01b0382161580159061225a57506001600160a01b0382165f9081526009602052604090205460ff16155b15610d9057600e5481612281846001600160a01b03165f9081526020819052604090205490565b61228b91906126c1565b1115610d905760405162461bcd60e51b815260206004820152601c60248201527f42616c616e636520657863656564732077616c6c6574206c696d69740000000060448201526064016107e6565b5080545f8255905f5260205f2090810190610ce091905b80821115612303575f81556001016122f0565b5090565b5f6020808352835180828501525f5b8181101561233257858101830151858201604001528201612316565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612368575f80fd5b919050565b5f806040838503121561237e575f80fd5b61238783612352565b946020939093013593505050565b5f602082840312156123a5575f80fd5b6123ae82612352565b9392505050565b8015158114610ce0575f80fd5b5f80604083850312156123d3575f80fd5b6123dc83612352565b915060208301356123ec816123b5565b809150509250929050565b5f60208284031215612407575f80fd5b5035919050565b5f805f60608486031215612420575f80fd5b61242984612352565b925061243760208501612352565b9150604084013590509250925092565b5f60208284031215612457575f80fd5b81356123ae816123b5565b602080825282518282018190525f9190848201906040850190845b818110156124a25783516001600160a01b03168352928401929184019160010161247d565b50909695505050505050565b5f805f606084860312156124c0575f80fd5b505081359360208301359350604090920135919050565b5f8083601f8401126124e7575f80fd5b50813567ffffffffffffffff8111156124fe575f80fd5b6020830191508360208260051b8501011115612518575f80fd5b9250929050565b5f8060208385031215612530575f80fd5b823567ffffffffffffffff811115612546575f80fd5b612552858286016124d7565b90969095509350505050565b5f805f60408486031215612570575f80fd5b833567ffffffffffffffff811115612586575f80fd5b612592868287016124d7565b90945092505060208401356125a6816123b5565b809150509250925092565b5f80604083850312156125c2575f80fd5b6125cb83612352565b91506125d960208401612352565b90509250929050565b600181811c908216806125f657607f821691505b60208210810361261457634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161268857612688612663565b5060010190565b5f6020828403121561269f575f80fd5b81516123ae816123b5565b5f602082840312156126ba575f80fd5b5051919050565b808201808211156107b6576107b6612663565b80820281158282048414176107b6576107b6612663565b5f8261270557634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156107b6576107b661266356fea2646970667358221220b2cbef0d4b0f5c2cc3b717beb01a133e6a8259aa00030cd42448038e6992324264736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000295be96e64066972000000000000000000000000000000f9fadbbd940311aca24563159a21f2286d3324aa0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000064841436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034841430000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): HACoin
Arg [1] : symbol (string): HAC
Arg [2] : initialSupply (uint256): 50000000000000000000000000
Arg [3] : _teamWallet (address): 0xF9FAdbbd940311ACa24563159a21F2286D3324AA
Arg [4] : _taxRate (uint256): 100
Arg [5] : _burnRate (uint256): 100

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 000000000000000000000000000000000000000000295be96e64066972000000
Arg [3] : 000000000000000000000000f9fadbbd940311aca24563159a21f2286d3324aa
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 4841436f696e0000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [9] : 4841430000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

7724:10892:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2321:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;2321:201:0;1004:187:1;15473:228:0;;;;;;:::i;:::-;;:::i;:::-;;16209:174;;;;;;:::i;:::-;;:::i;1710:108::-;1798:12;;1710:108;;;1976:25:1;;;1964:2;1949:18;1710:108:0;1830:177:1;14724:218:0;;;;;;:::i;:::-;;:::i;2530:261::-;;;;;;:::i;:::-;;:::i;12925:115::-;13010:15;:22;12925:115;;1618:84;;;1692:2;2672:36:1;;2660:2;2645:18;1618:84:0;2530:184:1;8515:60:0;;8567:8;8515:60;;14306:155;;;;;;:::i;:::-;;:::i;13191:67::-;;;:::i;8644:26::-;;;;;-1:-1:-1;;;8644:26:0;;;;;;9314:51;;;;;;:::i;:::-;;;;;;;;;;;;;;13677:160;;;;;;:::i;:::-;;:::i;8956:25::-;;;;;-1:-1:-1;;;;;8956:25:0;;;;;;-1:-1:-1;;;;;3129:32:1;;;3111:51;;3099:2;3084:18;8956:25:0;2965:203:1;6735:86:0;6806:7;;-1:-1:-1;;;6806:7:0;;;;6735:86;;8677:30;;;;;-1:-1:-1;;;8677:30:0;;;;;;12802:115;;;:::i;:::-;;;;;;;:::i;12519:275::-;;;:::i;13845:261::-;;;;;;:::i;:::-;;:::i;17461:413::-;;;:::i;18167:446::-;;;;;;:::i;:::-;;:::i;14981:329::-;;;;;;:::i;:::-;;:::i;1826:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1927:18:0;1900:7;1927:18;;;;;;;;;;;;1826:127;5959:103;;;:::i;9220:32::-;;;;;;;;;;;;;;;;;4359:25:1;;;4415:2;4400:18;;4393:34;;;;4443:18;;;4436:34;4347:2;4332:18;9220:32:0;4157:319:1;8988:22:0;;;;;;13120:63;;;:::i;13290:191::-;;;:::i;14140:158::-;;;;;;:::i;:::-;;:::i;5736:87::-;5809:6;;-1:-1:-1;;;;;5809:6:0;5736:87;;1515:95;;;:::i;9372:32::-;;;;;;:::i;:::-;;:::i;8714:34::-;;;;;;15743:188;;;;;;:::i;:::-;;:::i;16738:279::-;;;;;;:::i;:::-;;:::i;1961:193::-;;;;;;:::i;:::-;;:::i;9143:32::-;;;;;;16391:274;;;;;;:::i;:::-;;:::i;17935:224::-;;;;;;:::i;:::-;;:::i;9182:31::-;;;;;;9065:23;;;;;;13489:151;;;;;;:::i;:::-;;:::i;8755:31::-;;;;;;14506:210;;;;;;:::i;:::-;;:::i;8843:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8793:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2162:151;;;;;;:::i;:::-;-1:-1:-1;;;;;2278:18:0;;;2251:7;2278:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2162:151;15318:121;;;:::i;15939:262::-;;;;;;:::i;:::-;;:::i;17025:428::-;;;;;;:::i;:::-;;:::i;6070:201::-;;;;;;:::i;:::-;;:::i;1416:91::-;1461:13;1494:5;1487:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:91;:::o;2321:201::-;2404:4;222:10;2460:32;222:10;2476:7;2485:6;2460:8;:32::i;:::-;2510:4;2503:11;;;2321:201;;;;;:::o;15473:228::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15557:27:0;::::1;15549:59;;;::::0;-1:-1:-1;;;15549:59:0;;7079:2:1;15549:59:0::1;::::0;::::1;7061:21:1::0;7118:2;7098:18;;;7091:30;-1:-1:-1;;;7137:18:1;;;7130:49;7196:18;;15549:59:0::1;6877:343:1::0;15549:59:0::1;15619:10;:26:::0;;-1:-1:-1;;;;;;15619:26:0::1;-1:-1:-1::0;;;;;15619:26:0;::::1;::::0;;::::1;::::0;;;15661:32:::1;::::0;3111:51:1;;;15661:32:0::1;::::0;3099:2:1;3084:18;15661:32:0::1;;;;;;;;15473:228:::0;:::o;16209:174::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16291:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;;:29;;-1:-1:-1;;16291:29:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16336:39;;1144:41:1;;;16336:39:0::1;::::0;1117:18:1;16336:39:0::1;;;;;;;;16209:174:::0;;:::o;14724:218::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;14819:5:::1;14804:11;:20;;14796:61;;;::::0;-1:-1:-1;;;14796:61:0;;7427:2:1;14796:61:0::1;::::0;::::1;7409:21:1::0;7466:2;7446:18;;;7439:30;7505;7485:18;;;7478:58;7553:18;;14796:61:0::1;7225:352:1::0;14796:61:0::1;14868:8;:22:::0;;;14906:28:::1;::::0;1976:25:1;;;14906:28:0::1;::::0;1964:2:1;1949:18;14906:28:0::1;1830:177:1::0;2530:261:0;2627:4;222:10;2685:38;2701:4;222:10;2716:6;2685:15;:38::i;:::-;2734:27;2744:4;2750:2;2754:6;2734:9;:27::i;:::-;-1:-1:-1;2779:4:0;;2530:261;-1:-1:-1;;;;2530:261:0:o;14306:155::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;14381:16:::1;:25:::0;;;14422:31:::1;::::0;1976:25:1;;;14422:31:0::1;::::0;1964:2:1;1949:18;14422:31:0::1;1830:177:1::0;13191:67:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;13240:10:::1;:8;:10::i;:::-;13191:67::o:0;13677:160::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;13752:18:::1;:28:::0;;;::::1;;-1:-1:-1::0;;;13752:28:0::1;-1:-1:-1::0;;;;13752:28:0;;::::1;;::::0;;13796:33:::1;::::0;::::1;::::0;::::1;::::0;13773:7;1169:14:1;1162:22;1144:41;;1132:2;1117:18;;1004:187;12802:115:0;12858:16;12894:15;12887:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12887:22:0;;;;;;;;;;;;;;;;;;;;;;12802:115;:::o;12519:275::-;12612:14;:24;12569:7;;12593:15;:43;;;;:102;;-1:-1:-1;12673:22:0;;12654:15;:41;;12593:102;12589:173;;;-1:-1:-1;12719:31:0;;;12519:275::o;12589:173::-;-1:-1:-1;12779:7:0;;;12519:275::o;13845:261::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;8567:8:::1;13933;:37;;13925:80;;;::::0;-1:-1:-1;;;13925:80:0;;7784:2:1;13925:80:0::1;::::0;::::1;7766:21:1::0;7823:2;7803:18;;;7796:30;7862:32;7842:18;;;7835:60;7912:18;;13925:80:0::1;7582:354:1::0;13925:80:0::1;14016:19;:30:::0;;;14062:36:::1;::::0;1976:25:1;;;14062:36:0::1;::::0;1964:2:1;1949:18;14062:36:0::1;1830:177:1::0;17461:413:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;17522:9:::1;17517:350;17541:15;:22:::0;17537:26;::::1;17517:350;;;17585:14;17602:15;17618:1;17602:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;17602:18:0::1;17653:24:::0;;;:16:::1;:24:::0;;;;;;;;17602:18;;-1:-1:-1;17696:11:0;;17692:164:::1;;17728:22;17734:6;17742:7;17728:5;:22::i;:::-;-1:-1:-1::0;;;;;17769:24:0;::::1;17796:1;17769:24:::0;;;:16:::1;:24;::::0;;;;:28;17692:164:::1;17570:297;;17565:3;;;;;:::i;:::-;;;;17517:350;;;;17461:413::o:0;18167:446::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18342:35:0;::::1;;::::0;;;:18:::1;:35;::::0;;;;;::::1;;18337:176;;-1:-1:-1::0;;;;;18394:35:0;::::1;;::::0;;;:18:::1;:35;::::0;;;;;;;;:42;;-1:-1:-1;;18394:42:0::1;18432:4;18394:42:::0;;::::1;::::0;;;18456:45;;1144:41:1;;;18456:45:0::1;::::0;1117:18:1;18456:45:0::1;;;;;;;18337:176;18572:33;18581:15;18598:6;18572:8;:33::i;:::-;;18167:446:::0;;:::o;14981:329::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;15094:5:::1;15088:3;:11;15080:43;;;::::0;-1:-1:-1;;;15080:43:0;;8547:2:1;15080:43:0::1;::::0;::::1;8529:21:1::0;8586:2;8566:18;;;8559:30;-1:-1:-1;;;8605:18:1;;;8598:49;8664:18;;15080:43:0::1;8345:343:1::0;15080:43:0::1;15154:5;15142:8;:17;;15134:57;;;::::0;-1:-1:-1;;;15134:57:0;;8895:2:1;15134:57:0::1;::::0;::::1;8877:21:1::0;8934:2;8914:18;;;8907:30;8973:29;8953:18;;;8946:57;9020:18;;15134:57:0::1;8693:351:1::0;15134:57:0::1;15219:32;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;15202:14:::1;:49:::0;;;;;;;;;;;15267:35;;4359:25:1;;;4400:18;;;4393:34;;;4443:18;;;4436:34;;;15267:35:0::1;::::0;4332:18:1;15267:35:0::1;;;;;;;14981:329:::0;;;:::o;5959:103::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;6024:30:::1;6051:1;6024:18;:30::i;13120:63::-:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;13167:8:::1;:6;:8::i;13290:191::-:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;13354:14:::1;::::0;-1:-1:-1;;;13354:14:0;::::1;;;13353:15;13345:51;;;::::0;-1:-1:-1;;;13345:51:0;;9251:2:1;13345:51:0::1;::::0;::::1;9233:21:1::0;9290:2;9270:18;;;9263:30;9329:25;9309:18;;;9302:53;9372:18;;13345:51:0::1;9049:347:1::0;13345:51:0::1;13407:14;:21:::0;;-1:-1:-1;;;;13407:21:0::1;-1:-1:-1::0;;;13407:21:0::1;::::0;;13458:15:::1;13439:16;:34:::0;13290:191::o;14140:158::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;14216:17:::1;:26:::0;;;14258:32:::1;::::0;1976:25:1;;;14258:32:0::1;::::0;1964:2:1;1949:18;14258:32:0::1;1830:177:1::0;1515:95:0;1562:13;1595:7;1588:14;;;;;:::i;9372:32::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9372:32:0;;-1:-1:-1;9372:32:0;:::o;15743:188::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15832:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:36;;-1:-1:-1;;15832:36:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15884:39;;1144:41:1;;;15884:39:0::1;::::0;1117:18:1;15884:39:0::1;1004:187:1::0;16738:279:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;16826:22:::1;16833:15;;16826:22;:::i;:::-;16911:9;16906:104;16926:18:::0;;::::1;16906:104;;;16966:15;16987:7;;16995:1;16987:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16966:32:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16966:32:0;;;::::1;::::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16966:32:0::1;-1:-1:-1::0;;;;;16966:32:0;;::::1;::::0;;;::::1;::::0;;16946:3;::::1;::::0;::::1;:::i;:::-;;;;16906:104;;1961:193:::0;2040:4;222:10;2096:28;222:10;2113:2;2117:6;2096:9;:28::i;16391:274::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;16494:9:::1;16490:168;16509:19:::0;;::::1;16490:168;;;16577:6;16550:11;:24;16562:8;;16571:1;16562:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16550:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16550:24:0;:33;;-1:-1:-1;;16550:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16626:8;;16635:1;16626:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16603:43:0::1;;16639:6;16603:43;;;;1169:14:1::0;1162:22;1144:41;;1132:2;1117:18;;1004:187;16603:43:0::1;;;;;;;;16530:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16490:168;;;;16391:274:::0;;;:::o;17935:224::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;18057:4:::1;-1:-1:-1::0;;;;;18033:29:0;::::1;::::0;18025:69:::1;;;::::0;-1:-1:-1;;;18025:69:0;;9603:2:1;18025:69:0::1;::::0;::::1;9585:21:1::0;9642:2;9622:18;;;9615:30;9681:29;9661:18;;;9654:57;9728:18;;18025:69:0::1;9401:351:1::0;18025:69:0::1;18112:12;-1:-1:-1::0;;;;;18105:29:0::1;;18135:7;5809:6:::0;;-1:-1:-1;;;;;5809:6:0;;5736:87;18135:7:::1;18105:46;::::0;-1:-1:-1;;;;;;18105:46:0::1;::::0;;;;;;-1:-1:-1;;;;;9949:32:1;;;18105:46:0::1;::::0;::::1;9931:51:1::0;9998:18;;;9991:34;;;9904:18;;18105:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13489:151::-:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;13561:14:::1;:25:::0;;;::::1;;-1:-1:-1::0;;;13561:25:0::1;-1:-1:-1::0;;;;13561:25:0;;::::1;;::::0;;13602:30:::1;::::0;::::1;::::0;::::1;::::0;13578:8;1169:14:1;1162:22;1144:41;;1132:2;1117:18;;1004:187;14506:210:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;14598:5:::1;14584:10;:19;;14576:59;;;::::0;-1:-1:-1;;;14576:59:0;;8895:2:1;14576:59:0::1;::::0;::::1;8877:21:1::0;8934:2;8914:18;;;8907:30;8973:29;8953:18;;;8946:57;9020:18;;14576:59:0::1;8693:351:1::0;14576:59:0::1;14646:7;:20:::0;;;14682:26:::1;::::0;1976:25:1;;;14682:26:0::1;::::0;1964:2:1;1949:18;14682:26:0::1;1830:177:1::0;15318:121:0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;15382:14:::1;;15375:21:::0;;;;;;;;;;;15412:19:::1;::::0;::::1;::::0;15382:14;15412:19:::1;15318:121::o:0;15939:262::-;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;16027:9:::1;16023:171;16042:19:::0;;::::1;16023:171;;;16117:4;16083:18;:31;16102:8;;16111:1;16102:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16083:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16083:31:0;:38;;-1:-1:-1;;16083:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16164:8;;16173:1;16164:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16141:41:0::1;;16177:4;16141:41;;;;1169:14:1::0;1162:22;1144:41;;1132:2;1117:18;;1004:187;16141:41:0::1;;;;;;;;16063:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16023:171;;17025:428:::0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;17145:15;17114:18:::1;17172:274;17196:15;:22:::0;17192:26;::::1;17172:274;;;17240:14;17257:15;17273:1;17257:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;::::0;17308:26:::1;::::0;-1:-1:-1;;;17308:26:0;;-1:-1:-1;;;;;17257:18:0;;::::1;17308:26;::::0;::::1;3111:51:1::0;;;17257:18:0;-1:-1:-1;17308:18:0;;::::1;::::0;::::1;::::0;3084::1;;17308:26:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17290:44:::0;-1:-1:-1;17353:11:0;;17349:86:::1;;-1:-1:-1::0;;;;;17385:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:34;;;17349:86:::1;17225:221;;17220:3;;;;;:::i;:::-;;;;17172:274;;6070:201:::0;5809:6;;-1:-1:-1;;;;;5809:6:0;222:10;5871:23;5863:68;;;;-1:-1:-1;;;5863:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6159:22:0;::::1;6151:73;;;::::0;-1:-1:-1;;;6151:73:0;;10677:2:1;6151:73:0::1;::::0;::::1;10659:21:1::0;10716:2;10696:18;;;10689:30;10755:34;10735:18;;;10728:62;-1:-1:-1;;;10806:18:1;;;10799:36;10852:19;;6151:73:0::1;10475:402:1::0;6151:73:0::1;6235:28;6254:8;6235:18;:28::i;4472:344::-:0;-1:-1:-1;;;;;4574:19:0;;4566:68;;;;-1:-1:-1;;;4566:68:0;;11084:2:1;4566:68:0;;;11066:21:1;11123:2;11103:18;;;11096:30;11162:34;11142:18;;;11135:62;-1:-1:-1;;;11213:18:1;;;11206:34;11257:19;;4566:68:0;10882:400:1;4566:68:0;-1:-1:-1;;;;;4653:21:0;;4645:68;;;;-1:-1:-1;;;4645:68:0;;11489:2:1;4645:68:0;;;11471:21:1;11528:2;11508:18;;;11501:30;11567:34;11547:18;;;11540:62;-1:-1:-1;;;11618:18:1;;;11611:32;11660:19;;4645:68:0;11287:398:1;4645:68:0;-1:-1:-1;;;;;4724:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4776:32;;1976:25:1;;;4776:32:0;;1949:18:1;4776:32:0;;;;;;;4472:344;;;:::o;4824:419::-;-1:-1:-1;;;;;2278:18:0;;;4925:24;2278:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;4992:37:0;;4988:248;;5074:6;5054:16;:26;;5046:68;;;;-1:-1:-1;;;5046:68:0;;11892:2:1;5046:68:0;;;11874:21:1;11931:2;11911:18;;;11904:30;11970:31;11950:18;;;11943:59;12019:18;;5046:68:0;11690:353:1;5046:68:0;5158:51;5167:5;5174:7;5202:6;5183:16;:25;5158:8;:51::i;11612:850::-;11745:18;11766:19;:17;:19::i;:::-;11745:40;;11829:5;11817:8;;11804:10;:21;;;;:::i;:::-;:30;;11796:69;;;;-1:-1:-1;;;11796:69:0;;12380:2:1;11796:69:0;;;12362:21:1;12419:2;12399:18;;;12392:30;12458:28;12438:18;;;12431:56;12504:18;;11796:69:0;12178:350:1;11796:69:0;11886:17;11930:5;11907:19;11916:10;11907:6;:19;:::i;:::-;11906:29;;;;:::i;:::-;11886:49;;11946:18;11989:5;11977:8;;11968:6;:17;;;;:::i;:::-;11967:27;;;;:::i;:::-;11946:48;-1:-1:-1;12005:26:0;11946:48;12034:18;12043:9;12034:6;:18;:::i;:::-;:31;;;;:::i;:::-;12005:60;-1:-1:-1;12146:13:0;;12142:92;;12200:10;;12176:46;;12192:6;;-1:-1:-1;;;;;12200:10:0;12212:9;12176:15;:46::i;:::-;12278:14;;12274:72;;12309:25;12315:6;12323:10;12309:5;:25::i;:::-;12400:54;12416:6;12424:9;12435:18;12400:15;:54::i;:::-;11734:728;;;;11612:850;;;:::o;7159:120::-;6806:7;;-1:-1:-1;;;6806:7:0;;;;6964:41;;;;-1:-1:-1;;;6964:41:0;;13263:2:1;6964:41:0;;;13245:21:1;13302:2;13282:18;;;13275:30;-1:-1:-1;;;13321:18:1;;;13314:50;13381:18;;6964:41:0;13061:344:1;6964:41:0;7218:7:::1;:15:::0;;-1:-1:-1;;;;7218:15:0::1;::::0;;7249:22:::1;222:10:::0;7258:12:::1;7249:22;::::0;-1:-1:-1;;;;;3129:32:1;;;3111:51;;3099:2;3084:18;7249:22:0::1;;;;;;;7159:120::o:0;3440:429::-;-1:-1:-1;;;;;3524:21:0;;3516:65;;;;-1:-1:-1;;;3516:65:0;;13612:2:1;3516:65:0;;;13594:21:1;13651:2;13631:18;;;13624:30;13690:33;13670:18;;;13663:61;13741:18;;3516:65:0;13410:355:1;3516:65:0;3592:49;3621:1;3625:7;3634:6;3592:20;:49::i;:::-;3668:6;3652:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3710:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;3765:37;1976:25:1;;;3765:37:0;;1949:18:1;3765:37:0;;;;;;;3440:429;;:::o;6279:191::-;6372:6;;;-1:-1:-1;;;;;6389:17:0;;;-1:-1:-1;;;;;;6389:17:0;;;;;;;6422:40;;6372:6;;;6389:17;6372:6;;6422:40;;6353:16;;6422:40;6342:128;6279:191;:::o;7033:118::-;6806:7;;-1:-1:-1;;;6806:7:0;;;;6873:9;6865:38;;;;-1:-1:-1;;;6865:38:0;;13972:2:1;6865:38:0;;;13954:21:1;14011:2;13991:18;;;13984:30;-1:-1:-1;;;14030:18:1;;;14023:46;14086:18;;6865:38:0;13770:340:1;6865:38:0;7093:7:::1;:14:::0;;-1:-1:-1;;;;7093:14:0::1;-1:-1:-1::0;;;7093:14:0::1;::::0;;7123:20:::1;7130:12;222:10:::0;;142:98;2799:633;-1:-1:-1;;;;;2896:18:0;;2888:68;;;;-1:-1:-1;;;2888:68:0;;14317:2:1;2888:68:0;;;14299:21:1;14356:2;14336:18;;;14329:30;14395:34;14375:18;;;14368:62;-1:-1:-1;;;14446:18:1;;;14439:35;14491:19;;2888:68:0;14115:401:1;2888:68:0;-1:-1:-1;;;;;2975:16:0;;2967:64;;;;-1:-1:-1;;;2967:64:0;;14723:2:1;2967:64:0;;;14705:21:1;14762:2;14742:18;;;14735:30;14801:34;14781:18;;;14774:62;-1:-1:-1;;;14852:18:1;;;14845:33;14895:19;;2967:64:0;14521:399:1;2967:64:0;3042:38;3063:4;3069:2;3073:6;3042:20;:38::i;:::-;-1:-1:-1;;;;;3113:15:0;;3091:19;3113:15;;;;;;;;;;;3147:21;;;;3139:72;;;;-1:-1:-1;;;3139:72:0;;15127:2:1;3139:72:0;;;15109:21:1;15166:2;15146:18;;;15139:30;15205:34;15185:18;;;15178:62;-1:-1:-1;;;15256:18:1;;;15249:36;15302:19;;3139:72:0;14925:402:1;3139:72:0;-1:-1:-1;;;;;3247:15:0;;;:9;:15;;;;;;;;;;;3265:20;;;3247:38;;3300:13;;;;;;;;;;:23;;;;;;3350:26;;1976:25:1;;;3300:13:0;;3350:26;;1949:18:1;3350:26:0;;;;;;;3387:37;18167:446;3877:587;-1:-1:-1;;;;;3961:21:0;;3953:67;;;;-1:-1:-1;;;3953:67:0;;15534:2:1;3953:67:0;;;15516:21:1;15573:2;15553:18;;;15546:30;15612:34;15592:18;;;15585:62;-1:-1:-1;;;15663:18:1;;;15656:31;15704:19;;3953:67:0;15332:397:1;3953:67:0;4031:49;4052:7;4069:1;4073:6;4031:20;:49::i;:::-;-1:-1:-1;;;;;4116:18:0;;4091:22;4116:18;;;;;;;;;;;4153:24;;;;4145:71;;;;-1:-1:-1;;;4145:71:0;;15936:2:1;4145:71:0;;;15918:21:1;15975:2;15955:18;;;15948:30;16014:34;15994:18;;;15987:62;-1:-1:-1;;;16065:18:1;;;16058:32;16107:19;;4145:71:0;15734:398:1;4145:71:0;-1:-1:-1;;;;;4252:18:0;;:9;:18;;;;;;;;;;;4273:23;;;4252:44;;4311:12;:22;;;;;;;4360:37;1976:25:1;;;4252:9:0;;:18;4360:37;;1949:18:1;4360:37:0;;;;;;;18572:33:::1;18167:446:::0;;:::o;10197:1407::-;6806:7;;-1:-1:-1;;;6806:7:0;;;;10355:9;10347:48;;;;-1:-1:-1;;;10347:48:0;;16339:2:1;10347:48:0;;;16321:21:1;16378:2;16358:18;;;16351:30;16417:28;16397:18;;;16390:56;16463:18;;10347:48:0;16137:350:1;10347:48:0;-1:-1:-1;;;;;10415:17:0;;;;;;:11;:17;;;;;;;;10414:18;:38;;;;-1:-1:-1;;;;;;10437:15:0;;;;;;:11;:15;;;;;;;;10436:16;10414:38;10406:73;;;;-1:-1:-1;;;10406:73:0;;16694:2:1;10406:73:0;;;16676:21:1;16733:2;16713:18;;;16706:30;-1:-1:-1;;;16752:18:1;;;16745:52;16814:18;;10406:73:0;16492:346:1;10406:73:0;-1:-1:-1;;;;;10571:18:0;;;;;;:38;;-1:-1:-1;;;;;;10593:16:0;;;;10571:38;:81;;;;-1:-1:-1;;;;;;10628:24:0;;;;;;:18;:24;;;;;;;;10627:25;10571:81;:108;;;;-1:-1:-1;;;;;;10657:22:0;;;;;;:18;:22;;;;;;;;10656:23;10571:108;10567:965;;;10771:14;;-1:-1:-1;;;10771:14:0;;;;10766:85;;10806:29;;-1:-1:-1;;;10806:29:0;;17045:2:1;10806:29:0;;;17027:21:1;17084:2;17064:18;;;17057:30;-1:-1:-1;;;17103:18:1;;;17096:49;17162:18;;10806:29:0;16843:343:1;10766:85:0;10951:18;;-1:-1:-1;;;10951:18:0;;;;:36;;;;-1:-1:-1;10973:14:0;;-1:-1:-1;;;10973:14:0;;;;10951:36;:114;;;;;11046:19;;11027:16;;:38;;;;:::i;:::-;11009:15;:56;10951:114;10947:224;;;11124:1;11104:17;;:21;;;;:::i;:::-;11094:6;:31;;11086:69;;;;-1:-1:-1;;;11086:69:0;;17393:2:1;11086:69:0;;;17375:21:1;17432:2;17412:18;;;17405:30;17471:27;17451:18;;;17444:55;17516:18;;11086:69:0;17191:349:1;11086:69:0;11217:17;;11207:6;:27;;11199:69;;;;-1:-1:-1;;;11199:69:0;;17747:2:1;11199:69:0;;;17729:21:1;17786:2;17766:18;;;17759:30;17825:31;17805:18;;;17798:59;17874:18;;11199:69:0;17545:353:1;11199:69:0;-1:-1:-1;;;;;11357:16:0;;;;;;:43;;-1:-1:-1;;;;;;11378:22:0;;;;;;:18;:22;;;;;;;;11377:23;11357:43;11353:168;;;11456:16;;11446:6;11430:13;11440:2;-1:-1:-1;;;;;1927:18:0;1900:7;1927:18;;;;;;;;;;;;1826:127;11430:13;:22;;;;:::i;:::-;:42;;11422:83;;;;-1:-1:-1;;;11422:83:0;;18105:2:1;11422:83:0;;;18087:21:1;18144:2;18124:18;;;18117:30;18183;18163:18;;;18156:58;18231:18;;11422:83:0;17903:352:1;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;:::-;1337:39;1196:186;-1:-1:-1;;;1196:186:1:o;1387:118::-;1473:5;1466:13;1459:21;1452:5;1449:32;1439:60;;1495:1;1492;1485:12;1510:315;1575:6;1583;1636:2;1624:9;1615:7;1611:23;1607:32;1604:52;;;1652:1;1649;1642:12;1604:52;1675:29;1694:9;1675:29;:::i;:::-;1665:39;;1754:2;1743:9;1739:18;1726:32;1767:28;1789:5;1767:28;:::i;:::-;1814:5;1804:15;;;1510:315;;;;;:::o;2012:180::-;2071:6;2124:2;2112:9;2103:7;2099:23;2095:32;2092:52;;;2140:1;2137;2130:12;2092:52;-1:-1:-1;2163:23:1;;2012:180;-1:-1:-1;2012:180:1:o;2197:328::-;2274:6;2282;2290;2343:2;2331:9;2322:7;2318:23;2314:32;2311:52;;;2359:1;2356;2349:12;2311:52;2382:29;2401:9;2382:29;:::i;:::-;2372:39;;2430:38;2464:2;2453:9;2449:18;2430:38;:::i;:::-;2420:48;;2515:2;2504:9;2500:18;2487:32;2477:42;;2197:328;;;;;:::o;2719:241::-;2775:6;2828:2;2816:9;2807:7;2803:23;2799:32;2796:52;;;2844:1;2841;2834:12;2796:52;2883:9;2870:23;2902:28;2924:5;2902:28;:::i;3173:658::-;3344:2;3396:21;;;3466:13;;3369:18;;;3488:22;;;3315:4;;3344:2;3567:15;;;;3541:2;3526:18;;;3315:4;3610:195;3624:6;3621:1;3618:13;3610:195;;;3689:13;;-1:-1:-1;;;;;3685:39:1;3673:52;;3780:15;;;;3745:12;;;;3721:1;3639:9;3610:195;;;-1:-1:-1;3822:3:1;;3173:658;-1:-1:-1;;;;;;3173:658:1:o;3836:316::-;3913:6;3921;3929;3982:2;3970:9;3961:7;3957:23;3953:32;3950:52;;;3998:1;3995;3988:12;3950:52;-1:-1:-1;;4021:23:1;;;4091:2;4076:18;;4063:32;;-1:-1:-1;4142:2:1;4127:18;;;4114:32;;3836:316;-1:-1:-1;3836:316:1:o;4481:367::-;4544:8;4554:6;4608:3;4601:4;4593:6;4589:17;4585:27;4575:55;;4626:1;4623;4616:12;4575:55;-1:-1:-1;4649:20:1;;4692:18;4681:30;;4678:50;;;4724:1;4721;4714:12;4678:50;4761:4;4753:6;4749:17;4737:29;;4821:3;4814:4;4804:6;4801:1;4797:14;4789:6;4785:27;4781:38;4778:47;4775:67;;;4838:1;4835;4828:12;4775:67;4481:367;;;;;:::o;4853:437::-;4939:6;4947;5000:2;4988:9;4979:7;4975:23;4971:32;4968:52;;;5016:1;5013;5006:12;4968:52;5056:9;5043:23;5089:18;5081:6;5078:30;5075:50;;;5121:1;5118;5111:12;5075:50;5160:70;5222:7;5213:6;5202:9;5198:22;5160:70;:::i;:::-;5249:8;;5134:96;;-1:-1:-1;4853:437:1;-1:-1:-1;;;;4853:437:1:o;5295:566::-;5387:6;5395;5403;5456:2;5444:9;5435:7;5431:23;5427:32;5424:52;;;5472:1;5469;5462:12;5424:52;5512:9;5499:23;5545:18;5537:6;5534:30;5531:50;;;5577:1;5574;5567:12;5531:50;5616:70;5678:7;5669:6;5658:9;5654:22;5616:70;:::i;:::-;5705:8;;-1:-1:-1;5590:96:1;-1:-1:-1;;5790:2:1;5775:18;;5762:32;5803:28;5762:32;5803:28;:::i;:::-;5850:5;5840:15;;;5295:566;;;;;:::o;5866:260::-;5934:6;5942;5995:2;5983:9;5974:7;5970:23;5966:32;5963:52;;;6011:1;6008;6001:12;5963:52;6034:29;6053:9;6034:29;:::i;:::-;6024:39;;6082:38;6116:2;6105:9;6101:18;6082:38;:::i;:::-;6072:48;;5866:260;;;;;:::o;6131:380::-;6210:1;6206:12;;;;6253;;;6274:61;;6328:4;6320:6;6316:17;6306:27;;6274:61;6381:2;6373:6;6370:14;6350:18;6347:38;6344:161;;6427:10;6422:3;6418:20;6415:1;6408:31;6462:4;6459:1;6452:15;6490:4;6487:1;6480:15;6344:161;;6131:380;;;:::o;6516:356::-;6718:2;6700:21;;;6737:18;;;6730:30;6796:34;6791:2;6776:18;;6769:62;6863:2;6848:18;;6516:356::o;7941:127::-;8002:10;7997:3;7993:20;7990:1;7983:31;8033:4;8030:1;8023:15;8057:4;8054:1;8047:15;8073:127;8134:10;8129:3;8125:20;8122:1;8115:31;8165:4;8162:1;8155:15;8189:4;8186:1;8179:15;8205:135;8244:3;8265:17;;;8262:43;;8285:18;;:::i;:::-;-1:-1:-1;8332:1:1;8321:13;;8205:135::o;10036:245::-;10103:6;10156:2;10144:9;10135:7;10131:23;10127:32;10124:52;;;10172:1;10169;10162:12;10124:52;10204:9;10198:16;10223:28;10245:5;10223:28;:::i;10286:184::-;10356:6;10409:2;10397:9;10388:7;10384:23;10380:32;10377:52;;;10425:1;10422;10415:12;10377:52;-1:-1:-1;10448:16:1;;10286:184;-1:-1:-1;10286:184:1:o;12048:125::-;12113:9;;;12134:10;;;12131:36;;;12147:18;;:::i;12533:168::-;12606:9;;;12637;;12654:15;;;12648:22;;12634:37;12624:71;;12675:18;;:::i;12706:217::-;12746:1;12772;12762:132;;12816:10;12811:3;12807:20;12804:1;12797:31;12851:4;12848:1;12841:15;12879:4;12876:1;12869:15;12762:132;-1:-1:-1;12908:9:1;;12706:217::o;12928:128::-;12995:9;;;13016:11;;;13013:37;;;13030:18;;:::i

Swarm Source

ipfs://b2cbef0d4b0f5c2cc3b717beb01a133e6a8259aa00030cd42448038e69923242

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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