ETH Price: $3,357.47 (+0.98%)

Token

Alpha Key (ALPHA)
 

Overview

Max Total Supply

1,000,000 ALPHA

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,000 ALPHA

Value
$0.00
0xeee899b6521db73e94f4b9224cdf3db0010fa334
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AlphaKey

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 20000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
⠀⠀⠀⠀⠀⢀⣼⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣾⣧⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠾⡿⠛⢿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡿⠛⢿⡟⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢠⡇⡐⠀⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀⣠⡿⠁⢠⠈⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣾⣷⢇⠀⠀⠙⢿⣦⡀⠀⠀⠀⣰⣿⠏⠁⠀⢸⣿⣿⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠊⡿⠁⠈⠢⠀⠀⠈⠉⠉⠉⠉⠉⠁⠁⠀⠀⠴⠃⠈⢿⡟⠀⠀⠀⠀
⠀⠀⠀⠀⢰⣗⢀⡠⠊⠀⠀⠀⠀⠀⢠⡄⠀⠀⠀⠀⠀⠐⢦⡀⢘⡇⠀⠀⠀⠀
⠀⠀⠀⢀⣼⣷⡿⠁⠀⣠⣄⣀⣄⡀⢸⣇⠀⢠⣄⣀⣄⡀⠀⢻⣾⣷⡄⠀⠀⠀
⠀⠀⠀⣼⣿⣿⠁⠀⣾⠧⡤⣍⠹⣳⣿⣿⣾⡟⣨⡥⡬⣿⡄⠀⢿⣿⣷⠀⠀⠀Alpha Coin
⠀⠀⣴⠟⣱⠃⣠⡄⢛⣦⠑⡒⢷⣿⣿⣿⣿⡷⢓⡋⣥⡞⠡⣄⠈⣧⠙⣧⡀⠀
⠀⣸⠃⣼⠿⢋⣿⡀⠈⠙⠋⠙⡟⠉⣿⣿⠋⢻⡏⠙⠋⠁⠀⣹⡟⠻⣷⡈⢧⠀Telegram: https://t.me/alphakeytoken
⠀⠇⠘⢁⣀⠸⣿⣠⡖⠀⠀⠀⠁⠀⠘⠃⠀⠀⠇⠀⠀⢱⣦⣿⡇⢀⣈⠣⠘⡄Website: https://alphakey.io/
⢸⡴⠛⢿⡇⠀⡟⠙⣇⠀⠠⠀⢀⣶⣶⣶⣶⡄⠀⢀⠀⣸⠇⢹⠁⢸⣿⠛⢦⡃Twitter: https://twitter.com/alphakeytoken
⠎⠀⠀⠘⣷⠀⠀⠀⠈⠣⣸⡀⠈⢉⣿⣿⡍⠁⠀⣜⡴⠃⠀⠈⠀⣼⠏⠀⠀⠙
⠀⠀⠀⠀⠹⣆⣸⠑⢄⠀⠙⣷⣤⣤⠽⠻⢤⣤⣾⠏⠀⡠⠚⢹⣰⠏⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠘⢿⠀⠀⠑⡄⠘⠿⣿⣿⣾⣿⡟⡇⢀⠎⠀⠀⡼⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⣤⢹⢿⣿⡟⢰⣠⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⢿⠀⢺⡇⠁⡾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠈⣇⠀⠃⢰⠃⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣤⢀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

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

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract AlphaKey is Ownable {
    string private constant _name = unicode"Alpha Key";
    string private constant _symbol = unicode"ALPHA";
    uint256 private constant _totalSupply = 1_000_000 * 1e18;

    uint256 public maxTransactionAmount = 5_000 * 1e18;
    uint256 public maxWallet = 10_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private revWallet = 0xFA80D31bEbd99D1376354898E88A290C50b64127;
    address private treasuryWallet = 0xa7418a1f4ee9d385f4F5B94E17460C101C2520d9;
    address private teamWallet = 0xA2591DF0D5914A294E1A8575b08B7f54c1ED8F24;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 2;
    uint8 public sellTotalFees = 2;

    uint8 public revFee = 50;
    uint8 public treasuryFee = 25;
    uint8 public teamFee = 25;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0x28fA05de79ED6fb7D79F1BC5cBb0E79bC5132B1c;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, true);
        setExcludedFromFees(0x7CA76718D26CD12B8a08a2ea652095adD6276A2f, true);
        setExcludedFromFees(0xde4ba164E6b69951d60C975507009DAb59FB7119, true);
        setExcludedFromFees(0x00D78DAF782921B27a6b407d34F19842C10a4a6B, true);
        setExcludedFromFees(0x4e3D9c1321cCf7DfDC6BBc31331217a6a48516cB, true);
        setExcludedFromFees(0x999999B2173a81c2b20E202c3d22E0473f6517b6, true);
        setExcludedFromFees(0xFD6F40D16a6B3126C70724751D6a77e1cb990CD3, true);
        setExcludedFromFees(0x794f95F2215b66146392576FC703DbA61b84FF28, true);
        setExcludedFromFees(0x00000012616B0Cb849Db9A897Bc338B709bc56e5, true);
        setExcludedFromFees(0x66623B6A48998243FA28b7d6c7d63562885f4E2c, true);
        setExcludedFromFees(0x16F2EC68a9aC08c677583593c32d7E4D4c787adc, true);
        setExcludedFromFees(0x69077669f0875064eC1323fBE91462aC7Dd9Ec80, true);
        setExcludedFromFees(0x8c38A8Ab7242896449935346d9bb0F76cE186607, true);
        setExcludedFromFees(0x15d194BB5A0afF548a0ae5959b41B52928a7fCb8, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);
        setExcludedFromMaxTransaction(0x7CA76718D26CD12B8a08a2ea652095adD6276A2f, true);
        setExcludedFromMaxTransaction(0xde4ba164E6b69951d60C975507009DAb59FB7119, true);
        setExcludedFromMaxTransaction(0x00D78DAF782921B27a6b407d34F19842C10a4a6B, true);
        setExcludedFromMaxTransaction(0x4e3D9c1321cCf7DfDC6BBc31331217a6a48516cB, true);
        setExcludedFromMaxTransaction(0x999999B2173a81c2b20E202c3d22E0473f6517b6, true);
        setExcludedFromMaxTransaction(0xFD6F40D16a6B3126C70724751D6a77e1cb990CD3, true);
        setExcludedFromMaxTransaction(0x794f95F2215b66146392576FC703DbA61b84FF28, true);
        setExcludedFromMaxTransaction(0x00000012616B0Cb849Db9A897Bc338B709bc56e5, true);
        setExcludedFromMaxTransaction(0x66623B6A48998243FA28b7d6c7d63562885f4E2c, true);
        setExcludedFromMaxTransaction(0x16F2EC68a9aC08c677583593c32d7E4D4c787adc, true);
        setExcludedFromMaxTransaction(0x69077669f0875064eC1323fBE91462aC7Dd9Ec80, true);
        setExcludedFromMaxTransaction(0x8c38A8Ab7242896449935346d9bb0F76cE186607, true);
        setExcludedFromMaxTransaction(0x15d194BB5A0afF548a0ae5959b41B52928a7fCb8, true);

        _balances[msg.sender] = 250_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[treasuryWallet] = 250_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[airdropWallet] = 0 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[address(this)] = 500_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

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

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        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 transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 100, "Buy fees must be less than or equal to 100%");
        require(_sellTotalFees <= 100, "Sell fees must be less than or equal to 100%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function unleashTheAlphaCoin() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unleashTheAlphaCoin","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269010f0cf064dd5920000060015569021e19e0c9bab240000060025561271069d3c21bcecceda100000060026200003c919062000a13565b62000048919062000a3d565b600355600480546001600160a01b031990811673fa80d31bebd99d1376354898e88a290c50b64127179091556005805490911673a7418a1f4ee9d385f4f5b94e17460c101c2520d9179055600680547a01001919320202a2591df0d5914a294e1a8575b08b7f54c1ed8f24600161ff0160c81b0319909116179055348015620000cf575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000130573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000156919062000a5d565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001dc919062000a5d565b6001600160a01b031660808190525f908152600b60205260409020805460ff191660011790557328fa05de79ed6fb7d79f1bc5cbb0e79bc5132b1c620002356200022d5f546001600160a01b031690565b6001620007e2565b62000242306001620007e2565b6200025161dead6001620007e2565b6006546200026a906001600160a01b03166001620007e2565b60045462000283906001600160a01b03166001620007e2565b6005546200029c906001600160a01b03166001620007e2565b620002bd737ca76718d26cd12b8a08a2ea652095add6276a2f6001620007e2565b620002de73de4ba164e6b69951d60c975507009dab59fb71196001620007e2565b620002fe72d78daf782921b27a6b407d34f19842c10a4a6b6001620007e2565b6200031f734e3d9c1321ccf7dfdc6bbc31331217a6a48516cb6001620007e2565b6200034073999999b2173a81c2b20e202c3d22e0473f6517b66001620007e2565b6200036173fd6f40d16a6b3126c70724751d6a77e1cb990cd36001620007e2565b6200038273794f95f2215b66146392576fc703dba61b84ff286001620007e2565b620003a07012616b0cb849db9a897bc338b709bc56e56001620007e2565b620003c17366623b6a48998243fa28b7d6c7d63562885f4e2c6001620007e2565b620003e27316f2ec68a9ac08c677583593c32d7e4d4c787adc6001620007e2565b620004037369077669f0875064ec1323fbe91462ac7dd9ec806001620007e2565b62000424738c38a8ab7242896449935346d9bb0f76ce1866076001620007e2565b620004457315d194bb5a0aff548a0ae5959b41b52928a7fcb86001620007e2565b620004636200045b5f546001600160a01b031690565b600162000869565b62000484737a250d5630b4cf539739df2c5dacb4c659f2488d600162000869565b6200049130600162000869565b620004a061dead600162000869565b608051620004b090600162000869565b600654620004c9906001600160a01b0316600162000869565b600454620004e2906001600160a01b0316600162000869565b600554620004fb906001600160a01b0316600162000869565b6200051c737ca76718d26cd12b8a08a2ea652095add6276a2f600162000869565b6200053d73de4ba164e6b69951d60c975507009dab59fb7119600162000869565b6200055d72d78daf782921b27a6b407d34f19842c10a4a6b600162000869565b6200057e734e3d9c1321ccf7dfdc6bbc31331217a6a48516cb600162000869565b6200059f73999999b2173a81c2b20e202c3d22e0473f6517b6600162000869565b620005c073fd6f40d16a6b3126c70724751d6a77e1cb990cd3600162000869565b620005e173794f95f2215b66146392576fc703dba61b84ff28600162000869565b620005ff7012616b0cb849db9a897bc338b709bc56e5600162000869565b620006207366623b6a48998243fa28b7d6c7d63562885f4e2c600162000869565b620006417316f2ec68a9ac08c677583593c32d7e4d4c787adc600162000869565b620006627369077669f0875064ec1323fbe91462ac7dd9ec80600162000869565b62000683738c38a8ab7242896449935346d9bb0f76ce186607600162000869565b620006a47315d194bb5a0aff548a0ae5959b41b52928a7fcb8600162000869565b335f8181526007602090815260408083206934f086f3b33b684000009081905590519081525f8051602062004043833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206934f086f3b33b684000009055925490911680825282822054925190925f8051602062004043833981519152916200073991815260200190565b60405180910390a36001600160a01b0381165f818152600760209081526040808320839055518281525f8051602062004043833981519152910160405180910390a3305f8181526007602090815260408083206969e10de76676d08000009081905590519081525f8051602062004043833981519152910160405180910390a3620007db30737a250d5630b4cf539739df2c5dacb4c659f2488d5f19620008ec565b5062000a8c565b33620007f55f546001600160a01b031690565b6001600160a01b0316146200083f5760405162461bcd60e51b815260206004820181905260248201525f805160206200402383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b336200087c5f546001600160a01b031690565b6001600160a01b031614620008c25760405162461bcd60e51b815260206004820181905260248201525f8051602062004023833981519152604482015260640162000836565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620009505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000836565b6001600160a01b038216620009b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000836565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b808202811582820484141762000a3757634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8262000a5857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000a6e575f80fd5b81516001600160a01b038116811462000a85575f80fd5b9392505050565b60805161357762000aac5f395f818161046c015261164601526135775ff3fe6080604052600436106102ae575f3560e01c80637cb332bb11610165578063c8c8ebe4116100c6578063dd62ed3e1161007c578063e710794711610062578063e71079471461086f578063f8b45b051461088e578063fb201b1d146108a3575f80fd5b8063dd62ed3e14610816578063e2f456051461085a575f80fd5b8063d201b01e116100ac578063d201b01e14610791578063d7c94efd146107b0578063d85ba063146107e5575f80fd5b8063c8c8ebe414610748578063cc32d1761461075d575f80fd5b80639a7a23d61161011b578063a9059cbb11610101578063a9059cbb146106eb578063adfa29e51461070a578063bc205ad314610729575f80fd5b80639a7a23d6146106c4578063a290f998146106e3575f80fd5b806385ecafd71161014b57806385ecafd71461062c5780638da5cb5b1461066357806395d89b411461067f575f80fd5b80637cb332bb146105ee578063809d458d1461060d575f80fd5b80634a62bb651161020f5780636a486a8e116101c5578063715018a6116101ab578063715018a6146105a757806374010ece146105bb578063751039fc146105da575f80fd5b80636a486a8e1461054157806370a0823114610573575f80fd5b8063590ffdce116101f5578063590ffdce146104e45780636402511e1461050357806366650dae14610522575f80fd5b80634a62bb651461048e5780634fcd2446146104c5575f80fd5b806323b872dd11610264578063313ce5671161024a578063313ce567146104295780633c090c461461043c57806349bd5a5e1461045b575f80fd5b806323b872dd146103e957806327a14fc214610408575f80fd5b80631694505e116102945780631694505e1461033f57806318160ddd1461037e57806321d37e39146103a4575f80fd5b806306fdde03146102b9578063095ea7b314610310575f80fd5b366102b557005b5f80fd5b3480156102c4575f80fd5b5060408051808201909152600981527f416c706861204b6579000000000000000000000000000000000000000000000060208201525b6040516103079190612f89565b60405180910390f35b34801561031b575f80fd5b5061032f61032a366004612ff4565b6108b7565b6040519015158152602001610307565b34801561034a575f80fd5b50610366737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610307565b348015610389575f80fd5b5069d3c21bcecceda10000005b604051908152602001610307565b3480156103af575f80fd5b506006546103d790760100000000000000000000000000000000000000000000900460ff1681565b60405160ff9091168152602001610307565b3480156103f4575f80fd5b5061032f61040336600461301c565b6108cd565b348015610413575f80fd5b50610427610422366004613055565b6109b5565b005b348015610434575f80fd5b5060126103d7565b348015610447575f80fd5b5061042761045636600461307c565b610adf565b348015610466575f80fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b348015610499575f80fd5b5060065461032f907a010000000000000000000000000000000000000000000000000000900460ff1681565b3480156104d0575f80fd5b506104276104df3660046130bc565b610cbb565b3480156104ef575f80fd5b506104276104fe3660046130fd565b610ea3565b34801561050e575f80fd5b5061042761051d366004613055565b610f53565b34801561052d575f80fd5b5061042761053c3660046130fd565b6110ef565b34801561054c575f80fd5b506006546103d7907501000000000000000000000000000000000000000000900460ff1681565b34801561057e575f80fd5b5061039661058d366004613132565b6001600160a01b03165f9081526007602052604090205490565b3480156105b2575f80fd5b5061042761119f565b3480156105c6575f80fd5b506104276105d5366004613055565b611230565b3480156105e5575f80fd5b5061042761135a565b3480156105f9575f80fd5b50610427610608366004613132565b6113ec565b348015610618575f80fd5b50610427610627366004613132565b6114e4565b348015610637575f80fd5b5061032f610646366004613132565b6001600160a01b03165f9081526009602052604090205460ff1690565b34801561066e575f80fd5b505f546001600160a01b0316610366565b34801561068a575f80fd5b5060408051808201909152600581527f414c50484100000000000000000000000000000000000000000000000000000060208201526102fa565b3480156106cf575f80fd5b506104276106de3660046130fd565b6115dc565b61042761170d565b3480156106f6575f80fd5b5061032f610705366004612ff4565b6118b1565b348015610715575f80fd5b50610427610724366004613132565b6118bd565b348015610734575f80fd5b50610427610743366004613152565b6119b5565b348015610753575f80fd5b5061039660015481565b348015610768575f80fd5b506006546103d79077010000000000000000000000000000000000000000000000900460ff1681565b34801561079c575f80fd5b506104276107ab366004613132565b611aab565b3480156107bb575f80fd5b506006546103d7907801000000000000000000000000000000000000000000000000900460ff1681565b3480156107f0575f80fd5b506006546103d79074010000000000000000000000000000000000000000900460ff1681565b348015610821575f80fd5b50610396610830366004613152565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610865575f80fd5b5061039660035481565b34801561087a575f80fd5b50610427610889366004613281565b611c0c565b348015610899575f80fd5b5061039660025481565b3480156108ae575f80fd5b50610427611ef1565b5f6108c3338484612013565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461099f57828110156109925760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61099f8533858403612013565b6109aa85858561216a565b506001949350505050565b336109c75f546001600160a01b031690565b6001600160a01b031614610a1d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b670de0b6b3a76400006103e8610a3e69d3c21bcecceda10000006001613368565b610a48919061337f565b610a52919061337f565b811015610ac75760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201527f20302e31250000000000000000000000000000000000000000000000000000006064820152608401610989565b610ad981670de0b6b3a7640000613368565b60025550565b33610af15f546001600160a01b031690565b6001600160a01b031614610b475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b600680547fffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff1676010000000000000000000000000000000000000000000060ff86811682027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff1692909217770100000000000000000000000000000000000000000000008684168102919091177fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000868516810291909117948590558404831693610c34939181048216929004166133b7565b610c3e91906133b7565b60ff16606414610cb65760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f60448201527f20313030250000000000000000000000000000000000000000000000000000006064820152608401610989565b505050565b33610ccd5f546001600160a01b031690565b6001600160a01b031614610d235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b60648260ff161115610d9d5760405162461bcd60e51b815260206004820152602b60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201527f75616c20746f20313030250000000000000000000000000000000000000000006064820152608401610989565b60648160ff161115610e175760405162461bcd60e51b815260206004820152602c60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201527f7175616c20746f203130302500000000000000000000000000000000000000006064820152608401610989565b600680547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff948516027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff161775010000000000000000000000000000000000000000009290931691909102919091179055565b33610eb55f546001600160a01b031690565b6001600160a01b031614610f0b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b03919091165f90815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b33610f655f546001600160a01b031690565b6001600160a01b031614610fbb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b620186a0610fd469d3c21bcecceda10000006001613368565b610fde919061337f565b8110156110535760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e30303125206f662074686520737570706c7900000000000000000000006064820152608401610989565b6103e861106b69d3c21bcecceda10000006005613368565b611075919061337f565b8111156110ea5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20302e3525206f662074686520737570706c790000000000000000000000006064820152608401610989565b600355565b336111015f546001600160a01b031690565b6001600160a01b0316146111575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b03919091165f908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336111b15f546001600160a01b031690565b6001600160a01b0316146112075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b336112425f546001600160a01b031690565b6001600160a01b0316146112985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b670de0b6b3a76400006103e86112b969d3c21bcecceda10000006001613368565b6112c3919061337f565b6112cd919061337f565b8110156113425760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f77657260448201527f207468616e20302e3125000000000000000000000000000000000000000000006064820152608401610989565b61135481670de0b6b3a7640000613368565b60015550565b3361136c5f546001600160a01b031690565b6001600160a01b0316146113c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b600680547fffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff169055565b336113fe5f546001600160a01b031690565b6001600160a01b0316146114545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606401610989565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336114f65f546001600160a01b031690565b6001600160a01b03161461154c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b0381166115a25760405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606401610989565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336115ee5f546001600160a01b031690565b6001600160a01b0316146116445760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036116c55760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610989565b6001600160a01b03919091165f908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b3361171f5f546001600160a01b031690565b6001600160a01b0316146117755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff16156117e75760405162461bcd60e51b815260206004820152601060248201527f416c7265616479206c61756e63686564000000000000000000000000000000006044820152606401610989565b305f818152600760205260408082205460065491517ff305d719000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af115801561188c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cb691906133d0565b5f6108c333848461216a565b336118cf5f546001600160a01b031690565b6001600160a01b0316146119255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b03811661197b5760405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606401610989565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336119c75f546001600160a01b031690565b6001600160a01b031614611a1d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9e91906133fb565b9050610cb6838383612acd565b33611abd5f546001600160a01b031690565b6001600160a01b031614611b135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b038116611b695760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610989565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611bb2576040519150601f19603f3d011682016040523d82523d5f602084013e611bb7565b606091505b5050905080611c085760405162461bcd60e51b815260206004820152601160248201527f5769746864726177616c206661696c65640000000000000000000000000000006044820152606401610989565b5050565b33611c1e5f546001600160a01b031690565b6001600160a01b031614611c745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff1615611ce65760405162461bcd60e51b815260206004820152601060248201527f416c7265616479206c61756e63686564000000000000000000000000000000006044820152606401610989565b5f5b8251811015610cb657818181518110611d0357611d03613412565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f20541015611da35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610989565b818181518110611db557611db5613412565b602002602001015160075f858481518110611dd257611dd2613412565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254611e07919061343f565b92505081905550818181518110611e2057611e20613412565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254611e599190613452565b92505081905550828181518110611e7257611e72613412565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110611ec057611ec0613412565b6020026020010151604051611ed791815260200190565b60405180910390a380611ee981613465565b915050611ce8565b33611f035f546001600160a01b031690565b6001600160a01b031614611f595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff1615611fcb5760405162461bcd60e51b815260206004820152601060248201527f416c7265616479206c61756e63686564000000000000000000000000000000006044820152606401610989565b600680547fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff167b01000000000000000000000000000000000000000000000000000000179055565b6001600160a01b03831661208e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b03821661210a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166121e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b0382166122625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610989565b5f81116122d75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff1615801561234357505f546001600160a01b0384811691161480159061232a57506001600160a01b0383163014155b801561234357505f546001600160a01b03838116911614155b156123905760405162461bcd60e51b815260206004820152601360248201527f54726164696e67206e6f7420656e61626c6564000000000000000000000000006044820152606401610989565b6006547a010000000000000000000000000000000000000000000000000000900460ff16156126c1575f546001600160a01b038481169116148015906123e357505f546001600160a01b03838116911614155b80156123f757506001600160a01b03821615155b801561240e57506001600160a01b03821661dead14155b801561243a5750600654790100000000000000000000000000000000000000000000000000900460ff16155b156126c1576001600160a01b0383165f908152600b602052604090205460ff16801561247e57506001600160a01b0382165f908152600a602052604090205460ff16155b15612573576001548111156124fb5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d617854780000000000000000000000000000000000000000000000000000006064820152608401610989565b6002546001600160a01b0383165f90815260076020526040902054612520908361343f565b111561256e5760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610989565b6126c1565b6001600160a01b0382165f908152600b602052604090205460ff1680156125b257506001600160a01b0383165f908152600a602052604090205460ff16155b1561262f5760015481111561256e5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178547800000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b0382165f908152600a602052604090205460ff166126c1576002546001600160a01b0383165f90815260076020526040902054612673908361343f565b11156126c15760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610989565b600354305f908152600760205260409020541080159081906127035750600654790100000000000000000000000000000000000000000000000000900460ff16155b801561272757506001600160a01b0384165f908152600b602052604090205460ff16155b801561274b57506001600160a01b0384165f9081526009602052604090205460ff16155b801561276f57506001600160a01b0383165f9081526009602052604090205460ff16155b156127e957600680547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff167901000000000000000000000000000000000000000000000000001790556127c0612c37565b600680547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff1690555b6006546001600160a01b0385165f9081526009602052604090205460ff79010000000000000000000000000000000000000000000000000090920482161591168061284b57506001600160a01b0384165f9081526009602052604090205460ff165b1561285357505f5b6001600160a01b0385165f90815260076020526040902054838110156128e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610989565b5f8215612a5b576001600160a01b0386165f908152600b602052604090205460ff16801561292c57506006547501000000000000000000000000000000000000000000900460ff1615155b1561296e5760065460649061295d907501000000000000000000000000000000000000000000900460ff1687613368565b612967919061337f565b90506129ee565b6001600160a01b0387165f908152600b602052604090205460ff1680156129b1575060065474010000000000000000000000000000000000000000900460ff1615155b156129ee576006546064906129e19074010000000000000000000000000000000000000000900460ff1687613368565b6129eb919061337f565b90505b8015612a5b576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612abc9089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291515f92839290871691612b56919061349c565b5f604051808303815f865af19150503d805f8114612b8f576040519150601f19603f3d011682016040523d82523d5f602084013e612b94565b606091505b5091509150818015612bbe575080511580612bbe575080806020019051810190612bbe91906134b7565b612c305760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e53464560448201527f525f4641494c45440000000000000000000000000000000000000000000000006064820152608401610989565b5050505050565b6003545f612c46826014613368565b305f908152600760205260409020541115612c6c57600354612c69906014613368565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612c9f57612c9f613412565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612ce757612ce7613412565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790612d579086905f908690309042906004016134d2565b5f604051808303815f87803b158015612d6e575f80fd5b505af1158015612d80573d5f803e3d5ffd5b504792505081159050612f61576006545f90606490612dbc90760100000000000000000000000000000000000000000000900460ff1684613368565b612dc6919061337f565b6006549091505f90606490612dfa907801000000000000000000000000000000000000000000000000900460ff1685613368565b612e04919061337f565b90505f81612e128486613452565b612e1c9190613452565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114612e67576040519150601f19603f3d011682016040523d82523d5f602084013e612e6c565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f8114612eb9576040519150601f19603f3d011682016040523d82523d5f602084013e612ebe565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612f0b576040519150601f19603f3d011682016040523d82523d5f602084013e612f10565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b83811015612f81578181015183820152602001612f69565b50505f910152565b602081525f8251806020840152612fa7816040850160208701612f67565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b80356001600160a01b0381168114612fef575f80fd5b919050565b5f8060408385031215613005575f80fd5b61300e83612fd9565b946020939093013593505050565b5f805f6060848603121561302e575f80fd5b61303784612fd9565b925061304560208501612fd9565b9150604084013590509250925092565b5f60208284031215613065575f80fd5b5035919050565b803560ff81168114612fef575f80fd5b5f805f6060848603121561308e575f80fd5b6130978461306c565b92506130a56020850161306c565b91506130b36040850161306c565b90509250925092565b5f80604083850312156130cd575f80fd5b6130d68361306c565b91506130e46020840161306c565b90509250929050565b80151581146130fa575f80fd5b50565b5f806040838503121561310e575f80fd5b61311783612fd9565b91506020830135613127816130ed565b809150509250929050565b5f60208284031215613142575f80fd5b61314b82612fd9565b9392505050565b5f8060408385031215613163575f80fd5b61316c83612fd9565b91506130e460208401612fd9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156131ee576131ee61317a565b604052919050565b5f67ffffffffffffffff82111561320f5761320f61317a565b5060051b60200190565b5f82601f830112613228575f80fd5b8135602061323d613238836131f6565b6131a7565b82815260059290921b8401810191818101908684111561325b575f80fd5b8286015b84811015613276578035835291830191830161325f565b509695505050505050565b5f8060408385031215613292575f80fd5b823567ffffffffffffffff808211156132a9575f80fd5b818501915085601f8301126132bc575f80fd5b813560206132cc613238836131f6565b82815260059290921b840181019181810190898411156132ea575f80fd5b948201945b8386101561330f5761330086612fd9565b825294820194908201906132ef565b96505086013592505080821115613324575f80fd5b5061333185828601613219565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176108c7576108c761333b565b5f826133b2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b60ff81811683821601908111156108c7576108c761333b565b5f805f606084860312156133e2575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561340b575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b808201808211156108c7576108c761333b565b818103818111156108c7576108c761333b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134955761349561333b565b5060010190565b5f82516134ad818460208701612f67565b9190910192915050565b5f602082840312156134c7575f80fd5b815161314b816130ed565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156135205784516001600160a01b0316835293830193918301916001016134fb565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d6598386e6dd4e63011749365fb94bbb5ad42589ec12aa9e8bca9377fc189a5864736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106102ae575f3560e01c80637cb332bb11610165578063c8c8ebe4116100c6578063dd62ed3e1161007c578063e710794711610062578063e71079471461086f578063f8b45b051461088e578063fb201b1d146108a3575f80fd5b8063dd62ed3e14610816578063e2f456051461085a575f80fd5b8063d201b01e116100ac578063d201b01e14610791578063d7c94efd146107b0578063d85ba063146107e5575f80fd5b8063c8c8ebe414610748578063cc32d1761461075d575f80fd5b80639a7a23d61161011b578063a9059cbb11610101578063a9059cbb146106eb578063adfa29e51461070a578063bc205ad314610729575f80fd5b80639a7a23d6146106c4578063a290f998146106e3575f80fd5b806385ecafd71161014b57806385ecafd71461062c5780638da5cb5b1461066357806395d89b411461067f575f80fd5b80637cb332bb146105ee578063809d458d1461060d575f80fd5b80634a62bb651161020f5780636a486a8e116101c5578063715018a6116101ab578063715018a6146105a757806374010ece146105bb578063751039fc146105da575f80fd5b80636a486a8e1461054157806370a0823114610573575f80fd5b8063590ffdce116101f5578063590ffdce146104e45780636402511e1461050357806366650dae14610522575f80fd5b80634a62bb651461048e5780634fcd2446146104c5575f80fd5b806323b872dd11610264578063313ce5671161024a578063313ce567146104295780633c090c461461043c57806349bd5a5e1461045b575f80fd5b806323b872dd146103e957806327a14fc214610408575f80fd5b80631694505e116102945780631694505e1461033f57806318160ddd1461037e57806321d37e39146103a4575f80fd5b806306fdde03146102b9578063095ea7b314610310575f80fd5b366102b557005b5f80fd5b3480156102c4575f80fd5b5060408051808201909152600981527f416c706861204b6579000000000000000000000000000000000000000000000060208201525b6040516103079190612f89565b60405180910390f35b34801561031b575f80fd5b5061032f61032a366004612ff4565b6108b7565b6040519015158152602001610307565b34801561034a575f80fd5b50610366737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610307565b348015610389575f80fd5b5069d3c21bcecceda10000005b604051908152602001610307565b3480156103af575f80fd5b506006546103d790760100000000000000000000000000000000000000000000900460ff1681565b60405160ff9091168152602001610307565b3480156103f4575f80fd5b5061032f61040336600461301c565b6108cd565b348015610413575f80fd5b50610427610422366004613055565b6109b5565b005b348015610434575f80fd5b5060126103d7565b348015610447575f80fd5b5061042761045636600461307c565b610adf565b348015610466575f80fd5b506103667f000000000000000000000000ec9e08c1ba9732f588b92e1fc091fdc88eccb58b81565b348015610499575f80fd5b5060065461032f907a010000000000000000000000000000000000000000000000000000900460ff1681565b3480156104d0575f80fd5b506104276104df3660046130bc565b610cbb565b3480156104ef575f80fd5b506104276104fe3660046130fd565b610ea3565b34801561050e575f80fd5b5061042761051d366004613055565b610f53565b34801561052d575f80fd5b5061042761053c3660046130fd565b6110ef565b34801561054c575f80fd5b506006546103d7907501000000000000000000000000000000000000000000900460ff1681565b34801561057e575f80fd5b5061039661058d366004613132565b6001600160a01b03165f9081526007602052604090205490565b3480156105b2575f80fd5b5061042761119f565b3480156105c6575f80fd5b506104276105d5366004613055565b611230565b3480156105e5575f80fd5b5061042761135a565b3480156105f9575f80fd5b50610427610608366004613132565b6113ec565b348015610618575f80fd5b50610427610627366004613132565b6114e4565b348015610637575f80fd5b5061032f610646366004613132565b6001600160a01b03165f9081526009602052604090205460ff1690565b34801561066e575f80fd5b505f546001600160a01b0316610366565b34801561068a575f80fd5b5060408051808201909152600581527f414c50484100000000000000000000000000000000000000000000000000000060208201526102fa565b3480156106cf575f80fd5b506104276106de3660046130fd565b6115dc565b61042761170d565b3480156106f6575f80fd5b5061032f610705366004612ff4565b6118b1565b348015610715575f80fd5b50610427610724366004613132565b6118bd565b348015610734575f80fd5b50610427610743366004613152565b6119b5565b348015610753575f80fd5b5061039660015481565b348015610768575f80fd5b506006546103d79077010000000000000000000000000000000000000000000000900460ff1681565b34801561079c575f80fd5b506104276107ab366004613132565b611aab565b3480156107bb575f80fd5b506006546103d7907801000000000000000000000000000000000000000000000000900460ff1681565b3480156107f0575f80fd5b506006546103d79074010000000000000000000000000000000000000000900460ff1681565b348015610821575f80fd5b50610396610830366004613152565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610865575f80fd5b5061039660035481565b34801561087a575f80fd5b50610427610889366004613281565b611c0c565b348015610899575f80fd5b5061039660025481565b3480156108ae575f80fd5b50610427611ef1565b5f6108c3338484612013565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461099f57828110156109925760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61099f8533858403612013565b6109aa85858561216a565b506001949350505050565b336109c75f546001600160a01b031690565b6001600160a01b031614610a1d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b670de0b6b3a76400006103e8610a3e69d3c21bcecceda10000006001613368565b610a48919061337f565b610a52919061337f565b811015610ac75760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201527f20302e31250000000000000000000000000000000000000000000000000000006064820152608401610989565b610ad981670de0b6b3a7640000613368565b60025550565b33610af15f546001600160a01b031690565b6001600160a01b031614610b475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b600680547fffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff1676010000000000000000000000000000000000000000000060ff86811682027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff1692909217770100000000000000000000000000000000000000000000008684168102919091177fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000868516810291909117948590558404831693610c34939181048216929004166133b7565b610c3e91906133b7565b60ff16606414610cb65760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f60448201527f20313030250000000000000000000000000000000000000000000000000000006064820152608401610989565b505050565b33610ccd5f546001600160a01b031690565b6001600160a01b031614610d235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b60648260ff161115610d9d5760405162461bcd60e51b815260206004820152602b60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201527f75616c20746f20313030250000000000000000000000000000000000000000006064820152608401610989565b60648160ff161115610e175760405162461bcd60e51b815260206004820152602c60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201527f7175616c20746f203130302500000000000000000000000000000000000000006064820152608401610989565b600680547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff948516027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff161775010000000000000000000000000000000000000000009290931691909102919091179055565b33610eb55f546001600160a01b031690565b6001600160a01b031614610f0b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b03919091165f90815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b33610f655f546001600160a01b031690565b6001600160a01b031614610fbb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b620186a0610fd469d3c21bcecceda10000006001613368565b610fde919061337f565b8110156110535760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e30303125206f662074686520737570706c7900000000000000000000006064820152608401610989565b6103e861106b69d3c21bcecceda10000006005613368565b611075919061337f565b8111156110ea5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20302e3525206f662074686520737570706c790000000000000000000000006064820152608401610989565b600355565b336111015f546001600160a01b031690565b6001600160a01b0316146111575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b03919091165f908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336111b15f546001600160a01b031690565b6001600160a01b0316146112075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b336112425f546001600160a01b031690565b6001600160a01b0316146112985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b670de0b6b3a76400006103e86112b969d3c21bcecceda10000006001613368565b6112c3919061337f565b6112cd919061337f565b8110156113425760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f77657260448201527f207468616e20302e3125000000000000000000000000000000000000000000006064820152608401610989565b61135481670de0b6b3a7640000613368565b60015550565b3361136c5f546001600160a01b031690565b6001600160a01b0316146113c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b600680547fffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff169055565b336113fe5f546001600160a01b031690565b6001600160a01b0316146114545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606401610989565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336114f65f546001600160a01b031690565b6001600160a01b03161461154c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b0381166115a25760405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606401610989565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336115ee5f546001600160a01b031690565b6001600160a01b0316146116445760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b7f000000000000000000000000ec9e08c1ba9732f588b92e1fc091fdc88eccb58b6001600160a01b0316826001600160a01b0316036116c55760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610989565b6001600160a01b03919091165f908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b3361171f5f546001600160a01b031690565b6001600160a01b0316146117755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff16156117e75760405162461bcd60e51b815260206004820152601060248201527f416c7265616479206c61756e63686564000000000000000000000000000000006044820152606401610989565b305f818152600760205260408082205460065491517ff305d719000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af115801561188c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cb691906133d0565b5f6108c333848461216a565b336118cf5f546001600160a01b031690565b6001600160a01b0316146119255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b03811661197b5760405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606401610989565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336119c75f546001600160a01b031690565b6001600160a01b031614611a1d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9e91906133fb565b9050610cb6838383612acd565b33611abd5f546001600160a01b031690565b6001600160a01b031614611b135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b038116611b695760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610989565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611bb2576040519150601f19603f3d011682016040523d82523d5f602084013e611bb7565b606091505b5050905080611c085760405162461bcd60e51b815260206004820152601160248201527f5769746864726177616c206661696c65640000000000000000000000000000006044820152606401610989565b5050565b33611c1e5f546001600160a01b031690565b6001600160a01b031614611c745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff1615611ce65760405162461bcd60e51b815260206004820152601060248201527f416c7265616479206c61756e63686564000000000000000000000000000000006044820152606401610989565b5f5b8251811015610cb657818181518110611d0357611d03613412565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f20541015611da35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610989565b818181518110611db557611db5613412565b602002602001015160075f858481518110611dd257611dd2613412565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254611e07919061343f565b92505081905550818181518110611e2057611e20613412565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254611e599190613452565b92505081905550828181518110611e7257611e72613412565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110611ec057611ec0613412565b6020026020010151604051611ed791815260200190565b60405180910390a380611ee981613465565b915050611ce8565b33611f035f546001600160a01b031690565b6001600160a01b031614611f595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff1615611fcb5760405162461bcd60e51b815260206004820152601060248201527f416c7265616479206c61756e63686564000000000000000000000000000000006044820152606401610989565b600680547fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff167b01000000000000000000000000000000000000000000000000000000179055565b6001600160a01b03831661208e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b03821661210a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166121e65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b0382166122625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610989565b5f81116122d75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610989565b6006547b01000000000000000000000000000000000000000000000000000000900460ff1615801561234357505f546001600160a01b0384811691161480159061232a57506001600160a01b0383163014155b801561234357505f546001600160a01b03838116911614155b156123905760405162461bcd60e51b815260206004820152601360248201527f54726164696e67206e6f7420656e61626c6564000000000000000000000000006044820152606401610989565b6006547a010000000000000000000000000000000000000000000000000000900460ff16156126c1575f546001600160a01b038481169116148015906123e357505f546001600160a01b03838116911614155b80156123f757506001600160a01b03821615155b801561240e57506001600160a01b03821661dead14155b801561243a5750600654790100000000000000000000000000000000000000000000000000900460ff16155b156126c1576001600160a01b0383165f908152600b602052604090205460ff16801561247e57506001600160a01b0382165f908152600a602052604090205460ff16155b15612573576001548111156124fb5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d617854780000000000000000000000000000000000000000000000000000006064820152608401610989565b6002546001600160a01b0383165f90815260076020526040902054612520908361343f565b111561256e5760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610989565b6126c1565b6001600160a01b0382165f908152600b602052604090205460ff1680156125b257506001600160a01b0383165f908152600a602052604090205460ff16155b1561262f5760015481111561256e5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178547800000000000000000000000000000000000000000000000000006064820152608401610989565b6001600160a01b0382165f908152600a602052604090205460ff166126c1576002546001600160a01b0383165f90815260076020526040902054612673908361343f565b11156126c15760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610989565b600354305f908152600760205260409020541080159081906127035750600654790100000000000000000000000000000000000000000000000000900460ff16155b801561272757506001600160a01b0384165f908152600b602052604090205460ff16155b801561274b57506001600160a01b0384165f9081526009602052604090205460ff16155b801561276f57506001600160a01b0383165f9081526009602052604090205460ff16155b156127e957600680547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff167901000000000000000000000000000000000000000000000000001790556127c0612c37565b600680547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff1690555b6006546001600160a01b0385165f9081526009602052604090205460ff79010000000000000000000000000000000000000000000000000090920482161591168061284b57506001600160a01b0384165f9081526009602052604090205460ff165b1561285357505f5b6001600160a01b0385165f90815260076020526040902054838110156128e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610989565b5f8215612a5b576001600160a01b0386165f908152600b602052604090205460ff16801561292c57506006547501000000000000000000000000000000000000000000900460ff1615155b1561296e5760065460649061295d907501000000000000000000000000000000000000000000900460ff1687613368565b612967919061337f565b90506129ee565b6001600160a01b0387165f908152600b602052604090205460ff1680156129b1575060065474010000000000000000000000000000000000000000900460ff1615155b156129ee576006546064906129e19074010000000000000000000000000000000000000000900460ff1687613368565b6129eb919061337f565b90505b8015612a5b576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612abc9089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291515f92839290871691612b56919061349c565b5f604051808303815f865af19150503d805f8114612b8f576040519150601f19603f3d011682016040523d82523d5f602084013e612b94565b606091505b5091509150818015612bbe575080511580612bbe575080806020019051810190612bbe91906134b7565b612c305760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e53464560448201527f525f4641494c45440000000000000000000000000000000000000000000000006064820152608401610989565b5050505050565b6003545f612c46826014613368565b305f908152600760205260409020541115612c6c57600354612c69906014613368565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612c9f57612c9f613412565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612ce757612ce7613412565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790612d579086905f908690309042906004016134d2565b5f604051808303815f87803b158015612d6e575f80fd5b505af1158015612d80573d5f803e3d5ffd5b504792505081159050612f61576006545f90606490612dbc90760100000000000000000000000000000000000000000000900460ff1684613368565b612dc6919061337f565b6006549091505f90606490612dfa907801000000000000000000000000000000000000000000000000900460ff1685613368565b612e04919061337f565b90505f81612e128486613452565b612e1c9190613452565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114612e67576040519150601f19603f3d011682016040523d82523d5f602084013e612e6c565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f8114612eb9576040519150601f19603f3d011682016040523d82523d5f602084013e612ebe565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612f0b576040519150601f19603f3d011682016040523d82523d5f602084013e612f10565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b83811015612f81578181015183820152602001612f69565b50505f910152565b602081525f8251806020840152612fa7816040850160208701612f67565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b80356001600160a01b0381168114612fef575f80fd5b919050565b5f8060408385031215613005575f80fd5b61300e83612fd9565b946020939093013593505050565b5f805f6060848603121561302e575f80fd5b61303784612fd9565b925061304560208501612fd9565b9150604084013590509250925092565b5f60208284031215613065575f80fd5b5035919050565b803560ff81168114612fef575f80fd5b5f805f6060848603121561308e575f80fd5b6130978461306c565b92506130a56020850161306c565b91506130b36040850161306c565b90509250925092565b5f80604083850312156130cd575f80fd5b6130d68361306c565b91506130e46020840161306c565b90509250929050565b80151581146130fa575f80fd5b50565b5f806040838503121561310e575f80fd5b61311783612fd9565b91506020830135613127816130ed565b809150509250929050565b5f60208284031215613142575f80fd5b61314b82612fd9565b9392505050565b5f8060408385031215613163575f80fd5b61316c83612fd9565b91506130e460208401612fd9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156131ee576131ee61317a565b604052919050565b5f67ffffffffffffffff82111561320f5761320f61317a565b5060051b60200190565b5f82601f830112613228575f80fd5b8135602061323d613238836131f6565b6131a7565b82815260059290921b8401810191818101908684111561325b575f80fd5b8286015b84811015613276578035835291830191830161325f565b509695505050505050565b5f8060408385031215613292575f80fd5b823567ffffffffffffffff808211156132a9575f80fd5b818501915085601f8301126132bc575f80fd5b813560206132cc613238836131f6565b82815260059290921b840181019181810190898411156132ea575f80fd5b948201945b8386101561330f5761330086612fd9565b825294820194908201906132ef565b96505086013592505080821115613324575f80fd5b5061333185828601613219565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176108c7576108c761333b565b5f826133b2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b60ff81811683821601908111156108c7576108c761333b565b5f805f606084860312156133e2575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561340b575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b808201808211156108c7576108c761333b565b818103818111156108c7576108c761333b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134955761349561333b565b5060010190565b5f82516134ad818460208701612f67565b9190910192915050565b5f602082840312156134c7575f80fd5b815161314b816130ed565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156135205784516001600160a01b0316835293830193918301916001016134fb565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d6598386e6dd4e63011749365fb94bbb5ad42589ec12aa9e8bca9377fc189a5864736f6c63430008150033

Deployed Bytecode Sourcemap

3712:15585:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9356:83;;;;;;;;;;-1:-1:-1;9426:5:0;;;;;;;;;;;;;;;;;9356:83;;;;;;;:::i;:::-;;;;;;;;9985:152;;;;;;;;;;-1:-1:-1;9985:152:0;;;;;:::i;:::-;;:::i;:::-;;;1354:14:1;;1347:22;1329:41;;1317:2;1302:18;9985:152:0;1189:187:1;5285:115:0;;;;;;;;;;;;5357:42;5285:115;;;;;-1:-1:-1;;;;;1571:55:1;;;1553:74;;1541:2;1526:18;5285:115:0;1381:252:1;9626:91:0;;;;;;;;;;-1:-1:-1;3900:16:0;9626:91;;;1784:25:1;;;1772:2;1757:18;9626:91:0;1638:177:1;4495:24:0;;;;;;;;;;-1:-1:-1;4495:24:0;;;;;;;;;;;;;;1992:4:1;1980:17;;;1962:36;;1950:2;1935:18;4495:24:0;1820:184:1;10656:520:0;;;;;;;;;;-1:-1:-1;10656:520:0;;;;;:::i;:::-;;:::i;16739:235::-;;;;;;;;;;-1:-1:-1;16739:235:0;;;;;:::i;:::-;;:::i;:::-;;9542:76;;;;;;;;;;-1:-1:-1;9608:2:0;9542:76;;13959:300;;;;;;;;;;-1:-1:-1;13959:300:0;;;;;:::i;:::-;;:::i;5407:38::-;;;;;;;;;;;;;;;4624:33;;;;;;;;;;-1:-1:-1;4624:33:0;;;;;;;;;;;14267:343;;;;;;;;;;-1:-1:-1;14267:343:0;;;;;:::i;:::-;;:::i;14618:136::-;;;;;;;;;;-1:-1:-1;14618:136:0;;;;;:::i;:::-;;:::i;16126:361::-;;;;;;;;;;-1:-1:-1;16126:361:0;;;;;:::i;:::-;;:::i;14762:158::-;;;;;;;;;;-1:-1:-1;14762:158:0;;;;;:::i;:::-;;:::i;4456:30::-;;;;;;;;;;-1:-1:-1;4456:30:0;;;;;;;;;;;9725:110;;;;;;;;;;-1:-1:-1;9725:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;9809:18:0;9782:7;9809:18;;;:9;:18;;;;;;;9725:110;2409:92;;;;;;;;;;;;;:::i;16495:236::-;;;;;;;;;;-1:-1:-1;16495:236:0;;;;;:::i;:::-;;:::i;13867:84::-;;;;;;;;;;;;;:::i;17358:177::-;;;;;;;;;;-1:-1:-1;17358:177:0;;;;;:::i;:::-;;:::i;17165:185::-;;;;;;;;;;-1:-1:-1;17165:185:0;;;;;:::i;:::-;;:::i;17543:123::-;;;;;;;;;;-1:-1:-1;17543:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;17630:28:0;17606:4;17630:28;;;:19;:28;;;;;;;;;17543:123;2188:87;;;;;;;;;;-1:-1:-1;2234:7:0;2261:6;-1:-1:-1;;;;;2261:6:0;2188:87;;9447;;;;;;;;;;-1:-1:-1;9519:7:0;;;;;;;;;;;;;;;;;9447:87;;15907:211;;;;;;;;;;-1:-1:-1;15907:211:0;;;;;:::i;:::-;;:::i;15559:340::-;;;:::i;10490:158::-;;;;;;;;;;-1:-1:-1;10490:158:0;;;;;:::i;:::-;;:::i;16982:175::-;;;;;;;;;;-1:-1:-1;16982:175:0;;;;;:::i;:::-;;:::i;17674:240::-;;;;;;;;;;-1:-1:-1;17674:240:0;;;;;:::i;:::-;;:::i;3925:50::-;;;;;;;;;;;;;;;;4526:29;;;;;;;;;;-1:-1:-1;4526:29:0;;;;;;;;;;;17922:247;;;;;;;;;;-1:-1:-1;17922:247:0;;;;;:::i;:::-;;:::i;4562:25::-;;;;;;;;;;-1:-1:-1;4562:25:0;;;;;;;;;;;4420:29;;;;;;;;;;-1:-1:-1;4420:29:0;;;;;;;;;;;9843:134;;;;;;;;;;-1:-1:-1;9843:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;9942:18:0;;;9915:7;9942:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9843:134;4029:62;;;;;;;;;;;;;;;;14928:492;;;;;;;;;;-1:-1:-1;14928:492:0;;;;;:::i;:::-;;:::i;3982:40::-;;;;;;;;;;;;;;;;15428:123;;;;;;;;;;;;;:::i;9985:152::-;10053:4;10070:37;10079:10;10091:7;10100:6;10070:8;:37::i;:::-;-1:-1:-1;10125:4:0;9985:152;;;;;:::o;10656:520::-;-1:-1:-1;;;;;10791:19:0;;10747:4;10791:19;;;:11;:19;;;;;;;;10811:10;10791:31;;;;;;;;10857:17;10837:37;;10833:263;;10919:6;10899:16;:26;;10891:79;;;;-1:-1:-1;;;10891:79:0;;7138:2:1;10891:79:0;;;7120:21:1;7177:2;7157:18;;;7150:30;7216:34;7196:18;;;7189:62;7287:10;7267:18;;;7260:38;7315:19;;10891:79:0;;;;;;;;;11014:55;11023:6;11031:10;11062:6;11043:16;:25;11014:8;:55::i;:::-;11108:36;11118:6;11126:9;11137:6;11108:9;:36::i;:::-;-1:-1:-1;11164:4:0;;10656:520;-1:-1:-1;;;;10656:520:0:o;16739:235::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;16874:4:::1;16866;16845:17;3900:16:::0;16861:1:::1;16845:17;:::i;:::-;16844:26;;;;:::i;:::-;16843:35;;;;:::i;:::-;16827:12;:51;;16819:101;;;::::0;-1:-1:-1;;;16819:101:0;;8549:2:1;16819:101:0::1;::::0;::::1;8531:21:1::0;8588:2;8568:18;;;8561:30;8627:34;8607:18;;;8600:62;8698:7;8678:18;;;8671:35;8723:19;;16819:101:0::1;8347:401:1::0;16819:101:0::1;16943:23;:12:::0;16959:6:::1;16943:23;:::i;:::-;16931:9;:35:::0;-1:-1:-1;16739:235:0:o;13959:300::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;14069:6:::1;:16:::0;;14096:26;;14069:16;::::1;::::0;;::::1;::::0;::::1;14096:26:::0;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;14133:18:::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;14194:7;::::1;::::0;::::1;::::0;14171:20:::1;::::0;14180:11;;::::1;::::0;::::1;::::0;14171:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;14170:39;;14206:3;14170:39;14162:89;;;::::0;-1:-1:-1;;;14162:89:0;;9108:2:1;14162:89:0::1;::::0;::::1;9090:21:1::0;9147:2;9127:18;;;9120:30;9186:34;9166:18;;;9159:62;9257:7;9237:18;;;9230:35;9282:19;;14162:89:0::1;8906:401:1::0;14162:89:0::1;13959:300:::0;;;:::o;14267:343::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;14382:3:::1;14365:13;:20;;;;14357:76;;;::::0;-1:-1:-1;;;14357:76:0;;9514:2:1;14357:76:0::1;::::0;::::1;9496:21:1::0;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;9663:13;9643:18;;;9636:41;9694:19;;14357:76:0::1;9312:407:1::0;14357:76:0::1;14470:3;14452:14;:21;;;;14444:78;;;::::0;-1:-1:-1;;;14444:78:0;;9926:2:1;14444:78:0::1;::::0;::::1;9908:21:1::0;9965:2;9945:18;;;9938:30;10004:34;9984:18;;;9977:62;10075:14;10055:18;;;10048:42;10107:19;;14444:78:0::1;9724:408:1::0;14444:78:0::1;14533:12;:28:::0;;14572:30;;14533:28;::::1;::::0;;::::1;;14572:30:::0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;14267:343::o;14618:136::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;-1:-1:-1;;;;;14707:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;14618:136::o;16126:361::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;16251:6:::1;16230:17;3900:16:::0;16246:1:::1;16230:17;:::i;:::-;16229:28;;;;:::i;:::-;16212:13;:45;;16204:111;;;::::0;-1:-1:-1;;;16204:111:0;;10339:2:1;16204:111:0::1;::::0;::::1;10321:21:1::0;10378:2;10358:18;;;10351:30;10417:34;10397:18;;;10390:62;10488:23;10468:18;;;10461:51;10529:19;;16204:111:0::1;10137:417:1::0;16204:111:0::1;16373:4;16352:17;3900:16:::0;16368:1:::1;16352:17;:::i;:::-;16351:26;;;;:::i;:::-;16334:13;:43;;16326:108;;;::::0;-1:-1:-1;;;16326:108:0;;10761:2:1;16326:108:0::1;::::0;::::1;10743:21:1::0;10800:2;10780:18;;;10773:30;10839:34;10819:18;;;10812:62;10910:22;10890:18;;;10883:50;10950:19;;16326:108:0::1;10559:416:1::0;16326:108:0::1;16445:18;:34:::0;16126:361::o;14762:158::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;-1:-1:-1;;;;;14861:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;14762:158::o;2409:92::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;2491:1:::1;2474:19:::0;;;::::1;::::0;;2409:92::o;16495:236::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;16619:4:::1;16611;16590:17;3900:16:::0;16606:1:::1;16590:17;:::i;:::-;16589:26;;;;:::i;:::-;16588:35;;;;:::i;:::-;16576:8;:47;;16568:102;;;::::0;-1:-1:-1;;;16568:102:0;;11182:2:1;16568:102:0::1;::::0;::::1;11164:21:1::0;11221:2;11201:18;;;11194:30;11260:34;11240:18;;;11233:62;11331:12;11311:18;;;11304:40;11361:19;;16568:102:0::1;10980:406:1::0;16568:102:0::1;16704:19;:8:::0;16716:6:::1;16704:19;:::i;:::-;16681:20;:42:::0;-1:-1:-1;16495:236:0:o;13867:84::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;13921:14:::1;:22:::0;;;::::1;::::0;;13867:84::o;17358:177::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;-1:-1:-1;;;;;17442:24:0;::::1;17434:59;;;::::0;-1:-1:-1;;;17434:59:0;;11593:2:1;17434:59:0::1;::::0;::::1;11575:21:1::0;11632:2;11612:18;;;11605:30;11671:24;11651:18;;;11644:52;11713:18;;17434:59:0::1;11391:346:1::0;17434:59:0::1;17504:10;:23:::0;;;::::1;-1:-1:-1::0;;;;;17504:23:0;;;::::1;::::0;;;::::1;::::0;;17358:177::o;17165:185::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;-1:-1:-1;;;;;17253:24:0;::::1;17245:59;;;::::0;-1:-1:-1;;;17245:59:0;;11593:2:1;17245:59:0::1;::::0;::::1;11575:21:1::0;11632:2;11612:18;;;11605:30;11671:24;11651:18;;;11644:52;11713:18;;17245:59:0::1;11391:346:1::0;17245:59:0::1;17315:14;:27:::0;;;::::1;-1:-1:-1::0;;;;;17315:27:0;;;::::1;::::0;;;::::1;::::0;;17165:185::o;15907:211::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;16016:13:::1;-1:-1:-1::0;;;;;16008:21:0::1;:4;-1:-1:-1::0;;;;;16008:21:0::1;::::0;16000:60:::1;;;::::0;-1:-1:-1;;;16000:60:0;;11944:2:1;16000:60:0::1;::::0;::::1;11926:21:1::0;11983:2;11963:18;;;11956:30;12022:28;12002:18;;;11995:56;12068:18;;16000:60:0::1;11742:350:1::0;16000:60:0::1;-1:-1:-1::0;;;;;16071:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;15907:211::o;15559:340::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;15637:8:::1;::::0;;;::::1;;;15636:9;15628:38;;;::::0;-1:-1:-1;;;15628:38:0;;12299:2:1;15628:38:0::1;::::0;::::1;12281:21:1::0;12338:2;12318:18;;;12311:30;12377:18;12357;;;12350:46;12413:18;;15628:38:0::1;12097:340:1::0;15628:38:0::1;15749:4;15769:24;::::0;;;:9:::1;:24;::::0;;;;;;15840:10:::1;::::0;15677:214;;;;;::::1;::::0;::::1;12806:34:1::0;;;;12856:18;;;12849:34;12899:18;;;12892:34;;;12942:18;;;12935:34;;;;-1:-1:-1;;;;;15840:10:0::1;12985:19:1::0;;;12978:44;15865:15:0::1;13038:19:1::0;;;13031:35;5357:42:0::1;::::0;15677:31:::1;::::0;15716:9:::1;::::0;12717:19:1;;15677:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10490:158::-:0;10561:4;10578:40;10588:10;10600:9;10611:6;10578:9;:40::i;16982:175::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;-1:-1:-1;;;;;17065:24:0;::::1;17057:59;;;::::0;-1:-1:-1;;;17057:59:0;;11593:2:1;17057:59:0::1;::::0;::::1;11575:21:1::0;11632:2;11612:18;;;11605:30;11671:24;11651:18;;;11644:52;11713:18;;17057:59:0::1;11391:346:1::0;17057:59:0::1;17127:9;:22:::0;;;::::1;-1:-1:-1::0;;;;;17127:22:0;;;::::1;::::0;;;::::1;::::0;;16982:175::o;17674:240::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;17786:38:::1;::::0;;;;17818:4:::1;17786:38;::::0;::::1;1553:74:1::0;17759:24:0::1;::::0;-1:-1:-1;;;;;17786:23:0;::::1;::::0;::::1;::::0;1526:18:1;;17786:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17759:65;;17835:51;17858:5;17865:2;17869:16;17835:22;:51::i;17922:247::-:0;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;-1:-1:-1;;;;;18000:18:0;::::1;17992:46;;;::::0;-1:-1:-1;;;17992:46:0;;13779:2:1;17992:46:0::1;::::0;::::1;13761:21:1::0;13818:2;13798:18;;;13791:30;13857:17;13837:18;;;13830:45;13892:18;;17992:46:0::1;13577:339:1::0;17992:46:0::1;18052:12;18070:4;-1:-1:-1::0;;;;;18070:9:0::1;18087:21;18070:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18051:62;;;18132:7;18124:37;;;::::0;-1:-1:-1;;;18124:37:0;;14333:2:1;18124:37:0::1;::::0;::::1;14315:21:1::0;14372:2;14352:18;;;14345:30;14411:19;14391:18;;;14384:47;14448:18;;18124:37:0::1;14131:341:1::0;18124:37:0::1;17981:188;17922:247:::0;:::o;14928:492::-;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;15045:8:::1;::::0;;;::::1;;;15044:9;15036:38;;;::::0;-1:-1:-1;;;15036:38:0;;12299:2:1;15036:38:0::1;::::0;::::1;12281:21:1::0;12338:2;12318:18;;;12311:30;12377:18;12357;;;12350:46;12413:18;;15036:38:0::1;12097:340:1::0;15036:38:0::1;15090:9;15085:328;15109:9;:16;15105:1;:20;15085:328;;;15180:7;15188:1;15180:10;;;;;;;;:::i;:::-;;;;;;;15155:9;:21;15165:10;-1:-1:-1::0;;;;;15155:21:0::1;-1:-1:-1::0;;;;;15155:21:0::1;;;;;;;;;;;;;:35;;15147:86;;;::::0;-1:-1:-1;;;15147:86:0;;14868:2:1;15147:86:0::1;::::0;::::1;14850:21:1::0;14907:2;14887:18;;;14880:30;14946:34;14926:18;;;14919:62;15017:8;14997:18;;;14990:36;15043:19;;15147:86:0::1;14666:402:1::0;15147:86:0::1;15275:7;15283:1;15275:10;;;;;;;;:::i;:::-;;;;;;;15248:9;:23;15258:9;15268:1;15258:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15248:23:0::1;-1:-1:-1::0;;;;;15248:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;15325:7;15333:1;15325:10;;;;;;;;:::i;:::-;;;;;;;15300:9;:21;15310:10;-1:-1:-1::0;;;;;15300:21:0::1;-1:-1:-1::0;;;;;15300:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;15376:9;15386:1;15376:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15355:46:0::1;15364:10;-1:-1:-1::0;;;;;15355:46:0::1;;15390:7;15398:1;15390:10;;;;;;;;:::i;:::-;;;;;;;15355:46;;;;1784:25:1::0;;1772:2;1757:18;;1638:177;15355:46:0::1;;;;;;;;15127:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15085:328;;15428:123:::0;2334:10;2323:7;2234;2261:6;-1:-1:-1;;;;;2261:6:0;;2188:87;2323:7;-1:-1:-1;;;;;2323:21:0;;2315:66;;;;-1:-1:-1;;;2315:66:0;;7547:2:1;2315:66:0;;;7529:21:1;;;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;7677:18;;2315:66:0;7345:356:1;2315:66:0;15488:8:::1;::::0;;;::::1;;;15487:9;15479:38;;;::::0;-1:-1:-1;;;15479:38:0;;12299:2:1;15479:38:0::1;::::0;::::1;12281:21:1::0;12338:2;12318:18;;;12311:30;12377:18;12357;;;12350:46;12413:18;;15479:38:0::1;12097:340:1::0;15479:38:0::1;15528:8;:15:::0;;;::::1;::::0;::::1;::::0;;15428:123::o;10145:337::-;-1:-1:-1;;;;;10238:19:0;;10230:68;;;;-1:-1:-1;;;10230:68:0;;15738:2:1;10230:68:0;;;15720:21:1;15777:2;15757:18;;;15750:30;15816:34;15796:18;;;15789:62;15887:6;15867:18;;;15860:34;15911:19;;10230:68:0;15536:400:1;10230:68:0;-1:-1:-1;;;;;10317:21:0;;10309:68;;;;-1:-1:-1;;;10309:68:0;;16143:2:1;10309:68:0;;;16125:21:1;16182:2;16162:18;;;16155:30;16221:34;16201:18;;;16194:62;16292:4;16272:18;;;16265:32;16314:19;;10309:68:0;15941:398:1;10309:68:0;-1:-1:-1;;;;;10390:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10442:32;;1784:25:1;;;10442:32:0;;1757:18:1;10442:32:0;;;;;;;10145:337;;;:::o;11184:2675::-;-1:-1:-1;;;;;11272:18:0;;11264:68;;;;-1:-1:-1;;;11264:68:0;;16546:2:1;11264:68:0;;;16528:21:1;16585:2;16565:18;;;16558:30;16624:34;16604:18;;;16597:62;16695:7;16675:18;;;16668:35;16720:19;;11264:68:0;16344:401:1;11264:68:0;-1:-1:-1;;;;;11351:16:0;;11343:64;;;;-1:-1:-1;;;11343:64:0;;16952:2:1;11343:64:0;;;16934:21:1;16991:2;16971:18;;;16964:30;17030:34;17010:18;;;17003:62;17101:5;17081:18;;;17074:33;17124:19;;11343:64:0;16750:399:1;11343:64:0;11435:1;11426:6;:10;11418:64;;;;-1:-1:-1;;;11418:64:0;;17356:2:1;11418:64:0;;;17338:21:1;17395:2;17375:18;;;17368:30;17434:34;17414:18;;;17407:62;17505:11;17485:18;;;17478:39;17534:19;;11418:64:0;17154:405:1;11418:64:0;11500:8;;;;;;;11499:9;:72;;;;-1:-1:-1;2234:7:0;2261:6;-1:-1:-1;;;;;11513:15:0;;;2261:6;;11513:15;;;;:40;;-1:-1:-1;;;;;;11532:21:0;;11548:4;11532:21;;11513:40;:57;;;;-1:-1:-1;2234:7:0;2261:6;-1:-1:-1;;;;;11557:13:0;;;2261:6;;11557:13;;11513:57;11495:134;;;11588:29;;-1:-1:-1;;;11588:29:0;;17766:2:1;11588:29:0;;;17748:21:1;17805:2;17785:18;;;17778:30;17844:21;17824:18;;;17817:49;17883:18;;11588:29:0;17564:343:1;11495:134:0;11645:14;;;;;;;11641:830;;;2234:7;2261:6;-1:-1:-1;;;;;11680:15:0;;;2261:6;;11680:15;;;;:32;;-1:-1:-1;2234:7:0;2261:6;-1:-1:-1;;;;;11699:13:0;;;2261:6;;11699:13;;11680:32;:52;;;;-1:-1:-1;;;;;;11716:16:0;;;;11680:52;:77;;;;-1:-1:-1;;;;;;11736:21:0;;11750:6;11736:21;;11680:77;:90;;;;-1:-1:-1;11762:8:0;;;;;;;11761:9;11680:90;11676:784;;;-1:-1:-1;;;;;11795:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;11831:35:0;;;;;;:31;:35;;;;;;;;11830:36;11795:71;11791:654;;;11909:20;;11899:6;:30;;11891:80;;;;-1:-1:-1;;;11891:80:0;;18114:2:1;11891:80:0;;;18096:21:1;18153:2;18133:18;;;18126:30;18192:34;18172:18;;;18165:62;18263:7;18243:18;;;18236:35;18288:19;;11891:80:0;17912:401:1;11891:80:0;12028:9;;-1:-1:-1;;;;;9809:18:0;;9782:7;9809:18;;;:9;:18;;;;;;12002:22;;:6;:22;:::i;:::-;:35;;11994:67;;;;-1:-1:-1;;;11994:67:0;;18520:2:1;11994:67:0;;;18502:21:1;18559:2;18539:18;;;18532:30;18598:21;18578:18;;;18571:49;18637:18;;11994:67:0;18318:343:1;11994:67:0;11791:654;;;-1:-1:-1;;;;;12091:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;12125:37:0;;;;;;:31;:37;;;;;;;;12124:38;12091:71;12087:358;;;12205:20;;12195:6;:30;;12187:80;;;;-1:-1:-1;;;12187:80:0;;18868:2:1;12187:80:0;;;18850:21:1;18907:2;18887:18;;;18880:30;18946:34;18926:18;;;18919:62;19017:8;18997:18;;;18990:36;19043:19;;12187:80:0;18666:402:1;12087:358:0;-1:-1:-1;;;;;12298:35:0;;;;;;:31;:35;;;;;;;;12293:152;;12392:9;;-1:-1:-1;;;;;9809:18:0;;9782:7;9809:18;;;:9;:18;;;;;;12366:22;;:6;:22;:::i;:::-;:35;;12358:67;;;;-1:-1:-1;;;12358:67:0;;18520:2:1;12358:67:0;;;18502:21:1;18559:2;18539:18;;;18532:30;18598:21;18578:18;;;18571:49;18637:18;;12358:67:0;18318:343:1;12358:67:0;12526:18;;12516:4;12483:12;9809:18;;;:9;:18;;;;;;-1:-1:-1;12498:46:0;;;;;12561:20;;-1:-1:-1;12573:8:0;;;;;;;12572:9;12561:20;:56;;;;-1:-1:-1;;;;;;12586:31:0;;;;;;:25;:31;;;;;;;;12585:32;12561:56;:86;;;;-1:-1:-1;;;;;;12622:25:0;;;;;;:19;:25;;;;;;;;12621:26;12561:86;:114;;;;-1:-1:-1;;;;;;12652:23:0;;;;;;:19;:23;;;;;;;;12651:24;12561:114;12557:218;;;12692:8;:15;;;;;;;;12722:10;:8;:10::i;:::-;12747:8;:16;;;;;;12557:218;12803:8;;-1:-1:-1;;;;;12828:25:0;;12787:12;12828:25;;;:19;:25;;;;;;12803:8;;;;;;;12802:9;;12828:25;;:52;;-1:-1:-1;;;;;;12857:23:0;;;;;;:19;:23;;;;;;;;12828:52;12824:100;;;-1:-1:-1;12907:5:0;12824:100;-1:-1:-1;;;;;12960:15:0;;12936:21;12960:15;;;:9;:15;;;;;;12994:23;;;;12986:74;;;;-1:-1:-1;;;12986:74:0;;14868:2:1;12986:74:0;;;14850:21:1;14907:2;14887:18;;;14880:30;14946:34;14926:18;;;14919:62;15017:8;14997:18;;;14990:36;15043:19;;12986:74:0;14666:402:1;12986:74:0;13073:12;13104:7;13100:600;;;-1:-1:-1;;;;;13132:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;13165:13:0;;;;;;;:17;;13132:50;13128:262;;;13220:13;;13237:3;;13211:22;;13220:13;;;;;13211:6;:22;:::i;:::-;13210:30;;;;:::i;:::-;13203:37;;13128:262;;;-1:-1:-1;;;;;13266:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;13301:12:0;;;;;;;:16;;13266:51;13262:128;;;13355:12;;13371:3;;13346:21;;13355:12;;;;;13346:6;:21;:::i;:::-;13345:29;;;;:::i;:::-;13338:36;;13262:128;13410:8;;13406:283;;-1:-1:-1;;;;;13517:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;13581:4;13563:24;;;;;;;:32;;;;;;13638:35;1784:25:1;;;13481:13:0;;;;;13581:4;;13517:15;13638:35;;1757:18:1;13638:35:0;;;;;;;13406:283;-1:-1:-1;;;;;13735:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;13775:13;;;;;;;;;;:23;;;;;;13825:26;;;;;;13754:6;1784:25:1;;1772:2;1757:18;;1638:177;13825:26:0;;;;;;;;11253:2606;;;;11184:2675;;;:::o;2533:320::-;2664:59;;;-1:-1:-1;;;;;19265:55:1;;;2664:59:0;;;19247:74:1;19337:18;;;;19330:34;;;2664:59:0;;;;;;;;;;19220:18:1;;;;2664:59:0;;;;;;;;;2687:24;2664:59;;;2653:71;;-1:-1:-1;;;;2653:10:0;;;;:71;;2664:59;2653:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2617:107;;;;2743:7;:57;;;;-1:-1:-1;2755:11:0;;:16;;:44;;;2786:4;2775:24;;;;;;;;;;;;:::i;:::-;2735:110;;;;-1:-1:-1;;;2735:110:0;;20119:2:1;2735:110:0;;;20101:21:1;20158:2;20138:18;;;20131:30;20197:34;20177:18;;;20170:62;20268:10;20248:18;;;20241:38;20296:19;;2735:110:0;19917:404:1;2735:110:0;2606:247;;2533:320;;;:::o;18177:1117::-;18240:18;;18216:21;18325:23;18240:18;18346:2;18325:23;:::i;:::-;18316:4;9782:7;9809:18;;;:9;:18;;;;;;18298:50;18294:122;;;18381:18;;:23;;18402:2;18381:23;:::i;:::-;18365:39;;18294:122;18452:16;;;18466:1;18452:16;;;;;;;;18428:21;;18452:16;;;;;;;;;;-1:-1:-1;18452:16:0;18428:40;;18497:4;18479;18484:1;18479:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18479:23:0;;;-1:-1:-1;;;;;18479:23:0;;;;;4369:42;18513:4;18518:1;18513:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18513:14:0;;;:7;;;;;;;;;;;:14;18540:122;;;;;5357:42;;18540:66;;:122;;18607:13;;18622:1;;18625:4;;18639;;18646:15;;18540:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18696:21:0;;-1:-1:-1;;18732:14:0;;;-1:-1:-1;18728:559:0;;18797:6;;18763:17;;18807:3;;18784:19;;18797:6;;;;;18784:10;:19;:::i;:::-;18783:27;;;;:::i;:::-;18860:7;;18763:47;;-1:-1:-1;18825:18:0;;18871:3;;18847:20;;18860:7;;;;;18847:10;:20;:::i;:::-;18846:28;;;;:::i;:::-;18825:49;-1:-1:-1;18889:22:0;18825:49;18914:22;18927:9;18914:10;:22;:::i;:::-;:35;;;;:::i;:::-;18988:10;;18980:47;;18889:60;;-1:-1:-1;;;;;;18988:10:0;;19012;;18980:47;;;;19012:10;18988;18980:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19064:14:0;;19056:55;;18966:61;;-1:-1:-1;;;;;;19064:14:0;;19092;;19056:55;;;;19092:14;19064;19056:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19148:9:0;;19140:45;;19042:69;;-1:-1:-1;;;;;;19148:9:0;;19171;;19140:45;;;;19171:9;19148;19140:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19207:68:0;;;21588:25:1;;;21644:2;21629:18;;21622:34;;;21672:18;;;21665:34;;;21730:2;21715:18;;21708:34;;;19126:59:0;;-1:-1:-1;19207:68:0;;21575:3:1;21560:19;19207:68:0;;;;;;;18748:539;;;18728:559;18205:1089;;;;18177:1117::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:455::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;640:2;628:15;645:66;624:88;609:104;;;;715:2;605:113;;269:455;-1:-1:-1;;269:455:1:o;729:196::-;797:20;;-1:-1:-1;;;;;846:54:1;;836:65;;826:93;;915:1;912;905:12;826:93;729:196;;;:::o;930:254::-;998:6;1006;1059:2;1047:9;1038:7;1034:23;1030:32;1027:52;;;1075:1;1072;1065:12;1027:52;1098:29;1117:9;1098:29;:::i;:::-;1088:39;1174:2;1159:18;;;;1146:32;;-1:-1:-1;;;930:254:1:o;2009:328::-;2086:6;2094;2102;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2194:29;2213:9;2194:29;:::i;:::-;2184:39;;2242:38;2276:2;2265:9;2261:18;2242:38;:::i;:::-;2232:48;;2327:2;2316:9;2312:18;2299:32;2289:42;;2009:328;;;;;:::o;2342:180::-;2401:6;2454:2;2442:9;2433:7;2429:23;2425:32;2422:52;;;2470:1;2467;2460:12;2422:52;-1:-1:-1;2493:23:1;;2342:180;-1:-1:-1;2342:180:1:o;2527:156::-;2593:20;;2653:4;2642:16;;2632:27;;2622:55;;2673:1;2670;2663:12;2688:322;2759:6;2767;2775;2828:2;2816:9;2807:7;2803:23;2799:32;2796:52;;;2844:1;2841;2834:12;2796:52;2867:27;2884:9;2867:27;:::i;:::-;2857:37;;2913:36;2945:2;2934:9;2930:18;2913:36;:::i;:::-;2903:46;;2968:36;3000:2;2989:9;2985:18;2968:36;:::i;:::-;2958:46;;2688:322;;;;;:::o;3246:252::-;3310:6;3318;3371:2;3359:9;3350:7;3346:23;3342:32;3339:52;;;3387:1;3384;3377:12;3339:52;3410:27;3427:9;3410:27;:::i;:::-;3400:37;;3456:36;3488:2;3477:9;3473:18;3456:36;:::i;:::-;3446:46;;3246:252;;;;;:::o;3503:118::-;3589:5;3582:13;3575:21;3568:5;3565:32;3555:60;;3611:1;3608;3601:12;3555:60;3503:118;:::o;3626:315::-;3691:6;3699;3752:2;3740:9;3731:7;3727:23;3723:32;3720:52;;;3768:1;3765;3758:12;3720:52;3791:29;3810:9;3791:29;:::i;:::-;3781:39;;3870:2;3859:9;3855:18;3842:32;3883:28;3905:5;3883:28;:::i;:::-;3930:5;3920:15;;;3626:315;;;;;:::o;3946:186::-;4005:6;4058:2;4046:9;4037:7;4033:23;4029:32;4026:52;;;4074:1;4071;4064:12;4026:52;4097:29;4116:9;4097:29;:::i;:::-;4087:39;3946:186;-1:-1:-1;;;3946:186:1:o;4137:260::-;4205:6;4213;4266:2;4254:9;4245:7;4241:23;4237:32;4234:52;;;4282:1;4279;4272:12;4234:52;4305:29;4324:9;4305:29;:::i;:::-;4295:39;;4353:38;4387:2;4376:9;4372:18;4353:38;:::i;4402:184::-;4454:77;4451:1;4444:88;4551:4;4548:1;4541:15;4575:4;4572:1;4565:15;4591:334;4662:2;4656:9;4718:2;4708:13;;4723:66;4704:86;4692:99;;4821:18;4806:34;;4842:22;;;4803:62;4800:88;;;4868:18;;:::i;:::-;4904:2;4897:22;4591:334;;-1:-1:-1;4591:334:1:o;4930:183::-;4990:4;5023:18;5015:6;5012:30;5009:56;;;5045:18;;:::i;:::-;-1:-1:-1;5090:1:1;5086:14;5102:4;5082:25;;4930:183::o;5118:662::-;5172:5;5225:3;5218:4;5210:6;5206:17;5202:27;5192:55;;5243:1;5240;5233:12;5192:55;5279:6;5266:20;5305:4;5329:60;5345:43;5385:2;5345:43;:::i;:::-;5329:60;:::i;:::-;5423:15;;;5509:1;5505:10;;;;5493:23;;5489:32;;;5454:12;;;;5533:15;;;5530:35;;;5561:1;5558;5551:12;5530:35;5597:2;5589:6;5585:15;5609:142;5625:6;5620:3;5617:15;5609:142;;;5691:17;;5679:30;;5729:12;;;;5642;;5609:142;;;-1:-1:-1;5769:5:1;5118:662;-1:-1:-1;;;;;;5118:662:1:o;5785:1146::-;5903:6;5911;5964:2;5952:9;5943:7;5939:23;5935:32;5932:52;;;5980:1;5977;5970:12;5932:52;6020:9;6007:23;6049:18;6090:2;6082:6;6079:14;6076:34;;;6106:1;6103;6096:12;6076:34;6144:6;6133:9;6129:22;6119:32;;6189:7;6182:4;6178:2;6174:13;6170:27;6160:55;;6211:1;6208;6201:12;6160:55;6247:2;6234:16;6269:4;6293:60;6309:43;6349:2;6309:43;:::i;6293:60::-;6387:15;;;6469:1;6465:10;;;;6457:19;;6453:28;;;6418:12;;;;6493:19;;;6490:39;;;6525:1;6522;6515:12;6490:39;6549:11;;;;6569:148;6585:6;6580:3;6577:15;6569:148;;;6651:23;6670:3;6651:23;:::i;:::-;6639:36;;6602:12;;;;6695;;;;6569:148;;;6736:5;-1:-1:-1;;6779:18:1;;6766:32;;-1:-1:-1;;6810:16:1;;;6807:36;;;6839:1;6836;6829:12;6807:36;;6862:63;6917:7;6906:8;6895:9;6891:24;6862:63;:::i;:::-;6852:73;;;5785:1146;;;;;:::o;7706:184::-;7758:77;7755:1;7748:88;7855:4;7852:1;7845:15;7879:4;7876:1;7869:15;7895:168;7968:9;;;7999;;8016:15;;;8010:22;;7996:37;7986:71;;8037:18;;:::i;8068:274::-;8108:1;8134;8124:189;;8169:77;8166:1;8159:88;8270:4;8267:1;8260:15;8298:4;8295:1;8288:15;8124:189;-1:-1:-1;8327:9:1;;8068:274::o;8753:148::-;8841:4;8820:12;;;8834;;;8816:31;;8859:13;;8856:39;;;8875:18;;:::i;13077:306::-;13165:6;13173;13181;13234:2;13222:9;13213:7;13209:23;13205:32;13202:52;;;13250:1;13247;13240:12;13202:52;13279:9;13273:16;13263:26;;13329:2;13318:9;13314:18;13308:25;13298:35;;13373:2;13362:9;13358:18;13352:25;13342:35;;13077:306;;;;;:::o;13388:184::-;13458:6;13511:2;13499:9;13490:7;13486:23;13482:32;13479:52;;;13527:1;13524;13517:12;13479:52;-1:-1:-1;13550:16:1;;13388:184;-1:-1:-1;13388:184:1:o;14477:::-;14529:77;14526:1;14519:88;14626:4;14623:1;14616:15;14650:4;14647:1;14640:15;15073:125;15138:9;;;15159:10;;;15156:36;;;15172:18;;:::i;15203:128::-;15270:9;;;15291:11;;;15288:37;;;15305:18;;:::i;15336:195::-;15375:3;15406:66;15399:5;15396:77;15393:103;;15476:18;;:::i;:::-;-1:-1:-1;15523:1:1;15512:13;;15336:195::o;19375:287::-;19504:3;19542:6;19536:13;19558:66;19617:6;19612:3;19605:4;19597:6;19593:17;19558:66;:::i;:::-;19640:16;;;;;19375:287;-1:-1:-1;;19375:287:1:o;19667:245::-;19734:6;19787:2;19775:9;19766:7;19762:23;19758:32;19755:52;;;19803:1;19800;19793:12;19755:52;19835:9;19829:16;19854:28;19876:5;19854:28;:::i;20326:1026::-;20588:4;20636:3;20625:9;20621:19;20667:6;20656:9;20649:25;20693:2;20731:6;20726:2;20715:9;20711:18;20704:34;20774:3;20769:2;20758:9;20754:18;20747:31;20798:6;20833;20827:13;20864:6;20856;20849:22;20902:3;20891:9;20887:19;20880:26;;20941:2;20933:6;20929:15;20915:29;;20962:1;20972:218;20986:6;20983:1;20980:13;20972:218;;;21051:13;;-1:-1:-1;;;;;21047:62:1;21035:75;;21165:15;;;;21130:12;;;;21008:1;21001:9;20972:218;;;-1:-1:-1;;;;;;;21246:55:1;;;;21241:2;21226:18;;21219:83;-1:-1:-1;;;21333:3:1;21318:19;21311:35;21207:3;20326:1026;-1:-1:-1;;;20326:1026:1:o

Swarm Source

ipfs://d6598386e6dd4e63011749365fb94bbb5ad42589ec12aa9e8bca9377fc189a58
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.