Contract 0x536e911b8BA66c9a8697bF7d7b9924456ABCC9e7

Contract Overview

Balance:
21.554440085678531794 AVAX

AVAX Value:
$367.50 (@ $17.05/AVAX)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7e2fb2ccfb5a7c44b4daa559b474f4552cb8e04f9f7ee3f50010418a967b5fd9Transfer201778442022-09-23 13:34:524 days 12 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.013929142 26.5
0x89c8678677282c7059b571baec391bc9c5341a4734d406d94a1d9ec8bc5ce7b3Transfer200655032022-09-20 11:20:297 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0167853385 26.5
0x085b17870cf323eddf42b57af5e1f5096824d60924a9fa6d1b3a3900caffc396Transfer199637242022-09-17 10:54:1510 days 15 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.01665834319 29.911286421
0xfcf4afe0c51b9baf0b439fda9c14f449975f88f584800af4dcecca6056306ce6Transfer199313022022-09-16 11:29:2311 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0032718225 26.5
0x7d0bf042e4403ee3bca96e5298b15a946f0da5d121595263585127efcdfc4d91Transfer199312892022-09-16 11:28:5411 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x7696dc0b9d277788a3407c426dfd7c4a7a326a42a6cb38e0b63a5e4e926aa738Transfer199312712022-09-16 11:28:1611 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.008626651 26.5
0xbde0d462fc8332f5165db6fd739360f7e3553929c2080190193581fd9ce98e7aApprove199081332022-09-15 19:02:1012 days 7 hrs ago0x49127a1d4c8e89b525835043ed29344d2c2faa3b IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001269554359 27.271746849
0xfd15aa9c8edc15e2491a7f0fcc02367e6dfb63d1fd97af8f9c76883e2e880892Transfer197976342022-09-12 13:17:4915 days 12 hrs ago0xf6a9f87dba5350017bdf3fdbc3c782f015e1aba6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0xe60666c03695e31e1c1ddbb21421cdb7bfa4dd26dc9eb4f6af4465111de8a8f8Transfer197976262022-09-12 13:17:2515 days 12 hrs ago0xf6a9f87dba5350017bdf3fdbc3c782f015e1aba6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001777326127 26.717468051
0x1e55a78327f4c4e39c4bb03bdd15fa9c9aa68956101da2870e66cbca3ef32449Transfer197976032022-09-12 13:16:3015 days 12 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001788257981 26.8818
0xd13cac79f98e4ce2ae604d35121a965403e019888b74f9b469b8d9686c9a4069Transfer197975872022-09-12 13:15:4815 days 12 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001824393275 27.425
0xa5644a8eafa25533a7d7038a7c773b02fe32071a5f0a03fa5a43ff1797e397d9Transfer197975732022-09-12 13:15:1215 days 12 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0041871325 26.5
0xeaf375ac58a7ea04415614052ee4093ce1b0cc20d93d168debdac737a88afcbcTransfer197879982022-09-12 6:32:4615 days 19 hrs ago0x362912f4f66c8d22dca14b4fbb16d0e50520b0a1 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.027250253126.1
0x5df549601e7c68ee870d29fd948915009b8078b27ab48f72b3507fb769895196Transfer196373502022-09-07 11:31:3520 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0xaf43096d681b24d90beed59cdb5763f50bc92cbf9682c91676b76b3243393290Transfer196373372022-09-07 11:30:4520 days 14 hrs ago0xf6a9f87dba5350017bdf3fdbc3c782f015e1aba6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017631775 26.5
0xf0fb7210f69b4aa4023119fe08e6b7d9e1798a458474fe2ffdcc6f9b14bca82fTransfer196373192022-09-07 11:30:0320 days 14 hrs ago0xf6a9f87dba5350017bdf3fdbc3c782f015e1aba6 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0097823425 26.5
0x9c7ca6969cc7b0987d681946bf5baf206c6e0cb8251f26a0bddf69d12dcfe308Transfer195637052022-09-05 13:03:0322 days 13 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.018834200458 27.211115
0x983d2b6b46b7ad6d783031220a807b27a1aec616d8b25de7fa0e760696402788Transfer194857432022-09-03 12:14:1524 days 13 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.009858371 26.5
0xf6fffb36cce3fb26ef5622eba1ef74d508d0b18c872f4b9395dfeaafd38b21b0Transfer194415652022-09-02 11:20:1825 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.0017628595 26.5
0x9faa1da96a85c8753502d175b13eecaa38030c19ba8eacaedfa1e2980c1f0c0fTransfer194415472022-09-02 11:19:4225 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.00566994 26.5
0x1cfc86ac41c66d055235c5ff8dce8c49487916016442ec573ecce447bf771f37Transfer194415112022-09-02 11:18:2725 days 14 hrs ago0x877200fc29776002d4dac0a30aa3ed7b2ae54518 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.002621433 26.5
0x00d25ea93f07950d15d70071a3e952ec7f3e8bcbf093f6c2e86b77b12b3b53bdTransfer194414322022-09-02 11:15:4425 days 14 hrs ago0x09f7b26f83835c32bc042e372abd65c2afbe1716 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001672044326.1
0x9b7ce76e34baaf8b84cd011d18440f8a003ef1a741968ece7010cd77387e7a43Transfer194413952022-09-02 11:14:3025 days 14 hrs ago0x09f7b26f83835c32bc042e372abd65c2afbe1716 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.019426412726.1
0x4ffd3e7fb9928f80fcd04fc090f477f8010aad27d70734f0deb692e7bd373ac9Transfer193347992022-08-30 23:37:1228 days 2 hrs ago0x19254a733206911aaa2df4caa067c658e6d456a4 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.012755975 25.000000001
0xd737500931737fd9e593dcd2d075973206b889f850f035064b0199e966fb0f03Approve192923942022-08-29 23:55:1529 days 2 hrs ago0x60103aab8ebc17566fd30e9c545932c88df30120 IN  0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70 AVAX0.001233628 26.5
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x89c8678677282c7059b571baec391bc9c5341a4734d406d94a1d9ec8bc5ce7b3200655032022-09-20 11:20:297 days 14 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.000000001366920724 AVAX
0x89c8678677282c7059b571baec391bc9c5341a4734d406d94a1d9ec8bc5ce7b3200655032022-09-20 11:20:297 days 14 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.000000000546768289 AVAX
0x89c8678677282c7059b571baec391bc9c5341a4734d406d94a1d9ec8bc5ce7b3200655032022-09-20 11:20:297 days 14 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.000000001913689014 AVAX
0x085b17870cf323eddf42b57af5e1f5096824d60924a9fa6d1b3a3900caffc396199637242022-09-17 10:54:1510 days 15 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.000145274843031361 AVAX
0x085b17870cf323eddf42b57af5e1f5096824d60924a9fa6d1b3a3900caffc396199637242022-09-17 10:54:1510 days 15 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.000058109937212544 AVAX
0x085b17870cf323eddf42b57af5e1f5096824d60924a9fa6d1b3a3900caffc396199637242022-09-17 10:54:1510 days 15 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.000203384780243906 AVAX
0x085b17870cf323eddf42b57af5e1f5096824d60924a9fa6d1b3a3900caffc396199637242022-09-17 10:54:1510 days 15 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.070122169673033378 AVAX
0x085b17870cf323eddf42b57af5e1f5096824d60924a9fa6d1b3a3900caffc396199637242022-09-17 10:54:1510 days 15 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.070122169673033378 AVAX
0x7696dc0b9d277788a3407c426dfd7c4a7a326a42a6cb38e0b63a5e4e926aa738199312712022-09-16 11:28:1611 days 14 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.045886203882236981 AVAX
0x7696dc0b9d277788a3407c426dfd7c4a7a326a42a6cb38e0b63a5e4e926aa738199312712022-09-16 11:28:1611 days 14 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.018354481552894792 AVAX
0x7696dc0b9d277788a3407c426dfd7c4a7a326a42a6cb38e0b63a5e4e926aa738199312712022-09-16 11:28:1611 days 14 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.064240685435131774 AVAX
0x4545bae7040ceec2eefc059f32109cbdeed6f356c1f3df7f6ce3bc05d6a0a002199083252022-09-15 19:10:3912 days 7 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.012145122148142535 AVAX
0x4545bae7040ceec2eefc059f32109cbdeed6f356c1f3df7f6ce3bc05d6a0a002199083252022-09-15 19:10:3912 days 7 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.004858048859257014 AVAX
0x4545bae7040ceec2eefc059f32109cbdeed6f356c1f3df7f6ce3bc05d6a0a002199083252022-09-15 19:10:3912 days 7 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.01700317100739955 AVAX
0x06c7e165fc0f320c68327dae0f165f7ad2a261292a7573fb1fef1c7dd5ef42f5199082492022-09-15 19:07:1812 days 7 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.175166577310595241 AVAX
0x06c7e165fc0f320c68327dae0f165f7ad2a261292a7573fb1fef1c7dd5ef42f5199082492022-09-15 19:07:1812 days 7 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.070066630924238096 AVAX
0x06c7e165fc0f320c68327dae0f165f7ad2a261292a7573fb1fef1c7dd5ef42f5199082492022-09-15 19:07:1812 days 7 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.245233208234833338 AVAX
0xa12d1d404ad8cea461065f1af9707fdcda7ebfeb26c153b2aecf7cf5a73cccf7198940902022-09-15 9:06:5812 days 17 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.014881967178518045 AVAX
0xa12d1d404ad8cea461065f1af9707fdcda7ebfeb26c153b2aecf7cf5a73cccf7198940902022-09-15 9:06:5812 days 17 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.005952786871407218 AVAX
0xa12d1d404ad8cea461065f1af9707fdcda7ebfeb26c153b2aecf7cf5a73cccf7198940902022-09-15 9:06:5812 days 17 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.020834754049925263 AVAX
0xa12d1d404ad8cea461065f1af9707fdcda7ebfeb26c153b2aecf7cf5a73cccf7198940902022-09-15 9:06:5812 days 17 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e7 Trader Joe: Router0.004164602648618898 AVAX
0xa12d1d404ad8cea461065f1af9707fdcda7ebfeb26c153b2aecf7cf5a73cccf7198940902022-09-15 9:06:5812 days 17 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.004164602648618898 AVAX
0xeaf375ac58a7ea04415614052ee4093ce1b0cc20d93d168debdac737a88afcbc197879982022-09-12 6:32:4615 days 19 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70xe39ec2278cb5026ddcb0116f6915dac73d78474c0.007694808319077807 AVAX
0xeaf375ac58a7ea04415614052ee4093ce1b0cc20d93d168debdac737a88afcbc197879982022-09-12 6:32:4615 days 19 hrs ago 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70x09f7b26f83835c32bc042e372abd65c2afbe17160.003077923327631123 AVAX
0xeaf375ac58a7ea04415614052ee4093ce1b0cc20d93d168debdac737a88afcbc197879982022-09-12 6:32:4615 days 19 hrs ago Trader Joe: Router 0x536e911b8ba66c9a8697bf7d7b9924456abcc9e70.010772731646708931 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Stash

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-05-20
*/

// Dependency file: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

// pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

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

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}


// Dependency file: @openzeppelin/contracts/utils/Context.sol

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

// pragma solidity ^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 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) {
        return msg.sender;
    }

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


// Dependency file: @openzeppelin/contracts/access/Ownable.sol

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

// pragma solidity ^0.8.0;

// import "@openzeppelin/contracts/utils/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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// Dependency file: @openzeppelin/contracts/utils/math/SafeMath.sol

// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

// pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // 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 (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @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) {
        return a + b;
    }

    /**
     * @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 a - b;
    }

    /**
     * @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) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting 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 a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting 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) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * 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) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}


// Dependency file: contracts/interfaces/IJoeFactory.sol

// pragma solidity ^0.8.13;

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


// Dependency file: contracts/interfaces/IJoePair.sol

// pragma solidity ^0.8.13;

interface IJoePair {
  function sync() external;
}


// Dependency file: contracts/interfaces/IJoeRouter.sol

// pragma solidity ^0.8.13;

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

  function WAVAX() external pure returns (address);

  function addLiquidity(
    address tokenA,
    address tokenB,
    uint256 amountADesired,
    uint256 amountBDesired,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  )
    external
    returns (
      uint256 amountA,
      uint256 amountB,
      uint256 liquidity
    );

  function addLiquidityAVAX(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountAVAXMin,
    address to,
    uint256 deadline
  )
    external
    payable
    returns (
      uint256 amountToken,
      uint256 amountAVAX,
      uint256 liquidity
    );

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

  function swapExactAVAXForTokensSupportingFeeOnTransferTokens(
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable;

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


// Root file: contracts/Stash.sol

pragma solidity ^0.8.13;

// import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
// import "@openzeppelin/contracts/access/Ownable.sol";
// import "@openzeppelin/contracts/utils/math/SafeMath.sol";

// import "contracts/interfaces/IJoeFactory.sol";
// import "contracts/interfaces/IJoePair.sol";
// import "contracts/interfaces/IJoeRouter.sol";

/**
 * @title STASH ERC20 token
 * @dev This is part of an implementation of the Stash protocol.
 *      STASH is a normal ERC20 token, but its supply can be adjusted by splitting and
 *      combining tokens proportionally across all wallets.
 *
 *      Stash balances are internally represented with a hidden denomination, 'gons'.
 *      We support splitting the currency in expansion and combining the currency on contraction by
 *      changing the exchange rate between the hidden 'gons' and the public 'fragments'.
 */
contract Stash is IERC20, Ownable {
  using SafeMath for uint256;

  string private constant _name = "Stash";
  string private constant _symbol = "STASH";
  uint8 private constant _decimals = 5;

  uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 500 * 10**3 * 10**_decimals;
  uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
  uint256 private constant MAX_SUPPLY = 500 * 10**7 * 10**_decimals;

  address constant DEAD = 0x000000000000000000000000000000000000dEaD;
  address constant ZERO = 0x0000000000000000000000000000000000000000;

  uint256 public constant ADD_LIQUIDITY_PERIOD = 2 days;
  uint256 public constant MAX_UINT256 = ~uint256(0);
  uint8 public constant RATE_DECIMALS = 7;
  uint256 public constant REBASE_PERIOD = 15 minutes;

  bool private inSwap = false;
  uint256 private _totalSupply;
  uint256 private _gonsPerFragment;
  mapping(address => bool) private _isFeeExempt;
  mapping(address => uint256) private _gonBalances;
  mapping(address => mapping(address => uint256)) private _allowedFragments;

  uint256 public basicRebaseRate = 2374;

  uint256 public liquidityFee = 40;
  uint256 public treasuryFee = 20;
  uint256 public stashInsuranceFundFee = 50;
  uint256 public sellFee = 30;
  uint256 public burnRate = 20;
  uint256 public totalFee = liquidityFee.add(treasuryFee).add(stashInsuranceFundFee).add(burnRate);
  uint256 public feeDenominator = 1000;

  bool public autoRebase;
  bool public autoAddLiquidity;
  bool public autoSwapback;

  uint256 public initRebaseStartTime;
  uint256 public lastRebasedTime;
  uint256 public lastAddLiquidityTime;

  address public autoLiquidityReceiver;
  address public treasuryReceiver;
  address public stashInsuranceFundReceiver;
  address public pair;
  IJoeRouter public router;
  mapping(address => bool) public blacklist;

  event LogRebase(uint256 indexed epoch, uint256 lastTotalSupply, uint256 currentTotalSupply);

  modifier validRecipient(address to) {
    require(to != address(0x0));
    _;
  }

  modifier swapping() {
    inSwap = true;
    _;
    inSwap = false;
  }

  constructor(
    address _joeRouter,
    address _autoLiquidityReceiver,
    address _treasuryReceiver,
    address _stashInsuranceFundReceiver
  ) {
    router = IJoeRouter(_joeRouter);
    pair = IJoeFactory(router.factory()).createPair(router.WAVAX(), address(this));

    autoLiquidityReceiver = _autoLiquidityReceiver;
    treasuryReceiver = _treasuryReceiver;
    stashInsuranceFundReceiver = _stashInsuranceFundReceiver;

    _allowedFragments[address(this)][address(router)] = MAX_UINT256;

    _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
    _gonBalances[treasuryReceiver] = TOTAL_GONS;
    _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
    _isFeeExempt[treasuryReceiver] = true;
    _isFeeExempt[address(this)] = true;

    emit Transfer(address(0x0), treasuryReceiver, _totalSupply);
  }

  /**
   * @dev Get current rebase rate of Stash tokens.
   * Rebase rate will reduce as time goes by
   */
  function getRebaseRate() public view returns (uint256 rebaseRate) {
    uint256 deltaTimeFromInit = block.timestamp - initRebaseStartTime;

    if (deltaTimeFromInit < (365 days)) {
      rebaseRate = basicRebaseRate;
    } else if (deltaTimeFromInit >= (365 days)) {
      rebaseRate = 211;
    } else if (deltaTimeFromInit >= ((15 * 365 days) / 10)) {
      rebaseRate = 14;
    } else if (deltaTimeFromInit >= (7 * 365 days)) {
      rebaseRate = 2;
    }
  }

  function setBasicRebaseRate(uint256 value) external onlyOwner {
    basicRebaseRate = value;
  }

  /**
   * @dev Notifies Stash contract about a new rebase cycle
   * After a rebase, the totalSupply should increase proportionally to the current rebase rate.
   */
  function rebase() internal {
    if (inSwap) return;
    uint256 deltaTime = block.timestamp - lastRebasedTime;
    uint256 times = deltaTime.div(REBASE_PERIOD);
    uint256 epoch = times.mul(15);
    uint256 rebaseRate = getRebaseRate();

    uint256 lastTotalSupply = _totalSupply;
    for (uint256 i = 0; i < times; i++) {
      _totalSupply = _totalSupply.mul((10**RATE_DECIMALS).add(rebaseRate)).div(10**RATE_DECIMALS);
    }

    _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
    lastRebasedTime = lastRebasedTime.add(times.mul(REBASE_PERIOD));

    IJoePair(pair).sync();

    emit LogRebase(epoch, lastTotalSupply, _totalSupply);
  }

  function transfer(address to, uint256 value) external override validRecipient(to) returns (bool) {
    _transferFrom(msg.sender, to, value);
    return true;
  }

  function transferFrom(
    address from,
    address to,
    uint256 value
  ) external override validRecipient(to) returns (bool) {
    uint256 currentAllowance = allowance(from, msg.sender);
    if (currentAllowance != MAX_UINT256) {
      _allowedFragments[from][msg.sender] = currentAllowance.sub(value, "ERC20: insufficient allowance");
    }
    _transferFrom(from, to, value);
    return true;
  }

  function _basicTransfer(
    address from,
    address to,
    uint256 amount
  ) internal returns (bool) {
    uint256 gonAmount = amount.mul(_gonsPerFragment);
    _gonBalances[from] = _gonBalances[from].sub(gonAmount, "ERC20: transfer amount exceeds balance");
    _gonBalances[to] = _gonBalances[to].add(gonAmount);
    return true;
  }

  function _transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) internal returns (bool) {
    require(!blacklist[sender] && !blacklist[recipient], "ADDRESS_IN_BLACKLIST");

    if (inSwap) {
      return _basicTransfer(sender, recipient, amount);
    }
    if (shouldRebase()) {
      rebase();
    }

    if (shouldAddLiquidity()) {
      addLiquidity();
    }

    if (shouldSwapBack()) {
      swapBack();
    }

    uint256 gonAmount = amount.mul(_gonsPerFragment);
    _gonBalances[sender] = _gonBalances[sender].sub(gonAmount, "ERC20: transfer amount exceeds balance");
    uint256 gonAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, gonAmount) : gonAmount;
    _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived);

    emit Transfer(sender, recipient, gonAmountReceived.div(_gonsPerFragment));
    return true;
  }

  function takeFee(
    address sender,
    address recipient,
    uint256 gonAmount
  ) internal returns (uint256) {
    uint256 _totalFee = totalFee;
    uint256 _treasuryFee = treasuryFee;

    if (recipient == pair) {
      _totalFee = totalFee.add(sellFee);
      _treasuryFee = treasuryFee.add(sellFee);
    }

    uint256 feeAmount = gonAmount.div(feeDenominator).mul(_totalFee);

    // burn tokens
    _gonBalances[DEAD] = _gonBalances[DEAD].add(gonAmount.div(feeDenominator).mul(burnRate));
    _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(_treasuryFee.add(stashInsuranceFundFee)));
    _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(gonAmount.div(feeDenominator).mul(liquidityFee));

    emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment));
    return gonAmount.sub(feeAmount);
  }

  function addLiquidity() internal swapping {
    uint256 autoLiquidityAmount = _gonBalances[autoLiquidityReceiver].div(_gonsPerFragment);
    _gonBalances[address(this)] = _gonBalances[address(this)].add(_gonBalances[autoLiquidityReceiver]);
    _gonBalances[autoLiquidityReceiver] = 0;
    uint256 amountToLiquify = autoLiquidityAmount.div(2);
    uint256 amountToSwap = autoLiquidityAmount.sub(amountToLiquify);

    if (amountToSwap == 0) {
      return;
    }
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = router.WAVAX();

    uint256 balanceBefore = address(this).balance;

    router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(amountToSwap, 0, path, address(this), block.timestamp);

    uint256 amountAVAXLiquidity = address(this).balance.sub(balanceBefore);

    if (amountToLiquify > 0 && amountAVAXLiquidity > 0) {
      router.addLiquidityAVAX{value: amountAVAXLiquidity}(address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp);
    }
    lastAddLiquidityTime = block.timestamp;
  }

  function swapBack() internal swapping {
    uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment);

    if (amountToSwap == 0) {
      return;
    }

    uint256 balanceBefore = address(this).balance;
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = router.WAVAX();

    router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(amountToSwap, 0, path, address(this), block.timestamp);

    uint256 amountAVAXToTreasuryAndSIF = address(this).balance.sub(balanceBefore);

    (bool success, ) = payable(treasuryReceiver).call{value: amountAVAXToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(stashInsuranceFundFee)), gas: 30000}("");
    (success, ) = payable(stashInsuranceFundReceiver).call{value: amountAVAXToTreasuryAndSIF.mul(stashInsuranceFundFee).div(treasuryFee.add(stashInsuranceFundFee)), gas: 30000}("");
  }

  function withdrawAllToTreasury() external swapping onlyOwner {
    uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment);
    require(amountToSwap > 0, "NO_TOKENS_DEPOSITED");
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = router.WAVAX();
    router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(amountToSwap, 0, path, treasuryReceiver, block.timestamp);
  }

  function shouldTakeFee(address from, address to) internal view returns (bool) {
    if (_isFeeExempt[from] || _isFeeExempt[to]) {
      return false;
    }

    return (pair == from || pair == to);
  }

  function shouldRebase() internal view returns (bool) {
    return autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && !inSwap && block.timestamp >= (lastRebasedTime + REBASE_PERIOD);
  }

  function shouldAddLiquidity() internal view returns (bool) {
    return autoAddLiquidity && !inSwap && msg.sender != pair && block.timestamp >= (lastAddLiquidityTime + ADD_LIQUIDITY_PERIOD);
  }

  function shouldSwapBack() internal view returns (bool) {
    return autoSwapback && !inSwap && msg.sender != pair;
  }

  function setAutoRebase(bool _flag) external onlyOwner {
    if (_flag) {
      autoRebase = _flag;
      if (initRebaseStartTime == 0) {
        initRebaseStartTime = block.timestamp;
      }
      lastRebasedTime = block.timestamp;
    } else {
      autoRebase = _flag;
    }
  }

  function setAutoAddLiquidity(bool _flag) external onlyOwner {
    if (_flag) {
      autoAddLiquidity = _flag;
      lastAddLiquidityTime = block.timestamp;
    } else {
      autoAddLiquidity = _flag;
    }
  }

  function setAutoSwapback(bool flag) external onlyOwner {
    autoSwapback = flag;
  }

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

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
    uint256 oldValue = _allowedFragments[msg.sender][spender];
    if (subtractedValue >= oldValue) {
      _allowedFragments[msg.sender][spender] = 0;
    } else {
      _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);
    }
    emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
    _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue);
    emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
    return true;
  }

  function approve(address spender, uint256 value) external override returns (bool) {
    _allowedFragments[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function checkFeeExempt(address _addr) external view returns (bool) {
    return _isFeeExempt[_addr];
  }

  function getCirculatingSupply() public view returns (uint256) {
    return (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div(_gonsPerFragment);
  }

  function isNotInSwap() external view returns (bool) {
    return !inSwap;
  }

  function manualSync() external {
    IJoePair(pair).sync();
  }

  function setFeeReceivers(
    address _autoLiquidityReceiver,
    address _treasuryReceiver,
    address _stashInsuranceFundReceiver
  ) external onlyOwner {
    autoLiquidityReceiver = _autoLiquidityReceiver;
    treasuryReceiver = _treasuryReceiver;
    stashInsuranceFundReceiver = _stashInsuranceFundReceiver;
  }

  function setFees(
    uint256 _liquidityFee,
    uint256 _treasuryFee,
    uint256 _stashInsuranceFundFee,
    uint256 _sellFee,
    uint256 _burnRate,
    uint256 _feeDenominator
  ) external onlyOwner {
    liquidityFee = _liquidityFee;
    treasuryFee = _treasuryFee;
    stashInsuranceFundFee = _stashInsuranceFundFee;
    sellFee = _sellFee;
    burnRate = _burnRate;
    feeDenominator = _feeDenominator;
  }

  function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
    uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment);
    return accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply());
  }

  function setWhitelist(address _addr) external onlyOwner {
    _isFeeExempt[_addr] = true;
  }

  function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner {
    require(isContract(_botAddress), "MUST_BE_A_CONTRACT_ADDRESS");
    blacklist[_botAddress] = _flag;
  }

  function setLP(address _address) external onlyOwner {
    pair = _address;
  }

  function totalSupply() external view override returns (uint256) {
    return _totalSupply;
  }

  function balanceOf(address who) external view override returns (uint256) {
    return _gonBalances[who].div(_gonsPerFragment);
  }

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

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

  /**
   * @dev Returns the number of decimals used to get its user representation.
   * For example, if `decimals` equals `2`, a balance of `505` tokens should
   * be displayed to a user as `5.05` (`505 / 10 ** 2`).
   *
   * Tokens usually opt for a value of 18, imitating the relationship between
   * Ether and Wei. This is the value {ERC20} uses, unless this function is
   * overridden;
   *
   * NOTE: This information is only used for _display_ purposes: it in
   * no way affects any of the arithmetic of the contract, including
   * {IERC20-balanceOf} and {IERC20-transfer}.
   */
  function decimals() public pure returns (uint8) {
    return _decimals;
  }

  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    assembly {
      size := extcodesize(addr)
    }
    return size > 0;
  }

  /**
   * @dev Function allows admin to withdraw ETH accidentally dropped to the contract.
   */
  function rescue() external onlyOwner {
    payable(owner()).transfer(address(this).balance);
  }

  /**
   * @dev Function allows admin to withdraw tokens accidentally dropped to the contract.
   */
  function rescueToken(address tokenAddress, uint256 amount) external onlyOwner {
    require(IERC20(tokenAddress).transfer(msg.sender, amount), "RESCUE_TOKENS_FAILED");
  }

  receive() external payable {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_joeRouter","type":"address"},{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_stashInsuranceFundReceiver","type":"address"}],"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":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastTotalSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentTotalSupply","type":"uint256"}],"name":"LogRebase","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":"ADD_LIQUIDITY_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REBASE_PERIOD","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoSwapback","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basicRebaseRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRebaseRate","outputs":[{"internalType":"uint256","name":"rebaseRate","type":"uint256"}],"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":[],"name":"initRebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastAddLiquidityTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebasedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IJoeRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"setAutoSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBasicRebaseRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_stashInsuranceFundReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_stashInsuranceFundFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_burnRate","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stashInsuranceFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stashInsuranceFundReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000805460ff60a01b19169055610946600655602860078190556014600881905560326009819055601e600a55600b8290556200006a92620000569190829084620003e0602090811b6200165d17901c565b620003e060201b6200165d1790919060201c565b600c556103e8600d553480156200008057600080fd5b506040516200307338038062003073833981016040819052620000a39162000472565b620000ae33620003f7565b601680546001600160a01b0319166001600160a01b0386169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000108573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012e9190620004cf565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b69190620004cf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000203573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002299190620004cf565b601580546001600160a01b03199081166001600160a01b039384161790915560128054821686841617905560138054821685841617905560148054909116838316179055306000908152600560208181526040808420601654909516845293905291902060001990556200029f90600a62000600565b620002ae906207a12062000611565b600155620002bf6005600a62000600565b620002ce906207a12062000611565b620002dc9060001962000649565b620002ea9060001962000660565b6013546001600160a01b03166000908152600460205260409020556001546200035a906200031b6005600a62000600565b6200032a906207a12062000611565b620003389060001962000649565b620003469060001962000660565b6200044760201b620016691790919060201c565b600255601380546001600160a01b0390811660009081526003602090815260408083208054600160ff199182168117909255308552828520805490911682179055945494549051908152939092169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050620006ac565b6000620003ee82846200067a565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003ee828462000695565b80516001600160a01b03811681146200046d57600080fd5b919050565b600080600080608085870312156200048957600080fd5b620004948562000455565b9350620004a46020860162000455565b9250620004b46040860162000455565b9150620004c46060860162000455565b905092959194509250565b600060208284031215620004e257600080fd5b620003ee8262000455565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000544578160001904821115620005285762000528620004ed565b808516156200053657918102915b93841c939080029062000508565b509250929050565b6000826200055d57506001620003f1565b816200056c57506000620003f1565b81600181146200058557600281146200059057620005b0565b6001915050620003f1565b60ff841115620005a457620005a4620004ed565b50506001821b620003f1565b5060208310610133831016604e8410600b8410161715620005d5575081810a620003f1565b620005e1838362000503565b8060001904821115620005f857620005f8620004ed565b029392505050565b6000620003ee60ff8416836200054c565b60008160001904831182151516156200062e576200062e620004ed565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200065b576200065b62000633565b500690565b600082821015620006755762000675620004ed565b500390565b60008219821115620006905762000690620004ed565b500190565b600082620006a757620006a762000633565b500490565b6129b780620006bc6000396000f3fe60806040526004361061036f5760003560e01c8063854cff2f116101c6578063ca33e64c116100f7578063df313c8511610095578063efd462bb1161006f578063efd462bb146109b7578063f2fde38b146109d6578063f887ea40146109f6578063f9f92be414610a1657600080fd5b8063df313c8514610960578063e15beb8014610980578063e33e42f4146109a057600080fd5b8063d4399790116100d1578063d4399790146108a1578063d51ed1c8146108da578063d7c01032146108fa578063dd62ed3e1461091a57600080fd5b8063ca33e64c1461084b578063cc32d1761461086b578063cfbac92f1461088157600080fd5b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb146107ea578063ba71c44e1461080a578063bd59558114610820578063bed998501461083557600080fd5b8063a457c2d71461078a578063a724ecfd146107aa578063a8aa1b31146107ca57600080fd5b80639079f932116101a05780639079f9321461071657806395d89b411461073057806398118cb41461075e5780639d12ec011461077457600080fd5b8063854cff2f146106b857806386f6c3c1146106d85780638da5cb5b146106f857600080fd5b806333a581d2116102a0578063650a0ac81161023e578063715018a611610218578063715018a614610658578063753d02a11461066d57806382b97bec1461068257806383b4ac681461069857600080fd5b8063650a0ac81461060d57806368381a881461062257806370a082311461063857600080fd5b8063395093511161027a57806339509351146105ac5780635a604c52146105cc5780636085e220146105e157806364452b01146105f757600080fd5b806333a581d21461055657806333f3d6281461056c57806337c9be871461058c57600080fd5b80631fbe19791161030d5780632b112e49116102e75780632b112e49146104e95780632b14ca56146104fe5780632f34d28214610514578063313ce5671461053457600080fd5b80631fbe19791461049257806320a94780146104a957806323b872dd146104c957600080fd5b8063180b0d7e11610349578063180b0d7e1461042357806318160ddd14610447578063186019721461045c5780631df4ccfc1461047c57600080fd5b806306fdde031461037b57806308b1fd8f146103bb578063095ea7b3146103f357600080fd5b3661037657005b600080fd5b34801561038757600080fd5b506040805180820190915260058152640a6e8c2e6d60db1b60208201525b6040516103b2919061245c565b60405180910390f35b3480156103c757600080fd5b506013546103db906001600160a01b031681565b6040516001600160a01b0390911681526020016103b2565b3480156103ff57600080fd5b5061041361040e3660046124c6565b610a46565b60405190151581526020016103b2565b34801561042f57600080fd5b50610439600d5481565b6040519081526020016103b2565b34801561045357600080fd5b50600154610439565b34801561046857600080fd5b506014546103db906001600160a01b031681565b34801561048857600080fd5b50610439600c5481565b34801561049e57600080fd5b506104a7610ab3565b005b3480156104b557600080fd5b506104a76104c43660046124f2565b610b23565b3480156104d557600080fd5b506104136104e436600461250b565b610b52565b3480156104f557600080fd5b50610439610c13565b34801561050a57600080fd5b50610439600a5481565b34801561052057600080fd5b506104a761052f36600461254c565b610cba565b34801561054057600080fd5b5060055b60405160ff90911681526020016103b2565b34801561056257600080fd5b5061043960001981565b34801561057857600080fd5b506104a76105873660046124c6565b610d06565b34801561059857600080fd5b506104a76105a7366004612577565b610de8565b3480156105b857600080fd5b506104136105c73660046124c6565b610e8b565b3480156105d857600080fd5b50610544600781565b3480156105ed57600080fd5b5061043960105481565b34801561060357600080fd5b5061043961038481565b34801561061957600080fd5b50610439610f10565b34801561062e57600080fd5b5061043960095481565b34801561064457600080fd5b5061043961065336600461254c565b610f71565b34801561066457600080fd5b506104a7610f99565b34801561067957600080fd5b506104a7610fcf565b34801561068e57600080fd5b5061043960065481565b3480156106a457600080fd5b50600054600160a01b900460ff1615610413565b3480156106c457600080fd5b506104a76106d336600461254c565b611039565b3480156106e457600080fd5b506104a76106f33660046125b0565b611087565b34801561070457600080fd5b506000546001600160a01b03166103db565b34801561072257600080fd5b50600e546104139060ff1681565b34801561073c57600080fd5b506040805180820190915260058152640a6a882a6960db1b60208201526103a5565b34801561076a57600080fd5b5061043960075481565b34801561078057600080fd5b5061043960115481565b34801561079657600080fd5b506104136107a53660046124c6565b6110ce565b3480156107b657600080fd5b50600e546104139062010000900460ff1681565b3480156107d657600080fd5b506015546103db906001600160a01b031681565b3480156107f657600080fd5b506104136108053660046124c6565b6111b5565b34801561081657600080fd5b50610439600f5481565b34801561082c57600080fd5b506104a76111e1565b34801561084157600080fd5b50610439600b5481565b34801561085757600080fd5b506012546103db906001600160a01b031681565b34801561087757600080fd5b5061043960085481565b34801561088d57600080fd5b506104a761089c3660046125f3565b6113f7565b3480156108ad57600080fd5b506104136108bc36600461254c565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156108e657600080fd5b506104396108f53660046124f2565b61145b565b34801561090657600080fd5b506104a7610915366004612610565b6114af565b34801561092657600080fd5b5061043961093536600461265b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561096c57600080fd5b506104a761097b3660046125f3565b611518565b34801561098c57600080fd5b506104a761099b3660046125f3565b61155e565b3480156109ac57600080fd5b506104396202a30081565b3480156109c357600080fd5b50600e5461041390610100900460ff1681565b3480156109e257600080fd5b506104a76109f136600461254c565b6115c5565b348015610a0257600080fd5b506016546103db906001600160a01b031681565b348015610a2257600080fd5b50610413610a3136600461254c565b60176020526000908152604090205460ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610aa19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ae65760405162461bcd60e51b8152600401610add90612689565b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610b20573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610b4d5760405162461bcd60e51b8152600401610add90612689565b600655565b6000826001600160a01b038116610b6857600080fd5b6001600160a01b03851660009081526005602090815260408083203384529091529020546000198114610bfb5760408051808201909152601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006020820152610bd69082908690611675565b6001600160a01b03871660009081526005602090815260408083203384529091529020555b610c068686866116a1565b5060019695505050505050565b60025460046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549092610cb5929091610caf9190610ca990610c846005600a6127b8565b610c91906207a1206127c7565b610c9d906000196127fc565b610ca990600019612810565b906118ae565b90611669565b905090565b6000546001600160a01b03163314610ce45760405162461bcd60e51b8152600401610add90612689565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d305760405162461bcd60e51b8152600401610add90612689565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da19190612827565b610de45760405162461bcd60e51b8152602060048201526014602482015273149154d0d55157d513d2d15394d7d1905253115160621b6044820152606401610add565b5050565b6000546001600160a01b03163314610e125760405162461bcd60e51b8152600401610add90612689565b813b610e605760405162461bcd60e51b815260206004820152601a60248201527f4d5553545f42455f415f434f4e54524143545f414444524553530000000000006044820152606401610add565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360009081526005602090815260408083206001600160a01b0386168452909152812054610eb9908361165d565b3360008181526005602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610aa1565b600080600f5442610f219190612810565b90506301e13380811015610f3757505060065490565b6301e133808110610f4a5760d391505090565b6302d1cd408110610f5d57600e91505090565b630d2868808110610f6d57600291505b5090565b6002546001600160a01b0382166000908152600460205260408120549091610aad9190611669565b6000546001600160a01b03163314610fc35760405162461bcd60e51b8152600401610add90612689565b610fcd60006118ba565b565b601560009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146110635760405162461bcd60e51b8152600401610add90612689565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146110b15760405162461bcd60e51b8152600401610add90612689565b600795909555600893909355600991909155600a55600b55600d55565b3360009081526005602090815260408083206001600160a01b0386168452909152812054808310611122573360009081526005602090815260408083206001600160a01b0388168452909152812055611151565b61112c81846118ae565b3360009081526005602090815260408083206001600160a01b03891684529091529020555b3360008181526005602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b0381166111cb57600080fd5b6111d63385856116a1565b506001949350505050565b6000805460ff60a01b1916600160a01b1790556111fb3390565b6001600160a01b03166112166000546001600160a01b031690565b6001600160a01b03161461123c5760405162461bcd60e51b8152600401610add90612689565b60025430600090815260046020526040812054909161125b9190611669565b9050600081116112a35760405162461bcd60e51b81526020600482015260136024820152721393d7d513d2d15394d7d1115413d4d2551151606a1b6044820152606401610add565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112d8576112d8612844565b6001600160a01b03928316602091820292909201810191909152601654604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611355919061285a565b8160018151811061136857611368612844565b6001600160a01b039283166020918202929092010152601654601354604051633b158ab160e11b81529183169263762b1562926113b49287926000928892909116904290600401612877565b600060405180830381600087803b1580156113ce57600080fd5b505af11580156113e2573d6000803e3d6000fd5b50506000805460ff60a01b1916905550505050565b6000546001600160a01b031633146114215760405162461bcd60e51b8152600401610add90612689565b801561144357600e80548215156101000261ff00199091161790554260115550565b600e80548215156101000261ff001990911617905550565b6002546015546001600160a01b03166000908152600460205260408120549091829161148691611669565b90506114a8611493610c13565b610caf6114a184600261190a565b869061190a565b9392505050565b6000546001600160a01b031633146114d95760405162461bcd60e51b8152600401610add90612689565b601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055565b6000546001600160a01b031633146115425760405162461bcd60e51b8152600401610add90612689565b600e8054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146115885760405162461bcd60e51b8152600401610add90612689565b80156115b257600e805460ff1916821515179055600f546000036115ab5742600f555b4260105550565b600e805482151560ff1990911617905550565b6000546001600160a01b031633146115ef5760405162461bcd60e51b8152600401610add90612689565b6001600160a01b0381166116545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610add565b610b20816118ba565b60006114a882846128e8565b60006114a88284612900565b600081848411156116995760405162461bcd60e51b8152600401610add919061245c565b505050900390565b6001600160a01b03831660009081526017602052604081205460ff161580156116e357506001600160a01b03831660009081526017602052604090205460ff16155b6117265760405162461bcd60e51b8152602060048201526014602482015273105111149154d4d7d25397d0931050d2d31254d560621b6044820152606401610add565b600054600160a01b900460ff161561174a57611743848484611916565b90506114a8565b6117526119c1565b1561175f5761175f611a3d565b611767611be7565b1561177457611774611c3a565b61177c611f13565b1561178957611789611f52565b60006117a06002548461190a90919063ffffffff16565b90506117df8160405180606001604052806026815260200161295c602691396001600160a01b0388166000908152600460205260409020549190611675565b6001600160a01b03861660009081526004602052604081209190915561180586866121f6565b61180f578161181a565b61181a868684612270565b6001600160a01b038616600090815260046020526040902054909150611840908261165d565b6001600160a01b03808716600081815260046020526040902092909255600254908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611891908590611669565b60405190815260200160405180910390a350600195945050505050565b60006114a88284612810565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006114a882846127c7565b60008061192e6002548461190a90919063ffffffff16565b905061196d8160405180606001604052806026815260200161295c602691396001600160a01b0388166000908152600460205260409020549190611675565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461199c908261165d565b6001600160a01b03851660009081526004602052604090205550600190509392505050565b600e5460009060ff1680156119f157506119dd6005600a6127b8565b6119ec9064012a05f2006127c7565b600154105b8015611a0857506015546001600160a01b03163314155b8015611a1e5750600054600160a01b900460ff16155b8015610cb55750610384601054611a3591906128e8565b421015905090565b600054600160a01b900460ff1615611a5157565b600060105442611a619190612810565b90506000611a7182610384611669565b90506000611a8082600f61190a565b90506000611a8c610f10565b60015490915060005b84811015611ae357611ace611aac6007600a6127b8565b610caf611ac586611abf6007600a6127b8565b9061165d565b6001549061190a565b60015580611adb81612914565b915050611a95565b50600154611b1c90611af76005600a6127b8565b611b04906207a1206127c7565b611b10906000196127fc565b610caf90600019612810565b600255611b37611b2e8561038461190a565b6010549061165d565b6010556015546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b158015611b8357600080fd5b505af1158015611b97573d6000803e3d6000fd5b50505050827f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb282600154604051611bd8929190918252602082015260400190565b60405180910390a25050505050565b600e54600090610100900460ff168015611c0b5750600054600160a01b900460ff16155b8015611c2257506015546001600160a01b03163314155b8015610cb557506202a300601154611a3591906128e8565b6000805460ff60a01b1916600160a01b1781556002546012546001600160a01b0316825260046020526040822054611c7191611669565b6012546001600160a01b031660009081526004602052604080822054308352912054919250611ca0919061165d565b30600090815260046020526040808220929092556012546001600160a01b03168152908120819055611cd3826002611669565b90506000611ce183836118ae565b905080600003611cf357505050611f04565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2857611d28612844565b6001600160a01b03928316602091820292909201810191909152601654604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa158015611d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da5919061285a565b81600181518110611db857611db8612844565b6001600160a01b039283166020918202929092010152601654604051633b158ab160e11b81524792919091169063762b156290611e02908690600090879030904290600401612877565b600060405180830381600087803b158015611e1c57600080fd5b505af1158015611e30573d6000803e3d6000fd5b505050506000611e4982476118ae90919063ffffffff16565b9050600085118015611e5b5750600081115b15611ef957601654601254604051637c8d9fb960e11b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c40160606040518083038185885af1158015611ed0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ef5919061292d565b5050505b505042601155505050505b6000805460ff60a01b19169055565b600e5460009062010000900460ff168015611f385750600054600160a01b900460ff16155b8015610cb55750506015546001600160a01b031633141590565b6000805460ff60a01b1916600160a01b17815560025430825260046020526040822054611f7e91611669565b905080600003611f8e5750611f04565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611fc757611fc7612844565b6001600160a01b03928316602091820292909201810191909152601654604080516339d94ae160e11b8152905191909316926373b295c29260048083019391928290030181865afa158015612020573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612044919061285a565b8160018151811061205757612057612844565b6001600160a01b039283166020918202929092010152601654604051633b158ab160e11b815291169063762b15629061209d908690600090869030904290600401612877565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b5050505060006120e483476118ae90919063ffffffff16565b6013546009546008549293506000926001600160a01b039092169161211b9161210d919061165d565b600854610caf90869061190a565b60405161753091906000818181858888f193505050503d806000811461215d576040519150601f19603f3d011682016040523d82523d6000602084013e612162565b606091505b50506014546009546008549293506001600160a01b03909116916121989161218a919061165d565b600954610caf90869061190a565b60405161753091906000818181858888f193505050503d80600081146121da576040519150601f19603f3d011682016040523d82523d6000602084013e6121df565b606091505b50505050505050506000805460ff60a01b19169055565b6001600160a01b03821660009081526003602052604081205460ff168061223557506001600160a01b03821660009081526003602052604090205460ff165b1561224257506000610aad565b6015546001600160a01b03848116911614806114a85750506015546001600160a01b03918216911614919050565b600c5460085460155460009291906001600160a01b03908116908616036122bc57600a54600c546122a09161165d565b91506122b9600a5460085461165d90919063ffffffff16565b90505b60006122dd836122d7600d548861166990919063ffffffff16565b9061190a565b90506123306122fd600b546122d7600d548961166990919063ffffffff16565b61dead60005260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549061165d565b61dead60005260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd55600954612397906123819061237390859061165d565b600d546122d7908990611669565b306000908152600460205260409020549061165d565b30600090815260046020526040902055600754600d546123e1916123c0916122d7908990611669565b6012546001600160a01b03166000908152600460205260409020549061165d565b6012546001600160a01b0390811660009081526004602052604090209190915560025430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612436908590611669565b60405190815260200160405180910390a361245185826118ae565b979650505050505050565b600060208083528351808285015260005b818110156124895785810183015185820160400152820161246d565b8181111561249b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b2057600080fd5b600080604083850312156124d957600080fd5b82356124e4816124b1565b946020939093013593505050565b60006020828403121561250457600080fd5b5035919050565b60008060006060848603121561252057600080fd5b833561252b816124b1565b9250602084013561253b816124b1565b929592945050506040919091013590565b60006020828403121561255e57600080fd5b81356114a8816124b1565b8015158114610b2057600080fd5b6000806040838503121561258a57600080fd5b8235612595816124b1565b915060208301356125a581612569565b809150509250929050565b60008060008060008060c087890312156125c957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561260557600080fd5b81356114a881612569565b60008060006060848603121561262557600080fd5b8335612630816124b1565b92506020840135612640816124b1565b91506040840135612650816124b1565b809150509250925092565b6000806040838503121561266e57600080fd5b8235612679816124b1565b915060208301356125a5816124b1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561270f5781600019048211156126f5576126f56126be565b8085161561270257918102915b93841c93908002906126d9565b509250929050565b60008261272657506001610aad565b8161273357506000610aad565b816001811461274957600281146127535761276f565b6001915050610aad565b60ff841115612764576127646126be565b50506001821b610aad565b5060208310610133831016604e8410600b8410161715612792575081810a610aad565b61279c83836126d4565b80600019048211156127b0576127b06126be565b029392505050565b60006114a860ff841683612717565b60008160001904831182151516156127e1576127e16126be565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261280b5761280b6127e6565b500690565b600082821015612822576128226126be565b500390565b60006020828403121561283957600080fd5b81516114a881612569565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561286c57600080fd5b81516114a8816124b1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128c75784516001600160a01b0316835293830193918301916001016128a2565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128fb576128fb6126be565b500190565b60008261290f5761290f6127e6565b500490565b600060018201612926576129266126be565b5060010190565b60008060006060848603121561294257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a26469706673582212202c32edddf546bdb553ef4d5962a597b2853d73c8ff68fe2f5f4f6f70fbcf365464736f6c634300080d003300000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d400000000000000000000000042174c941a7008e4ae81af29839a617d1a0a675000000000000000000000000009f7b26f83835c32bc042e372abd65c2afbe1716000000000000000000000000e39ec2278cb5026ddcb0116f6915dac73d78474c

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

00000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d400000000000000000000000042174c941a7008e4ae81af29839a617d1a0a675000000000000000000000000009f7b26f83835c32bc042e372abd65c2afbe1716000000000000000000000000e39ec2278cb5026ddcb0116f6915dac73d78474c

-----Decoded View---------------
Arg [0] : _joeRouter (address): 0x60ae616a2155ee3d9a68541ba4544862310933d4
Arg [1] : _autoLiquidityReceiver (address): 0x42174c941a7008e4ae81af29839a617d1a0a6750
Arg [2] : _treasuryReceiver (address): 0x09f7b26f83835c32bc042e372abd65c2afbe1716
Arg [3] : _stashInsuranceFundReceiver (address): 0xe39ec2278cb5026ddcb0116f6915dac73d78474c

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d4
Arg [1] : 00000000000000000000000042174c941a7008e4ae81af29839a617d1a0a6750
Arg [2] : 00000000000000000000000009f7b26f83835c32bc042e372abd65c2afbe1716
Arg [3] : 000000000000000000000000e39ec2278cb5026ddcb0116f6915dac73d78474c


Deployed ByteCode Sourcemap

16248:16035:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30630:77;;;;;;;;;;-1:-1:-1;30696:5:0;;;;;;;;;;;;-1:-1:-1;;;30696:5:0;;;;30630:77;;;;;;;:::i;:::-;;;;;;;;17968:31;;;;;;;;;;-1:-1:-1;17968:31:0;;;;-1:-1:-1;;;;;17968:31:0;;;;;;-1:-1:-1;;;;;780:32:1;;;762:51;;750:2;735:18;17968:31:0;616:203:1;28293:207:0;;;;;;;;;;-1:-1:-1;28293:207:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;28293:207:0;1280:187:1;17677:36:0;;;;;;;;;;;;;;;;;;;1618:25:1;;;1606:2;1591:18;17677:36:0;1472:177:1;30334:96:0;;;;;;;;;;-1:-1:-1;30412:12:0;;30334:96;;18004:41;;;;;;;;;;-1:-1:-1;18004:41:0;;;;-1:-1:-1;;;;;18004:41:0;;;17576:96;;;;;;;;;;;;;;;;31864:98;;;;;;;;;;;;;:::i;:::-;;19838;;;;;;;;;;-1:-1:-1;19838:98:0;;;;;:::i;:::-;;:::i;20951:415::-;;;;;;;;;;-1:-1:-1;20951:415:0;;;;;:::i;:::-;;:::i;28619:164::-;;;;;;;;;;;;;:::i;17511:27::-;;;;;;;;;;;;;;;;30248:80;;;;;;;;;;-1:-1:-1;30248:80:0;;;;;:::i;:::-;;:::i;31508:77::-;;;;;;;;;;-1:-1:-1;16445:1:0;31508:77;;;2724:4:1;2712:17;;;2694:36;;2682:2;2667:18;31508:77:0;2552:184:1;16908:49:0;;;;;;;;;;-1:-1:-1;16908:49:0;-1:-1:-1;;16908:49:0;;32072:173;;;;;;;;;;-1:-1:-1;32072:173:0;;;;;:::i;:::-;;:::i;30053:189::-;;;;;;;;;;-1:-1:-1;30053:189:0;;;;;:::i;:::-;;:::i;27992:295::-;;;;;;;;;;-1:-1:-1;27992:295:0;;;;;:::i;:::-;;:::i;16962:39::-;;;;;;;;;;;;17000:1;16962:39;;17850:30;;;;;;;;;;;;;;;;17006:50;;;;;;;;;;;;17046:10;17006:50;;19358:474;;;;;;;;;;;;;:::i;17465:41::-;;;;;;;;;;;;;;;;30436:132;;;;;;;;;;-1:-1:-1;30436:132:0;;;;;:::i;:::-;;:::i;5614:103::-;;;;;;;;;;;;;:::i;28874:65::-;;;;;;;;;;;;;:::i;17348:37::-;;;;;;;;;;;;;;;;28789:79;;;;;;;;;;-1:-1:-1;28835:4:0;28856:6;-1:-1:-1;;;28856:6:0;;;;28855:7;28789:79;;29952:95;;;;;;;;;;-1:-1:-1;29952:95:0;;;;;:::i;:::-;;:::i;29276:428::-;;;;;;;;;;-1:-1:-1;29276:428:0;;;;;:::i;:::-;;:::i;4963:87::-;;;;;;;;;;-1:-1:-1;5009:7:0;5036:6;-1:-1:-1;;;;;5036:6:0;4963:87;;17720:22;;;;;;;;;;-1:-1:-1;17720:22:0;;;;;;;;30816:81;;;;;;;;;;-1:-1:-1;30884:7:0;;;;;;;;;;;;-1:-1:-1;;;30884:7:0;;;;30816:81;;17392:32;;;;;;;;;;;;;;;;17885:35;;;;;;;;;;;;;;;;27533:453;;;;;;;;;;-1:-1:-1;27533:453:0;;;;;:::i;:::-;;:::i;17780:24::-;;;;;;;;;;-1:-1:-1;17780:24:0;;;;;;;;;;;18050:19;;;;;;;;;;-1:-1:-1;18050:19:0;;;;-1:-1:-1;;;;;18050:19:0;;;20781:164;;;;;;;;;;-1:-1:-1;20781:164:0;;;;;:::i;:::-;;:::i;17811:34::-;;;;;;;;;;;;;;;;25580:432;;;;;;;;;;;;;:::i;17543:28::-;;;;;;;;;;;;;;;;17927:36;;;;;;;;;;-1:-1:-1;17927:36:0;;;;-1:-1:-1;;;;;17927:36:0;;;17429:31;;;;;;;;;;;;;;;;27065:218;;;;;;;;;;-1:-1:-1;27065:218:0;;;;;:::i;:::-;;:::i;28506:107::-;;;;;;;;;;-1:-1:-1;28506:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;28588:19:0;28568:4;28588:19;;;:12;:19;;;;;;;;;28506:107;29710:236;;;;;;;;;;-1:-1:-1;29710:236:0;;;;;:::i;:::-;;:::i;28945:325::-;;;;;;;;;;-1:-1:-1;28945:325:0;;;;;:::i;:::-;;:::i;27382:145::-;;;;;;;;;;-1:-1:-1;27382:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;27487:25:0;;;27464:7;27487:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;27382:145;27289:87;;;;;;;;;;-1:-1:-1;27289:87:0;;;;;:::i;:::-;;:::i;26768:291::-;;;;;;;;;;-1:-1:-1;26768:291:0;;;;;:::i;:::-;;:::i;16850:53::-;;;;;;;;;;;;16897:6;16850:53;;17747:28;;;;;;;;;;-1:-1:-1;17747:28:0;;;;;;;;;;;5872:201;;;;;;;;;;-1:-1:-1;5872:201:0;;;;;:::i;:::-;;:::i;18074:24::-;;;;;;;;;;-1:-1:-1;18074:24:0;;;;-1:-1:-1;;;;;18074:24:0;;;18103:41;;;;;;;;;;-1:-1:-1;18103:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;28293:207;28400:10;28369:4;28382:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;28382:38:0;;;;;;;;;;:46;;;28440:36;28369:4;;28382:38;;28440:36;;;;28423:5;1618:25:1;;1606:2;1591:18;;1472:177;28440:36:0;;;;;;;;-1:-1:-1;28490:4:0;28293:207;;;;;:::o;31864:98::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;;;;;;;;;5009:7;5036:6;;31908:48:::1;::::0;-1:-1:-1;;;;;5036:6:0;;;;31934:21:::1;31908:48:::0;::::1;;;::::0;31934:21;;31908:48;5009:7;31908:48;31934:21;5036:6;31908:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;31864:98::o:0;19838:::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;19907:15:::1;:23:::0;19838:98::o;20951:415::-;21080:4;21067:2;-1:-1:-1;;;;;18300:18:0;;18292:27;;;;;;-1:-1:-1;;;;;27487:25:0;;21093:24:::1;27487:25:::0;;;:17;:25;;;;;;;;21136:10:::1;27487:34:::0;;;;;;;;-1:-1:-1;;21158:31:0;::::1;21154:152;;21238:60;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;:16;;21259:5;;21238:20:::1;:60::i;:::-;-1:-1:-1::0;;;;;21200:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;21224:10:::1;21200:35:::0;;;;;;;:98;21154:152:::1;21312:30;21326:4;21332:2;21336:5;21312:13;:30::i;:::-;-1:-1:-1::0;21356:4:0::1;::::0;20951:415;-1:-1:-1;;;;;;20951:415:0:o;28619:164::-;28760:16;;28735:12;:18;;;;16730:42;28672:7;28711:18;;;;;28672:7;;28695:82;;28760:16;;28696:58;;28735:18;28696:34;;16519:13;16445:1;16519:2;:13;:::i;:::-;16505:27;;:11;:27;:::i;:::-;16590:38;;-1:-1:-1;;16590:38:0;:::i;:::-;16575:54;;-1:-1:-1;;16575:54:0;:::i;:::-;28696:14;;:34::i;:58::-;28695:64;;:82::i;:::-;28688:89;;28619:164;:::o;30248:80::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;30307:4:::1;:15:::0;;-1:-1:-1;;;;;;30307:15:0::1;-1:-1:-1::0;;;;;30307:15:0;;;::::1;::::0;;;::::1;::::0;;30248:80::o;32072:173::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;32165:49:::1;::::0;-1:-1:-1;;;32165:49:0;;32195:10:::1;32165:49;::::0;::::1;7780:51:1::0;7847:18;;;7840:34;;;-1:-1:-1;;;;;32165:29:0;::::1;::::0;::::1;::::0;7753:18:1;;32165:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32157:82;;;::::0;-1:-1:-1;;;32157:82:0;;8337:2:1;32157:82:0::1;::::0;::::1;8319:21:1::0;8376:2;8356:18;;;8349:30;-1:-1:-1;;;8395:18:1;;;8388:50;8455:18;;32157:82:0::1;8135:344:1::0;32157:82:0::1;32072:173:::0;;:::o;30053:189::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;31706:17;;30137:62:::1;;;::::0;-1:-1:-1;;;30137:62:0;;8686:2:1;30137:62:0::1;::::0;::::1;8668:21:1::0;8725:2;8705:18;;;8698:30;8764:28;8744:18;;;8737:56;8810:18;;30137:62:0::1;8484:350:1::0;30137:62:0::1;-1:-1:-1::0;;;;;30206:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;30206:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30053:189::o;27992:295::-;28146:10;28074:4;28128:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;28128:38:0;;;;;;;;;;:54;;28171:10;28128:42;:54::i;:::-;28105:10;28087:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;28087:38:0;;;;;;;;;;;;:95;;;28194:69;1618:25:1;;;28087:38:0;;28194:69;;1591:18:1;28194:69:0;1472:177:1;19358:474:0;19404:18;19431:25;19477:19;;19459:15;:37;;;;:::i;:::-;19431:65;;19530:8;19509:17;:30;19505:322;;;-1:-1:-1;;19563:15:0;;;19358:474::o;19505:322::-;19618:8;19596:17;:31;19592:235;;19651:3;19638:16;;19424:408;19358:474;:::o;19592:235::-;19694:20;19672:17;:43;19668:159;;19739:2;19726:15;;19424:408;19358:474;:::o;19668:159::-;19781:12;19759:17;:35;19755:72;;19818:1;19805:14;;19755:72;19424:408;19358:474;:::o;30436:132::-;30545:16;;-1:-1:-1;;;;;30523:17:0;;30500:7;30523:17;;;:12;:17;;;;;;30500:7;;30523:39;;:17;:21;:39::i;5614:103::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;5679:30:::1;5706:1;5679:18;:30::i;:::-;5614:103::o:0;28874:65::-;28921:4;;;;;;;;;-1:-1:-1;;;;;28921:4:0;-1:-1:-1;;;;;28912:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28874:65::o;29952:95::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;30015:19:0::1;;::::0;;;:12:::1;:19;::::0;;;;:26;;-1:-1:-1;;30015:26:0::1;30037:4;30015:26;::::0;;29952:95::o;29276:428::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;29493:12:::1;:28:::0;;;;29528:11:::1;:26:::0;;;;29561:21:::1;:46:::0;;;;29614:7:::1;:18:::0;29639:8:::1;:20:::0;29666:14:::1;:32:::0;29276:428::o;27533:453::-;27670:10;27620:4;27652:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27652:38:0;;;;;;;;;;27701:27;;;27697:185;;27757:10;27780:1;27739:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27739:38:0;;;;;;;;;:42;27697:185;;;27845:29;:8;27858:15;27845:12;:29::i;:::-;27822:10;27804:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27804:38:0;;;;;;;;;:70;27697:185;27902:10;27923:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27893:69:0;;27923:38;;;;;;;;;;;27893:69;;1618:25:1;;;27893:69:0;;27902:10;27893:69;;1591:18:1;27893:69:0;;;;;;;-1:-1:-1;27976:4:0;;27533:453;-1:-1:-1;;;27533:453:0:o;20781:164::-;20872:4;20859:2;-1:-1:-1;;;;;18300:18:0;;18292:27;;;;;;20885:36:::1;20899:10;20911:2;20915:5;20885:13;:36::i;:::-;-1:-1:-1::0;20935:4:0::1;::::0;20781:164;-1:-1:-1;;;;20781:164:0:o;25580:432::-;18366:6;:13;;-1:-1:-1;;;;18366:13:0;-1:-1:-1;;;18366:13:0;;;5194:12:::1;3697:10:::0;;3617:98;5194:12:::1;-1:-1:-1::0;;;;;5183:23:0::1;:7;5009::::0;5036:6;-1:-1:-1;;;;;5036:6:0;;4963:87;5183:7:::1;-1:-1:-1::0;;;;;5183:23:0::1;;5175:68;;;;-1:-1:-1::0;;;5175:68:0::1;;;;;;;:::i;:::-;25703:16:::2;::::0;25692:4:::2;25648:20;25671:27:::0;;;:12:::2;:27;::::0;;;;;25648:20;;25671:49:::2;::::0;:27;:31:::2;:49::i;:::-;25648:72;;25750:1;25735:12;:16;25727:48;;;::::0;-1:-1:-1;;;25727:48:0;;9041:2:1;25727:48:0::2;::::0;::::2;9023:21:1::0;9080:2;9060:18;;;9053:30;-1:-1:-1;;;9099:18:1;;;9092:49;9158:18;;25727:48:0::2;8839:343:1::0;25727:48:0::2;25806:16;::::0;;25820:1:::2;25806:16:::0;;;;;::::2;::::0;;25782:21:::2;::::0;25806:16:::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;25806:16:0::2;25782:40;;25847:4;25829;25834:1;25829:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25829:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;25869:6:::2;::::0;:14:::2;::::0;;-1:-1:-1;;;25869:14:0;;;;:6;;;::::2;::::0;:12:::2;::::0;:14:::2;::::0;;::::2;::::0;25829:7;;25869:14;;;;;:6;:14:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25859:4;25864:1;25859:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25859:24:0;;::::2;:7;::::0;;::::2;::::0;;;;;:24;25890:6:::2;::::0;25972:16:::2;::::0;25890:116:::2;::::0;-1:-1:-1;;;25890:116:0;;:6;;::::2;::::0;:58:::2;::::0;:116:::2;::::0;25949:12;;25890:6:::2;::::0;25966:4;;25972:16;;::::2;::::0;25990:15:::2;::::0;25890:116:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;18403:5:0;18394:14;;-1:-1:-1;;;;18394:14:0;;;-1:-1:-1;;;;25580:432:0:o;27065:218::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;27136:5:::1;27132:146;;;27152:16;:24:::0;;;::::1;;;;-1:-1:-1::0;;27152:24:0;;::::1;;::::0;;27208:15:::1;27185:20;:38:::0;31908:48:::1;31864:98::o:0;27132:146::-:1;27246:16;:24:::0;;;::::1;;;;-1:-1:-1::0;;27246:24:0;;::::1;;::::0;;27065:218;:::o;29710:236::-;29844:16;;29834:4;;-1:-1:-1;;;;;29834:4:0;29778:7;29821:18;;;:12;:18;;;;;;29778:7;;;;29821:40;;:22;:40::i;:::-;29794:67;;29875:65;29917:22;:20;:22::i;:::-;29875:37;29888:23;:16;29909:1;29888:20;:23::i;:::-;29875:8;;:12;:37::i;:65::-;29868:72;29710:236;-1:-1:-1;;;29710:236:0:o;28945:325::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;29112:21:::1;:46:::0;;-1:-1:-1;;;;;29112:46:0;;::::1;-1:-1:-1::0;;;;;;29112:46:0;;::::1;;::::0;;;29165:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;29208:26:::1;:56:::0;;;;;::::1;::::0;::::1;;::::0;;28945:325::o;27289:87::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;27351:12:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;27351:19:0;;::::1;::::0;;;::::1;::::0;;27289:87::o;26768:291::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;26833:5:::1;26829:225;;;26849:10;:18:::0;;-1:-1:-1;;26849:18:0::1;::::0;::::1;;;::::0;;26880:19:::1;::::0;-1:-1:-1;26880:24:0;26876:88:::1;;26939:15;26917:19;:37:::0;26876:88:::1;26990:15;26972;:33:::0;31908:48:::1;31864:98::o:0;26829:225::-:1;27028:10;:18:::0;;;::::1;;-1:-1:-1::0;;27028:18:0;;::::1;;::::0;;26768:291;:::o;5872:201::-;5009:7;5036:6;-1:-1:-1;;;;;5036:6:0;3697:10;5183:23;5175:68;;;;-1:-1:-1;;;5175:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5961:22:0;::::1;5953:73;;;::::0;-1:-1:-1;;;5953:73:0;;10894:2:1;5953:73:0::1;::::0;::::1;10876:21:1::0;10933:2;10913:18;;;10906:30;10972:34;10952:18;;;10945:62;-1:-1:-1;;;11023:18:1;;;11016:36;11069:19;;5953:73:0::1;10692:402:1::0;5953:73:0::1;6037:28;6056:8;6037:18;:28::i;9321:98::-:0;9379:7;9406:5;9410:1;9406;:5;:::i;10458:98::-;10516:7;10543:5;10547:1;10543;:5;:::i;11600:240::-;11720:7;11781:12;11773:6;;;;11765:29;;;;-1:-1:-1;;;11765:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;11816:5:0;;;11600:240::o;21727:927::-;-1:-1:-1;;;;;21861:17:0;;21839:4;21861:17;;;:9;:17;;;;;;;;21860:18;:43;;;;-1:-1:-1;;;;;;21883:20:0;;;;;;:9;:20;;;;;;;;21882:21;21860:43;21852:76;;;;-1:-1:-1;;;21852:76:0;;11559:2:1;21852:76:0;;;11541:21:1;11598:2;11578:18;;;11571:30;-1:-1:-1;;;11617:18:1;;;11610:50;11677:18;;21852:76:0;11357:344:1;21852:76:0;21941:6;;-1:-1:-1;;;21941:6:0;;;;21937:77;;;21965:41;21980:6;21988:9;21999:6;21965:14;:41::i;:::-;21958:48;;;;21937:77;22024:14;:12;:14::i;:::-;22020:45;;;22049:8;:6;:8::i;:::-;22077:20;:18;:20::i;:::-;22073:57;;;22108:14;:12;:14::i;:::-;22142:16;:14;:16::i;:::-;22138:49;;;22169:10;:8;:10::i;:::-;22195:17;22215:28;22226:16;;22215:6;:10;;:28;;;;:::i;:::-;22195:48;;22273:77;22298:9;22273:77;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22273:20:0;;;;;;:12;:20;;;;;;;:77;:24;:77::i;:::-;-1:-1:-1;;;;;22250:20:0;;;;;;:12;:20;;;;;:100;;;;22385:32;22263:6;22407:9;22385:13;:32::i;:::-;:84;;22460:9;22385:84;;;22420:37;22428:6;22436:9;22447;22420:7;:37::i;:::-;-1:-1:-1;;;;;22502:23:0;;;;;;:12;:23;;;;;;22357:112;;-1:-1:-1;22502:46:0;;22357:112;22502:27;:46::i;:::-;-1:-1:-1;;;;;22476:23:0;;;;;;;:12;:23;;;;;:72;;;;22612:16;;22562:68;;;;;;22590:39;;:17;;:21;:39::i;:::-;22562:68;;1618:25:1;;;1606:2;1591:18;22562:68:0;;;;;;;-1:-1:-1;22644:4:0;;21727:927;-1:-1:-1;;;;;21727:927:0:o;9702:98::-;9760:7;9787:5;9791:1;9787;:5;:::i;6233:191::-;6307:16;6326:6;;-1:-1:-1;;;;;6343:17:0;;;-1:-1:-1;;;;;;6343:17:0;;;;;;6376:40;;6326:6;;;;;;;6376:40;;6307:16;6376:40;6296:128;6233:191;:::o;10059:98::-;10117:7;10144:5;10148:1;10144;:5;:::i;21372:349::-;21476:4;21489:17;21509:28;21520:16;;21509:6;:10;;:28;;;;:::i;:::-;21489:48;;21565:75;21588:9;21565:75;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21565:18:0;;;;;;:12;:18;;;;;;;:75;:22;:75::i;:::-;-1:-1:-1;;;;;21544:18:0;;;;;;;:12;:18;;;;;;:96;;;;21666:16;;;;;;;:31;;21687:9;21666:20;:31::i;:::-;-1:-1:-1;;;;;21647:16:0;;;;;;:12;:16;;;;;:50;-1:-1:-1;21711:4:0;;-1:-1:-1;21372:349:0;;;;;:::o;26231:203::-;26298:10;;26278:4;;26298:10;;:41;;;;-1:-1:-1;16686:13:0;16445:1;16686:2;:13;:::i;:::-;16672:27;;:11;:27;:::i;:::-;26313:12;;:25;26298:41;:63;;;;-1:-1:-1;26357:4:0;;-1:-1:-1;;;;;26357:4:0;26343:10;:18;;26298:63;:74;;;;-1:-1:-1;26366:6:0;;-1:-1:-1;;;26366:6:0;;;;26365:7;26298:74;:130;;;;;17046:10;26396:15;;:31;;;;:::i;:::-;26376:15;:52;;26291:137;;26231:203;:::o;20113:662::-;20151:6;;-1:-1:-1;;;20151:6:0;;;;20147:19;;;20113:662::o;20147:19::-;20172:17;20210:15;;20192;:33;;;;:::i;:::-;20172:53;-1:-1:-1;20232:13:0;20248:28;20172:53;17046:10;20248:13;:28::i;:::-;20232:44;-1:-1:-1;20283:13:0;20299;20232:44;20309:2;20299:9;:13::i;:::-;20283:29;;20319:18;20340:15;:13;:15::i;:::-;20390:12;;20319:36;;-1:-1:-1;20364:23:0;20409:144;20433:5;20429:1;:9;20409:144;;;20469:76;20527:17;17000:1;20527:2;:17;:::i;:::-;20469:53;20486:35;20510:10;20487:17;17000:1;20487:2;:17;:::i;:::-;20486:23;;:35::i;:::-;20469:12;;;:16;:53::i;:76::-;20454:12;:91;20440:3;;;;:::i;:::-;;;;20409:144;;;-1:-1:-1;20595:12:0;;20580:28;;16519:13;16445:1;16519:2;:13;:::i;:::-;16505:27;;:11;:27;:::i;:::-;16590:38;;-1:-1:-1;;16590:38:0;:::i;:::-;16575:54;;-1:-1:-1;;16575:54:0;:::i;20580:28::-;20561:16;:47;20633:45;20653:24;:5;17046:10;20653:9;:24::i;:::-;20633:15;;;:19;:45::i;:::-;20615:15;:63;20696:4;;20687:21;;;-1:-1:-1;;;;;;20687:21:0;;;;-1:-1:-1;;;;;20696:4:0;;;;20687:19;;:21;;;;;20696:4;;20687:21;;;;;;;;20696:4;;20687:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20732:5;20722:47;20739:15;20756:12;;20722:47;;;;;;12020:25:1;;;12076:2;12061:18;;12054:34;12008:2;11993:18;;11846:248;20722:47:0;;;;;;;;20140:635;;;;;20113:662::o;26440:196::-;26513:16;;26493:4;;26513:16;;;;;:27;;;;-1:-1:-1;26534:6:0;;-1:-1:-1;;;26534:6:0;;;;26533:7;26513:27;:49;;;;-1:-1:-1;26558:4:0;;-1:-1:-1;;;;;26558:4:0;26544:10;:18;;26513:49;:117;;;;;16897:6;26586:20;;:43;;;;:::i;23578:1090::-;18366:6;:13;;-1:-1:-1;;;;18366:13:0;-1:-1:-1;;;18366:13:0;;;23697:16:::1;::::0;23670:21:::1;::::0;-1:-1:-1;;;;;23670:21:0::1;23657:35:::0;;:12:::1;:35;::::0;;;;;:57:::1;::::0;:39:::1;:57::i;:::-;23796:21;::::0;-1:-1:-1;;;;;23796:21:0::1;23783:35;::::0;;;:12:::1;:35;::::0;;;;;;23772:4:::1;23751:27:::0;;;;;23627:87;;-1:-1:-1;23751:68:0::1;::::0;:27;:31:::1;:68::i;:::-;23742:4;23721:27;::::0;;;:12:::1;:27;::::0;;;;;:98;;;;23839:21:::1;::::0;-1:-1:-1;;;;;23839:21:0::1;23826:35:::0;;;;;:39;;;23898:26:::1;:19:::0;23922:1:::1;23898:23;:26::i;:::-;23872:52:::0;-1:-1:-1;23931:20:0::1;23954:40;:19:::0;23872:52;23954:23:::1;:40::i;:::-;23931:63;;24007:12;24023:1;24007:17:::0;24003:46:::1;;24035:7;;;;;24003:46;24079:16;::::0;;24093:1:::1;24079:16:::0;;;;;::::1;::::0;;24055:21:::1;::::0;24079:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;24079:16:0::1;24055:40;;24120:4;24102;24107:1;24102:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24102:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;24142:6:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;24142:14:0;;;;:6;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;24102:7;;24142:14;;;;;:6;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24132:4;24137:1;24132:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24132:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;24219:6:::1;::::0;:113:::1;::::0;-1:-1:-1;;;24219:113:0;;24189:21:::1;::::0;24219:6;;;::::1;::::0;:58:::1;::::0;:113:::1;::::0;24278:12;;24165:21:::1;::::0;24295:4;;24309::::1;::::0;24316:15:::1;::::0;24219:113:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24341:27;24371:40;24397:13;24371:21;:25;;:40;;;;:::i;:::-;24341:70;;24442:1;24424:15;:19;:46;;;;;24469:1;24447:19;:23;24424:46;24420:198;;;24481:6;::::0;24571:21:::1;::::0;24481:129:::1;::::0;-1:-1:-1;;;24481:129:0;;24541:4:::1;24481:129;::::0;::::1;12440:34:1::0;12490:18;;;12483:34;;;24481:6:0::1;12533:18:1::0;;;12526:34;;;12576:18;;;12569:34;-1:-1:-1;;;;;24571:21:0;;::::1;12619:19:1::0;;;12612:44;24594:15:0::1;12672:19:1::0;;;12665:35;24481:6:0;::::1;::::0;:23:::1;::::0;24512:19;;12374::1;;24481:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24420:198;-1:-1:-1::0;;24647:15:0::1;24624:20;:38:::0;-1:-1:-1;;;;18386:1:0::1;18403:5:::0;18394:14;;-1:-1:-1;;;;18394:14:0;;;23578:1090::o;26642:120::-;26711:12;;26691:4;;26711:12;;;;;:23;;;;-1:-1:-1;26728:6:0;;-1:-1:-1;;;26728:6:0;;;;26727:7;26711:23;:45;;;;-1:-1:-1;;26752:4:0;;-1:-1:-1;;;;;26752:4:0;26738:10;:18;;;26642:120::o;24674:900::-;18366:6;:13;;-1:-1:-1;;;;18366:13:0;-1:-1:-1;;;18366:13:0;;;24774:16:::1;::::0;24763:4:::1;24742:27:::0;;:12:::1;:27;::::0;;;;;:49:::1;::::0;:31:::1;:49::i;:::-;24719:72;;24804:12;24820:1;24804:17:::0;24800:46:::1;;24832:7;;;24800:46;24930:16;::::0;;24944:1:::1;24930:16:::0;;;;;::::1;::::0;;24878:21:::1;::::0;24854::::1;::::0;24930:16;24944:1;24930:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;24930:16:0::1;24906:40;;24971:4;24953;24958:1;24953:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24953:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;24993:6:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;24993:14:0;;;;:6;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;24953:7;;24993:14;;;;;:6;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24983:4;24988:1;24983:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24983:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;25016:6:::1;::::0;:113:::1;::::0;-1:-1:-1;;;25016:113:0;;:6;::::1;::::0;:58:::1;::::0;:113:::1;::::0;25075:12;;25016:6:::1;::::0;25092:4;;25106::::1;::::0;25113:15:::1;::::0;25016:113:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25138:34;25175:40;25201:13;25175:21;:25;;:40;;;;:::i;:::-;25251:16;::::0;25345:21:::1;::::0;25329:11:::1;::::0;25138:77;;-1:-1:-1;25225:12:0::1;::::0;-1:-1:-1;;;;;25251:16:0;;::::1;::::0;25281:87:::1;::::0;25329:38:::1;::::0;:11;:15:::1;:38::i;:::-;25312:11;::::0;25281:43:::1;::::0;:26;;:30:::1;:43::i;:87::-;25243:142;::::0;25375:5:::1;::::0;25243:142;::::1;::::0;;;;;25375:5;25243:142:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;25414:26:0::1;::::0;25528:21:::1;::::0;25512:11:::1;::::0;25224:161;;-1:-1:-1;;;;;;25414:26:0;;::::1;::::0;25454:97:::1;::::0;25512:38:::1;::::0;:11;:15:::1;:38::i;:::-;25485:21;::::0;25454:53:::1;::::0;:26;;:30:::1;:53::i;:97::-;25406:162;::::0;25558:5:::1;::::0;25406:162;::::1;::::0;;;;;25558:5;25406:162:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;18403:5:0;18394:14;;-1:-1:-1;;;;18394:14:0;;;24674:900::o;26018:207::-;-1:-1:-1;;;;;26107:18:0;;26090:4;26107:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;26129:16:0;;;;;;:12;:16;;;;;;;;26107:38;26103:73;;;-1:-1:-1;26163:5:0;26156:12;;26103:73;26192:4;;-1:-1:-1;;;;;26192:12:0;;;:4;;:12;;:26;;-1:-1:-1;;26208:4:0;;-1:-1:-1;;;;;26208:10:0;;;:4;;:10;;26018:207;-1:-1:-1;26018:207:0:o;22660:912::-;22805:8;;22843:11;;22880:4;;22769:7;;22805:8;22843:11;-1:-1:-1;;;;;22880:4:0;;;22867:17;;;;22863:121;;22920:7;;22907:8;;:21;;:12;:21::i;:::-;22895:33;;22952:24;22968:7;;22952:11;;:15;;:24;;;;:::i;:::-;22937:39;;22863:121;22992:17;23012:44;23046:9;23012:29;23026:14;;23012:9;:13;;:29;;;;:::i;:::-;:33;;:44::i;:::-;22992:64;;23106:67;23129:43;23163:8;;23129:29;23143:14;;23129:9;:13;;:29;;;;:::i;:43::-;16730:42;23106:18;;:12;:18;;;;;:22;:67::i;:::-;16730:42;23085:18;;:12;:18;;;:88;23293:21;;23210:107;;23242:74;;23276:39;;:12;;:16;:39::i;:::-;23256:14;;23242:29;;:9;;:13;:29::i;:74::-;23231:4;23210:27;;;;:12;:27;;;;;;;:31;:107::i;:::-;23201:4;23180:27;;;;:12;:27;;;;;:137;23436:12;;23416:14;;23362:88;;23402:47;;:29;;:9;;:13;:29::i;:47::-;23375:21;;-1:-1:-1;;;;;23375:21:0;23362:35;;;;:12;:35;;;;;;;:39;:88::i;:::-;23337:21;;-1:-1:-1;;;;;23337:21:0;;;23324:35;;;;:12;:35;;;;;:126;;;;23510:16;;23489:4;;23464:64;;;;;23496:31;;:9;;:13;:31::i;:::-;23464:64;;1618:25:1;;;1606:2;1591:18;23464:64:0;;;;;;;23542:24;:9;23556;23542:13;:24::i;:::-;23535:31;22660:912;-1:-1:-1;;;;;;;22660:912:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;960:315;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1654:180::-;1713:6;1766:2;1754:9;1745:7;1741:23;1737:32;1734:52;;;1782:1;1779;1772:12;1734:52;-1:-1:-1;1805:23:1;;1654:180;-1:-1:-1;1654:180:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:382;2929:6;2937;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;-1:-1:-1;3171:2:1;3156:18;;3143:32;3184:30;3143:32;3184:30;:::i;:::-;3233:7;3223:17;;;2864:382;;;;;:::o;3251:523::-;3355:6;3363;3371;3379;3387;3395;3448:3;3436:9;3427:7;3423:23;3419:33;3416:53;;;3465:1;3462;3455:12;3416:53;-1:-1:-1;;3488:23:1;;;3558:2;3543:18;;3530:32;;-1:-1:-1;3609:2:1;3594:18;;3581:32;;3660:2;3645:18;;3632:32;;-1:-1:-1;3711:3:1;3696:19;;3683:33;;-1:-1:-1;3763:3:1;3748:19;3735:33;;-1:-1:-1;3251:523:1;-1:-1:-1;3251:523:1:o;3779:241::-;3835:6;3888:2;3876:9;3867:7;3863:23;3859:32;3856:52;;;3904:1;3901;3894:12;3856:52;3943:9;3930:23;3962:28;3984:5;3962:28;:::i;4025:529::-;4102:6;4110;4118;4171:2;4159:9;4150:7;4146:23;4142:32;4139:52;;;4187:1;4184;4177:12;4139:52;4226:9;4213:23;4245:31;4270:5;4245:31;:::i;:::-;4295:5;-1:-1:-1;4352:2:1;4337:18;;4324:32;4365:33;4324:32;4365:33;:::i;:::-;4417:7;-1:-1:-1;4476:2:1;4461:18;;4448:32;4489:33;4448:32;4489:33;:::i;:::-;4541:7;4531:17;;;4025:529;;;;;:::o;4559:388::-;4627:6;4635;4688:2;4676:9;4667:7;4663:23;4659:32;4656:52;;;4704:1;4701;4694:12;4656:52;4743:9;4730:23;4762:31;4787:5;4762:31;:::i;:::-;4812:5;-1:-1:-1;4869:2:1;4854:18;;4841:32;4882:33;4841:32;4882:33;:::i;5178:356::-;5380:2;5362:21;;;5399:18;;;5392:30;5458:34;5453:2;5438:18;;5431:62;5525:2;5510:18;;5178:356::o;5539:127::-;5600:10;5595:3;5591:20;5588:1;5581:31;5631:4;5628:1;5621:15;5655:4;5652:1;5645:15;5671:422;5760:1;5803:5;5760:1;5817:270;5838:7;5828:8;5825:21;5817:270;;;5897:4;5893:1;5889:6;5885:17;5879:4;5876:27;5873:53;;;5906:18;;:::i;:::-;5956:7;5946:8;5942:22;5939:55;;;5976:16;;;;5939:55;6055:22;;;;6015:15;;;;5817:270;;;5821:3;5671:422;;;;;:::o;6098:806::-;6147:5;6177:8;6167:80;;-1:-1:-1;6218:1:1;6232:5;;6167:80;6266:4;6256:76;;-1:-1:-1;6303:1:1;6317:5;;6256:76;6348:4;6366:1;6361:59;;;;6434:1;6429:130;;;;6341:218;;6361:59;6391:1;6382:10;;6405:5;;;6429:130;6466:3;6456:8;6453:17;6450:43;;;6473:18;;:::i;:::-;-1:-1:-1;;6529:1:1;6515:16;;6544:5;;6341:218;;6643:2;6633:8;6630:16;6624:3;6618:4;6615:13;6611:36;6605:2;6595:8;6592:16;6587:2;6581:4;6578:12;6574:35;6571:77;6568:159;;;-1:-1:-1;6680:19:1;;;6712:5;;6568:159;6759:34;6784:8;6778:4;6759:34;:::i;:::-;6829:6;6825:1;6821:6;6817:19;6808:7;6805:32;6802:58;;;6840:18;;:::i;:::-;6878:20;;6098:806;-1:-1:-1;;;6098:806:1:o;6909:140::-;6967:5;6996:47;7037:4;7027:8;7023:19;7017:4;6996:47;:::i;7054:168::-;7094:7;7160:1;7156;7152:6;7148:14;7145:1;7142:21;7137:1;7130:9;7123:17;7119:45;7116:71;;;7167:18;;:::i;:::-;-1:-1:-1;7207:9:1;;7054:168::o;7227:127::-;7288:10;7283:3;7279:20;7276:1;7269:31;7319:4;7316:1;7309:15;7343:4;7340:1;7333:15;7359:112;7391:1;7417;7407:35;;7422:18;;:::i;:::-;-1:-1:-1;7456:9:1;;7359:112::o;7476:125::-;7516:4;7544:1;7541;7538:8;7535:34;;;7549:18;;:::i;:::-;-1:-1:-1;7586:9:1;;7476:125::o;7885:245::-;7952:6;8005:2;7993:9;7984:7;7980:23;7976:32;7973:52;;;8021:1;8018;8011:12;7973:52;8053:9;8047:16;8072:28;8094:5;8072:28;:::i;9319:127::-;9380:10;9375:3;9371:20;9368:1;9361:31;9411:4;9408:1;9401:15;9435:4;9432:1;9425:15;9451:251;9521:6;9574:2;9562:9;9553:7;9549:23;9545:32;9542:52;;;9590:1;9587;9580:12;9542:52;9622:9;9616:16;9641:31;9666:5;9641:31;:::i;9707:980::-;9969:4;10017:3;10006:9;10002:19;10048:6;10037:9;10030:25;10074:2;10112:6;10107:2;10096:9;10092:18;10085:34;10155:3;10150:2;10139:9;10135:18;10128:31;10179:6;10214;10208:13;10245:6;10237;10230:22;10283:3;10272:9;10268:19;10261:26;;10322:2;10314:6;10310:15;10296:29;;10343:1;10353:195;10367:6;10364:1;10361:13;10353:195;;;10432:13;;-1:-1:-1;;;;;10428:39:1;10416:52;;10523:15;;;;10488:12;;;;10464:1;10382:9;10353:195;;;-1:-1:-1;;;;;;;10604:32:1;;;;10599:2;10584:18;;10577:60;-1:-1:-1;;;10668:3:1;10653:19;10646:35;10565:3;9707:980;-1:-1:-1;;;9707:980:1:o;11099:128::-;11139:3;11170:1;11166:6;11163:1;11160:13;11157:39;;;11176:18;;:::i;:::-;-1:-1:-1;11212:9:1;;11099:128::o;11232:120::-;11272:1;11298;11288:35;;11303:18;;:::i;:::-;-1:-1:-1;11337:9:1;;11232:120::o;11706:135::-;11745:3;11766:17;;;11763:43;;11786:18;;:::i;:::-;-1:-1:-1;11833:1:1;11822:13;;11706:135::o;12711:306::-;12799:6;12807;12815;12868:2;12856:9;12847:7;12843:23;12839:32;12836:52;;;12884:1;12881;12874:12;12836:52;12913:9;12907:16;12897:26;;12963:2;12952:9;12948:18;12942:25;12932:35;;13007:2;12996:9;12992:18;12986:25;12976:35;;12711:306;;;;;:::o

Swarm Source

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