Contract 0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b 2

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x11ecd3eccf47fddf07519c4d8b26e8bb8d29696350cc947746a6462aeed589b8Approve111250852021-09-22 3:06:203 hrs 7 mins ago0x614822bf5175cc653d1441043d9c89e0304072f5 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0xc7afca8ca69f48e109b14d8c43283bb0edd2509b4ff0970d6efe111f9f700837Approve111231102021-09-22 1:27:334 hrs 46 mins ago0x45472b519de9ac90a09bf51d9e161b8c6476361d IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0xd0e279ac4a4bde165129883289fed94b3972da8d7959bc51b71b52105757b101Approve111189952021-09-21 21:58:258 hrs 15 mins ago0x45472b519de9ac90a09bf51d9e161b8c6476361d IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0x5daf71103be01584ee4ee484d75cb1120c4f4f457c7da542bc16a144f7b42a28Approve111094902021-09-21 13:58:0016 hrs 15 mins ago0x2096afdaa68eeae1ebf95dfdf565ee6d9b1fba37 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0xba3dbbdc167db93c03171e8a06b56038ab3178805c9d35a0a64b28844209ce9cTransfer111091942021-09-21 13:43:1216 hrs 30 mins ago0x45472b519de9ac90a09bf51d9e161b8c6476361d IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.0003591
0x1a805db711dee0f261fc3d815ab1ed98eac07c87264228a9ea8e21a5fba9f47dApprove111040432021-09-21 9:25:3420 hrs 48 mins ago0xd37dabe2ccca72166f41c236b91ca36494fe5919 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0x81cd2fdd9841ef0541d33b7b2aadbd539e1bdbe85d61cb7aeb6bf34fdac8ad95Approve110840032021-09-20 16:40:491 day 13 hrs ago0x779b9c178e7581ec1e21a7d6671119e9d13516aa IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0x6a7bf536a2dc4eb5c6193a1dc0c96b878daa00cca67547b1531ff16286264c5aApprove110722902021-09-20 6:52:451 day 23 hrs ago0x97dda0ca37b26bb2546f8e05913a69a07fa2c763 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0x3895bfcd50298c7129f3f30eeed0bfa9024c89d6ac4cf9c8a0240665ba9282d1Approve110580762021-09-19 19:01:592 days 11 hrs ago0x065736017795bceccf65475375614aa645c3d5ef IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0xb00ee400d468584ff7be031a8887074349bae87c56aad3ef7dbd69926f9ab26aApprove109444692021-09-15 19:58:026 days 10 hrs ago0xf2f90fe3ee6a0c7e77f08aa9b3f96df0d11de99c IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0xedad9e061ec6d62239e1b6f030cb47f0dcd39d6946d766e07e4789018a9c496eApprove109077152021-09-14 13:11:417 days 17 hrs ago0x8cc7bc33f5188b1fb683bedc4dbffa77b136833b IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00012525
0xa88e562404ac6655a2da0f43e090929e402dce0a5e418c2f324c3f25983c4e52Approve109077102021-09-14 13:11:267 days 17 hrs ago0x8cc7bc33f5188b1fb683bedc4dbffa77b136833b IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022125
0xa543ae99f61977bee636e6fa9ac6d234f3783128a648d01d70878c268598e509Approve108594912021-09-12 20:55:579 days 9 hrs ago0x1352e52bf6ddc53605af695a90e8f8b697f7aba9 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0x552b5699fea48a9e0d8da3f4c22033534c59c5cee8ecab04a87bef3743bbb8d1Approve108511442021-09-12 13:57:509 days 16 hrs ago0xeee60263beea66354713d3612833197e063d180d IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0x00b0a2ebb801dc956e7297e81304107d3ea8d15f17beb0c67aec329b5fc0a794Approve108274262021-09-11 18:06:2410 days 12 hrs ago0x67f92f70166fcd54efbc71364cc047c49f460989 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000174594
0x01e535c5401861e8523e099948d5b705c418a73a42a4ddf2aa3d374095f1f7adApprove108274192021-09-11 18:06:0310 days 12 hrs ago0x67f92f70166fcd54efbc71364cc047c49f460989 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000101997
0x227e1353c44a8fe38adf0e2df2f65cd7f2311445bc9ac553a2136cb21d8f220eApprove108274132021-09-11 18:05:4510 days 12 hrs ago0x67f92f70166fcd54efbc71364cc047c49f460989 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000101997
0x3f77ed181666bdc4e383c78d783b23d2f6add901141a4e7df97eca5b9a3ccb7fApprove108271102021-09-11 17:50:2410 days 12 hrs ago0x4088fc6a462dc78f51fd0279c9b4bf678c2b7a62 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0x2cb6fbc42f246754635306cb2ad0a11359b4768597ec33cfd950217bb5bdb245Approve108271072021-09-11 17:50:1510 days 12 hrs ago0x4088fc6a462dc78f51fd0279c9b4bf678c2b7a62 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0x23a14880fc70dab7c6567061fedbedbd4ed761fcb9e3c89239ac821763513e50Approve108260162021-09-11 16:55:3210 days 13 hrs ago0x94debc57081c4c58dd69f4dfce589b82fc3c2866 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0xadddadaa783a1633ea0d4317140c5942716633a94bae10917fa24329cee620dbApprove108260142021-09-11 16:55:2610 days 13 hrs ago0x94debc57081c4c58dd69f4dfce589b82fc3c2866 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.000072855
0xb32a947ff12c5fd4de78a26c7cef43f435e28e8f78171520dcf42c66443e3f2fTransfer107924652021-09-10 12:36:5011 days 17 hrs ago0x841c1ec26a51f0eea44f38547095129700793f58 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00032083
0xbeb33edca15c466ebc63875e3d6cca351aeb3784cbef83aefc49a124aa02da6aApprove107815262021-09-10 3:25:3912 days 2 hrs ago0xfb2caa5f9660636dbc33bd5cc0b44f91d0962619 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0x74f416e653d42606904155754dc3dab9e31dd0335a6a6c6d7ff610762baef533Approve107223832021-09-08 1:36:0614 days 4 hrs ago0x42d0961f1cc473165e33c9743f9890ca8a6aeccc IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
0xfe812a29aca469a89ac78ae5bf13c0abc22bc9e27c7ae26a975aa6b88ba64a0cApprove107007702021-09-07 7:12:1214 days 23 hrs ago0x3187d57fe2aa7fe5064d0888d47630b1fea569a5 IN  0x5affcd905fbdc00cbee9c8d78bbbd256b0344d3b0 BNB0.00022263
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JungleSwap

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: JUNGLE.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.6.12;

import "./BEP20.sol";

// JungleSwap Token
contract JungleSwap is BEP20{
    // Burn address
    address public constant BURN_ADDRESS = 0x000000000000000000000000000000000000dEaD;
    // DEV address
    address public constant DEV_ADDRESS = 0x2096aFDaA68EEaE1EbF95DFdf565eE6d9B1fbA37;
    // Fee address
    address public constant FEE_ADDRESS = 0x45472B519de9Ac90A09BF51d9E161B8C6476361D;
    
    // Max transfer rate: 5%.
    uint16 public constant MAXIMUM_TRANSFER_RATE = 500;
    
    // Max transfer rate: 0.5%.
    uint16 public constant MINIMUM_TRANSFER_RATE = 50;

    // Anti Whale! Max transfer amount rate in basis points. 2.5%!
    uint16 public maxTransferAmountRate = 250;
    
    // Transfer Burn Rate: 4.5%.
    uint16 public constant BURN_RATE = 45;
    
    // Transfer FEE Rate: 0.5%.
    uint16 public constant FEE_RATE = 5;
    
    // Addresses that excluded from antiWhale
    mapping(address => bool) private _excludedFromAntiWhale;
    
    // The operator can only update the transfer tax rate
    address private _operator;
    
    // Events
    event OperatorTransferred(address indexed previousOperator, address indexed newOperator);
    event MaxTransferAmountRateUpdated(address indexed operator, uint256 previousRate, uint256 newRate);

    modifier onlyOperator() {
        require(_operator == msg.sender, "operator: caller is not the operator");
        _;
    }

    modifier antiWhale(address sender, address recipient, uint256 amount) {
        if (maxTransferAmount() > 0) {
            if (
                _excludedFromAntiWhale[sender] == false
                && _excludedFromAntiWhale[recipient] == false
            ) {
                require(amount <= maxTransferAmount(), "JUNGLE::antiWhale: Transfer amount exceeds the maxTransferAmount");
            }
        }
        _;
    }
    /**
     * @notice Constructs the JungleSwap contract.
     */
    constructor() public BEP20('JungleSwap.cash', 'JUNGLE') {
        _operator = _msgSender();
        emit OperatorTransferred(address(0), _operator);

        _excludedFromAntiWhale[msg.sender] = true;        
        _excludedFromAntiWhale[address(this)] = true;
        _excludedFromAntiWhale[BURN_ADDRESS] = true;
        _excludedFromAntiWhale[FEE_ADDRESS] = true;
    }

    /// @notice Creates `_amount` token to `_to`. Must only be called by the owner (MasterChef).
    function mint(address _to, uint256 _amount) public onlyOwner {
        _mint(_to, _amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual override antiWhale(sender, recipient, amount) {
        if (recipient == BURN_ADDRESS || sender == DEV_ADDRESS || recipient == FEE_ADDRESS ) {
            super._transfer(sender, recipient, amount);
        } 
        
        else {
            // 4.5% of every transfer burnt
            uint256 burnAmount = amount.mul(BURN_RATE).div(1000);
            
            // 0.5% of every transfer ist sent to FEE_ADDRESS
            uint256 feeAmount = amount.mul(FEE_RATE).div(1000);
            
            // 0% of transfer sent to recipient
            uint256 sendAmount = amount.sub(burnAmount).sub(feeAmount);
            require(amount == sendAmount + burnAmount + feeAmount, "tokens::transfer: Burn value invalid");

            super._transfer(sender, BURN_ADDRESS, burnAmount);
            super._transfer(sender, FEE_ADDRESS, feeAmount);
            super._transfer(sender, recipient, sendAmount);
            amount = sendAmount;
        }
    }
    /**
     * @dev Returns the max transfer amount.
     */
    function maxTransferAmount() public view returns (uint256) {
        return totalSupply().mul(maxTransferAmountRate).div(10000);
    }

    /**
     * @dev Returns the address is excluded from antiWhale or not.
     */
    function isExcludedFromAntiWhale(address _account) public view returns (bool) {
        return _excludedFromAntiWhale[_account];
    }
    /**
     * @dev Update the max transfer amount rate.
     * Can only be called by the current operator.
     * Maximum Transfer Amount rate is hardcoded to 5%.
     * Minimum Transfer Amount rate is hardcoded to 0.5%.
     */
    function updateMaxTransferAmountRate(uint16 _maxTransferAmountRate) public onlyOperator {
        require(_maxTransferAmountRate <= MAXIMUM_TRANSFER_RATE, "JUNGLE::updateMaxTransferAmountRate: Max transfer amount rate must not exceed the maximum rate.");
        require(_maxTransferAmountRate >= MINIMUM_TRANSFER_RATE, "JUNGLE::updateMaxTransferAmountRate: Max transfer amount rate can not be bleow minimum rate.");
        emit MaxTransferAmountRateUpdated(msg.sender, maxTransferAmountRate, _maxTransferAmountRate);
        maxTransferAmountRate = _maxTransferAmountRate;
    }

    function setExcludedFromAntiWhale(address _account, bool _excluded) public onlyOperator {
        _excludedFromAntiWhale[_account] = _excluded;
    }
    /**
     * @dev Returns the address of the current operator.
     */
    function operator() public view returns (address) {
        return _operator;
    }
    /**
     * @dev Transfers operator of the contract to a new account (`newOperator`).
     * Can only be called by the current operator.
     */
    function transferOperator(address newOperator) public onlyOperator {
        require(newOperator != address(0), "JUNGLE::transferOperator: new operator is the zero address");
        emit OperatorTransferred(_operator, newOperator);
        _operator = newOperator;
    }

}

File 2 of 6: BEP20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.4.0;

import './Ownable.sol';
import './Context.sol';
import './IBEP20.sol';
import './SafeMath.sol';

/**
 * @dev Implementation of the {IBEP20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {BEP20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-BEP20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of BEP20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IBEP20-approve}.
 */
contract BEP20 is Context, IBEP20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

    /**
     * @dev Returns the bep token owner.
     */
    function getOwner() external override view returns (address) {
        return owner();
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public override view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public override view returns (string memory) {
        return _symbol;
    }

    /**
    * @dev Returns the number of decimals used to get its user representation.
    */
    function decimals() public override view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {BEP20-totalSupply}.
     */
    function totalSupply() public override view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {BEP20-balanceOf}.
     */
    function balanceOf(address account) public override view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {BEP20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {BEP20-allowance}.
     */
    function allowance(address owner, address spender) public override view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {BEP20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {BEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom (address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(amount, 'BEP20: transfer amount exceeds allowance')
        );
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {BEP20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {BEP20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, 'BEP20: decreased allowance below zero'));
        return true;
    }

    /**
     * @dev Creates `amount` tokens and assigns them to `msg.sender`, increasing
     * the total supply.
     *
     * Requirements
     *
     * - `msg.sender` must be the token owner
     */
    function mint(uint256 amount) public onlyOwner returns (bool) {
        _mint(_msgSender(), amount);
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer (address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), 'BEP20: transfer from the zero address');
        require(recipient != address(0), 'BEP20: transfer to the zero address');

        _balances[sender] = _balances[sender].sub(amount, 'BEP20: transfer amount exceeds balance');
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), 'BEP20: mint to the zero address');

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), 'BEP20: burn from the zero address');

        _balances[account] = _balances[account].sub(amount, 'BEP20: burn amount exceeds balance');
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve (address owner, address spender, uint256 amount) internal {
        require(owner != address(0), 'BEP20: approve from the zero address');
        require(spender != address(0), 'BEP20: approve to the zero address');

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See {_burn} and {_approve}.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, 'BEP20: burn amount exceeds allowance'));
    }
}

File 3 of 6: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 4 of 6: IBEP20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.4;

interface IBEP20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the token decimals.
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Returns the token symbol.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the token name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the bep token owner.
     */
    function getOwner() external view returns (address);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address _owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 5 of 6: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

import "./Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 6 of 6: SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be 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;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"MaxTransferAmountRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","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":[],"name":"BURN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BURN_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_TRANSFER_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_TRANSFER_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"isExcludedFromAntiWhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmountRate","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_excluded","type":"bool"}],"name":"setExcludedFromAntiWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"newOperator","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_maxTransferAmountRate","type":"uint16"}],"name":"updateMaxTransferAmountRate","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260fa600660016101000a81548161ffff021916908361ffff1602179055503480156200002f57600080fd5b506040518060400160405280600f81526020017f4a756e676c65537761702e6361736800000000000000000000000000000000008152506040518060400160405280600681526020017f4a554e474c4500000000000000000000000000000000000000000000000000008152506000620000ae620003e560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350816004908051906020019062000164929190620003ed565b5080600590805190602001906200017d929190620003ed565b506012600660006101000a81548160ff021916908360ff1602179055505050620001ac620003e560201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a36001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760007345472b519de9ac90a09bf51d9e161b8c6476361d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000493565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200043057805160ff191683800117855562000461565b8280016001018555821562000461579182015b828111156200046057825182559160200191906001019062000443565b5b50905062000470919062000474565b5090565b5b808211156200048f57600081600090555060010162000475565b5090565b612a3680620004a36000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063a9059cbb116100a2578063eb1edd6111610071578063eb1edd6114610945578063f2fde38b14610979578063f846a885146109bd578063fccc2813146109df576101e5565b8063a9059cbb146107fb578063a9e757231461085f578063c7f59a671461087d578063dd62ed3e146108cd576101e5565b80638da5cb5b116100de5780638da5cb5b1461069c57806395d89b41146106d0578063a0712d6814610753578063a457c2d714610797576101e5565b806370a08231146105e4578063715018a61461063c578063893d20e814610646578063894fc9701461067a576101e5565b8063313ce567116101875780635639e8cf116101565780635639e8cf14610528578063570ca7351461055c57806357c2b915146105905780636a141e2c146105b2576101e5565b8063313ce5671461043357806339509351146104545780633ff8bf2e146104b857806340c10f19146104da576101e5565b806323b872dd116101c357806323b872dd146102ef578063269f534c1461037357806329605e77146103cd5780632d11c58a14610411576101e5565b806306fdde03146101ea578063095ea7b31461026d57806318160ddd146102d1575b600080fd5b6101f2610a13565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610232578082015181840152602081019050610217565b50505050905090810190601f16801561025f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b96004803603604081101561028357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab5565b60405180821515815260200191505060405180910390f35b6102d9610ad3565b6040518082815260200191505060405180910390f35b61035b6004803603606081101561030557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610add565b60405180821515815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b60405180821515815260200191505060405180910390f35b61040f600480360360208110156103e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c0c565b005b610419610df8565b604051808261ffff16815260200191505060405180910390f35b61043b610dfd565b604051808260ff16815260200191505060405180910390f35b6104a06004803603604081101561046a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e14565b60405180821515815260200191505060405180910390f35b6104c0610ec7565b604051808261ffff16815260200191505060405180910390f35b610526600480360360408110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610edb565b005b610530610fb1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610564610fc9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610598610ff3565b604051808261ffff16815260200191505060405180910390f35b6105e2600480360360208110156105c857600080fd5b81019080803561ffff169060200190929190505050610ff9565b005b610626600480360360208110156105fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f2565b6040518082815260200191505060405180910390f35b61064461123b565b005b61064e6113c1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106826113d0565b604051808261ffff16815260200191505060405180910390f35b6106a46113d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d86113fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107185780820151818401526020810190506106fd565b50505050905090810190601f1680156107455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61077f6004803603602081101561076957600080fd5b81019080803590602001909291905050506114a0565b60405180821515815260200191505060405180910390f35b6107e3600480360360408110156107ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611584565b60405180821515815260200191505060405180910390f35b6108476004803603604081101561081157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611651565b60405180821515815260200191505060405180910390f35b61086761166f565b6040518082815260200191505060405180910390f35b6108cb6004803603604081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506116b8565b005b61092f600480360360408110156108e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b9565b6040518082815260200191505060405180910390f35b61094d611840565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109bb6004803603602081101561098f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611858565b005b6109c5611a63565b604051808261ffff16815260200191505060405180910390f35b6109e7611a68565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aab5780601f10610a8057610100808354040283529160200191610aab565b820191906000526020600020905b815481529060010190602001808311610a8e57829003601f168201915b5050505050905090565b6000610ac9610ac2611a6e565b8484611a76565b6001905092915050565b6000600354905090565b6000610aea848484611c6d565b610bab84610af6611a6e565b610ba6856040518060600160405280602881526020016127ab60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b5c611a6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9c9092919063ffffffff16565b611a76565b600190509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128ef6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612981603a913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600581565b6000600660009054906101000a900460ff16905090565b6000610ebd610e21611a6e565b84610eb88560026000610e32611a6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b611a76565b6001905092915050565b600660019054906101000a900461ffff1681565b610ee3611a6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610fad82826120e4565b5050565b732096afdaa68eeae1ebf95dfdf565ee6d9b1fba3781565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6101f481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128ef6024913960400191505060405180910390fd5b6101f461ffff168161ffff161115611102576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605f815260200180612834605f913960600191505060405180910390fd5b603261ffff168161ffff161015611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c815260200180612893605c913960600191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fb62a50fc861a770636e85357becb3b82a32e911106609d4985871eaf29011e08600660019054906101000a900461ffff1683604051808361ffff1681526020018261ffff1681526020019250505060405180910390a280600660016101000a81548161ffff021916908361ffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611243611a6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006113cb6113d5565b905090565b603281565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114965780601f1061146b57610100808354040283529160200191611496565b820191906000526020600020905b81548152906001019060200180831161147957829003601f168201915b5050505050905090565b60006114aa611a6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61157b611575611a6e565b836120e4565b60019050919050565b6000611647611591611a6e565b846116428560405180606001604052806025815260200161295c60259139600260006115bb611a6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9c9092919063ffffffff16565b611a76565b6001905092915050565b600061166561165e611a6e565b8484611c6d565b6001905092915050565b60006116b36127106116a5600660019054906101000a900461ffff1661ffff16611697610ad3565b6122a190919063ffffffff16565b61232790919063ffffffff16565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128ef6024913960400191505060405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7345472b519de9ac90a09bf51d9e161b8c6476361d81565b611860611a6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127856026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602d81565b61dead81565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611afc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127616024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806129bb6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b8282826000611c7a61166f565b1115611d975760001515600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611d30575060001515600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15611d9657611d3d61166f565b811115611d95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806127d36040913960400191505060405180910390fd5b5b5b61dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611e125750732096afdaa68eeae1ebf95dfdf565ee6d9b1fba3773ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80611e5c57507345472b519de9ac90a09bf51d9e161b8c6476361d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611e7157611e6c868686612371565b611f94565b6000611e9f6103e8611e91602d61ffff16886122a190919063ffffffff16565b61232790919063ffffffff16565b90506000611ecf6103e8611ec1600561ffff16896122a190919063ffffffff16565b61232790919063ffffffff16565b90506000611ef882611eea858a61262b90919063ffffffff16565b61262b90919063ffffffff16565b905081838201018714611f56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806129dd6024913960400191505060405180910390fd5b611f638961dead85612371565b611f82897345472b519de9ac90a09bf51d9e161b8c6476361d84612371565b611f8d898983612371565b8096505050505b505050505050565b6000838311158290612049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561200e578082015181840152602081019050611ff3565b50505050905090810190601f16801561203b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156120da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f42455032303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61219c8160035461205c90919063ffffffff16565b6003819055506121f481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808314156122b45760009050612321565b60008284029050828482816122c557fe5b041461231c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806128136021913960400191505060405180910390fd5b809150505b92915050565b600061236983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612675565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061273c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129396023913960400191505060405180910390fd5b6124e98160405180606001604052806026815260200161291360269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9c9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061257e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600061266d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f9c565b905092915050565b60008083118290612721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126e65780820151818401526020810190506126cb565b50505050905090810190601f1680156127135780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161272d57fe5b04905080915050939250505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654a554e474c453a3a616e74695768616c653a205472616e7366657220616d6f756e74206578636565647320746865206d61785472616e73666572416d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774a554e474c453a3a7570646174654d61785472616e73666572416d6f756e74526174653a204d6178207472616e7366657220616d6f756e742072617465206d757374206e6f742065786365656420746865206d6178696d756d20726174652e4a554e474c453a3a7570646174654d61785472616e73666572416d6f756e74526174653a204d6178207472616e7366657220616d6f756e7420726174652063616e206e6f7420626520626c656f77206d696e696d756d20726174652e6f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7242455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4a554e474c453a3a7472616e736665724f70657261746f723a206e6577206f70657261746f7220697320746865207a65726f206164647265737342455032303a20617070726f766520746f20746865207a65726f2061646472657373746f6b656e733a3a7472616e736665723a204275726e2076616c756520696e76616c6964a26469706673582212205461bec9045efbbdfd998d9b404785a5cdea8911f442abf05af0fdfb5beca8e764736f6c634300060c0033

Deployed ByteCode Sourcemap

115:5599:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:90:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3841:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2868:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4456:356;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3987:136:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5434:275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;903:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2719:90:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5206:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;732:41:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2515:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;279:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5191:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;510:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4365:585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3023:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1701:145:4;;;:::i;:::-;;2165:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;606:49:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1078:77:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2525:94:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6365:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5899:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3342:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3757:136:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4958:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3563:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;386:80:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1995:240:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;820:37:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;171:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2322:90:0;2368:13;2400:5;2393:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:90;:::o;3841:158::-;3916:4;3932:39;3941:12;:10;:12::i;:::-;3955:7;3964:6;3932:8;:39::i;:::-;3988:4;3981:11;;3841:158;;;;:::o;2868:98::-;2921:7;2947:12;;2940:19;;2868:98;:::o;4456:356::-;4555:4;4571:36;4581:6;4589:9;4600:6;4571:9;:36::i;:::-;4617:167;4639:6;4659:12;:10;:12::i;:::-;4685:89;4723:6;4685:89;;;;;;;;;;;;;;;;;:11;:19;4697:6;4685:19;;;;;;;;;;;;;;;:33;4705:12;:10;:12::i;:::-;4685:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;4617:8;:167::i;:::-;4801:4;4794:11;;4456:356;;;;;:::o;3987:136:3:-;4059:4;4083:22;:32;4106:8;4083:32;;;;;;;;;;;;;;;;;;;;;;;;;4076:39;;3987:136;;;:::o;5434:275::-;1437:10;1424:23;;:9;;;;;;;;;;;:23;;;1416:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5543:1:::1;5520:25;;:11;:25;;;;5512:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5655:11;5624:43;;5644:9;;;;;;;;;;;5624:43;;;;;;;;;;;;5690:11;5678:9;;:23;;;;;;;;;;;;;;;;;;5434:275:::0;:::o;903:35::-;937:1;903:35;:::o;2719:90:0:-;2769:5;2793:9;;;;;;;;;;;2786:16;;2719:90;:::o;5206:207::-;5286:4;5302:83;5311:12;:10;:12::i;:::-;5325:7;5334:50;5373:10;5334:11;:25;5346:12;:10;:12::i;:::-;5334:25;;;;;;;;;;;;;;;:34;5360:7;5334:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5302:8;:83::i;:::-;5402:4;5395:11;;5206:207;;;;:::o;732:41:3:-;;;;;;;;;;;;;:::o;2515:99::-;1292:12:4;:10;:12::i;:::-;1282:22;;:6;;;;;;;;;;:22;;;1274:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2587:19:3::1;2593:3;2598:7;2587:5;:19::i;:::-;2515:99:::0;;:::o;279:80::-;317:42;279:80;:::o;5191:85::-;5232:7;5259:9;;;;;;;;;;;5252:16;;5191:85;:::o;510:50::-;557:3;510:50;:::o;4365:585::-;1437:10;1424:23;;:9;;;;;;;;;;;:23;;;1416:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;557:3:::1;4472:47;;:22;:47;;;;4464:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:2;4638:47;;:22;:47;;;;4630:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4827:10;4798:87;;;4839:21;;;;;;;;;;;4862:22;4798:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:22;4896:21;;:46;;;;;;;;;;;;;;;;;;4365:585:::0;:::o;3023:117:0:-;3089:7;3115:9;:18;3125:7;3115:18;;;;;;;;;;;;;;;;3108:25;;3023:117;;;:::o;1701:145:4:-;1292:12;:10;:12::i;:::-;1282:22;;:6;;;;;;;;;;:22;;;1274:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1807:1:::1;1770:40;;1791:6;::::0;::::1;;;;;;;;1770:40;;;;;;;;;;;;1837:1;1820:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1701:145::o:0;2165:92:0:-;2217:7;2243;:5;:7::i;:::-;2236:14;;2165:92;:::o;606:49:3:-;653:2;606:49;:::o;1078:77:4:-;1116:7;1142:6;;;;;;;;;;;1135:13;;1078:77;:::o;2525:94:0:-;2573:13;2605:7;2598:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2525:94;:::o;6365:127::-;6421:4;1292:12:4;:10;:12::i;:::-;1282:22;;:6;;;;;;;;;;:22;;;1274:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6437:27:0::1;6443:12;:10;:12::i;:::-;6457:6;6437:5;:27::i;:::-;6481:4;6474:11;;6365:127:::0;;;:::o;5899:258::-;5984:4;6000:129;6009:12;:10;:12::i;:::-;6023:7;6032:96;6071:15;6032:96;;;;;;;;;;;;;;;;;:11;:25;6044:12;:10;:12::i;:::-;6032:25;;;;;;;;;;;;;;;:34;6058:7;6032:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6000:8;:129::i;:::-;6146:4;6139:11;;5899:258;;;;:::o;3342:164::-;3420:4;3436:42;3446:12;:10;:12::i;:::-;3460:9;3471:6;3436:9;:42::i;:::-;3495:4;3488:11;;3342:164;;;;:::o;3757:136:3:-;3807:7;3834:51;3879:5;3834:40;3852:21;;;;;;;;;;;3834:40;;:13;:11;:13::i;:::-;:17;;:40;;;;:::i;:::-;:44;;:51;;;;:::i;:::-;3827:58;;3757:136;:::o;4958:151::-;1437:10;1424:23;;:9;;;;;;;;;;;:23;;;1416:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5092:9:::1;5057:22;:32;5080:8;5057:32;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;4958:151:::0;;:::o;3563:141:0:-;3644:7;3670:11;:18;3682:5;3670:18;;;;;;;;;;;;;;;:27;3689:7;3670:27;;;;;;;;;;;;;;;;3663:34;;3563:141;;;;:::o;386:80:3:-;424:42;386:80;:::o;1995:240:4:-;1292:12;:10;:12::i;:::-;1282:22;;:6;;;;;;;;;;:22;;;1274:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:1:::1;2083:22;;:8;:22;;;;2075:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:8;2163:38;;2184:6;::::0;::::1;;;;;;;;2163:38;;;;;;;;;;;;2220:8;2211:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1995:240:::0;:::o;820:37:3:-;855:2;820:37;:::o;171:81::-;210:42;171:81;:::o;598:104:1:-;651:15;685:10;678:17;;598:104;:::o;9097:333:0:-;9208:1;9191:19;;:5;:19;;;;9183:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9288:1;9269:21;;:7;:21;;;;9261:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9370:6;9340:11;:18;9352:5;9340:18;;;;;;;;;;;;;;;:27;9359:7;9340:27;;;;;;;;;;;;;;;:36;;;;9407:7;9391:32;;9400:5;9391:32;;;9416:6;9391:32;;;;;;;;;;;;;;;;;;9097:333;;;:::o;2622:1065:3:-;2728:6;2736:9;2747:6;1623:1;1601:19;:17;:19::i;:::-;:23;1597:336;;;1697:5;1663:39;;:22;:30;1686:6;1663:30;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;:102;;;;;1760:5;1723:42;;:22;:33;1746:9;1723:33;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;1663:102;1641:281;;;1818:19;:17;:19::i;:::-;1808:6;:29;;1800:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1641:281;1597:336;210:42:::1;2770:25;;:9;:25;;;:50;;;;317:42;2799:21;;:6;:21;;;2770:50;:78;;;;424:42;2824:24;;:9;:24;;;2770:78;2766:914;;;2866:42;2882:6;2890:9;2901:6;2866:15;:42::i;:::-;2766:914;;;3006:18;3027:31;3053:4;3027:21;855:2;3027:21;;:6;:10;;:21;;;;:::i;:::-;:25;;:31;;;;:::i;:::-;3006:52;;3150:17;3170:30;3195:4;3170:20;937:1;3170:20;;:6;:10;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;3150:50;;3278:18;3299:37;3326:9;3299:22;3310:10;3299:6;:10;;:22;;;;:::i;:::-;:26;;:37;;;;:::i;:::-;3278:58;;3395:9;3382:10;3369;:23;:35;3359:6;:45;3351:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3462:49;3478:6;210:42;3500:10;3462:15;:49::i;:::-;3526:47;3542:6;424:42;3563:9;3526:15;:47::i;:::-;3588:46;3604:6;3612:9;3623:10;3588:15;:46::i;:::-;3658:10;3649:19;;2766:914;;;;2622:1065:::0;;;;;;:::o;1754:187:5:-;1840:7;1872:1;1867;:6;;1875:12;1859:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:9;1914:1;1910;:5;1898:17;;1933:1;1926:8;;;1754:187;;;;;:::o;882:176::-;940:7;959:9;975:1;971;:5;959:17;;999:1;994;:6;;986:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;1043:8;;;882:176;;;;:::o;7709:302:0:-;7803:1;7784:21;;:7;:21;;;;7776:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7867:24;7884:6;7867:12;;:16;;:24;;;;:::i;:::-;7852:12;:39;;;;7922:30;7945:6;7922:9;:18;7932:7;7922:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7901:9;:18;7911:7;7901:18;;;;;;;;;;;;;;;:51;;;;7988:7;7967:37;;7984:1;7967:37;;;7997:6;7967:37;;;;;;;;;;;;;;;;;;7709:302;;:::o;2188:459:5:-;2246:7;2492:1;2487;:6;2483:45;;;2516:1;2509:8;;;;2483:45;2538:9;2554:1;2550;:5;2538:17;;2582:1;2577;2573;:5;;;;;;:10;2565:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2639:1;2632:8;;;2188:459;;;;;:::o;3109:130::-;3167:7;3193:39;3197:1;3200;3193:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3186:46;;3109:130;;;;:::o;6966:473:0:-;7090:1;7072:20;;:6;:20;;;;7064:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7173:1;7152:23;;:9;:23;;;;7144:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7246;7268:6;7246:71;;;;;;;;;;;;;;;;;:9;:17;7256:6;7246:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7226:9;:17;7236:6;7226:17;;;;;;;;;;;;;;;:91;;;;7350:32;7375:6;7350:9;:20;7360:9;7350:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7327:9;:20;7337:9;7327:20;;;;;;;;;;;;;;;:55;;;;7414:9;7397:35;;7406:6;7397:35;;;7425:6;7397:35;;;;;;;;;;;;;;;;;;6966:473;;;:::o;1329:134:5:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1406:50;;1329:134;;;;:::o;3721:272::-;3807:7;3838:1;3834;:5;3841:12;3826:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3864:9;3880:1;3876;:5;;;;;;3864:17;;3985:1;3978:8;;;3721:272;;;;;:::o

Swarm Source

ipfs://5461bec9045efbbdfd998d9b404785a5cdea8911f442abf05af0fdfb5beca8e7
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.