Contract 0x1eac591b4c741e6dcac1eb90f538e64be5328649

 

Contract Overview

Fantom Node Capital: FNC Token
Balance:
33.269000319540674719 FTM

FTM Value:
$7.49 (@ $0.23/FTM)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc6e209550448369a4c4124df0fb3624971ece793b204e02a0d1887e4af709dc5Approve482788822022-10-03 0:03:482 days 5 hrs ago0x88a4ff6badf5baf9f29607607572168dde4e969c IN  Fantom Node Capital: FNC Token0 FTM0.008214068862
0xde242d8c06c044f4029f1a3124afb855dbbc5ba9b68577f0ec9c63717d2a759fApprove482770132022-10-02 23:29:152 days 5 hrs ago0xa7ef228999570c8e507e6ce7d7bdb12fe053b7a6 IN  Fantom Node Capital: FNC Token0 FTM0.000077349027
0xd8dabf096998e180c4697a8045e1414a7256a3efdf14112b242f4bcdada50536Transfer481800152022-10-01 16:44:203 days 12 hrs agoFantom Node Capital: Deployer 2 IN  Fantom Node Capital: FNC Token0 FTM0.012322165235
0xea9e88a7efc9e3b1a6f28cce0f00883994fc4e1504cfc2e667c9b8e5401b7c55Approve477111462022-09-25 12:00:249 days 17 hrs ago0xa9a6171295d6f35596960a94f4f4ab13192fba76 IN  Fantom Node Capital: FNC Token0 FTM0.0001152725
0xd4a2e27911a221d206ce4ecc6a62af9e8fe59045e9c1cb1cacf9e6caa164c449Approve477110652022-09-25 11:59:039 days 17 hrs ago0xa9a6171295d6f35596960a94f4f4ab13192fba76 IN  Fantom Node Capital: FNC Token0 FTM0.0001153025
0x9425c581422310f564083420500ab5234734a8af1bf29ad56a1b4f6766032ddaApprove476324812022-09-24 11:38:4210 days 17 hrs ago0x45220797cde88ab27fb0fbeba904fa8e5e5e9232 IN  Fantom Node Capital: FNC Token0 FTM0.000149838994
0x2bfea579ce8061676e5748500141592e2939b15c4b3cce7beb918554db9abbb1Transfer475585572022-09-23 12:37:4211 days 16 hrs agoFantom Node Capital: Deployer 2 IN  Fantom Node Capital: FNC Token0 FTM0.0010662425
0x23944ca217053ca84ef245af9ce1dc2636840d3571fb5960c1c6118fe9890f3bTransfer474754332022-09-22 10:22:0512 days 18 hrs ago0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da1 IN  Fantom Node Capital: FNC Token0 FTM0.002320447069
0x8796c505e8d84ff094fc4bdcbc6370beae0ff17dee119154cf433cd50b8faad7Set Is Fee Exemp...474752102022-09-22 10:16:5612 days 18 hrs agoFantom Node Capital: Deployer 2 IN  Fantom Node Capital: FNC Token0 FTM0.000064431535
0x51d6e1428ca69de6777455c567e7c18221d28854db65c9be3229d720e789ec13Transfer474745482022-09-22 10:04:5812 days 19 hrs agoFantom Node Capital: Deployer 2 IN  Fantom Node Capital: FNC Token0 FTM0.00105231404
0x90c06fbde7ddb395bfcc67cfc700d58d33d1bc580408be149d7f00fcef57731fApprove473685052022-09-20 23:25:2014 days 5 hrs agoFantom Node Capital: Deployer IN  Fantom Node Capital: FNC Token0 FTM0.000125892463
0xaf7d7fc087bb1110931922c7fd79f3be4f0bdd5463fa6e18d173d8f3f44af304Approve473684352022-09-20 23:23:5714 days 5 hrs agoFantom Node Capital: Deployer IN  Fantom Node Capital: FNC Token0 FTM0.000123371716
0x17e722cdb0d4b8af761d6b3a925113767949dcf6ef675cccf4f48637765c18d1Approve473657282022-09-20 22:33:3014 days 6 hrs ago0xe8ed8aad88841349d88e5db26ac9c84e86ee7ebb IN  Fantom Node Capital: FNC Token0 FTM0.000132544951
0xd4a628289343d95ed28936c32fa94a0a2cb702b13c5bc89e78555d1e68fdd0d8Approve473656302022-09-20 22:31:3414 days 6 hrs ago0xe8ed8aad88841349d88e5db26ac9c84e86ee7ebb IN  Fantom Node Capital: FNC Token0 FTM0.000132544951
0x4a247f2c9d2a3ba042cfaea358e8c9c3d08b01d5bf5551832cdb63503d15ff13Approve472681022022-09-19 15:08:5215 days 13 hrs ago0xc86d2f12925ce8153b049e2ee0a44f981eb463bb IN  Fantom Node Capital: FNC Token0 FTM0.00021949277
0xbb18971eb12ef6db0966d5ebd8e722072f965970c22d7f152acacc6c92a1cf6fApprove472143692022-09-18 20:45:0816 days 8 hrs ago0xaee415e3bd3931a9d8fd06f28c83546333d8338f IN  Fantom Node Capital: FNC Token0 FTM0.000134280043
0x4a22bb691f146a7c23562b8349c5f6336f26c9d7a45e4253dbf5a372267e6bfeTransfer472079402022-09-18 18:38:3716 days 10 hrs agoFantom Node Capital: Deployer 2 IN  Fantom Node Capital: FNC Token0 FTM0.022402530283
0xe2ae48013338af999158518de766fadb98a22c38adf4ac0154d88fd5ceb84504Approve471645412022-09-18 3:35:3017 days 1 hr ago0x0da94aff91cfd5641d0717a4b32d13656c686564 IN  Fantom Node Capital: FNC Token0 FTM0.0014708098
0x619ddba37300c9fdea82505a0db2e470eb77fe0ca50dfc6118ee8bbbd7fb4640Approve471645192022-09-18 3:35:0617 days 1 hr ago0x0da94aff91cfd5641d0717a4b32d13656c686564 IN  Fantom Node Capital: FNC Token0 FTM0.0014708098
0x0f8fd7d06cd54c5121718a060e90c21da2aa4aac0bd34a7542716765e67f0644Approve471644872022-09-18 3:34:3317 days 1 hr ago0x0da94aff91cfd5641d0717a4b32d13656c686564 IN  Fantom Node Capital: FNC Token0 FTM0.0014708098
0xbf9f3d793b9d5596a7f3e7e89bbedc03e7b80bed6df5c1cf0b2ba0ae63e0526eApprove471644532022-09-18 3:33:4417 days 1 hr ago0x0da94aff91cfd5641d0717a4b32d13656c686564 IN  Fantom Node Capital: FNC Token0 FTM0.002337814
0x95450e4ca5463d006c33ceb0f0b261430a04720dd9f5174743a04ac99d6125abTransfer470843942022-09-17 0:38:2218 days 4 hrs agoFantom Node Capital: Deployer 2 IN  Fantom Node Capital: FNC Token0 FTM0.0009657925
0x6588d764f24d74d25197d1f8cea8a257f0278aa7515bf72ea9521aafa91b05aaApprove470621552022-09-16 16:55:1218 days 12 hrs ago0xa9a6171295d6f35596960a94f4f4ab13192fba76 IN  Fantom Node Capital: FNC Token0 FTM0.000154208925
0xa79a0cf87a281074573f08abd1819a0df9661bf5387402fdd436b555e0e86d58Approve470620592022-09-16 16:53:2618 days 12 hrs ago0x85319a8c3e48290846a8802df9d45edfc5c5802a IN  Fantom Node Capital: FNC Token0 FTM0.000111286681
0x4e3b537b372be6c0225e741b94d519ab2f35454ca13a28a49825256feec94a17Approve470620102022-09-16 16:52:1618 days 12 hrs ago0xa9a6171295d6f35596960a94f4f4ab13192fba76 IN  Fantom Node Capital: FNC Token0 FTM0.000157234876
[ Download CSV Export 

OVERVIEW

The first node/farming capital community token to make node/farming purchases using treasury and making buybacks and burns from own native token through the profit made from those investments.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x23944ca217053ca84ef245af9ce1dc2636840d3571fb5960c1c6118fe9890f3b474754332022-09-22 10:22:0512 days 18 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da134.698372702166802118 FTM
0x23944ca217053ca84ef245af9ce1dc2636840d3571fb5960c1c6118fe9890f3b474754332022-09-22 10:22:0512 days 18 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d811.566124234055600706 FTM
0x23944ca217053ca84ef245af9ce1dc2636840d3571fb5960c1c6118fe9890f3b474754332022-09-22 10:22:0512 days 18 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token57.830621170278003531 FTM
0xe0d983552736c078a711b0950bd11d1a0db2ae676624b3c00653393143908df8470394522022-09-16 8:48:4318 days 20 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da122.563731880451691957 FTM
0xe0d983552736c078a711b0950bd11d1a0db2ae676624b3c00653393143908df8470394522022-09-16 8:48:4318 days 20 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d87.521243960150563985 FTM
0xe0d983552736c078a711b0950bd11d1a0db2ae676624b3c00653393143908df8470394522022-09-16 8:48:4318 days 20 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token37.606219800752819929 FTM
0xed7b3fb7d4a1a9bf7d14621d23632645d2594a6e8fc0db1a929aeb95d8015144469774172022-09-15 8:31:5419 days 20 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da118.849787662004900634 FTM
0xed7b3fb7d4a1a9bf7d14621d23632645d2594a6e8fc0db1a929aeb95d8015144469774172022-09-15 8:31:5419 days 20 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d86.283262554001633544 FTM
0xed7b3fb7d4a1a9bf7d14621d23632645d2594a6e8fc0db1a929aeb95d8015144469774172022-09-15 8:31:5419 days 20 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token31.416312770008167724 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da11.894305612841262567 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d80.631435204280420855 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token3.157176021402104279 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da11.900668893619234635 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d80.633556297873078211 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token3.167781489365391059 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da11.90706430205384479 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d80.63568810068461493 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token3.17844050342307465 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da11.913492054825769673 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d80.637830684941923224 FTM
0x7d63040e0fff8e4aa277df399bff0c1ad49ed1d15c152e563fcf5cf3013e1d32469772022022-09-15 8:19:1919 days 20 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token3.189153424709616123 FTM
0x55f6ea0d01840dbe204a7b5612b66e69b77c27c704ce0cdd6d1fe2961e7cc076469717062022-09-15 5:26:0019 days 23 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da11.919952370445673012 FTM
0x55f6ea0d01840dbe204a7b5612b66e69b77c27c704ce0cdd6d1fe2961e7cc076469717062022-09-15 5:26:0019 days 23 hrs ago Fantom Node Capital: FNC Token 0x69ef0759030ef425cd95123d1f2e83887bbcf2d80.639984123481891004 FTM
0x55f6ea0d01840dbe204a7b5612b66e69b77c27c704ce0cdd6d1fe2961e7cc076469717062022-09-15 5:26:0019 days 23 hrs ago SpookySwap: Router Fantom Node Capital: FNC Token3.19992061740945502 FTM
0xdac64c2819215dd85f0aebca5167008be034eb5abf777aed45817df53b1ff668469714282022-09-15 5:19:5719 days 23 hrs ago Fantom Node Capital: FNC Token0x0b8a7b0361f228b8d67e9e159dd7a7c6c82b3da11.873913902615857702 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FantomNodeCapital

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2022-09-07
*/

//SPDX-License-Identifier: Unlicensed

/*
    -This is the new Fantom Node Capital v2 token contract.
    -It is a migration from the old contract: 0xb0c96020aac0003e61c609bd51e1629389e43674 - Fantom Node Capital - $FNC
    -If you still have $FNC that you were unable to migrate, please contact us via our socials with proof that you still own $FNC:
        -Twitter: @FantomNode
        -Telegram: @FantomNodeCapital
    -Buy, Sell and Transfer Taxes: 2% USDC Rewards tax + 2% Auto-Liquidity tax + 6% Treasury tax = 10% Total!
    -Total Supply(fixed): 1,000,000 $FNC!
    -USDC Rewards distributed every hour once you have earned 1 USDC!

    ***IMPORTANT NOTICE***
    If you did not send your $FNC v1 to the address we announced on Twitter, Telegram and Discord between 07/09/2022-07/10/2022, then half of your holdings will be burnt!
    Therefore please immediately send all your $FNC v1 tokens to us if you don't want to lose your $FNC! You can reach us on our socials above!
 */

pragma solidity ^0.7.4;

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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    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 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;
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IBEP20 REWARDS = IBEP20(0x04068DA6C83AFCFA0e13ba15A6696662335D5B75);
    address NATIVE = 0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 12;

    uint256 public minPeriod = 60 minutes;
    uint256 public minDistribution = 10 ** 6;

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = REWARDS.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = NATIVE;
        path[1] = address(REWARDS);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = REWARDS.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            REWARDS.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract FantomNodeCapital is IBEP20, Auth {
    using SafeMath for uint256;

    address REWARDS = 0x04068DA6C83AFCFA0e13ba15A6696662335D5B75;
    address NATIVE = 0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83; 
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Fantom Node Capital";
    string constant _symbol = "FNC";
    uint8 constant _decimals = 4;
    uint256 _totalSupply = 1 * 10**6 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 2 / 100;
    uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping (address => bool) isDividendExempt;
    mapping (address => bool) isMaxWalletExempt;
    mapping (address => bool) isUtilityContract;
    mapping (address => bool) isBlacklisted;

    uint256 liquidityFee    = 2;
    uint256 reflectionFee   = 2;
    uint256 marketingFee    = 6;
    uint256 public totalFee = 10;
    uint256 feeDenominator  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 10;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 30;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        pair = IDEXFactory(router.factory()).createPair(NATIVE, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        distributor = new DividendDistributor(address(router));

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        isMaxWalletExempt[msg.sender] =  true;

        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = 0x0B8a7B0361f228b8d67e9E159dd7a7C6C82B3dA1;
        marketingFeeReceiver = 0x0B8a7B0361f228b8d67e9E159dd7a7C6C82B3dA1;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "You don't have enough allowance.");
        }

        return _transferFrom(sender, recipient, amount);
    }

     function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

    function setIsUtilityContract(address _address, bool _trueorfalse) external onlyOwner(){
        isUtilityContract[_address] = _trueorfalse;
        isMaxWalletExempt[_address] = _trueorfalse;
        isTxLimitExempt[_address] = _trueorfalse;
        isFeeExempt[_address] = _trueorfalse;
        isDividendExempt[_address] = _trueorfalse;
    }

    function setIsMaxWalletExepmt(address _address, bool _trueorfalse) external onlyOwner(){
        isMaxWalletExempt[_address] = _trueorfalse;
    }

    function setIsBlacklisted(address _address, bool _trueorfalse) external onlyOwner(){
        isBlacklisted[_address] = _trueorfalse;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
            require(!isBlacklisted[sender],"Sender is blacklisted!");
            require(!isBlacklisted[recipient], "Recipient is blacklisted!");
        }

        if (!authorizations[sender] && !isMaxWalletExempt[recipient] && !isUtilityContract[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Recipient can't hold more than Max Wallet!");}
        
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for cooldown between buys.");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

        checkTxLimit(sender, amount);

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

        _balances[sender] = _balances[sender].sub(amount, "You don't have enough tokens.");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try distributor.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        try distributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "You don't have enough tokens.");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "You can't transfer more than Tx Limit.");
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isUtilityContract[recipient]){
            return false;
        }else{
            return !isFeeExempt[sender];
        }
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountNATIVE = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountNATIVE * amountPercentage / 100);
    }

    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = NATIVE;

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalNATIVEFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountNATIVELiquidity = amountNATIVE.mul(dynamicLiquidityFee).div(totalNATIVEFee).div(2);
        uint256 amountNATIVEReflection = amountNATIVE.mul(reflectionFee).div(totalNATIVEFee);
        uint256 amountNATIVEMarketing = amountNATIVE.mul(marketingFee).div(totalNATIVEFee);

        try distributor.deposit{value: amountNATIVEReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountNATIVEMarketing, gas: 30000}("");
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountNATIVELiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            
            emit AutoLiquify(amountNATIVELiquidity, amountToLiquify);
        }
    }

    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsTimelockExempt(address holder, bool exempt) external authorized {
        isTimelockExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/4);
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    event AutoLiquify(uint256 amountNATIVE, uint256 amountFNC);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountNATIVE","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountFNC","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_trueorfalse","type":"bool"}],"name":"setIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_trueorfalse","type":"bool"}],"name":"setIsMaxWalletExepmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_trueorfalse","type":"bool"}],"name":"setIsUtilityContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b03199081167304068da6c83afcfa0e13ba15a6696662335d5b75179091556003805482167321be370d5312f44cb42ce377bc9b8a0cef1a4c8317905560048054821661dead1790556005805490911690556402540be400600655630bebc20060075560646404a817c800046008556002601281905560135560066014819055600a601581905560646016819055601991909155601a55601e805460ff199081169091556207a120601f55602080548216600190811761ff001916611e001790915560228054909216179055546127109004602355348015620000f057600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601b805490921673f491e7b69e4244ad4002bc14e878a34207e38c291791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200018057600080fd5b505afa15801562000195573d6000803e3d6000fd5b505050506040513d6020811015620001ac57600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200020457600080fd5b505af115801562000219573d6000803e3d6000fd5b505050506040513d60208110156200023057600080fd5b5051601c80546001600160a01b0319166001600160a01b03928316179055306000908152600a60209081526040808320601b80548616855292529182902060001990555490519116906200028490620003fb565b6001600160a01b03909116815260405190819003602001906000f080158015620002b2573d6000803e3d6000fd5b50601e8054610100600160a81b0319166101006001600160a01b0393841602179055336000818152600b60209081526040808320805460ff199081166001908117909255600c84528285208054821683179055600f84528285208054821683179055600d8452828520805482168317905560048054881686528386208054831684179055308087528487208054841685179055601c5489168752600e865284872080548416851790558652838620805483168417905554909616845281842080549096161790945560178054730b8a7b0361f228b8d67e9e159dd7a7c6c82b3da16001600160a01b031991821681179092556018805490911690911790556006548383526009825284832081905584519081529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a362000409565b610eb18062002d1883390190565b6128ff80620004196000396000f3fe6080604052600436106102b15760003560e01c8063722b62ad11610175578063bf56b371116100dc578063f0b37c0411610095578063f84ba65d1161006f578063f84ba65d14610aae578063f887ea4014610ae9578063fe9fbb8014610afe578063ffb54a9914610b31576102b8565b8063f0b37c0414610a0d578063f2fde38b14610a40578063f708a64f14610a73576102b8565b8063bf56b37114610937578063ca33e64c1461094c578063d51ed1c814610961578063dd62ed3e1461098b578063df20fd49146109c6578063e96fada2146109f8576102b8565b80639d1944f51161012e5780639d1944f514610816578063a0e3849214610840578063a4b45c001461087b578063a8aa1b31146108b6578063a9059cbb146108cb578063b6a5d7de14610904576102b8565b8063722b62ad1461076757806378109e541461077c5780637d1db4a51461079157806382bf293c146107a6578063893d20e8146107d057806395d89b4114610801576102b8565b80632b112e49116102195780635c85974f116101d25780635c85974f14610669578063617fe0ed14610693578063658d4b7f146106a85780636ddd1713146106e35780636fcba377146106f857806370a0823114610734576102b8565b80632b112e49146105565780632d48e8961461056b5780632d5945671461059b5780632f54bf6e146105d0578063313ce5671461060357806350db71fb1461062e576102b8565b80631161ae391161026b5780631161ae391461045f57806318160ddd1461048f5780631da1db5e146104a45780631df4ccfc146104ce578063201e7991146104e357806323b872dd14610513576102b8565b8062abe20f146102bd5780630445b667146102fa578063051e7ddc1461032157806306fdde031461035c578063095ea7b3146103e65780630d29598014610433576102b8565b366102b857005b600080fd5b3480156102c957600080fd5b506102f8600480360360408110156102e057600080fd5b506001600160a01b0381351690602001351515610b46565b005b34801561030657600080fd5b5061030f610bf4565b60408051918252519081900360200190f35b34801561032d57600080fd5b506102f86004803603604081101561034457600080fd5b506001600160a01b0381351690602001351515610bfa565b34801561036857600080fd5b50610371610c68565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103ab578181015183820152602001610393565b50505050905090810190601f1680156103d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f257600080fd5b5061041f6004803603604081101561040957600080fd5b506001600160a01b038135169060200135610c95565b604080519115158252519081900360200190f35b34801561043f57600080fd5b506102f86004803603602081101561045657600080fd5b50351515610cfc565b34801561046b57600080fd5b5061041f6004803603604081101561048257600080fd5b5080359060200135610d52565b34801561049b57600080fd5b5061030f610d66565b3480156104b057600080fd5b506102f8600480360360208110156104c757600080fd5b5035610d6c565b3480156104da57600080fd5b5061030f610df2565b3480156104ef57600080fd5b506102f86004803603604081101561050657600080fd5b5080359060200135610df8565b34801561051f57600080fd5b5061041f6004803603606081101561053657600080fd5b506001600160a01b03813581169160208101359091169060400135610e4b565b34801561056257600080fd5b5061030f610f10565b34801561057757600080fd5b506102f86004803603604081101561058e57600080fd5b5080359060200135610f59565b3480156105a757600080fd5b506102f8600480360360408110156105be57600080fd5b5080351515906020013560ff16611020565b3480156105dc57600080fd5b5061041f600480360360208110156105f357600080fd5b50356001600160a01b0316611089565b34801561060f57600080fd5b5061061861109d565b6040805160ff9092168252519081900360200190f35b34801561063a57600080fd5b506102f86004803603604081101561065157600080fd5b506001600160a01b03813516906020013515156110a2565b34801561067557600080fd5b506102f86004803603602081101561068c57600080fd5b5035611115565b34801561069f57600080fd5b5061041f611162565b3480156106b457600080fd5b506102f8600480360360408110156106cb57600080fd5b506001600160a01b038135169060200135151561116b565b3480156106ef57600080fd5b5061041f6111de565b34801561070457600080fd5b506102f86004803603608081101561071b57600080fd5b50803590602081013590604081013590606001356111e7565b34801561074057600080fd5b5061030f6004803603602081101561075757600080fd5b50356001600160a01b0316611271565b34801561077357600080fd5b5061061861128c565b34801561078857600080fd5b5061030f61129a565b34801561079d57600080fd5b5061030f6112a0565b3480156107b257600080fd5b506102f8600480360360208110156107c957600080fd5b50356112a6565b3480156107dc57600080fd5b506107e56112fe565b604080516001600160a01b039092168252519081900360200190f35b34801561080d57600080fd5b5061037161130d565b34801561082257600080fd5b506102f86004803603602081101561083957600080fd5b503561132a565b34801561084c57600080fd5b506102f86004803603604081101561086357600080fd5b506001600160a01b0381351690602001351515611386565b34801561088757600080fd5b506102f86004803603604081101561089e57600080fd5b506001600160a01b03813581169160200135166113f4565b3480156108c257600080fd5b506107e561146a565b3480156108d757600080fd5b5061041f600480360360408110156108ee57600080fd5b506001600160a01b038135169060200135611479565b34801561091057600080fd5b506102f86004803603602081101561092757600080fd5b50356001600160a01b0316611486565b34801561094357600080fd5b5061030f6114f0565b34801561095857600080fd5b506107e56114f6565b34801561096d57600080fd5b5061030f6004803603602081101561098457600080fd5b5035611505565b34801561099757600080fd5b5061030f600480360360408110156109ae57600080fd5b506001600160a01b0381358116916020013516611545565b3480156109d257600080fd5b506102f8600480360360408110156109e957600080fd5b50803515159060200135611570565b348015610a0457600080fd5b506107e56115cf565b348015610a1957600080fd5b506102f860048036036020811015610a3057600080fd5b50356001600160a01b03166115de565b348015610a4c57600080fd5b506102f860048036036020811015610a6357600080fd5b50356001600160a01b0316611642565b348015610a7f57600080fd5b506102f860048036036040811015610a9657600080fd5b506001600160a01b03813516906020013515156116f3565b348015610aba57600080fd5b506102f860048036036040811015610ad157600080fd5b506001600160a01b0381351690602001351515611877565b348015610af557600080fd5b506107e56118ea565b348015610b0a57600080fd5b5061041f60048036036020811015610b2157600080fd5b50356001600160a01b03166118f9565b348015610b3d57600080fd5b5061041f611917565b610b4f33611089565b610b89576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b039091166000908152601060209081526040808320805494151560ff199586168117909155600f83528184208054861682179055600c83528184208054861682179055600b83528184208054861682179055600e9092529091208054909216179055565b60235481565b610c0333611089565b610c3d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60408051808201909152601381527211985b9d1bdb48139bd9194810d85c1a5d185b606a1b602082015290565b336000818152600a602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610d0533611089565b610d3f576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601e805460ff1916911515919091179055565b600082610d5e83611505565b119392505050565b60065490565b610d7533611089565b610daf576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60185460405147916001600160a01b03169060648484020480156108fc02916000818181858888f19350505050158015610ded573d6000803e3d6000fd5b505050565b60155481565b610e01336118f9565b610e40576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601991909155601a55565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610efb5760408051808201825260208082527f596f7520646f6e2774206861766520656e6f75676820616c6c6f77616e63652e818301526001600160a01b0387166000908152600a82528381203382529091529190912054610ed6918490611920565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610f068484846119b7565b90505b9392505050565b600554600090610f5490610f2c906001600160a01b0316611271565b600454610f4e90610f45906001600160a01b0316611271565b6006549061202a565b9061202a565b905090565b610f62336118f9565b610fa1576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601e60019054906101000a90046001600160a01b03166001600160a01b0316632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561100457600080fd5b505af1158015611018573d6000803e3d6000fd5b505050505050565b61102933611089565b611063576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6020805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600490565b6110ab336118f9565b6110ea576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b61111e336118f9565b61115d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600755565b60205460ff1681565b611174336118f9565b6111b3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60225460ff1681565b6111f0336118f9565b61122f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6012849055601383905560148290556112528261124c868661206c565b9061206c565b6015556016819055600481046015541061126b57600080fd5b50505050565b6001600160a01b031660009081526009602052604090205490565b602054610100900460ff1681565b60085481565b60075481565b6112af33611089565b6112e9576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60648160065402816112f757fe5b0460085550565b6000546001600160a01b031690565b604080518082019091526003815262464e4360e81b602082015290565b611333336118f9565b611372576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b0811061138157600080fd5b601f55565b61138f33611089565b6113c9576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6113fd336118f9565b61143c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601780546001600160a01b039384166001600160a01b03199182161790915560188054929093169116179055565b601c546001600160a01b031681565b6000610f093384846119b7565b61148f33611089565b6114c9576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601d5481565b6017546001600160a01b031681565b6000610cf6611512610f10565b601c5461153f9061153890600290611532906001600160a01b0316611271565b906120c6565b85906120c6565b9061211f565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b611579336118f9565b6115b8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6022805460ff191692151592909217909155602355565b6018546001600160a01b031681565b6115e733611089565b611621576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b61164b33611089565b611685576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b6116fc336118f9565b61173b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906117625750601c546001600160a01b03838116911614155b61176b57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff1916821580159190911790915561180d57601e5460408051630a5b654b60e11b81526001600160a01b038581166004830152600060248301819052925161010090940416926314b6ca969260448084019391929182900301818387803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b50505050611873565b601e546001600160a01b03838116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b15801561100457600080fd5b5050565b611880336118f9565b6118bf576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b601b546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b601e5460ff1681565b600081848411156119af5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561197457818101518382015260200161195c565b50505050905090810190601f1680156119a15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60245460009060ff16156119d7576119d0848484612161565b9050610f09565b6001600160a01b03841660009081526001602052604090205460ff16158015611a1957506001600160a01b03831660009081526001602052604090205460ff16155b15611b4157601e5460ff16611a6c576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b6001600160a01b03841660009081526011602052604090205460ff1615611ad3576040805162461bcd60e51b815260206004820152601660248201527553656e64657220697320626c61636b6c69737465642160501b604482015290519081900360640190fd5b6001600160a01b03831660009081526011602052604090205460ff1615611b41576040805162461bcd60e51b815260206004820152601960248201527f526563697069656e7420697320626c61636b6c69737465642100000000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015611b8357506001600160a01b0383166000908152600f602052604090205460ff16155b8015611ba857506001600160a01b03841660009081526010602052604090205460ff16155b8015611bbd57506001600160a01b0383163014155b8015611bd757506004546001600160a01b03848116911614155b8015611bf15750601c546001600160a01b03848116911614155b8015611c0b57506018546001600160a01b03848116911614155b8015611c2557506017546001600160a01b03848116911614155b15611c7c576000611c3584611271565b90506008548382011115611c7a5760405162461bcd60e51b815260040180806020018281038252602a815260200180612833602a913960400191505060405180910390fd5b505b601c546001600160a01b038581169116148015611c9b575060205460ff165b8015611cc057506001600160a01b0383166000908152600d602052604090205460ff16155b15611d46576001600160a01b0383166000908152602160205260409020544211611d1b5760405162461bcd60e51b815260040180806020018281038252602681526020018061285d6026913960400191505060405180910390fd5b602080546001600160a01b03851660009081526021909252604090912061010090910460ff16420190555b611d50848361224b565b611d586122af565b15611d6557611d656122fe565b604080518082018252601d81527f596f7520646f6e2774206861766520656e6f75676820746f6b656e732e0000006020808301919091526001600160a01b038716600090815260099091529190912054611dc0918490611920565b6001600160a01b038516600090815260096020526040812091909155611de685856126df565b611df05782611dfa565b611dfa858461272b565b6001600160a01b038516600090815260096020526040902054909150611e20908261206c565b6001600160a01b038086166000908152600960209081526040808320949094559188168152600e909152205460ff16611ecc57601e546001600160a01b03868116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b158015611eb957600080fd5b505af1925050508015611eca575060015b505b6001600160a01b0384166000908152600e602052604090205460ff16611f6557601e546001600160a01b03858116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b158015611f5257600080fd5b505af1925050508015611f63575060015b505b601e60019054906101000a90046001600160a01b03166001600160a01b031663ffb2c479601f546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611fc257600080fd5b505af1925050508015611fd3575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000610f0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611920565b600082820183811015610f09576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826120d557506000610cf6565b828202828482816120e257fe5b0414610f095760405162461bcd60e51b81526004018080602001828103825260218152602001806128a96021913960400191505060405180910390fd5b6000610f0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127cd565b604080518082018252601d81527f596f7520646f6e2774206861766520656e6f75676820746f6b656e732e0000006020808301919091526001600160a01b03861660009081526009909152918220546121bb918490611920565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546121ea908361206c565b6001600160a01b0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b6007548111158061227457506001600160a01b0382166000908152600c602052604090205460ff165b6118735760405162461bcd60e51b81526004018080602001828103825260268152602001806128836026913960400191505060405180910390fd5b601c546000906001600160a01b031633148015906122d0575060245460ff16155b80156122de575060225460ff165b8015610f5457505060235430600090815260096020526040902054101590565b6024805460ff19166001179055601954601a5460009161231d91610d52565b6123295760125461232c565b60005b90506000612350600261153f60155461153f866023546120c690919063ffffffff16565b905060006123698260235461202a90919063ffffffff16565b604080516002808252606080830184529394509091602083019080368337019050509050308160008151811061239b57fe5b6001600160a01b0392831660209182029290920101526003548251911690829060019081106123c657fe5b6001600160a01b03928316602091820292909201810191909152601b5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015612460578181015183820152602001612448565b505050509050019650505050505050600060405180830381600087803b15801561248957600080fd5b505af115801561249d573d6000803e3d6000fd5b5050505060006124b6824761202a90919063ffffffff16565b905060006124d16124c888600261211f565b6015549061202a565b905060006124e6600261153f8481878d6120c6565b905060006125038361153f601354876120c690919063ffffffff16565b905060006125208461153f601454886120c690919063ffffffff16565b9050601e60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561257257600080fd5b505af193505050508015612584575060015b506018546040516000916001600160a01b03169061753090849084818181858888f193505050503d80600081146125d7576040519150601f19603f3d011682016040523d82523d6000602084013e6125dc565b606091505b5060009250508a1590506126c857601b546017546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561265f57600080fd5b505af1158015612673573d6000803e3d6000fd5b50505050506040513d606081101561268a57600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506024805460ff19169055505050505050505050565b6001600160a01b03811660009081526010602052604081205460ff161561270857506000610cf6565b506001600160a01b0382166000908152600b602052604090205460ff1615610cf6565b60008061274960165461153f601554866120c690919063ffffffff16565b30600090815260096020526040902054909150612766908261206c565b30600081815260096020908152604091829020939093558051848152905191926001600160a01b038816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36127c5838261202a565b949350505050565b6000818361281c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561197457818101518382015260200161195c565b50600083858161282857fe5b049594505050505056fe526563697069656e742063616e277420686f6c64206d6f7265207468616e204d61782057616c6c657421506c65617365207761697420666f7220636f6f6c646f776e206265747765656e20627579732e596f752063616e2774207472616e73666572206d6f7265207468616e205478204c696d69742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c3f9da03a0e7f6aa53646ab13793fcf03a565411be8d64d4de113352c32b933464736f6c634300070400336080604052600180546001600160a01b03199081167304068da6c83afcfa0e13ba15a6696662335d5b7517909155600280549091167321be370d5312f44cb42ce377bc9b8a0cef1a4c8317905564e8d4a51000600c55610e10600d55620f4240600e5534801561006e57600080fd5b50604051610eb1380380610eb18339818101604052602081101561009157600080fd5b50516001600160a01b0381166100bb5773f491e7b69e4244ad4002bc14e878a34207e38c296100bd565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dba806100f76000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f7610759565b34801561026057600080fd5b506100f761075f565b34801561027557600080fd5b50610142610765565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610770565b3480156102b457600080fd5b506100f7610852565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b038216600090815260076020526040902054156103015761030182610858565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610980565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e1565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ace565b90610b19565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b73565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b73565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ace565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b5051604080516002808252606080830184529394509091602083019080368337505060025482519293506001600160a01b03169183915060009061059557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105bf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610651578181015183820152602001610639565b50505050905001955050505050506000604051808303818588803b15801561067857600080fd5b505af115801561068c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e557600080fd5b505afa1580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b505190610ace565b6009549091506107279082610b19565b600955600854600c5461075191610748916107429085610b90565b90610be9565b600b5490610b19565b600b55505050565b600b5481565b600a5481565b61076e33610858565b565b6000546001600160a01b0316331461078757600080fd5b60045480610795575061084f565b6000805a905060005b84831080156107ac57508381105b1561084a5783600f54106107c0576000600f555b6107ec6004600f54815481106107d257fe5b6000918252602090912001546001600160a01b0316610c2b565b1561081d5761081d6004600f548154811061080357fe5b6000918252602090912001546001600160a01b0316610858565b61083261082b5a8490610ace565b8490610b19565b92505a600f805460019081019091559092500161079e565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087a5761084f565b6000610885826103e8565b9050801561097c57600a5461089a9082610b19565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f357600080fd5b505af1158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109529082610b19565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b73565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f357fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2b57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aa957fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c67565b90505b92915050565b600082820183811015610b10576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b13600c54610742600b5485610b9090919063ffffffff16565b600082610b9f57506000610b13565b82820282848281610bac57fe5b0414610b105760405162461bcd60e51b8152600401808060200182810382526021815260200180610d646021913960400191505060405180910390fd5b6000610b1083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cfe565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b135750600e54610c60836103e8565b1192915050565b60008184841115610cf65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbb578181015183820152602001610ca3565b50505050905090810190601f168015610ce85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbb578181015183820152602001610ca3565b506000838581610d5957fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220fbc35714bd190142d1804952768c9a4381ad560f0cabb95518981a98beb2ecc964736f6c63430007040033

Deployed ByteCode Sourcemap

12347:13719:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17009:351;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17009:351:0;;;;;;;;;;:::i;:::-;;14198:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17368:148;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17368:148:0;;;;;;;;;;:::i;15655:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16077:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16077:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;21240:94;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21240:94:0;;;;:::i;25846:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25846:150:0;;;;;;;:::i;15385:88::-;;;;;;;;;;;;;:::i;21009:223::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21009:223:0;;:::i;13562:28::-;;;;;;;;;;;;;:::i;24991:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24991:183:0;;;;;;;:::i;16469:374::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16469:374:0;;;;;;;;;;;;;;;;;:::i;25521:142::-;;;;;;;;;;;;;:::i;25182:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25182:183:0;;;;;;;:::i;21342:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21342:164:0;;;;;;;;;;;:::i;4204:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4204:103:0;-1:-1:-1;;;;;4204:103:0;;:::i;15479:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24022:130;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24022:130:0;;;;;;;;;;:::i;23299:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23299:96:0;;:::i;14015:37::-;;;;;;;;;;;;;:::i;23758:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23758:120:0;;;;;;;;;;:::i;14161:30::-;;;;;;;;;;;;;:::i;24160:423::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24160:423:0;;;;;;;;;;;;;;;;;:::i;15825:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15825:105:0;-1:-1:-1;;;;;15825:105:0;;:::i;14059:39::-;;;;;;;;;;;;;:::i;12939:59::-;;;;;;;;;;;;;:::i;12880:52::-;;;;;;;;;;;;;:::i;16852:149::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16852:149:0;;:::i;15741:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15741:78:0;;;;;;;;;;;;;;15565:84;;;;;;;;;;;;;:::i;25373:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25373:136:0;;:::i;17524:140::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17524:140:0;;;;;;;;;;:::i;24591:228::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24591:228:0;;;;;;;;;;:::i;13837:19::-;;;;;;;;;;;;;:::i;16305:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16305:156:0;;;;;;;;:::i;3877:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3877:94:0;-1:-1:-1;;;;;3877:94:0;;:::i;13865:25::-;;;;;;;;;;;;;:::i;13635:36::-;;;;;;;;;;;;;:::i;25671:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25671:167:0;;:::i;15936:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15936:133:0;;;;;;;;;;:::i;24827:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24827:156:0;;;;;;;;;:::i;13678:35::-;;;;;;;;;;;;;:::i;4047:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4047:97:0;-1:-1:-1;;;;;4047:97:0;;:::i;4604:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4604:173:0;-1:-1:-1;;;;;4604:173:0;;:::i;23403:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23403:347:0;;;;;;;;;;:::i;23886:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23886:128:0;;;;;;;;;;:::i;13806:24::-;;;;;;;;;;;;;:::i;4378:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4378:107:0;-1:-1:-1;;;;;4378:107:0;;:::i;13897:31::-;;;;;;;;;;;;;:::i;17009:351::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17107:27:0;;::::1;;::::0;;;:17:::1;:27;::::0;;;;;;;:42;;;::::1;;-1:-1:-1::0;;17107:42:0;;::::1;::::0;::::1;::::0;;;17160:17:::1;:27:::0;;;;;:42;;;::::1;::::0;::::1;::::0;;17213:15:::1;:25:::0;;;;;:40;;;::::1;::::0;::::1;::::0;;17264:11:::1;:21:::0;;;;;:36;;;::::1;::::0;::::1;::::0;;17311:16:::1;:26:::0;;;;;;:41;;;;::::1;;::::0;;17009:351::o;14198:51::-;;;;:::o;17368:148::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17466:27:0;;;::::1;;::::0;;;:17:::1;:27;::::0;;;;:42;;-1:-1:-1;;17466:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17368:148::o;15655:80::-;15727:5;;;;;;;;;;;;-1:-1:-1;;;15727:5:0;;;;15655:80;:::o;16077:216::-;16181:10;16152:4;16169:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16169:32:0;;;;;;;;;;;:41;;;16226:37;;;;;;;16152:4;;16169:32;;16181:10;;16226:37;;;;;;;;-1:-1:-1;16281:4:0;16077:216;;;;;:::o;21240:94::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;21305:11:::1;:21:::0;;-1:-1:-1;;21305:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21240:94::o;25846:150::-;25926:4;25982:6;25950:29;25970:8;25950:19;:29::i;:::-;:38;;25846:150;-1:-1:-1;;;25846:150:0:o;15385:88::-;15458:12;;15385:88;:::o;21009:223::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;21155:20:::1;::::0;21147:77:::1;::::0;21115:21:::1;::::0;-1:-1:-1;;;;;21155:20:0::1;::::0;21220:3:::1;21186:31:::0;;::::1;:37;21147:77:::0;::::1;;;::::0;::::1;::::0;;;21186:37;21155:20;21147:77;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;3625:1;21009:223:::0;:::o;13562:28::-;;;;:::o;24991:183::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;25089:15:::1;:25:::0;;;;25125:26:::1;:41:::0;24991:183::o;16469:374::-;-1:-1:-1;;;;;16589:19:0;;16569:4;16589:19;;;:11;:19;;;;;;;;16609:10;16589:31;;;;;;;;-1:-1:-1;;16589:46:0;16586:190;;16685:79;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16685:19:0;;-1:-1:-1;16685:19:0;;;:11;:19;;;;;16705:10;16685:31;;;;;;;;;;:79;;16721:6;;16685:35;:79::i;:::-;-1:-1:-1;;;;;16651:19:0;;;;;;:11;:19;;;;;;;;16671:10;16651:31;;;;;;;:113;16586:190;16795:40;16809:6;16817:9;16828:6;16795:13;:40::i;:::-;16788:47;;16469:374;;;;;;:::o;25521:142::-;25649:4;;25574:7;;25601:54;;25639:15;;-1:-1:-1;;;;;25649:4:0;25639:9;:15::i;:::-;25628:4;;25601:33;;25618:15;;-1:-1:-1;;;;;25628:4:0;25618:9;:15::i;:::-;25601:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;25594:61;;25521:142;:::o;25182:183::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;25292:11:::1;;;;;;;;;-1:-1:-1::0;;;;;25292:11:0::1;-1:-1:-1::0;;;;;25292:35:0::1;;25328:10;25340:16;25292:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25182:183:::0;;:::o;21342:164::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;21426:18:::1;:28:::0;;-1:-1:-1;;21426:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;21465:33:0::1;21426:28;;21465:33:::0;;;::::1;::::0;;;::::1;;::::0;;21342:164::o;4204:103::-;4259:4;4294:5;-1:-1:-1;;;;;4294:5:0;;;4283:16;;;;4204:103::o;15479:80::-;12813:1;15479:80;:::o;24022:130::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24111:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;24111:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24022:130::o;23299:96::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;23366:12:::1;:21:::0;23299:96::o;14015:37::-;;;;;;:::o;23758:120::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23842:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23842:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23758:120::o;14161:30::-;;;;;;:::o;24160:423::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;24303:12:::1;:28:::0;;;24342:13:::1;:30:::0;;;24383:12:::1;:28:::0;;;24433:52:::1;24398:13:::0;24433:33:::1;24318:13:::0;24358:14;24433:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:::-;24422:8;:63:::0;24496:14:::1;:32:::0;;;24573:1:::1;24513:15:::0;24558:16:::1;24547:8;;:27;24539:36;;;::::0;::::1;;24160:423:::0;;;;:::o;15825:105::-;-1:-1:-1;;;;;15909:18:0;15891:7;15909:18;;;:9;:18;;;;;;;15825:105::o;14059:39::-;;;;;;;;;:::o;12939:59::-;;;;:::o;12880:52::-;;;;:::o;16852:149::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;16990:3:::1;16971:14;16956:12;;:29;16955:38;;;;;;16937:15;:56:::0;-1:-1:-1;16852:149:0:o;15741:78::-;15793:7;15811:5;-1:-1:-1;;;;;15811:5:0;15741:78;:::o;15565:84::-;15639:7;;;;;;;;;;;;-1:-1:-1;;;15639:7:0;;;;15565:84;:::o;25373:136::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;25463:6:::1;25457:3;:12;25449:21;;;::::0;::::1;;25481:14;:20:::0;25373:136::o;17524:140::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17618:23:0;;;::::1;;::::0;;;:13:::1;:23;::::0;;;;:38;;-1:-1:-1;;17618:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17524:140::o;24591:228::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;24710:21:::1;:46:::0;;-1:-1:-1;;;;;24710:46:0;;::::1;-1:-1:-1::0;;;;;;24710:46:0;;::::1;;::::0;;;24767:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;24591:228::o;13837:19::-;;;-1:-1:-1;;;;;13837:19:0;;:::o;16305:156::-;16385:4;16409:44;16423:10;16435:9;16446:6;16409:13;:44::i;3877:94::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3937:19:0::1;;::::0;;;3959:4:::1;3937:19;::::0;;;;;;;:26;;-1:-1:-1;;3937:26:0::1;::::0;;::::1;::::0;;3877:94::o;13865:25::-;;;;:::o;13635:36::-;;;-1:-1:-1;;;;;13635:36:0;;:::o;25671:167::-;25739:7;25766:64;25807:22;:20;:22::i;:::-;25789:4;;25766:36;;25779:22;;25799:1;;25779:15;;-1:-1:-1;;;;;25789:4:0;25779:9;:15::i;:::-;:19;;:22::i;:::-;25766:8;;:12;:36::i;:::-;:40;;:64::i;15936:133::-;-1:-1:-1;;;;;16038:19:0;;;16020:7;16038:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15936:133::o;24827:156::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;24919:11:::1;:22:::0;;-1:-1:-1;;24919:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;24952:13:::1;:23:::0;24827:156::o;13678:35::-;;;-1:-1:-1;;;;;13678:35:0;;:::o;4047:97::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4109:19:0::1;4131:5;4109:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4109:27:0::1;::::0;;4047:97::o;4604:173::-;3593:19;3601:10;3593:7;:19::i;:::-;3585:38;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;-1:-1:-1;;;3585:38:0;;;;;;;;;;;;;;;4680:5:::1;:11:::0;;-1:-1:-1;;;;;;4680:11:0::1;-1:-1:-1::0;;;;;4680:11:0;::::1;::::0;;::::1;::::0;;4702:19;;;-1:-1:-1;4702:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4702:26:0::1;::::0;;::::1;::::0;;;4744:25;;;;;;;::::1;::::0;;;;;;;;;::::1;4604:173:::0;:::o;23403:347::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23500:23:0;::::1;23518:4;23500:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;23537:4:0::1;::::0;-1:-1:-1;;;;;23527:14:0;;::::1;23537:4:::0;::::1;23527:14;;23500:41;23492:50;;;::::0;::::1;;-1:-1:-1::0;;;;;23553:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;23553:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;23597:146:::1;;23622:11;::::0;:31:::1;::::0;;-1:-1:-1;;;23622:31:0;;-1:-1:-1;;;;;23622:31:0;;::::1;;::::0;::::1;::::0;23651:1:::1;23622:31:::0;;;;;;;;:11:::1;::::0;;::::1;;::::0;:20:::1;::::0;:31;;;;;23651:1;;23622:31;;;;;;23651:1;23622:11;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23597:146;;;23684:11;::::0;-1:-1:-1;;;;;23713:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;23684:47;;-1:-1:-1;;;23684:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:47;;;;;23713:17;;23684:47;;;;;;23713:17;23684:11;:47;::::1;;::::0;::::1;;;;::::0;::::1;23597:146;23403:347:::0;;:::o;23886:128::-;3762:24;3775:10;3762:12;:24::i;:::-;3754:48;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;-1:-1:-1;;;3754:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23974:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;23974:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23886:128::o;13806:24::-;;;-1:-1:-1;;;;;13806:24:0;;:::o;4378:107::-;-1:-1:-1;;;;;4458:19:0;4434:4;4458:19;;;:14;:19;;;;;;;;;4378:107::o;13897:31::-;;;;;;:::o;1386:192::-;1472:7;1508:12;1500:6;;;;1492:29;;;;-1:-1:-1;;;1492:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1544:5:0;;;1386:192::o;17672:1995::-;17786:6;;17764:4;;17786:6;;17783:63;;;17802:41;17817:6;17825:9;17836:6;17802:14;:41::i;:::-;17795:48;;;;17783:63;-1:-1:-1;;;;;17862:22:0;;;;;;:14;:22;;;;;;;;17861:23;:53;;;;-1:-1:-1;;;;;;17889:25:0;;;;;;:14;:25;;;;;;;;17888:26;17861:53;17858:276;;;17938:11;;;;17930:43;;;;;-1:-1:-1;;;17930:43:0;;;;;;;;;;;;-1:-1:-1;;;17930:43:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17997:21:0;;;;;;:13;:21;;;;;;;;17996:22;17988:56;;;;;-1:-1:-1;;;17988:56:0;;;;;;;;;;;;-1:-1:-1;;;17988:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18068:24:0;;;;;;:13;:24;;;;;;;;18067:25;18059:63;;;;;-1:-1:-1;;;18059:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18151:22:0;;;;;;:14;:22;;;;;;;;18150:23;:56;;;;-1:-1:-1;;;;;;18178:28:0;;;;;;:17;:28;;;;;;;;18177:29;18150:56;:86;;;;-1:-1:-1;;;;;;18211:25:0;;;;;;:17;:25;;;;;;;;18210:26;18150:86;:116;;;;-1:-1:-1;;;;;;18240:26:0;;18261:4;18240:26;;18150:116;:146;;;;-1:-1:-1;18291:4:0;;-1:-1:-1;;;;;18270:26:0;;;18291:4;;18270:26;;18150:146;:167;;;;-1:-1:-1;18313:4:0;;-1:-1:-1;;;;;18300:17:0;;;18313:4;;18300:17;;18150:167;:204;;;;-1:-1:-1;18334:20:0;;-1:-1:-1;;;;;18321:33:0;;;18334:20;;18321:33;;18150:204;:242;;;;-1:-1:-1;18371:21:0;;-1:-1:-1;;;;;18358:34:0;;;18371:21;;18358:34;;18150:242;18146:414;;;18408:18;18429:20;18439:9;18429;:20::i;:::-;18408:41;;18497:15;;18486:6;18473:10;:19;18472:40;;18464:94;;;;-1:-1:-1;;;18464:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18146:414;;18594:4;;-1:-1:-1;;;;;18584:14:0;;;18594:4;;18584:14;:49;;;;-1:-1:-1;18615:18:0;;;;18584:49;:94;;;;-1:-1:-1;;;;;;18651:27:0;;;;;;:16;:27;;;;;;;;18650:28;18584:94;18580:300;;;-1:-1:-1;;;;;18703:24:0;;;;;;:13;:24;;;;;;18730:15;-1:-1:-1;18695:92:0;;;;-1:-1:-1;;;18695:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18847:21;;;-1:-1:-1;;;;;18802:24:0;;;;;;:13;:24;;;;;;;18847:21;;;;;;18829:15;:39;18802:66;;18580:300;18892:28;18905:6;18913;18892:12;:28::i;:::-;18936:16;:14;:16::i;:::-;18933:35;;;18955:10;:8;:10::i;:::-;19000:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19000:17:0;;-1:-1:-1;19000:17:0;;;:9;:17;;;;;;;;:62;;19022:6;;19000:21;:62::i;:::-;-1:-1:-1;;;;;18980:17:0;;;;;;:9;:17;;;;;:82;;;;19100:32;18990:6;19122:9;19100:13;:32::i;:::-;:67;;19161:6;19100:67;;;19135:23;19143:6;19151;19135:7;:23::i;:::-;-1:-1:-1;;;;;19201:20:0;;;;;;:9;:20;;;;;;19075:92;;-1:-1:-1;19201:40:0;;19075:92;19201:24;:40::i;:::-;-1:-1:-1;;;;;19178:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;19258:24;;;;;:16;:24;;;;;;;19254:119;;19303:11;;-1:-1:-1;;;;;19332:17:0;;;;;;;:9;:17;;;;;;;19303:47;;-1:-1:-1;;;19303:47:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:47;;;;;19332:17;;19303:47;;;;;;19332:17;19303:11;:47;;;;;;;;;;;;;;;;;;;;;;;;;19299:63;;-1:-1:-1;;;;;19389:27:0;;;;;;:16;:27;;;;;;;;19385:129;;19437:11;;-1:-1:-1;;;;;19469:20:0;;;;;;;:9;:20;;;;;;;19437:53;;-1:-1:-1;;;19437:53:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:53;;;;;19469:20;;19437:53;;;;;;19469:20;19437:11;:53;;;;;;;;;;;;;;;;;;;;;;;;;19433:69;;19530:11;;;;;;;;;-1:-1:-1;;;;;19530:11:0;-1:-1:-1;;;;;19530:19:0;;19550:14;;19530:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19526:51;19611:9;-1:-1:-1;;;;;19594:43:0;19603:6;-1:-1:-1;;;;;19594:43:0;;19622:14;19594:43;;;;;;;;;;;;;;;;;;-1:-1:-1;19655:4:0;;17672:1995;-1:-1:-1;;;;17672:1995:0:o;1244:136::-;1302:7;1329:43;1333:1;1336;1329:43;;;;;;;;;;;;;;;;;:3;:43::i;1057:181::-;1115:7;1147:5;;;1171:6;;;;1163:46;;;;;-1:-1:-1;;;1163:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1584:250;1642:7;1666:6;1662:47;;-1:-1:-1;1696:1:0;1689:8;;1662:47;1733:5;;;1737:1;1733;:5;:1;1757:5;;;;;:10;1749:56;;;;-1:-1:-1;;;1749:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:132;1898:7;1925:39;1929:1;1932;1925:39;;;;;;;;;;;;;;;;;:3;:39::i;19679:339::-;19809:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19809:17:0;;19772:4;19809:17;;;:9;:17;;;;;;;:62;;19831:6;;19809:21;:62::i;:::-;-1:-1:-1;;;;;19789:17:0;;;;;;;:9;:17;;;;;;:82;;;;19905:20;;;;;;;:32;;19930:6;19905:24;:32::i;:::-;-1:-1:-1;;;;;19882:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;19953:35;;;;;;;19882:20;;19953:35;;;;;;;;;;;;;-1:-1:-1;20006:4:0;19679:339;;;;;:::o;20026:187::-;20123:12;;20113:6;:22;;:49;;;-1:-1:-1;;;;;;20139:23:0;;;;;;:15;:23;;;;;;;;20113:49;20105:100;;;;-1:-1:-1;;;20105:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20804:197;20891:4;;20853;;-1:-1:-1;;;;;20891:4:0;20877:10;:18;;;;:38;;-1:-1:-1;20909:6:0;;;;20908:7;20877:38;:62;;;;-1:-1:-1;20928:11:0;;;;20877:62;:116;;;;-1:-1:-1;;20980:13:0;;20970:4;20952:24;;;;:9;:24;;;;;;:41;;;20804:197::o;21514:1777::-;14296:6;:13;;-1:-1:-1;;14296:13:0;14305:4;14296:13;;;21609:15:::1;::::0;21626:26:::1;::::0;14296:6;;21593:60:::1;::::0;:15:::1;:60::i;:::-;:79;;21660:12;;21593:79;;;21656:1;21593:79;21563:109;;21683:23;21709:59;21766:1;21709:52;21752:8;;21709:38;21727:19;21709:13;;:17;;:38;;;;:::i;:59::-;21683:85;;21779:20;21802:34;21820:15;21802:13;;:17;;:34;;;;:::i;:::-;21873:16;::::0;;21887:1:::1;21873:16:::0;;;21849:21:::1;21873:16:::0;;::::1;::::0;;21779:57;;-1:-1:-1;21873:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21873:16:0::1;21849:40;;21918:4;21900;21905:1;21900:7;;;;;;;;-1:-1:-1::0;;;;;21900:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21944:6:::1;::::0;21934:7;;21944:6;::::1;::::0;21934:4;;21944:6;;21934:7;::::1;;;;;-1:-1:-1::0;;;;;21934:16:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:16;;;;22021:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;22021:188:0;;::::1;::::0;::::1;::::0;;;21963:21:::1;22021:188:::0;;;;;;22163:4:::1;22021:188:::0;;;;;;22183:15:::1;22021:188:::0;;;;;;;;;;;;;;;;;;;;;21987:21:::1;::::0;22021:6;;;::::1;::::0;:57:::1;::::0;22093:12;;21963:21;;22136:4;;22021:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;21963:21;22021:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22222:20;22245:40;22271:13;22245:21;:25;;:40;;;;:::i;:::-;22222:63:::0;-1:-1:-1;22298:22:0::1;22323:40;22336:26;:19:::0;22360:1:::1;22336:23;:26::i;:::-;22323:8;::::0;;:12:::1;:40::i;:::-;22298:65:::0;-1:-1:-1;22384:29:0::1;22416:64;22478:1;22416:57;22298:65:::0;22416:57;:12;22433:19;22416:16:::1;:37::i;:64::-;22384:96;;22491:30;22524:51;22560:14;22524:31;22541:13;;22524:12;:16;;:31;;;;:::i;:51::-;22491:84;;22586:29;22618:50;22653:14;22618:30;22635:12;;22618;:16;;:30;;;;:::i;:50::-;22586:82;;22685:11;;;;;;;;;-1:-1:-1::0;;;;;22685:11:0::1;-1:-1:-1::0;;;;;22685:19:0::1;;22712:22;22685:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22681:68:::0;22788:20:::1;::::0;22780:80:::1;::::0;22760:15:::1;::::0;-1:-1:-1;;;;;22788:20:0::1;::::0;22850:5:::1;::::0;22822:21;;22760:15;22780:80;22760:15;22780:80;22822:21;22788:20;22850:5;22780:80:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;22884:5:0::1;::::0;-1:-1:-1;;22905:19:0;;;-1:-1:-1;22902:382:0::1;;22940:6;::::0;23117:21:::1;::::0;22940:247:::1;::::0;;-1:-1:-1;;;22940:247:0;;23019:4:::1;22940:247;::::0;::::1;::::0;;;;;;;:6:::1;:247:::0;;;;;;;;;;-1:-1:-1;;;;;23117:21:0;;::::1;22940:247:::0;;;;23157:15:::1;22940:247:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;22970:21;;22940:247;;;;;::::1;::::0;;;;;;;;;22970:21;22940:6;:247;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;22940:247:0;23221:51;;;;;22940:247:::1;23221:51:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;22902:382;-1:-1:-1::0;;14314:6:0;:14;;-1:-1:-1;;14314:14:0;;;-1:-1:-1;;;;;;;;;21514:1777:0:o;20221:234::-;-1:-1:-1;;;;;20322:28:0;;20302:4;20322:28;;;:17;:28;;;;;;;;20319:129;;;-1:-1:-1;20373:5:0;20366:12;;20319:129;-1:-1:-1;;;;;;20417:19:0;;;;;;:11;:19;;;;;;;;20416:20;20409:27;;20463:333;20530:7;20550:17;20570:40;20595:14;;20570:20;20581:8;;20570:6;:10;;:20;;;;:::i;:40::-;20668:4;20650:24;;;;:9;:24;;;;;;20550:60;;-1:-1:-1;20650:39:0;;20550:60;20650:28;:39::i;:::-;20641:4;20623:24;;;;:9;:24;;;;;;;;;:66;;;;20705:42;;;;;;;20641:4;;-1:-1:-1;;;;;20705:42:0;;;;;;;;;;;;;20767:21;:6;20778:9;20767:10;:21::i;:::-;20760:28;20463:333;-1:-1:-1;;;;20463:333:0:o;1978:345::-;2064:7;2166:12;2159:5;2151:28;;;;-1:-1:-1;;;2151:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2190:9;2206:1;2202;:5;;;;;;;1978:345;-1:-1:-1;;;;;1978:345:0:o

Swarm Source

ipfs://fbc35714bd190142d1804952768c9a4381ad560f0cabb95518981a98beb2ecc9
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
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.