Contract 0xBF651c2Cb1932418c4d8D99Ba249ADb3f472049c

 

Contract Overview

Revive Project: PULSE Token
Balance:
0 BNB

BNB Value:
$0.00
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc6bf4cbdbfa6b63811e8e612325874766468d26906ce0830efffa443140df915Approve118154812021-10-16 6:40:026 days 9 hrs ago0xd3275f3ea7cc4ffb992fa4e850976023dcb6d3fe IN  Revive Project: PULSE Token0 BNB0.00022175
0x7c5bc10c93871b9c9941f4ee893ad00bb3c46fee019f34a8381cf2135fa91c15Approve117987762021-10-15 16:41:416 days 23 hrs ago0xafb291e05db0f3c375cc1faa937b408ae41a67b7 IN  Revive Project: PULSE Token0 BNB0.00022175
0x3600fcc5d681a2c33133247d37ee524f7130d4487ff4077c21552e98e6213deaApprove115193052021-10-05 22:04:5716 days 18 hrs ago0x5624b5117c52e78f2c92780ed0e5fa042748f29e IN  Revive Project: PULSE Token0 BNB0.00022175
0xe9eadf27deb8729487ccd5f746e530a9d14d26db71752a842a53ed0582535aaeApprove114874832021-10-04 19:32:0317 days 20 hrs ago0x321f8538d90386357cef2bd41c89e5abb967a60d IN  Revive Project: PULSE Token0 BNB0.00022175
0xddf2f83956254373282844f1f081946ed43f0fedfa5647d7bbfe392c1461d28cApprove114870462021-10-04 19:10:1217 days 21 hrs ago0x0687d9687c79a5b5e87571b874fa75d16edde958 IN  Revive Project: PULSE Token0 BNB0.00012575
0x8f3c4b837b1de9cb84367f841a4ee0a5a5b47938527ec00065d6903c59cea494Approve114870402021-10-04 19:09:5417 days 21 hrs ago0x0687d9687c79a5b5e87571b874fa75d16edde958 IN  Revive Project: PULSE Token0 BNB0.00022175
0x3cb09f5e0f1d4ed2111c2b1a81eab17d7a7692472bdcec3afaed4c3934c40077Approve114870142021-10-04 19:08:3617 days 21 hrs ago0xa0b58e726ba72a849dbbd55341dcc01ef9994054 IN  Revive Project: PULSE Token0 BNB0.00022175
0x7870d8c57cb2cb8ab83c0b6a24915ec5126fc1e840629d072b6a0fe5a96cf50eApprove114754192021-10-04 9:27:5018 days 6 hrs ago0xb3fb4405ebf507b6bc44492173e3f2d8911507fc IN  Revive Project: PULSE Token0 BNB0.00022175
0xd9bf9cb8fd19b8fc6d9888d341c68b492f97bebc8b637a0acd44d816ec902cb2Approve114714622021-10-04 6:09:5618 days 10 hrs ago0x979fde767143d219e90352dfbb04c9ffd4cfd940 IN  Revive Project: PULSE Token0 BNB0.00022175
0xb7b4ca82c4b9c176deb81661e8e9dab53d09f39715ef5f6e52cceac6c3659d3cApprove114564332021-10-03 17:35:3518 days 22 hrs ago0x27b6b7245f0df46f5ce35658b2aeeb97d0f64912 IN  Revive Project: PULSE Token0 BNB0.0004435
0x26edd56ca6dfa3a69a1bc43e4c072159a961a9ce2ff4b29b02b6330ad7273bb8Approve113969152021-10-01 15:29:5421 days 55 mins ago0x4a3e82bf771f74fafbf56000e1f5f812436d90ad IN  Revive Project: PULSE Token0 BNB0.00022175
0xf0fa4d178b8bbcdbf567e6dccb745c83aedaa30e8472dfacf0cb2f3363b9ad09Approve113965392021-10-01 15:10:5621 days 1 hr ago0x7b28f67d9398b02cbaf9b3cecf9c014a48f4e2a9 IN  Revive Project: PULSE Token0 BNB0.00022175
0x0376e7b2f50fdb896184609fc10b750e249eabd7d8ad8a79eca47c45260cc7c5Approve113965382021-10-01 15:10:5321 days 1 hr ago0x16f536b1280ba02e56d26dbb7edb6d23545746c3 IN  Revive Project: PULSE Token0 BNB0.00022175
0x9890d84e1a14d6afa4cacf5da168074b172e6b2f4dcd723d3a6bfbad34362e94Transfer113951632021-10-01 14:01:1621 days 2 hrs ago0xac67b25c5a241fef25ec85017fac13c90cffeebd IN  Revive Project: PULSE Token0 BNB0.0005
0x30cdbef84a7d150013e0f90e02c24342bc39b0f363a83933df208f886bd619b8Transfer113951532021-10-01 14:00:4621 days 2 hrs ago0xac67b25c5a241fef25ec85017fac13c90cffeebd IN  Revive Project: PULSE Token0 BNB0.0005
0x22f2298256337547704685eed9a87769b60272978b0bd746b1147d78714c08b4Transfer113951202021-10-01 13:59:0721 days 2 hrs ago0xac67b25c5a241fef25ec85017fac13c90cffeebd IN  Revive Project: PULSE Token0 BNB0.000500015
0xb30d6dcab046345e075763587eb7cbb17c352a043e1b149f5c44240231b73c97Approve113920302021-10-01 11:22:4221 days 5 hrs ago0x313e436c19a4a8fea1bdb019fd4cc3a493aa9d94 IN  Revive Project: PULSE Token0 BNB0.00022175
0x68decd75a73aad4e761c93294c16e9ab885b65b51fed337f4bc7aa9552906b69Approve113872902021-10-01 7:23:3921 days 9 hrs ago0x5aea3e79e688dfad063ab14e3418ad92d7c7d476 IN  Revive Project: PULSE Token0 BNB0.00022175
0x41a821e46df7b04a551c8cea7a368d027510df33ab3b0305a535186a6da6e6e2Approve113760052021-09-30 21:54:1921 days 18 hrs ago0xdcc060c5e19ee93d8ab830a558db28d36c1e5f87 IN  Revive Project: PULSE Token0 BNB0.00022175
0x79d0b434507cd2bdad5dbfe4a3d0a6487b176bfb5455d0023cc58e43b707bb68Transfer113734782021-09-30 19:47:4921 days 20 hrs ago0xac67b25c5a241fef25ec85017fac13c90cffeebd IN  Revive Project: PULSE Token0 BNB0.0127982
0xb6d41a98ee3a8894fbd1c2b86372d2dc0341c1d26335ca66c0eab0e660e1a32bInclude In Fee113721632021-09-30 18:41:2321 days 21 hrs ago0xb4d11f3e2c09753b06c3a459850aac1fc5896fd2 IN  Revive Project: PULSE Token0 BNB0.000071645
0x4fd5e4387fe485e38cd3d0a26ea1253635057ad36a1c576c8cc713f8bd30d6f0Transfer113715502021-09-30 18:10:3621 days 22 hrs ago0x321f8538d90386357cef2bd41c89e5abb967a60d IN  Revive Project: PULSE Token0 BNB0.01262487
0x17c74d8083c286a866bacedaa59df3dc5eab68cbf04ed1a13e23ba46f70eb937Transfer113714572021-09-30 18:05:5021 days 22 hrs ago0x321f8538d90386357cef2bd41c89e5abb967a60d IN  Revive Project: PULSE Token0 BNB0.01550487
0x09b35d78a2fbfc1558c116f741f4666dc31615e995471d0afe355f031e205f3aSet Revive Launc...113713872021-09-30 18:02:2021 days 22 hrs ago0xb4d11f3e2c09753b06c3a459850aac1fc5896fd2 IN  Revive Project: PULSE Token0 BNB0.000150305
0x6bb6633949e21ed3ed5d90589d58e501085e03e58f1556b64abd77d90faceed1Transfer113711362021-09-30 17:49:4721 days 22 hrs ago0x321f8538d90386357cef2bd41c89e5abb967a60d IN  Revive Project: PULSE Token0 BNB0.001073825
[ Download CSV Export 

OVERVIEW

The Revive Project is a revolutionary platform that will allow the blockchain community to come together to invest in crypto and develop exciting NFT projects. Revive has created an unique ecosystem for NFT and crypto investments, governed by its native utility token, PULSE.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pulse

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 11 : Pulse.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

//openzeppelin contracts
import "./openzeppelin/contracts/token/IToken.sol";
import "./openzeppelin/contracts/token/IERC20.sol";
import "./openzeppelin/contracts/libraries/SafeMath.sol";
import "./openzeppelin/contracts/libraries/Ownable.sol";

//uniswap contracts
import "./pancakeswap/interfaces/IPancakeFactory.sol";
import "./pancakeswap/interfaces/IPancakePair.sol";
import "./pancakeswap/interfaces/IPancakeRouter01.sol";
import "./pancakeswap/interfaces/IPancakeRouter02.sol";

//minter contract
import "./minter/IPulseManager.sol";


//    #PULSE features:
//    5% Revive Basket: 
//    The owner will be able to define an arbitrary number of tokens, each with a corresponding weight. 
//    Each time a transfer is done, the 5% commission that is meant for the Revive basket will be used to buy these tokens 
//    from Pancake Swap according to their corresponding weight. After the contract buys the revive basket tokens, it will hold
//    the resulting LP. 

// 	A function will be implemented, and callable by the owner, which will redeem a specific LP, sell the obtained tokens for BNB, 
//     then use the BNB to acquire PULSE from Pancake Swap and distribute the resulting PULSE to all the PULSE holders proportional 
//     to their holdings.

//     2% Revive Launchdome:
//     There will be a revive launchdome wallet, changeable by the owner, which will receive 2% of the transferred token.

//     3% Pancake Swap Liquidity:
//     2% of the transferred amount will be used to add liquidity to the BNB <> PULSE pair in pancake swap. In this process, 
//     the contract will buy the proper amount of BNB (~equiv. with 1% of the transaction amount) and place them as liquidity in the 
//     Pancake Swap Pair, together with the remaining amount of the allocated 2%. The resulting LP will be held by the contract.
//     We will add a function which redeems the liquidity, sells the BNB for Pulse and burns the resulting pulse.


//     1% Distribution:
//     1% will be distributed among all the token holders

 


contract Pulse is Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isExcluded;
    mapping(address => bool) public isExcludedFromFee;
    address[] private _excluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 10**9; 
    //maximum supply starts with 10^9 and can grow to 10*18 
    uint256 private _rTotal = (MAX - (MAX % 10**18)) / 10**9;
    uint256 private _tFeeTotal;

    string private constant _name = "Pulse";
    string private constant _symbol = "PULSE";
    uint8 private constant _decimals = 9;

    address private pancakeSwapRouterAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;

    //declaring fee percentages 
    uint256 public _taxFee = 1;
    uint256 private _previousTaxFee = _taxFee;

    uint256 public _liquidityFee = 2;
    uint256 private _previousLiquidityFee = _liquidityFee;

    uint256 public _reviveLaunchDomeFee = 2;
    uint256 private _previousReviveLaunchDomeFee = _reviveLaunchDomeFee;
    address private reviveLaunchDomeAddress;

    uint256 public _reviveBasketFee = 5;
    uint256 private _previousReviveBasketFee = _reviveBasketFee;

    IPancakeRouter02 public immutable pancakeSwapRouter;
    address public pancakeSwapPair;

    address public immutable minterAddress;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    uint256 public _maxTxAmount = 10**30;
    uint256 reviveBasketFeeToHandle=0;
    bool shouldTransfer = false;

    uint256 creationTime;

    struct Values {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rFee;
        uint256 rReviveLaunchDomeFee;
        uint256 rReviveBasketFee;
        uint256 tTransferAmount;
        uint256 tFee;
        uint256 tLiquidity;
        uint256 tReviveLaunchDomeFee;
        uint256 tReviveBasketFee;
    }

    //used to block all transactions while public sale is taking place
    modifier isTransfer {
        require(
            shouldTransfer,
            "Public sale: Transactions are stopped until the end of public sale"
        );
        _;
    }

    //checks if the address that called the function is the contract who handles the minting
    modifier onlyMinter {
        require(_msgSender() == minterAddress, "Mint: you are not the minter!");
        _;
    }

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    modifier checkFeeSum {
        _;
        require(_taxFee.add(_liquidityFee.add(_reviveBasketFee).add(_reviveLaunchDomeFee)) <= 10, "Pulse: the sum of fees should be less or equal to ten");
    }

    //declaring events that are occuring in this contract
    event Mint(address to, uint256 amount);
    event Approval(address owner, address spender, uint256 amount);
    event Transfer(address sender, address recipient, uint256 amount);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 bnbReceived,
        uint256 tokensIntoLiquidity
    );
    event SetReviveLaunchDomeAddress(address indexed user, address _reviveLaunchDomeAddress);
    // event SetTaxFeePercent(address indexed user, uint256 taxFee);
    // event SetLiquidityFeePercent(address indexed user, uint256 liquidityFee);
    // event SetReviveLaunchDomeFeePercent(address indexed user, uint256 reviveLaunchDomeFee);
    // event SetReviveBasketFeePercent(address indexed user, uint256 reviveBasketFee);
    event SetMaxTxPercent(address indexed user, uint256 maxTxPercent);
    //event ResumeTransactions(address indexed user);

    constructor(address _minterAddress, address _pancakeSwapRouterAddress) public {
        pancakeSwapRouterAddress = _pancakeSwapRouterAddress;

        IPancakeRouter02 _pancakeSwapRouter = IPancakeRouter02(
            _pancakeSwapRouterAddress
        );

        // Create a uniswap pair for this new token
        pancakeSwapPair = IPancakeFactory(_pancakeSwapRouter.factory())
        .createPair(address(this), _pancakeSwapRouter.WETH());
        // set the rest of the contract variables
        pancakeSwapRouter = _pancakeSwapRouter;

        minterAddress = _minterAddress;
        reviveLaunchDomeAddress = owner();

        //exclude owner, this contract, router and pair
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[_minterAddress] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[pancakeSwapRouterAddress] = true;

        _rOwned[owner()]=_rTotal;
        _tOwned[owner()]=_tTotal;

        creationTime = block.timestamp;
    }

    function getPair() public view returns(address) {
        return pancakeSwapPair;
    }

    receive() external payable {}

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

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

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

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

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setReviveLaunchDomeAddress(address _reviveLaunchDomeAddress)
        public
        onlyOwner
    {
        reviveLaunchDomeAddress = _reviveLaunchDomeAddress;
        emit SetReviveLaunchDomeAddress(_msgSender(), _reviveLaunchDomeAddress);
    }

    function balanceOf(address account) public view returns (uint256) {
        if (isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

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

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

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

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

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

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function deliver(uint256 tAmount) public  {
        require(!isExcluded[_msgSender()], "Sender is excluded!");
        address sender = _msgSender();
        uint256 currentRate = _getRate();
        _rOwned[sender] = _rOwned[sender].sub(tAmount.mul(currentRate));
        _rTotal = _rTotal.sub(tAmount.mul(currentRate));
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        Values memory values = _getValues(tAmount);
        if (!deductTransferFee) {
            return values.rAmount;
        } else {
            return values.rTransferAmount;
        }
    }

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

    function excludeFromReward(address _account) external onlyOwner {
        // require(account != 0xD99D1c33F9fC3444f8101754aBC46c52416550D1, 'We can not exclude Uniswap router.');
        require(!isExcluded[_account], "Account is already excluded");
        if (_rOwned[_account] > 0) {
            _tOwned[_account] = tokenFromReflection(_rOwned[_account]);
        }
        isExcluded[_account] = true;
        _excluded.push(_account);
    }

    function includeInReward(address _account) external onlyOwner {
        require(isExcluded[_account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == _account) {
                _excluded[i] = _excluded[_excluded.length.sub(1)];
                _tOwned[_account] = 0;
                isExcluded[_account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function excludeFromFee(address _account) external onlyOwner {
        // require(account != 0xD99D1c33F9fC3444f8101754aBC46c52416550D1, 'We can not exclude Uniswap router.');        
        isExcludedFromFee[_account] = true;
    }

    function includeInFee(address _account) external onlyOwner {
        isExcludedFromFee[_account] = false;
    }

    function setTaxFeePercent(uint256 taxFee) external checkFeeSum onlyOwner {
        _taxFee = taxFee;
        //emit SetTaxFeePercent(_msgSender(), taxFee);
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external checkFeeSum onlyOwner {
        _liquidityFee = liquidityFee;
        //emit SetLiquidityFeePercent(_msgSender(), liquidityFee);
    }

    function setReviveLaunchDomeFeePercent(uint256 reviveLaunchDomeFee) external checkFeeSum onlyOwner {
        _reviveLaunchDomeFee = reviveLaunchDomeFee;
        //emit SetReviveLaunchDomeFeePercent(_msgSender(), reviveLaunchDomeFee);
    }

    function setReviveBasketFeePercent(uint256 reviveBasketFee) external checkFeeSum onlyOwner {
        _reviveBasketFee = reviveBasketFee;
        //emit SetReviveBasketFeePercent(_msgSender(), reviveBasketFee);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner {
        _maxTxAmount = _tTotal.mul(maxTxPercent) / 10**2;
        emit SetMaxTxPercent(_msgSender(), maxTxPercent);
    }

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

    function _getValues(uint256 tAmount) private view returns (Values memory) {
        Values memory values;
        (
            values.tTransferAmount,
            values.tFee,
            values.tReviveLaunchDomeFee,
            values.tLiquidity,
            values.tReviveBasketFee
        ) = _getTValues(tAmount);
        (
            values.rAmount,
            values.rTransferAmount,
            values.rFee,
            values.rReviveLaunchDomeFee,
            values.rReviveBasketFee
        ) = _getRValues(
            tAmount,
            values.tFee,
            values.tReviveLaunchDomeFee,
            values.tReviveBasketFee,
            values.tLiquidity,
            _getRate()
        );
        return (values);
    }

    function _getTValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tTransferAmount = tAmount.sub(_calculateFee(tAmount, _taxFee));
        tTransferAmount = tTransferAmount.sub(
            _calculateFee(tAmount, _liquidityFee)
        );
        tTransferAmount = tTransferAmount.sub(
            _calculateFee(tAmount, _reviveLaunchDomeFee)
        );
        tTransferAmount = tTransferAmount.sub(
            _calculateFee(tAmount, _reviveBasketFee)
        );
        return (
            tTransferAmount,
            _calculateFee(tAmount, _taxFee),
            _calculateFee(tAmount, _reviveLaunchDomeFee),
            _calculateFee(tAmount, _liquidityFee),
            _calculateFee(tAmount, _reviveBasketFee)
        );
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tReviveLaunchDomeFee,
        uint256 tReviveBasketFee,
        uint256 tLiquidity,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rTransferAmount = tAmount.mul(currentRate);
        rTransferAmount = rTransferAmount.sub(tFee.mul(currentRate));
        rTransferAmount = rTransferAmount.sub(tLiquidity.mul(currentRate));
        rTransferAmount = rTransferAmount.sub(
            tReviveLaunchDomeFee.mul(currentRate)
        );
        rTransferAmount = rTransferAmount.sub(
            tReviveBasketFee.mul(currentRate)
        );
        return (
            tAmount.mul(currentRate),
            rTransferAmount,
            tFee.mul(currentRate),
            tReviveLaunchDomeFee.mul(currentRate),
            tReviveBasketFee.mul(currentRate)
        );
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if ( 
                _rOwned[_excluded[i]] > rSupply ||
                _tOwned[_excluded[i]] > tSupply
            ) {
                
                return (_rTotal, _tTotal);
            } 
            
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        
        if (rSupply < _rTotal.div(_tTotal)){
            return (_rTotal, _tTotal);
        }  
        return (rSupply, tSupply);
    }

    
    // Used to deposit "tLiquidity" amount of Pulse in the balance of this contract where
    // "tLiquidity" is "_liquidityFee" percentage of the amount that is being transfered 
    
    function _takeLiquidity(uint256 tLiquidity) private {
        _rOwned[address(this)] = _rOwned[address(this)].add(tLiquidity.mul(_getRate()));
        if (isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }

    
    // Used to deposit "tReviveLaunchDomeFee" amount of Pulse in the balance of this contract where
    // "tReviveLaunchDomeFee" is "_reviveLaunchDomeFee" percentage of the amount that is being transfered
    
    function _takeReviveLaunchDomeFee(
        uint256 tReviveLaunchDomeFee
    ) private {
        _rOwned[reviveLaunchDomeAddress] = _rOwned[reviveLaunchDomeAddress].add(
            tReviveLaunchDomeFee.mul(_getRate())
        );
        if (isExcluded[reviveLaunchDomeAddress]) {
            _tOwned[reviveLaunchDomeAddress] = _tOwned[reviveLaunchDomeAddress]
            .add(tReviveLaunchDomeFee);
        }
    }

    // Used to deposit "tReviveBasketFee" amount of Pulse in the balance of this contract where
    // "tReviveBasketFee" is "_reviveBasketFee" percentage of the amount that is being transfered 
    // and revive basket functionality is called if "tReviveBasketFee" is greater than 0
    
    function _takeReviveBasketFee(
        uint256 tReviveBasketFee
    ) private {
        _rOwned[minterAddress] = _rOwned[minterAddress].add(tReviveBasketFee.mul(_getRate()));
        if(isExcluded[minterAddress]){
             _tOwned[minterAddress] = _tOwned[minterAddress].add(tReviveBasketFee);
        }
        if(tReviveBasketFee > 0) {
            reviveBasketFeeToHandle=reviveBasketFeeToHandle.add(tReviveBasketFee);
        }
    }

    //returns "_tax" percentage of "_amount"
    function _calculateFee(uint256 _amount, uint256 _tax)
        private
        pure
        returns (uint256)
    {
        return _amount.mul(_tax) / 10**2;
    }

    //used to remove all the fees that are being charged when a transfer is taking place
    function _removeAllFee() private {
        if (_taxFee == 0 && _liquidityFee == 0) return;

        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;
        _previousReviveLaunchDomeFee = _reviveLaunchDomeFee;
        _previousReviveBasketFee = _reviveBasketFee;

        _taxFee = 0;
        _liquidityFee = 0;
        _reviveLaunchDomeFee = 0;
        _reviveBasketFee = 0;
    }

    //used to restore all the fees after a transfer that didn't charged any fee had occured
    function _restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
        _reviveLaunchDomeFee = _previousReviveLaunchDomeFee;
        _reviveBasketFee = _previousReviveBasketFee;
    }

    function mint(address to, uint256 amount) external onlyMinter {
        _mint(to, amount);
    }

    function _mint(address to, uint256 amount) private {
        require(to != address(0), "Mint: mint to the zero address.");
        require(amount > 0, "Mint: mint amount must be greater than zero.");
        if (isExcluded[to]) {        
            _rOwned[to] = _rOwned[to].add(amount.mul(_getRate()));
            _tOwned[to] = _tOwned[to].add(amount);  
        } else {
            _rOwned[to] = _rOwned[to].add(amount.mul(_getRate()));
        }
        _rTotal = _rTotal.add(amount.mul(_getRate()));
        _tTotal = _tTotal.add(amount);

        emit Mint(to, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (from != owner() && to != owner())
            require(
                amount <= _maxTxAmount,
                "Transfer amount exceeds the maxTxAmount."
            );
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender and receiver is excluded.
        uint256 contractTokenBalance = balanceOf(address(this));
        if (contractTokenBalance >= _maxTxAmount) {
            contractTokenBalance = _maxTxAmount;
        }
        if (
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            from != pancakeSwapPair &&
            to != pancakeSwapPair &&
            from != minterAddress &&
            to != minterAddress &&
            contractTokenBalance > 0
        ) {            
            _swapAndLiquify(contractTokenBalance); 
            IPulseManager minter = IPulseManager(minterAddress);
            minter.handleReviveBasket(reviveBasketFeeToHandle);    
            reviveBasketFeeToHandle=0;      
        }

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcluded account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
            takeFee = false;
        }
        //transfer amount, it will take tax, burn, liquidity, revive launch dome, revive basket fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

        _rOwned[minterAddress] = _rOwned[minterAddress].add(contractTokenBalance.mul(_getRate()));
        if(isExcluded[minterAddress]){
             _tOwned[minterAddress] = _tOwned[minterAddress].add(contractTokenBalance);
        }

        _rOwned[address(this)] = _rOwned[address(this)].sub(contractTokenBalance.mul(_getRate()));
        if(isExcluded[address(this)]){
             _tOwned[address(this)] = _tOwned[address(this)].sub(contractTokenBalance);
        }


        IPulseManager minter = IPulseManager(minterAddress);
        minter.swapAndLiquify(contractTokenBalance);
        
    }

    //burn the resulted amount from the total supplies
    function burn(uint256 tokensToBeBurned)
        public
    {
        uint256 currentRate = _getRate();
        _rOwned[_msgSender()] = _rOwned[_msgSender()].sub(
            tokensToBeBurned * currentRate
        );
        if(isExcluded[_msgSender()]){
            _tOwned[_msgSender()] = _tOwned[_msgSender()].sub(tokensToBeBurned);
        }
        _rTotal = _rTotal.sub(tokensToBeBurned * currentRate);
        _tTotal = _tTotal.sub(tokensToBeBurned);
    }

    function resumeTransactions() public onlyOwner {
        shouldTransfer = true;
        //emit ResumeTransactions(_msgSender());
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) _removeAllFee();
        Values memory values = _getValues(amount);

        _rOwned[sender] = _rOwned[sender].sub(values.rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(values.rTransferAmount);
        if(isExcluded[sender]){
            _tOwned[sender] = _tOwned[sender].sub(amount);
        }
        if(isExcluded[recipient]){
            _tOwned[recipient] = _tOwned[recipient].add(values.tTransferAmount);
        }
        
        //handle fees
        _takeLiquidity(values.tLiquidity);
        _takeReviveLaunchDomeFee(
            values.tReviveLaunchDomeFee
        );
        _takeReviveBasketFee(
            values.tReviveBasketFee
        );
        _reflectFee(values.rFee, values.tFee);
        emit Transfer(sender, recipient, values.tTransferAmount);
        if (!takeFee) _restoreAllFee();
    }
}

File 2 of 11 : IToken.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

interface IToken {

    //used to deliver a specific amount of tokens to the all balance holders
    function deliver(uint256 tAmount) external;

    //returns the number of decimals that the token has
    function decimals() external view returns(uint8);

    function burn(uint256 tokenAmount) external;
}

File 3 of 11 : IERC20.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

interface IERC20 {

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

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

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

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

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

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



/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */

File 4 of 11 : SafeMath.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

library SafeMath {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: substraction overflow");
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

    function mod(
        uint256 a,
        uint256 b
    ) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division with 0");
        return a % b;
    }

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

File 5 of 11 : Ownable.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

import "./Context.sol";

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

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

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

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

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

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

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = now + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(now > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

File 6 of 11 : IPancakeFactory.sol
pragma solidity >=0.5.0;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 7 of 11 : IPancakePair.sol
pragma solidity >=0.5.0;

interface IPancakePair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

File 8 of 11 : IPancakeRouter01.sol
pragma solidity >=0.6.2;

interface IPancakeRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

File 9 of 11 : IPancakeRouter02.sol
pragma solidity >=0.6.2;

import './IPancakeRouter01.sol';

interface IPancakeRouter02 is IPancakeRouter01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

File 10 of 11 : IPulseManager.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

interface IPulseManager {

    function handleReviveBasket(uint256 pulseAmount) external returns(bool);
    function swapAndLiquify(uint256 pulseAmount) external;

}

File 11 of 11 : Context.sol
pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed

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

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

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_minterAddress","type":"address"},{"internalType":"address","name":"_pancakeSwapRouterAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"SetMaxTxPercent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"_reviveLaunchDomeAddress","type":"address"}],"name":"SetReviveLaunchDomeAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reviveBasketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reviveLaunchDomeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokensToBeBurned","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeSwapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeSwapRouter","outputs":[{"internalType":"contract IPancakeRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resumeTransactions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reviveBasketFee","type":"uint256"}],"name":"setReviveBasketFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_reviveLaunchDomeAddress","type":"address"}],"name":"setReviveLaunchDomeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"reviveLaunchDomeFee","type":"uint256"}],"name":"setReviveLaunchDomeFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052633b9aca00600955633b9aca00670de0b6b3a7640000600019816200002557fe5b0660001903816200003257fe5b04600a557310ed43c718714eb63d5aa57b78b54704e256024e600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d55600d54600e556002600f55600f54601055600260115560115460125560056014556014546015556001601660156101000a81548160ff0219169083151502179055506c0c9f2c9cd04674edea4000000060175560006018556000601960006101000a81548160ff0219169083151502179055503480156200011057600080fd5b50604051620062c5380380620062c5833981810160405260408110156200013657600080fd5b8101908080519060200190929190805190602001909291905050506000620001636200075b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028e57600080fd5b505afa158015620002a3573d6000803e3d6000fd5b505050506040513d6020811015620002ba57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032e57600080fd5b505afa15801562000343573d6000803e3d6000fd5b505050506040513d60208110156200035a57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620003d557600080fd5b505af1158015620003ea573d6000803e3d6000fd5b505050506040513d60208110156200040157600080fd5b8101908080519060200190929190505050601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050620004d06200076360201b60201c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000620005266200076360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a5460036000620006b86200076360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600460006200070d6200076360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042601a819055505050506200078c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60805160601c60a05160601c615ac462000801600039806115075280611cbb5280613b625280613bba5280613c27528061443a52806144a8528061450b528061458152806145ef52806147e7528061556352806155d1528061563452806156aa52806157185250806114565250615ac46000f3fe6080604052600436106102815760003560e01c80635342acb41161014f578063a457c2d7116100c1578063cba0e9961161007a578063cba0e99614610ddc578063d543dbeb14610e43578063dd46706414610e7e578063dd62ed3e14610eb9578063ea2f0b3714610f3e578063f2fde38b14610f8f57610288565b8063a457c2d714610c3a578063a69df4b514610cab578063a9059cbb14610cc2578063c1f1b1b514610d33578063c49b9a8014610d74578063c5aec80314610db157610288565b80638da5cb5b116101135780638da5cb5b14610ab15780638ee88c5314610af25780639092047d14610b2d578063911a366714610b6857806395d89b4114610b7f578063964257fe14610c0f57610288565b80635342acb414610964578063602bc62b146109cb5780636bc87c3a146109f657806370a0823114610a215780637d1db4a514610a8657610288565b80633685d419116101f3578063429494f2116101ac578063429494f2146107be57806342966c68146107ff578063437823ec1461083a5780634549b0391461088b5780634a74bb02146108e657806352390c021461091357610288565b80633685d4191461060057806339509351146106515780633b124fe7146106c25780633bd5d173146106ed5780633f7af48a1461072857806340c10f191461076357610288565b806318160ddd1161024557806318160ddd1461044557806323b872dd1461047057806324558995146105015780632d83811914610542578063313ce5671461059157806334d722c9146105bf57610288565b8063061c82d01461028d57806306fdde03146102c8578063095ea7b31461035857806313114a9d146103c9578063177835ea146103f457610288565b3661028857005b600080fd5b34801561029957600080fd5b506102c6600480360360208110156102b057600080fd5b8101908080359060200190929190505050610fe0565b005b3480156102d457600080fd5b506102dd61114a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031d578082015181840152602081019050610302565b50505050905090810190601f16801561034a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036457600080fd5b506103b16004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611187565b60405180821515815260200191505060405180910390f35b3480156103d557600080fd5b506103de6111a5565b6040518082815260200191505060405180910390f35b34801561040057600080fd5b506104436004803603602081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111af565b005b34801561045157600080fd5b5061045a611326565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b506104e96004803603606081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611330565b60405180821515815260200191505060405180910390f35b34801561050d57600080fd5b50610516611454565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054e57600080fd5b5061057b6004803603602081101561056557600080fd5b8101908080359060200190929190505050611478565b6040518082815260200191505060405180910390f35b34801561059d57600080fd5b506105a66114fc565b604051808260ff16815260200191505060405180910390f35b3480156105cb57600080fd5b506105d4611505565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060c57600080fd5b5061064f6004803603602081101561062357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611529565b005b34801561065d57600080fd5b506106aa6004803603604081101561067457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c3565b60405180821515815260200191505060405180910390f35b3480156106ce57600080fd5b506106d7611976565b6040518082815260200191505060405180910390f35b3480156106f957600080fd5b506107266004803603602081101561071057600080fd5b810190808035906020019092919050505061197c565b005b34801561073457600080fd5b506107616004803603602081101561074b57600080fd5b8101908080359060200190929190505050611b4f565b005b34801561076f57600080fd5b506107bc6004803603604081101561078657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb9565b005b3480156107ca57600080fd5b506107d3611d8f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080b57600080fd5b506108386004803603602081101561082257600080fd5b8101908080359060200190929190505050611db5565b005b34801561084657600080fd5b506108896004803603602081101561085d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f9f565b005b34801561089757600080fd5b506108d0600480360360408110156108ae57600080fd5b81019080803590602001909291908035151590602001909291905050506120c2565b6040518082815260200191505060405180910390f35b3480156108f257600080fd5b506108fb612170565b60405180821515815260200191505060405180910390f35b34801561091f57600080fd5b506109626004803603602081101561093657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612183565b005b34801561097057600080fd5b506109b36004803603602081101561098757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061249d565b60405180821515815260200191505060405180910390f35b3480156109d757600080fd5b506109e06124bd565b6040518082815260200191505060405180910390f35b348015610a0257600080fd5b50610a0b6124c7565b6040518082815260200191505060405180910390f35b348015610a2d57600080fd5b50610a7060048036036020811015610a4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124cd565b6040518082815260200191505060405180910390f35b348015610a9257600080fd5b50610a9b6125b8565b6040518082815260200191505060405180910390f35b348015610abd57600080fd5b50610ac66125be565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610afe57600080fd5b50610b2b60048036036020811015610b1557600080fd5b81019080803590602001909291905050506125e7565b005b348015610b3957600080fd5b50610b6660048036036020811015610b5057600080fd5b8101908080359060200190929190505050612751565b005b348015610b7457600080fd5b50610b7d6128bb565b005b348015610b8b57600080fd5b50610b946129a0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bd4578082015181840152602081019050610bb9565b50505050905090810190601f168015610c015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c1b57600080fd5b50610c246129dd565b6040518082815260200191505060405180910390f35b348015610c4657600080fd5b50610c9360048036036040811015610c5d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506129e3565b60405180821515815260200191505060405180910390f35b348015610cb757600080fd5b50610cc0612a96565b005b348015610cce57600080fd5b50610d1b60048036036040811015610ce557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cb3565b60405180821515815260200191505060405180910390f35b348015610d3f57600080fd5b50610d48612d36565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d8057600080fd5b50610daf60048036036020811015610d9757600080fd5b81019080803515159060200190929190505050612d60565b005b348015610dbd57600080fd5b50610dc6612e7e565b6040518082815260200191505060405180910390f35b348015610de857600080fd5b50610e2b60048036036020811015610dff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e84565b60405180821515815260200191505060405180910390f35b348015610e4f57600080fd5b50610e7c60048036036020811015610e6657600080fd5b8101908080359060200190929190505050612ea4565b005b348015610e8a57600080fd5b50610eb760048036036020811015610ea157600080fd5b8101908080359060200190929190505050612fe9565b005b348015610ec557600080fd5b50610f2860048036036040811015610edc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131da565b6040518082815260200191505060405180910390f35b348015610f4a57600080fd5b50610f8d60048036036020811015610f6157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613261565b005b348015610f9b57600080fd5b50610fde60048036036020811015610fb257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613384565b005b610fe861358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d81905550600a6110f06110df6011546110d1601454600f5461359790919063ffffffff16565b61359790919063ffffffff16565b600d5461359790919063ffffffff16565b1115611147576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806159366035913960400191505060405180910390fd5b50565b60606040518060400160405280600581526020017f50756c7365000000000000000000000000000000000000000000000000000000815250905090565b600061119b61119461358f565b848461361f565b6001905092915050565b6000600b54905090565b6111b761358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112c061358f565b73ffffffffffffffffffffffffffffffffffffffff167f4678dfd8527c746cad71f3d02a2157c2da50e5bdb6dd534c40c906f5bb9be99882604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6000600954905090565b6000601960009054906101000a900460ff16611397576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806159e16042913960600191505060405180910390fd5b6113a2848484613824565b611449846113ae61358f565b61144485600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113fb61358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b61361f565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600a548211156114d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061589c602a913960400191505060405180910390fd5b60006114df613e30565b90506114f48184613e5b90919063ffffffff16565b915050919050565b60006009905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b61153161358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4163636f756e74206973206e6f74206578636c7564656400000000000000000081525060200191505060405180910390fd5b60005b6008805490508110156118bf578173ffffffffffffffffffffffffffffffffffffffff16600882815481106116e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118b25760086117466001600880549050613da790919063ffffffff16565b8154811061175057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008828154811061178857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600880548061187857fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556118bf565b80806001019150506116b3565b5050565b600061196c6118d061358f565b8461196785600560006118e161358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b61361f565b6001905092915050565b600d5481565b6006600061198861358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f53656e646572206973206578636c75646564210000000000000000000000000081525060200191505060405180910390fd5b6000611a4d61358f565b90506000611a59613e30565b9050611abf611a718285613ee490919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b29611b188285613ee490919063ffffffff16565b600a54613da790919063ffffffff16565b600a81905550611b4483600b5461359790919063ffffffff16565b600b81905550505050565b611b5761358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601481905550600a611c5f611c4e601154611c40601454600f5461359790919063ffffffff16565b61359790919063ffffffff16565b600d5461359790919063ffffffff16565b1115611cb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806159366035913960400191505060405180910390fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611cf861358f565b73ffffffffffffffffffffffffffffffffffffffff1614611d81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696e743a20796f7520617265206e6f7420746865206d696e7465722100000081525060200191505060405180910390fd5b611d8b8282613f6a565b5050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611dbf613e30565b9050611e1c81830260036000611dd361358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b60036000611e2861358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000611e7261358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f6357611f188260046000611ecf61358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b60046000611f2461358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611f7a818302600a54613da790919063ffffffff16565b600a81905550611f9582600954613da790919063ffffffff16565b6009819055505050565b611fa761358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060095483111561213c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b612144615825565b61214d84614357565b90508261216157806000015191505061216a565b80602001519150505b92915050565b601660159054906101000a900460ff1681565b61218b61358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561230b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156123df5761239b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611478565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b600f5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561256857600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506125b3565b6125b0600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611478565b90505b919050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6125ef61358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f81905550600a6126f76126e66011546126d8601454600f5461359790919063ffffffff16565b61359790919063ffffffff16565b600d5461359790919063ffffffff16565b111561274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806159366035913960400191505060405180910390fd5b50565b61275961358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601181905550600a612861612850601154612842601454600f5461359790919063ffffffff16565b61359790919063ffffffff16565b600d5461359790919063ffffffff16565b11156128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806159366035913960400191505060405180910390fd5b50565b6128c361358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612983576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001601960006101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f50554c5345000000000000000000000000000000000000000000000000000000815250905090565b60145481565b6000612a8c6129f061358f565b84612a878560056000612a0161358f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b61361f565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615a6c6023913960400191505060405180910390fd5b6002544211612bb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601960009054906101000a900460ff16612d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806159e16042913960600191505060405180910390fd5b612d2c612d2561358f565b8484613824565b6001905092915050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612d6861358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601660156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b60115481565b60066020528060005260406000206000915054906101000a900460ff1681565b612eac61358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6064612f8382600954613ee490919063ffffffff16565b81612f8a57fe5b04601781905550612f9961358f565b73ffffffffffffffffffffffffffffffffffffffff167f92b9dba3a30df8057e498960622ad1451fb2c2de77361cf6a59cf695b5fa64f2826040518082815260200191505060405180910390a250565b612ff161358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61326961358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613329576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61338c61358f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461344c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156134d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806158c66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080828401905083811015613615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156136a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615a486024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561372b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806158ec6022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925838383604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156138aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615a236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613930576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806158796023913960400191505060405180910390fd5b60008111613989576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806159b86029913960400191505060405180910390fd5b6139916125be565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156139ff57506139cf6125be565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613a6057601754811115613a5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061590e6028913960400191505060405180910390fd5b5b6000613a6b306124cd565b90506017548110613a7c5760175490505b601660149054906101000a900460ff16158015613aa55750601660159054906101000a900460ff165b8015613aff5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015613b595750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015613bb157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015613c0957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015613c155750600081115b15613ce357613c23816143fc565b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff1663ccaaf5486018546040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015613c9d57600080fd5b505af1158015613cb1573d6000803e3d6000fd5b505050506040513d6020811015613cc757600080fd5b8101908080519060200190929190505050506000601881905550505b600060019050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613d8a5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613d9457600090505b613da085858584614892565b5050505050565b600082821115613e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536166654d6174683a20737562737472616374696f6e206f766572666c6f770081525060200191505060405180910390fd5b600082840390508091505092915050565b6000806000613e3d614c80565b91509150613e548183613e5b90919063ffffffff16565b9250505090565b6000808211613ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f536166654d6174683a206469766973696f6e206279203000000000000000000081525060200191505060405180910390fd5b818381613edb57fe5b04905092915050565b600080831415613ef75760009050613f64565b6000828402905082848281613f0857fe5b0414613f5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806159976021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561400d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d696e743a206d696e7420746f20746865207a65726f20616464726573732e0081525060200191505060405180910390fd5b60008111614066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061596b602c913960400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614200576141236140d56140c6613e30565b83613ee490919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141b881600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506142af565b61426b61421d61420e613e30565b83613ee490919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6142dd6142cc6142bd613e30565b83613ee490919063ffffffff16565b600a5461359790919063ffffffff16565b600a819055506142f88160095461359790919063ffffffff16565b6009819055507f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b61435f615825565b614367615825565b61437083614f11565b8560a0018660c00187610100018860e0018961012001858152508581525085815250858152508581525050505050506143c6838260c001518361010001518461012001518560e001516143c1613e30565b614fdf565b85600001866020018760400188606001896080018581525085815250858152508581525085815250505050505080915050919050565b6001601660146101000a81548160ff0219169083151502179055506144a2614434614425613e30565b83613ee490919063ffffffff16565b600360007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600360007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561464d576145e981600460007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600460007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6146b861466a61465b613e30565b83613ee490919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156147e35761479f81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff1663173865ad836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561485b57600080fd5b505af115801561486f573d6000803e3d6000fd5b50505050506000601660146101000a81548160ff02191690831515021790555050565b806148a05761489f6150ff565b5b6148a8615825565b6148b183614357565b90506149098160000151600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506149a28160200151600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614acd57614a8983600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613da790919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614bb957614b758160a00151600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b614bc68160e00151615164565b614bd48161010001516152fd565b614be2816101200151615540565b614bf481604001518260c0015161579e565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85858360a00151604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a181614c7957614c786157d8565b5b5050505050565b6000806000600a5490506000600954905060005b600880549050811015614ed457826003600060088481548110614cb357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180614d9a5750816004600060088481548110614d3257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15614db157600a5460095494509450505050614f0d565b614e3a6003600060088481548110614dc557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484613da790919063ffffffff16565b9250614ec56004600060088481548110614e5057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613da790919063ffffffff16565b91508080600101915050614c94565b50614eec600954600a54613e5b90919063ffffffff16565b821015614f0457600a54600954935093505050614f0d565b81819350935050505b9091565b600080600080600080614f38614f2988600d546157fe565b88613da790919063ffffffff16565b9050614f58614f4988600f546157fe565b82613da790919063ffffffff16565b9050614f78614f69886011546157fe565b82613da790919063ffffffff16565b9050614f98614f89886014546157fe565b82613da790919063ffffffff16565b905080614fa788600d546157fe565b614fb3896011546157fe565b614fbf8a600f546157fe565b614fcb8b6014546157fe565b955095509550955095505091939590929450565b600080600080600080614ffb878d613ee490919063ffffffff16565b9050615022615013888d613ee490919063ffffffff16565b82613da790919063ffffffff16565b905061504961503a888a613ee490919063ffffffff16565b82613da790919063ffffffff16565b9050615070615061888c613ee490919063ffffffff16565b82613da790919063ffffffff16565b9050615097615088888b613ee490919063ffffffff16565b82613da790919063ffffffff16565b90506150ac878d613ee490919063ffffffff16565b816150c0898e613ee490919063ffffffff16565b6150d38a8e613ee490919063ffffffff16565b6150e68b8e613ee490919063ffffffff16565b9550955095509550955050965096509650965096915050565b6000600d5414801561511357506000600f54145b1561511d57615162565b600d54600e81905550600f546010819055506011546012819055506014546015819055506000600d819055506000600f81905550600060118190555060006014819055505b565b6151cf615181615172613e30565b83613ee490919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156152fa576152b681600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b61538a61531a61530b613e30565b83613ee490919063ffffffff16565b60036000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b60036000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561553d576154d78160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b60046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b6155cb61555d61554e613e30565b83613ee490919063ffffffff16565b600360007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600360007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156157765761571281600460007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461359790919063ffffffff16565b600460007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600081111561579b576157948160185461359790919063ffffffff16565b6018819055505b50565b6157b382600a54613da790919063ffffffff16565b600a819055506157ce81600b5461359790919063ffffffff16565b600b819055505050565b600e54600d81905550601054600f81905550601254601181905550601554601481905550565b600060646158158385613ee490919063ffffffff16565b8161581c57fe5b04905092915050565b60405180610140016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e50756c73653a207468652073756d206f6620666565732073686f756c64206265206c657373206f7220657175616c20746f2074656e4d696e743a206d696e7420616d6f756e74206d7573742062652067726561746572207468616e207a65726f2e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f5075626c69632073616c653a205472616e73616374696f6e73206172652073746f7070656420756e74696c2074686520656e64206f66207075626c69632073616c6545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636ba264697066735822122033b391479f00d7e596399d48919ea50a17aab76eca510bae440515f41224445964736f6c634300060c00330000000000000000000000002789da63fc511162d5c99540fde63230dbca90bf00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

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

0000000000000000000000002789da63fc511162d5c99540fde63230dbca90bf00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

-----Decoded View---------------
Arg [0] : _minterAddress (address): 0x2789da63fc511162d5c99540fde63230dbca90bf
Arg [1] : _pancakeSwapRouterAddress (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002789da63fc511162d5c99540fde63230dbca90bf
Arg [1] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e


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