Contract 0x2ff8d0f5218cabcecac50b9df6e260132845d94d

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x68624ef3787b4ec808c3f1ebdb293e944b1c5619ed037e545ef17e46f03a2016Set Tx Limit144529102022-01-17 19:45:0815 hrs 35 mins ago0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.00013717
0x346f8f4c24c2b4a5ed8a3693187dcfc0b72887049eccbb6715f947445e787605Clear Stuck Bala...144005252022-01-15 23:48:322 days 11 hrs ago0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.00015336
0x9f706ca8614bd7debfd94a0bd012b62a540b94dde7c6c44cf8248a220874f0e8Approve143774182022-01-15 4:27:553 days 6 hrs ago0x94eebe9cfe9a36815ae611f055bcc3f2da8361c4 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0xf1384939e29ba936b41e9eac1d5f8af40ba7be1287d7cfb5410aa414dba271f0Approve143767602022-01-15 3:55:013 days 7 hrs ago0x152b6a08e8ce3ab0a36caa85e4960f8f9e2df397 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0x79f77d7a3d46aaa009317213094a403401436872a54ce4f9cc2c97a5a73ddc98Trading Status143767332022-01-15 3:53:403 days 7 hrs ago0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000141185
0x97ce6aaa8b95fbb06b86ac9b1ebd5d01e2cb75d4b332b992ca83f2426a5067ccApprove143767282022-01-15 3:53:253 days 7 hrs ago0x801a410e25c9c7d83b74734ed054af286750461f IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0x5773bd4b0248bbaab29d9d84eec372cc49bbef3b8927e559a32c9dafec4a21d5Approve143767272022-01-15 3:53:223 days 7 hrs ago0x4b1775c5ba79d5141d15b14da50dc0d32ed2f8ba IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0xa757c0c62377eee8fd0dbc08a293c6f50d5fb00351411a023ef606c2c9e922a8Approve143767272022-01-15 3:53:223 days 7 hrs ago0x517bc6f1185cf70bf87f2c7888a74c4bae2e3e08 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0x4fd1a35271da0d584e897d7d572ab3ff9beceadaeb977480bef506d3155756e1Approve143767232022-01-15 3:53:103 days 7 hrs ago0x4468b2ec8d7a60c9ff6d7dc526d3e817dab5bb9d IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0xaa688302fd1e04ea81140114f2a2470bdacb87e5dc86b0d11701c2418e746bdaApprove143767192022-01-15 3:52:583 days 7 hrs ago0xade24fcf1ece54b8f265287cacb38386337c8854 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0x9a36ea1f2fd52d78c97dc086e833b60919585d2d8f6d35e47a2c10c5eca95bd9Approve143767082022-01-15 3:52:253 days 7 hrs ago0x44a8c34b37a60117822dc315b8c404222545ca67 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0xf0d2ffa88a33c6cd29c487ff3021a2f22fe5fa3188309a83c592a331d17900d7Approve143767052022-01-15 3:52:163 days 7 hrs ago0x792a60042ed3fb8fdceb3a3ccda6399e489e1f32 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000175945
0x3e4f4b760981851f2e6daf5de178080eb772af3788e3702d16fbc9db54808228Approve143767042022-01-15 3:52:133 days 7 hrs ago0xc0220145157605afb8017a19e9bcc7f30db35b3d IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0xd3e32b1e8add01a1e6efdb8c4e13a86a2d483db8fe00e65e537496430eea5ed1Approve143767032022-01-15 3:52:103 days 7 hrs ago0x6fa77f9984df5f844bcca666374d39a616c53147 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0xf94c267170135d092e7bde6a438fa7a9e5fde1d9f2915bfd9df587a31c3e0407Approve143767022022-01-15 3:52:073 days 7 hrs ago0xbba327c7c5e5ba4d50b9485cf1077afdc6a08ddc IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.00026601
0x2cce7fb6bba9d54ae584cde91aa4225cf09ba5d261e39a72bc3e51dcf48656b6Approve143767002022-01-15 3:52:013 days 7 hrs ago0x792a60042ed3fb8fdceb3a3ccda6399e489e1f32 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0x935cf156f34fb40dd120c1fdfcb77a2c9c63032a572fe1fff66f9cf6c2d0d590Approve143766992022-01-15 3:51:583 days 7 hrs ago0xe7ab41d2fdccba7911e0873603ed0a95d8655cbe IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.00026601
0x46a2c62b8f5db967d936fe291c51c2a76d870b78a14daf3a52f3a5fb7a058948Approve143766982022-01-15 3:51:553 days 7 hrs ago0x796f31498fd3b820907b0a7e8a5e44a8ea4dbfcb IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.00026601
0xc3b16f6bf4a863c20bc5107feddf77dadab855c0fadb67ccfa529b5472ea090fApprove143766912022-01-15 3:51:343 days 7 hrs ago0x30b46424a4bfa5520bea79697d7d06616a244d3e IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0xd2569d1b1161303bd6c7fa154df6089489ecc313c532fbb2ba998e9b634c6a1aApprove143766912022-01-15 3:51:343 days 7 hrs ago0x0d9d79db85e35127b20466a7985e29891f8b8686 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0x4ddcdffba8846a2c95c5ef6372e505bd680d8b16dc2c5e281f6c64b6fe298d7dApprove143766892022-01-15 3:51:283 days 7 hrs ago0xd2f84ae67b9bb72c2570c232fd7b15e198005443 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.00026601
0xc0460b769af41f4691b0c896df4a9dc573a73b34e417ff76b253255c7a59eb6aApprove143766882022-01-15 3:51:253 days 7 hrs ago0x2f3709fc573e640f25bea7e03be69bcab2f15c44 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000310345
0x618a516456370ab53ab5c425ffe2f4522166c6bfd9119785ee38fd204a459236Approve143766842022-01-15 3:51:133 days 7 hrs ago0x68d9e03658f7f27d2dc55bdc8c7a29a30bf97d96 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0xf20b2b1d840e09a2a33467fcc67921e058f2ecb8ce625eb2ab9fd0d9a0c85670Approve143766842022-01-15 3:51:133 days 7 hrs ago0x544d80bb01186f15dbb209636b5045c3434504a4 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.000221675
0x54cd1db0daac79b388b4d9dba03d0aeae2fe699ed8b6647e60d5f2491de2de1dApprove143766842022-01-15 3:51:133 days 7 hrs ago0xd757b7ff351da9f501daab78707378bbddecb918 IN  0x2ff8d0f5218cabcecac50b9df6e260132845d94d0 BNB0.0003148069
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x346f8f4c24c2b4a5ed8a3693187dcfc0b72887049eccbb6715f947445e787605144005252022-01-15 23:48:322 days 11 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.059644304552123592 BNB
0xb0f2b7131eddb5bcc4a482cb7cfa3395e585491bf7d4878624b496089c818d66143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001108829627382275 BNB
0xb0f2b7131eddb5bcc4a482cb7cfa3395e585491bf7d4878624b496089c818d66143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002217659254764551 BNB
0x7fa52e45a70b9f7019330e23eda1d3d131a02bd656f6705a61963ac0aca0f056143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001125938661828411 BNB
0x7fa52e45a70b9f7019330e23eda1d3d131a02bd656f6705a61963ac0aca0f056143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002251877323656823 BNB
0xb47922fc2ad4c4bfe262976be2c790c7ea044945ca6726f38150c7202c1f205d143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001142118234403124 BNB
0xb47922fc2ad4c4bfe262976be2c790c7ea044945ca6726f38150c7202c1f205d143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002284236468806249 BNB
0x4d37bbfae5ffc3eadb43e6bafb9322040a3922878bf03d74982c40f1196d3f97143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001167669493296302 BNB
0x4d37bbfae5ffc3eadb43e6bafb9322040a3922878bf03d74982c40f1196d3f97143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002335338986592605 BNB
0x798e34566bbf767779abd3194cada6a38c99f5796cd54325e69897a3e22fb1a9143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001189614430717564 BNB
0x798e34566bbf767779abd3194cada6a38c99f5796cd54325e69897a3e22fb1a9143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002379228861435128 BNB
0x008bdaa944d36698de53ee30e45a0d422bf444fbf07aaba55843376330a5ba67143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001216301414343246 BNB
0x008bdaa944d36698de53ee30e45a0d422bf444fbf07aaba55843376330a5ba67143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002432602828686493 BNB
0xa52523fdc5bc2f8509c35130dce24138cae8e4f7a46fd9e8a6bdd4aca4ae573f143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001243411161661573 BNB
0xa52523fdc5bc2f8509c35130dce24138cae8e4f7a46fd9e8a6bdd4aca4ae573f143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002486822323323146 BNB
0x13e8389b2c3bc60a8aca3e8775fc66b698656d5eb564145bc47f6f9d44a69d05143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001270478471659037 BNB
0x13e8389b2c3bc60a8aca3e8775fc66b698656d5eb564145bc47f6f9d44a69d05143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002540956943318074 BNB
0x55cb8528a4917a956142d235ef8f7e52eadbdaa5fa242e57573edd7c3d8ce094143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001296206936170809 BNB
0x55cb8528a4917a956142d235ef8f7e52eadbdaa5fa242e57573edd7c3d8ce094143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002592413872341618 BNB
0xcdae82453f7f0ab1bda94366059c59cc569567699eed1250d581743495696cc7143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001315958273926819 BNB
0xcdae82453f7f0ab1bda94366059c59cc569567699eed1250d581743495696cc7143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002631916547853638 BNB
0x76d15b756cd88f4e6b2c33a9e8a30e1d7dd496953490dee1b07dd94218b95208143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001343988997566144 BNB
0x76d15b756cd88f4e6b2c33a9e8a30e1d7dd496953490dee1b07dd94218b95208143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002687977995132289 BNB
0x2560f27716a8fb2299f88fe84b2ab2abc339caea59339936245abbf3f3790b2f143767332022-01-15 3:53:403 days 7 hrs ago 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0x95bfe0601995fdd7db5efdc87f1f411ca9ff216f0.001371550442531146 BNB
0x2560f27716a8fb2299f88fe84b2ab2abc339caea59339936245abbf3f3790b2f143767332022-01-15 3:53:403 days 7 hrs ago PancakeSwap: Router v2 0x2ff8d0f5218cabcecac50b9df6e260132845d94d0.002743100885062293 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FujiInu

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2022-01-15
*/

//SPDX-License-Identifier: MI
//liq fee 5%
//reflection fee 0%
//marketing fee 5%     
//total supply: 100,000,000,000

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

/**
 * BEP20 standard interface.
 */
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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
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.
     */
    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 LINK = IBEP20(0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82);  
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    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 ** 36;

    //SETMEUP, change this to 1 hour instead of 10mins
    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 1 * (10 ** 18);

    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(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _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 = LINK.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(LINK);

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

        uint256 amount = LINK.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);
            LINK.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 FujiInu is IBEP20, Auth {
    using SafeMath for uint256;

    address LINK = 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82; 
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Fuji Inu";
    string constant _symbol = "JINU";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 100 * 10**9 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 10) / 1000;

    //max wallet holding of 2% 
    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;

    uint256 liquidityFee    = 5;
    uint256 reflectionFee   = 0;
    uint256 marketingFee    = 5;
    uint256 public totalFee = 10;
    uint256 feeDenominator  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    // Cooldown & timer functionality
    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 45;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000; // 0.01% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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

        distributor = new DividendDistributor(address(router));

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

        // No timelock for these people
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        // TO DO, manually whitelist this
        //isFeeExempt[_presaleContract] = true;
        //isTxLimitExempt[_presaleContract] = true;
        //isDividendExempt[_presaleContract] = true;

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

        // NICE!
        autoLiquidityReceiver = DEAD;
        marketingFeeReceiver = msg.sender;

        _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 approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    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, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

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

        // max wallet code
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        

        
        // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades.
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for cooldown between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }


        // Checks max transaction limit
        checkTxLimit(sender, amount);

        // Liquidity, Maintained at 25%
        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

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

        // Dividend tracker
        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, "Insufficient Balance");
        _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], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        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 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountBNB * amountPercentage / 100);
    }


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

    // enable cooldown between trades
    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] = WBNB;

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, 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;
    }



/* Airdrop Begins */


 function airdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    uint256 SCCC = 0;

    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[from]) {
        try distributor.setShare(from, _balances[from]) {} catch {}
    }
}

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","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":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":"spender","type":"address"}],"name":"approveMax","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":"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":"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":"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"}]

6080604052600280546001600160a01b0319908116730e09fabb73bd3ade0a17ecc321fd13a19e81ce821790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead17905560058054909116815566038d7ea4c680006006556509184e72a0006007556512309ce54000600855600f8190556000601055601155600a601255606460138190556014601655601755601b805460ff199081169091556207a120601c55601d805461ffff1916612d00179055601f8054909116600117905564e8d4a51000602055348015620000e557600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601880549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200017557600080fd5b505afa1580156200018a573d6000803e3d6000fd5b505050506040513d6020811015620001a157600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b158015620001f957600080fd5b505af11580156200020e573d6000803e3d6000fd5b505050506040513d60208110156200022557600080fd5b5051601980546001600160a01b0319166001600160a01b03928316179055306000908152600a60209081526040808320601880548616855292529182902060001990555490519116906200027990620003d1565b6001600160a01b03909116815260405190819003602001906000f080158015620002a7573d6000803e3d6000fd5b50601b8054610100600160a81b0319166101006001600160a01b0393841602179055336000818152600b60209081526040808320805460ff199081166001908117909255600c84528285208054821683179055600d845282852080548216831790556004805488168652838620805483168417905530808752848720805484168517905560195489168752600e8652848720805484168517905586528386208054831684179055805488168652838620805490921690921790555460148054919096166001600160a01b0319918216179095556015805490951684179094556006548383526009825284832081905584519081529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3620003df565b610ec08062002d6683390190565b61297780620003ef6000396000f3fe6080604052600436106102975760003560e01c8063722b62ad1161015a578063ca33e64c116100c1578063f2fde38b1161007a578063f2fde38b14610a87578063f708a64f14610aba578063f84ba65d14610af5578063f887ea4014610b30578063fe9fbb8014610b45578063ffb54a9914610b785761029e565b8063ca33e64c14610993578063d51ed1c8146109a8578063dd62ed3e146109d2578063df20fd4914610a0d578063e96fada214610a3f578063f0b37c0414610a545761029e565b80639d1944f5116101135780639d1944f514610898578063a4b45c00146108c2578063a8aa1b31146108fd578063a9059cbb14610912578063b6a5d7de1461094b578063bf56b3711461097e5761029e565b8063722b62ad146107e957806378109e54146107fe5780637d1db4a51461081357806382bf293c14610828578063893d20e81461085257806395d89b41146108835761029e565b80632d48e896116101fe5780635c85974f116101b75780635c85974f146106eb578063617fe0ed14610715578063658d4b7f1461072a5780636ddd1713146107655780636fcba3771461077a57806370a08231146107b65761029e565b80632d48e896146105ba5780632d594567146105ea5780632f54bf6e1461061f578063313ce5671461065257806350db71fb1461067d578063571ac8b0146106b85761029e565b806318160ddd1161025057806318160ddd146104de5780631da1db5e146104f35780631df4ccfc1461051d578063201e79911461053257806323b872dd146105625780632b112e49146105a55761029e565b8063025ff12f146102a35780630445b6671461038457806306fdde03146103ab578063095ea7b3146104355780630d295980146104825780631161ae39146104ae5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b50610382600480360360608110156102c657600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156102f157600080fd5b82018360208201111561030357600080fd5b8035906020019184602083028401116401000000008311171561032557600080fd5b91939092909160208101903564010000000081111561034357600080fd5b82018360208201111561035557600080fd5b8035906020019184602083028401116401000000008311171561037757600080fd5b509092509050610b8d565b005b34801561039057600080fd5b50610399610e8f565b60408051918252519081900360200190f35b3480156103b757600080fd5b506103c0610e95565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103fa5781810151838201526020016103e2565b50505050905090810190601f1680156104275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044157600080fd5b5061046e6004803603604081101561045857600080fd5b506001600160a01b038135169060200135610eb7565b604080519115158252519081900360200190f35b34801561048e57600080fd5b50610382600480360360208110156104a557600080fd5b50351515610f1e565b3480156104ba57600080fd5b5061046e600480360360408110156104d157600080fd5b5080359060200135610f74565b3480156104ea57600080fd5b50610399610f88565b3480156104ff57600080fd5b506103826004803603602081101561051657600080fd5b5035610f8e565b34801561052957600080fd5b50610399611014565b34801561053e57600080fd5b506103826004803603604081101561055557600080fd5b508035906020013561101a565b34801561056e57600080fd5b5061046e6004803603606081101561058557600080fd5b506001600160a01b0381358116916020810135909116906040013561106d565b3480156105b157600080fd5b5061039961112f565b3480156105c657600080fd5b50610382600480360360408110156105dd57600080fd5b5080359060200135611178565b3480156105f657600080fd5b506103826004803603604081101561060d57600080fd5b5080351515906020013560ff16611237565b34801561062b57600080fd5b5061046e6004803603602081101561064257600080fd5b50356001600160a01b03166112a0565b34801561065e57600080fd5b506106676112b4565b6040805160ff9092168252519081900360200190f35b34801561068957600080fd5b50610382600480360360408110156106a057600080fd5b506001600160a01b03813516906020013515156112b9565b3480156106c457600080fd5b5061046e600480360360208110156106db57600080fd5b50356001600160a01b031661132c565b3480156106f757600080fd5b506103826004803603602081101561070e57600080fd5b503561133a565b34801561072157600080fd5b5061046e611387565b34801561073657600080fd5b506103826004803603604081101561074d57600080fd5b506001600160a01b0381351690602001351515611390565b34801561077157600080fd5b5061046e611403565b34801561078657600080fd5b506103826004803603608081101561079d57600080fd5b508035906020810135906040810135906060013561140c565b3480156107c257600080fd5b50610399600480360360208110156107d957600080fd5b50356001600160a01b0316611496565b3480156107f557600080fd5b506106676114b1565b34801561080a57600080fd5b506103996114bf565b34801561081f57600080fd5b506103996114c5565b34801561083457600080fd5b506103826004803603602081101561084b57600080fd5b50356114cb565b34801561085e57600080fd5b50610867611523565b604080516001600160a01b039092168252519081900360200190f35b34801561088f57600080fd5b506103c0611532565b3480156108a457600080fd5b50610382600480360360208110156108bb57600080fd5b5035611550565b3480156108ce57600080fd5b50610382600480360360408110156108e557600080fd5b506001600160a01b03813581169160200135166115ac565b34801561090957600080fd5b50610867611622565b34801561091e57600080fd5b5061046e6004803603604081101561093557600080fd5b506001600160a01b038135169060200135611631565b34801561095757600080fd5b506103826004803603602081101561096e57600080fd5b50356001600160a01b031661163e565b34801561098a57600080fd5b506103996116a8565b34801561099f57600080fd5b506108676116ae565b3480156109b457600080fd5b50610399600480360360208110156109cb57600080fd5b50356116bd565b3480156109de57600080fd5b50610399600480360360408110156109f557600080fd5b506001600160a01b03813581169160200135166116fd565b348015610a1957600080fd5b5061038260048036036040811015610a3057600080fd5b50803515159060200135611728565b348015610a4b57600080fd5b50610867611787565b348015610a6057600080fd5b5061038260048036036020811015610a7757600080fd5b50356001600160a01b0316611796565b348015610a9357600080fd5b5061038260048036036020811015610aaa57600080fd5b50356001600160a01b03166117fa565b348015610ac657600080fd5b5061038260048036036040811015610add57600080fd5b506001600160a01b03813516906020013515156118ab565b348015610b0157600080fd5b5061038260048036036040811015610b1857600080fd5b506001600160a01b0381351690602001351515611a2f565b348015610b3c57600080fd5b50610867611aa2565b348015610b5157600080fd5b5061046e60048036036020811015610b6857600080fd5b50356001600160a01b0316611ab1565b348015610b8457600080fd5b5061046e611acf565b610b96336112a0565b610bd0576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6000838214610c105760405162461bcd60e51b81526004018080602001828103825260288152602001806128966028913960400191505060405180910390fd5b60005b84811015610c3d57838382818110610c2757fe5b6020029190910135929092019150600101610c13565b5080610c4887611496565b1015610c9b576040805162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000604482015290519081900360640190fd5b60005b84811015610ded57610cde87878784818110610cb657fe5b905060200201356001600160a01b0316868685818110610cd257fe5b90506020020135611ad8565b50600e6000878784818110610cef57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16610de557601b5461010090046001600160a01b03166314b6ca96878784818110610d3b57fe5b905060200201356001600160a01b0316600960008a8a87818110610d5b57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610dd257600080fd5b505af1925050508015610de3575060015b505b600101610c9e565b506001600160a01b0386166000908152600e602052604090205460ff16610e8757601b546001600160a01b03878116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b158015610e7457600080fd5b505af1925050508015610e85575060015b505b505050505050565b60205481565b60408051808201909152600881526746756a6920496e7560c01b602082015290565b336000818152600a602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610f27336112a0565b610f61576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601b805460ff1916911515919091179055565b600082610f80836116bd565b119392505050565b60065490565b610f97336112a0565b610fd1576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60155460405147916001600160a01b03169060648484020480156108fc02916000818181858888f1935050505015801561100f573d6000803e3d6000fd5b505050565b60125481565b61102333611ab1565b611062576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601691909155601755565b6001600160a01b0383166000908152600a602090815260408083203384529091528120546000191461111a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a825283812033825290915291909120546110f5918490611bb9565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b611125848484611c50565b90505b9392505050565b6005546000906111739061114b906001600160a01b0316611496565b60045461116d90611164906001600160a01b0316611496565b60065490612198565b90612198565b905090565b61118133611ab1565b6111c0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601b60019054906101000a90046001600160a01b03166001600160a01b0316632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561122357600080fd5b505af1158015610e87573d6000803e3d6000fd5b611240336112a0565b61127a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601d805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600490565b6112c233611ab1565b611301576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000610f1882600019610eb7565b61134333611ab1565b611382576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600755565b601d5460ff1681565b61139933611ab1565b6113d8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b601f5460ff1681565b61141533611ab1565b611454576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600f849055601083905560118290556114778261147186866121da565b906121da565b6012556013819055600481046012541061149057600080fd5b50505050565b6001600160a01b031660009081526009602052604090205490565b601d54610100900460ff1681565b60085481565b60075481565b6114d4336112a0565b61150e576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b606481600654028161151c57fe5b0460085550565b6000546001600160a01b031690565b6040805180820190915260048152634a494e5560e01b602082015290565b61155933611ab1565b611598576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b081106115a757600080fd5b601c55565b6115b533611ab1565b6115f4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601480546001600160a01b039384166001600160a01b03199182161790915560158054929093169116179055565b6019546001600160a01b031681565b6000611128338484611c50565b611647336112a0565b611681576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601a5481565b6014546001600160a01b031681565b6000610f186116ca61112f565b6019546116f7906116f0906002906116ea906001600160a01b0316611496565b90612234565b8590612234565b9061228d565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61173133611ab1565b611770576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f805460ff191692151592909217909155602055565b6015546001600160a01b031681565b61179f336112a0565b6117d9576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b611803336112a0565b61183d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b6118b433611ab1565b6118f3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b038216301480159061191a57506019546001600160a01b03838116911614155b61192357600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff191682158015919091179091556119c557601b5460408051630a5b654b60e11b81526001600160a01b038581166004830152600060248301819052925161010090940416926314b6ca969260448084019391929182900301818387803b1580156119a857600080fd5b505af11580156119bc573d6000803e3d6000fd5b50505050611a2b565b601b546001600160a01b03838116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b15801561122357600080fd5b5050565b611a3833611ab1565b611a77576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6018546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b601b5460ff1681565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600990915291822054611b29918490611bb9565b6001600160a01b038086166000908152600960205260408082209390935590851681522054611b5890836121da565b6001600160a01b0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115611c485760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c0d578181015183820152602001611bf5565b50505050905090810190601f168015611c3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60215460009060ff1615611c7057611c69848484611ad8565b9050611128565b6001600160a01b03841660009081526001602052604090205460ff16158015611cb257506001600160a01b03831660009081526001602052604090205460ff16155b15611d0557601b5460ff16611d05576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015611d3757506001600160a01b0383163014155b8015611d5157506004546001600160a01b03848116911614155b8015611d6b57506019546001600160a01b03848116911614155b8015611d8557506015546001600160a01b03848116911614155b8015611d9f57506014546001600160a01b03848116911614155b15611df6576000611daf84611496565b90506008548382011115611df45760405162461bcd60e51b815260040180806020018281038252603e815260200180612904603e913960400191505060405180910390fd5b505b6019546001600160a01b038581169116148015611e155750601d5460ff165b8015611e3a57506001600160a01b0383166000908152600d602052604090205460ff16155b15611ebe576001600160a01b0383166000908152601e60205260409020544211611e955760405162461bcd60e51b81526004018080602001828103825260258152602001806128be6025913960400191505060405180910390fd5b601d546001600160a01b0384166000908152601e6020526040902061010090910460ff16420190555b611ec884836122cf565b611ed061233d565b15611edd57611edd61238e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260099091529190912054611f2f918490611bb9565b6001600160a01b038516600090815260096020526040812091909155611f548561276f565b611f5e5782611f68565b611f68858461278e565b6001600160a01b038516600090815260096020526040902054909150611f8e90826121da565b6001600160a01b038086166000908152600960209081526040808320949094559188168152600e909152205460ff1661203a57601b546001600160a01b03868116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b15801561202757600080fd5b505af1925050508015612038575060015b505b6001600160a01b0384166000908152600e602052604090205460ff166120d357601b546001600160a01b03858116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b1580156120c057600080fd5b505af19250505080156120d1575060015b505b601b60019054906101000a90046001600160a01b03166001600160a01b031663ffb2c479601c546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561213057600080fd5b505af1925050508015612141575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b600061112883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb9565b600082820183811015611128576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261224357506000610f18565b8282028284828161225057fe5b04146111285760405162461bcd60e51b81526004018080602001828103825260218152602001806128e36021913960400191505060405180910390fd5b600061112883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612830565b600754811115806122f857506001600160a01b0382166000908152600c602052604090205460ff165b611a2b576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b6019546000906001600160a01b0316331480159061235e575060215460ff16155b801561236c5750601f5460ff165b8015611173575050602080543060009081526009909252604090912054101590565b6021805460ff191660011790556016546017546000916123ad91610f74565b6123b957600f546123bc565b60005b905060006123e060026116f76012546116f78660205461223490919063ffffffff16565b905060006123f98260205461219890919063ffffffff16565b604080516002808252606080830184529394509091602083019080368337019050509050308160008151811061242b57fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061245657fe5b6001600160a01b0392831660209182029290920181019190915260185460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156124f05781810151838201526020016124d8565b505050509050019650505050505050600060405180830381600087803b15801561251957600080fd5b505af115801561252d573d6000803e3d6000fd5b505050506000612546824761219890919063ffffffff16565b9050600061256161255888600261228d565b60125490612198565b9050600061257660026116f78481878d612234565b90506000612593836116f76010548761223490919063ffffffff16565b905060006125b0846116f76011548861223490919063ffffffff16565b9050601b60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561260257600080fd5b505af193505050508015612614575060015b506015546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114612667576040519150601f19603f3d011682016040523d82523d6000602084013e61266c565b606091505b5060009250508a159050612758576018546014546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b1580156126ef57600080fd5b505af1158015612703573d6000803e3d6000fd5b50505050506040513d606081101561271a57600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506021805460ff19169055505050505050505050565b6001600160a01b03166000908152600b602052604090205460ff161590565b6000806127ac6013546116f76012548661223490919063ffffffff16565b306000908152600960205260409020549091506127c990826121da565b30600081815260096020908152604091829020939093558051848152905191926001600160a01b038816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36128288382612198565b949350505050565b6000818361287f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611c0d578181015183820152602001611bf5565b50600083858161288b57fe5b049594505050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74506c65617365207761697420666f7220636f6f6c646f776e206265747765656e2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220d5450e848be10995574610125823b65c30f709053a646330a3eaffda302ad9ff64736f6c634300070400336080604052600180546001600160a01b0319908116730e09fabb73bd3ade0a17ecc321fd13a19e81ce82179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610708600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610ec0380380610ec0833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca577310ed43c718714eb63d5aa57b78b54704e256024e6100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dba806101066000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f7610759565b34801561026057600080fd5b506100f761075f565b34801561027557600080fd5b50610142610765565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610770565b3480156102b457600080fd5b506100f7610852565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b038216600090815260076020526040902054156103015761030182610858565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610980565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e1565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ace565b90610b19565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b73565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b73565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ace565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b5051604080516002808252606080830184529394509091602083019080368337505060025482519293506001600160a01b03169183915060009061059557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105bf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610651578181015183820152602001610639565b50505050905001955050505050506000604051808303818588803b15801561067857600080fd5b505af115801561068c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e557600080fd5b505afa1580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b505190610ace565b6009549091506107279082610b19565b600955600854600c5461075191610748916107429085610b90565b90610be9565b600b5490610b19565b600b55505050565b600b5481565b600a5481565b61076e33610858565b565b6000546001600160a01b0316331461078757600080fd5b60045480610795575061084f565b6000805a905060005b84831080156107ac57508381105b1561084a5783600f54106107c0576000600f555b6107ec6004600f54815481106107d257fe5b6000918252602090912001546001600160a01b0316610c2b565b1561081d5761081d6004600f548154811061080357fe5b6000918252602090912001546001600160a01b0316610858565b61083261082b5a8490610ace565b8490610b19565b92505a600f805460019081019091559092500161079e565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087a5761084f565b6000610885826103e8565b9050801561097c57600a5461089a9082610b19565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f357600080fd5b505af1158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109529082610b19565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b73565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f357fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2b57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aa957fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c67565b90505b92915050565b600082820183811015610b10576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b13600c54610742600b5485610b9090919063ffffffff16565b600082610b9f57506000610b13565b82820282848281610bac57fe5b0414610b105760405162461bcd60e51b8152600401808060200182810382526021815260200180610d646021913960400191505060405180910390fd5b6000610b1083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cfe565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b135750600e54610c60836103e8565b1192915050565b60008184841115610cf65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbb578181015183820152602001610ca3565b50505050905090810190601f168015610ce85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbb578181015183820152602001610ca3565b506000838581610d5957fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212201d21e0ff6ac808e1a69b2cea9089e7fab104c24e92768a8f85b7f46105aa2e3a64736f6c63430007040033

Deployed ByteCode Sourcemap

11610:14105:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24857:789;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24857:789:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24857:789:0;;-1:-1:-1;24857:789:0;-1:-1:-1;24857:789:0;:::i;:::-;;13373:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14998:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15420:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15420:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20032:94;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20032:94:0;;;;:::i;24672:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24672:150:0;;;;;;;:::i;14728:88::-;;;;;;;;;;;;;:::i;19782:217::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19782:217:0;;:::i;12697:28::-;;;;;;;;;;;;;:::i;23817:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23817:183:0;;;;;;;:::i;15932:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15932:364:0;;;;;;;;;;;;;;;;;:::i;24347:142::-;;;;;;;;;;;;;:::i;24008:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24008:183:0;;;;;;;:::i;20173:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20173:164:0;;;;;;;;;;;:::i;3449:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3449:103:0;-1:-1:-1;;;;;3449:103:0;;:::i;14822:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22848:130;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22848:130:0;;;;;;;;;;:::i;15644:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15644:116:0;-1:-1:-1;;;;;15644:116:0;;:::i;22125:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22125:96:0;;:::i;13189:38::-;;;;;;;;;;;;;:::i;22584:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22584:120:0;;;;;;;;;;:::i;13336:30::-;;;;;;;;;;;;;:::i;22986:423::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22986:423:0;;;;;;;;;;;;;;;;;:::i;15168:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15168:105:0;-1:-1:-1;;;;;15168:105:0;;:::i;13234:39::-;;;;;;;;;;;;;:::i;12220:59::-;;;;;;;;;;;;;:::i;12122:56::-;;;;;;;;;;;;;:::i;16384:149::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16384:149:0;;:::i;15084:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15084:78:0;;;;;;;;;;;;;;14908:84;;;;;;;;;;;;;:::i;24199:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:136:0;;:::i;23417:228::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23417:228:0;;;;;;;;;;:::i;12972:19::-;;;;;;;;;;;;;:::i;15768:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15768:156:0;;;;;;;;:::i;3122:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3122:94:0;-1:-1:-1;;;;;3122:94:0;;:::i;13000:25::-;;;;;;;;;;;;;:::i;12770:36::-;;;;;;;;;;;;;:::i;24497:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24497:167:0;;:::i;15279:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15279:133:0;;;;;;;;;;:::i;23653:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23653:156:0;;;;;;;;;:::i;12813:35::-;;;;;;;;;;;;;:::i;3292:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3292:97:0;-1:-1:-1;;;;;3292:97:0;;:::i;3821:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3821:173:0;-1:-1:-1;;;;;3821:173:0;;:::i;22229:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22229:347:0;;;;;;;;;;:::i;22712:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22712:128:0;;;;;;;;;;:::i;12941:24::-;;;;;;;;;;;;;:::i;3623:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3623:107:0;-1:-1:-1;;;;;3623:107:0;;:::i;13032:31::-;;;;;;;;;;;;;:::i;24857:789::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;24973:12:::1;25006:33:::0;;::::1;24998:85;;;;-1:-1:-1::0;;;24998:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25096:6;25092:82;25106:20:::0;;::::1;25092:82;;;25157:6;;25164:1;25157:9;;;;;;;;;::::0;;;::::1;;25150:16:::0;;;::::1;::::0;-1:-1:-1;25128:3:0::1;;25092:82;;;;25209:4;25190:15;25200:4;25190:9;:15::i;:::-;:23;;25182:64;;;::::0;;-1:-1:-1;;;25182:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25259:6;25255:250;25269:20:::0;;::::1;25255:250;;;25306:43;25321:4;25326:9;;25336:1;25326:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;25326:12:0::1;25339:6;;25346:1;25339:9;;;;;;;;;;;;;25306:14;:43::i;:::-;;25364:16;:30;25381:9;;25391:1;25381:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;25381:12:0::1;25364:30:::0;;-1:-1:-1;25364:30:0;::::1;::::0;;;;;;-1:-1:-1;25364:30:0;;::::1;;25360:138;;25415:11;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;25415:11:0::1;:20;25436:9:::0;;25446:1;25436:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;25436:12:0::1;25450:9;:23;25460:9;;25470:1;25460:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;25460:12:0::1;-1:-1:-1::0;;;;;25450:23:0::1;-1:-1:-1::0;;;;;25450:23:0::1;;;;;;;;;;;;;25415:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;25415:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;25411:75:::0;::::1;25291:3;;25255:250;;;-1:-1:-1::0;;;;;;25542:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;25538:105;;25581:11;::::0;-1:-1:-1;;;;;25608:15:0;;::::1;;::::0;;;:9:::1;:15;::::0;;;;;;25581:43;;-1:-1:-1;;;25581:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:43;;;;;25608:15;;25581:43;;;;;;25608:15;25581:11;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;;;25577:59:::0;::::1;2870:1;24857:789:::0;;;;;:::o;13373:56::-;;;;:::o;14998:80::-;15070:5;;;;;;;;;;;;-1:-1:-1;;;15070:5:0;;;;14998:80;:::o;15420:216::-;15524:10;15495:4;15512:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15512:32:0;;;;;;;;;;;:41;;;15569:37;;;;;;;15495:4;;15512:32;;15524:10;;15569:37;;;;;;;;-1:-1:-1;15624:4:0;15420:216;;;;;:::o;20032:94::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;20097:11:::1;:21:::0;;-1:-1:-1;;20097:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20032:94::o;24672:150::-;24752:4;24808:6;24776:29;24796:8;24776:19;:29::i;:::-;:38;;24672:150;-1:-1:-1;;;24672:150:0:o;14728:88::-;14801:12;;14728:88;:::o;19782:217::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;19925:20:::1;::::0;19917:74:::1;::::0;19885:21:::1;::::0;-1:-1:-1;;;;;19925:20:0::1;::::0;19987:3:::1;19956:28:::0;;::::1;:34;19917:74:::0;::::1;;;::::0;::::1;::::0;;;19956:34;19925:20;19917:74;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;2870:1;19782:217:::0;:::o;12697:28::-;;;;:::o;23817:183::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;23915:15:::1;:25:::0;;;;23951:26:::1;:41:::0;23817:183::o;15932:364::-;-1:-1:-1;;;;;16052:19:0;;16032:4;16052:19;;;:11;:19;;;;;;;;16072:10;16052:31;;;;;;;;-1:-1:-1;;16052:46:0;16049:180;;16148:69;;;;;;;;;;;-1:-1:-1;;;16148:69:0;;;;;;;;-1:-1:-1;;;;;16148:19:0;;-1:-1:-1;16148:19:0;;;:11;:19;;;;;16168:10;16148:31;;;;;;;;;;:69;;16184:6;;16148:35;:69::i;:::-;-1:-1:-1;;;;;16114:19:0;;;;;;:11;:19;;;;;;;;16134:10;16114:31;;;;;;;:103;16049:180;16248:40;16262:6;16270:9;16281:6;16248:13;:40::i;:::-;16241:47;;15932:364;;;;;;:::o;24347:142::-;24475:4;;24400:7;;24427:54;;24465:15;;-1:-1:-1;;;;;24475:4:0;24465:9;:15::i;:::-;24454:4;;24427:33;;24444:15;;-1:-1:-1;;;;;24454:4:0;24444:9;:15::i;:::-;24427:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;24420:61;;24347:142;:::o;24008:183::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;24118:11:::1;;;;;;;;;-1:-1:-1::0;;;;;24118:11:0::1;-1:-1:-1::0;;;;;24118:35:0::1;;24154:10;24166:16;24118:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;20173:164:::0;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;20257:18:::1;:28:::0;;-1:-1:-1;;20257:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;20296:33:0::1;20257:28;;20296:33:::0;;;::::1;::::0;;;::::1;;::::0;;20173:164::o;3449:103::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;;;3528:16;;;;3449:103::o;14822:80::-;12051:1;14822:80;:::o;22848:130::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22937:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;22937:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22848:130::o;15644:116::-;15699:4;15723:29;15731:7;-1:-1:-1;;15723:7:0;:29::i;22125:96::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;22192:12:::1;:21:::0;22125:96::o;13189:38::-;;;;;;:::o;22584:120::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22668:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;22668:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22584:120::o;13336:30::-;;;;;;:::o;22986:423::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;23129:12:::1;:28:::0;;;23168:13:::1;:30:::0;;;23209:12:::1;:28:::0;;;23259:52:::1;23224:13:::0;23259:33:::1;23144:13:::0;23184:14;23259:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:::-;23248:8;:63:::0;23322:14:::1;:32:::0;;;23399:1:::1;23339:15:::0;23384:16:::1;23373:8;;:27;23365:36;;;::::0;::::1;;22986:423:::0;;;;:::o;15168:105::-;-1:-1:-1;;;;;15252:18:0;15234:7;15252:18;;;:9;:18;;;;;;;15168:105::o;13234:39::-;;;;;;;;;:::o;12220:59::-;;;;:::o;12122:56::-;;;;:::o;16384:149::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;16522:3:::1;16503:14;16488:12;;:29;16487:38;;;;;;16469:15;:56:::0;-1:-1:-1;16384:149:0:o;15084:78::-;15136:7;15154:5;-1:-1:-1;;;;;15154:5:0;15084:78;:::o;14908:84::-;14982:7;;;;;;;;;;;;-1:-1:-1;;;14982:7:0;;;;14908:84;:::o;24199:136::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;24289:6:::1;24283:3;:12;24275:21;;;::::0;::::1;;24307:14;:20:::0;24199:136::o;23417:228::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;23536:21:::1;:46:::0;;-1:-1:-1;;;;;23536:46:0;;::::1;-1:-1:-1::0;;;;;;23536:46:0;;::::1;;::::0;;;23593:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;23417:228::o;12972:19::-;;;-1:-1:-1;;;;;12972:19:0;;:::o;15768:156::-;15848:4;15872:44;15886:10;15898:9;15909:6;15872:13;:44::i;3122:94::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3182:19:0::1;;::::0;;;3204:4:::1;3182:19;::::0;;;;;;;:26;;-1:-1:-1;;3182:26:0::1;::::0;;::::1;::::0;;3122:94::o;13000:25::-;;;;:::o;12770:36::-;;;-1:-1:-1;;;;;12770:36:0;;:::o;24497:167::-;24565:7;24592:64;24633:22;:20;:22::i;:::-;24615:4;;24592:36;;24605:22;;24625:1;;24605:15;;-1:-1:-1;;;;;24615:4:0;24605:9;:15::i;:::-;:19;;:22::i;:::-;24592:8;;:12;:36::i;:::-;:40;;:64::i;15279:133::-;-1:-1:-1;;;;;15381:19:0;;;15363:7;15381:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15279:133::o;23653:156::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;23745:11:::1;:22:::0;;-1:-1:-1;;23745:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;23778:13:::1;:23:::0;23653:156::o;12813:35::-;;;-1:-1:-1;;;;;12813:35:0;;:::o;3292:97::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3354:19:0::1;3376:5;3354:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3354:27:0::1;::::0;;3292:97::o;3821:173::-;2838:19;2846:10;2838:7;:19::i;:::-;2830:38;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;-1:-1:-1;;;2830:38:0;;;;;;;;;;;;;;;3897:5:::1;:11:::0;;-1:-1:-1;;;;;;3897:11:0::1;-1:-1:-1::0;;;;;3897:11:0;::::1;::::0;;::::1;::::0;;3919:19;;;-1:-1:-1;3919:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3919:26:0::1;::::0;;::::1;::::0;;;3961:25;;;;;;;::::1;::::0;;;;;;;;;::::1;3821:173:::0;:::o;22229:347::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22326:23:0;::::1;22344:4;22326:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;22363:4:0::1;::::0;-1:-1:-1;;;;;22353:14:0;;::::1;22363:4:::0;::::1;22353:14;;22326:41;22318:50;;;::::0;::::1;;-1:-1:-1::0;;;;;22379:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;22379:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;22423:146:::1;;22448:11;::::0;:31:::1;::::0;;-1:-1:-1;;;22448:31:0;;-1:-1:-1;;;;;22448:31:0;;::::1;;::::0;::::1;::::0;22477:1:::1;22448:31:::0;;;;;;;;:11:::1;::::0;;::::1;;::::0;:20:::1;::::0;:31;;;;;22477:1;;22448:31;;;;;;22477:1;22448:11;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22423:146;;;22510:11;::::0;-1:-1:-1;;;;;22539:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;22510:47;;-1:-1:-1;;;22510:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:47;;;;;22539:17;;22510:47;;;;;;22539:17;22510:11;:47;::::1;;::::0;::::1;;;;::::0;::::1;22423:146;22229:347:::0;;:::o;22712:128::-;3007:24;3020:10;3007:12;:24::i;:::-;2999:48;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;-1:-1:-1;;;2999:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22800:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;22800:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22712:128::o;12941:24::-;;;-1:-1:-1;;;;;12941:24:0;;:::o;3623:107::-;-1:-1:-1;;;;;3703:19:0;3679:4;3703:19;;;:14;:19;;;;;;;;;3623:107::o;13032:31::-;;;;;;:::o;18602:330::-;18732:53;;;;;;;;;;;-1:-1:-1;;;18732:53:0;;;;;;;;-1:-1:-1;;;;;18732:17:0;;18695:4;18732:17;;;:9;:17;;;;;;;:53;;18754:6;;18732:21;:53::i;:::-;-1:-1:-1;;;;;18712:17:0;;;;;;;:9;:17;;;;;;:73;;;;18819:20;;;;;;;:32;;18844:6;18819:24;:32::i;:::-;-1:-1:-1;;;;;18796:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;18867:35;;;;;;;18796:20;;18867:35;;;;;;;;;;;;;-1:-1:-1;18920:4:0;18602:330;;;;;:::o;508:192::-;594:7;630:12;622:6;;;;614:29;;;;-1:-1:-1;;;614:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;666:5:0;;;508:192::o;16541:2049::-;16653:6;;16633:4;;16653:6;;16650:63;;;16669:41;16684:6;16692:9;16703:6;16669:14;:41::i;:::-;16662:48;;;;16650:63;-1:-1:-1;;;;;16729:22:0;;;;;;:14;:22;;;;;;;;16728:23;:53;;;;-1:-1:-1;;;;;;16756:25:0;;;;;;:14;:25;;;;;;;;16755:26;16728:53;16725:127;;;16805:11;;;;16797:43;;;;;-1:-1:-1;;;16797:43:0;;;;;;;;;;;;-1:-1:-1;;;16797:43:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16897:22:0;;;;;;:14;:22;;;;;;;;16896:23;:53;;;;-1:-1:-1;;;;;;16923:26:0;;16944:4;16923:26;;16896:53;:84;;;;-1:-1:-1;16975:4:0;;-1:-1:-1;;;;;16954:26:0;;;16975:4;;16954:26;;16896:84;:105;;;;-1:-1:-1;16997:4:0;;-1:-1:-1;;;;;16984:17:0;;;16997:4;;16984:17;;16896:105;:142;;;;-1:-1:-1;17018:20:0;;-1:-1:-1;;;;;17005:33:0;;;17018:20;;17005:33;;16896:142;:180;;;;-1:-1:-1;17055:21:0;;-1:-1:-1;;;;;17042:34:0;;;17055:21;;17042:34;;16896:180;16892:372;;;17092:18;17113:20;17123:9;17113;:20::i;:::-;17092:41;;17181:15;;17170:6;17157:10;:19;17156:40;;17148:114;;;;-1:-1:-1;;;17148:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16892:372;;17398:4;;-1:-1:-1;;;;;17388:14:0;;;17398:4;;17388:14;:49;;;;-1:-1:-1;17419:18:0;;;;17388:49;:94;;;;-1:-1:-1;;;;;;17455:27:0;;;;;;:16;:27;;;;;;;;17454:28;17388:94;17384:299;;;-1:-1:-1;;;;;17507:24:0;;;;;;:13;:24;;;;;;17534:15;-1:-1:-1;17499:91:0;;;;-1:-1:-1;;;17499:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17650:21;;-1:-1:-1;;;;;17605:24:0;;;;;;:13;:24;;;;;17650:21;;;;;;17632:15;:39;17605:66;;17384:299;17738:28;17751:6;17759;17738:12;:28::i;:::-;17823:16;:14;:16::i;:::-;17820:35;;;17842:10;:8;:10::i;:::-;17914:53;;;;;;;;;;;-1:-1:-1;;;17914:53:0;;;;;;;;-1:-1:-1;;;;;17914:17:0;;-1:-1:-1;17914:17:0;;;:9;:17;;;;;;;;:53;;17936:6;;17914:21;:53::i;:::-;-1:-1:-1;;;;;17894:17:0;;;;;;:9;:17;;;;;:73;;;;18005:21;17904:6;18005:13;:21::i;:::-;:56;;18055:6;18005:56;;;18029:23;18037:6;18045;18029:7;:23::i;:::-;-1:-1:-1;;;;;18095:20:0;;;;;;:9;:20;;;;;;17980:81;;-1:-1:-1;18095:40:0;;17980:81;18095:24;:40::i;:::-;-1:-1:-1;;;;;18072:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;18181:24;;;;;:16;:24;;;;;;;18177:119;;18226:11;;-1:-1:-1;;;;;18255:17:0;;;;;;;:9;:17;;;;;;;18226:47;;-1:-1:-1;;;18226:47:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:47;;;;;18255:17;;18226:47;;;;;;18255:17;18226:11;:47;;;;;;;;;;;;;;;;;;;;;;;;;18222:63;;-1:-1:-1;;;;;18312:27:0;;;;;;:16;:27;;;;;;;;18308:129;;18360:11;;-1:-1:-1;;;;;18392:20:0;;;;;;;:9;:20;;;;;;;18360:53;;-1:-1:-1;;;18360:53:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:53;;;;;18392:20;;18360:53;;;;;;18392:20;18360:11;:53;;;;;;;;;;;;;;;;;;;;;;;;;18356:69;;18453:11;;;;;;;;;-1:-1:-1;;;;;18453:11:0;-1:-1:-1;;;;;18453:19:0;;18473:14;;18453:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18449:51;18534:9;-1:-1:-1;;;;;18517:43:0;18526:6;-1:-1:-1;;;;;18517:43:0;;18545:14;18517:43;;;;;;;;;;;;;;;;;;-1:-1:-1;18578:4:0;;16541:2049;-1:-1:-1;;;;16541:2049:0:o;366:136::-;424:7;451:43;455:1;458;451:43;;;;;;;;;;;;;;;;;:3;:43::i;179:181::-;237:7;269:5;;;293:6;;;;285:46;;;;;-1:-1:-1;;;285:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;706:250;764:7;788:6;784:47;;-1:-1:-1;818:1:0;811:8;;784:47;855:5;;;859:1;855;:5;:1;879:5;;;;;:10;871:56;;;;-1:-1:-1;;;871:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;962:132;1020:7;1047:39;1051:1;1054;1047:39;;;;;;;;;;;;;;;;;:3;:39::i;18940:166::-;19037:12;;19027:6;:22;;:49;;;-1:-1:-1;;;;;;19053:23:0;;;;;;:15;:23;;;;;;;;19027:49;19019:79;;;;;-1:-1:-1;;;19019:79:0;;;;;;;;;;;;-1:-1:-1;;;19019:79:0;;;;;;;;;;;;;;19577:197;19664:4;;19626;;-1:-1:-1;;;;;19664:4:0;19650:10;:18;;;;:38;;-1:-1:-1;19682:6:0;;;;19681:7;19650:38;:62;;;;-1:-1:-1;19701:11:0;;;;19650:62;:116;;;;-1:-1:-1;;19753:13:0;;;19743:4;19725:24;;;;:9;:24;;;;;;;;:41;;;19577:197::o;20349:1766::-;13495:6;:13;;-1:-1:-1;;13495:13:0;13504:4;13495:13;;;20444:15:::1;::::0;20461:26:::1;::::0;13495:6;;20428:60:::1;::::0;:15:::1;:60::i;:::-;:79;;20495:12;;20428:79;;;20491:1;20428:79;20398:109;;20518:23;20544:59;20601:1;20544:52;20587:8;;20544:38;20562:19;20544:13;;:17;;:38;;;;:::i;:59::-;20518:85;;20614:20;20637:34;20655:15;20637:13;;:17;;:34;;;;:::i;:::-;20708:16;::::0;;20722:1:::1;20708:16:::0;;;20684:21:::1;20708:16:::0;;::::1;::::0;;20614:57;;-1:-1:-1;20708:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20708:16:0::1;20684:40;;20753:4;20735;20740:1;20735:7;;;;;;;;-1:-1:-1::0;;;;;20735:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;20779:4:::1;::::0;20769:7;;20779:4;::::1;::::0;20769;;20779;;20769:7;::::1;;;;;-1:-1:-1::0;;;;;20769:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;20854:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;20854:188:0;;::::1;::::0;::::1;::::0;;;20796:21:::1;20854:188:::0;;;;;;20996:4:::1;20854:188:::0;;;;;;21016:15:::1;20854:188:::0;;;;;;;;;;;;;;;;;;;;;20820:21:::1;::::0;20854:6;;;::::1;::::0;:57:::1;::::0;20926:12;;20796:21;;20969:4;;20854:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;20796:21;20854:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21055:17;21075:40;21101:13;21075:21;:25;;:40;;;;:::i;:::-;21055:60:::0;-1:-1:-1;21128:19:0::1;21150:40;21163:26;:19:::0;21187:1:::1;21163:23;:26::i;:::-;21150:8;::::0;;:12:::1;:40::i;:::-;21128:62:::0;-1:-1:-1;21211:26:0::1;21240:58;21296:1;21240:51;21128:62:::0;21240:51;:9;21254:19;21240:13:::1;:34::i;:58::-;21211:87;;21309:27;21339:45;21372:11;21339:28;21353:13;;21339:9;:13;;:28;;;;:::i;:45::-;21309:75;;21395:26;21424:44;21456:11;21424:27;21438:12;;21424:9;:13;;:27;;;;:::i;:44::-;21395:73;;21485:11;;;;;;;;;-1:-1:-1::0;;;;;21485:11:0::1;-1:-1:-1::0;;;;;21485:19:0::1;;21512;21485:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21481:65:::0;21585:20:::1;::::0;21577:77:::1;::::0;21557:15:::1;::::0;-1:-1:-1;;;;;21585:20:0::1;::::0;21644:5:::1;::::0;21619:18;;21557:15;21577:77;21557:15;21577:77;21619:18;21585:20;21644:5;21577:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21728:5:0::1;::::0;-1:-1:-1;;21749:19:0;;;-1:-1:-1;21746:362:0::1;;21784:6;::::0;21958:21:::1;::::0;21784:244:::1;::::0;;-1:-1:-1;;;21784:244:0;;21860:4:::1;21784:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;21958:21:0;;::::1;21784:244:::0;;;;21998:15:::1;21784:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;21814:18;;21784:244;;;;;::::1;::::0;;;;;;;;;21814:18;21784:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;21784:244:0;22048:48;;;;;21784:244:::1;22048:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;21746:362;-1:-1:-1::0;;13513:6:0;:14;;-1:-1:-1;;13513:14:0;;;-1:-1:-1;;;;;;;;;20349:1766:0:o;19114:114::-;-1:-1:-1;;;;;19201:19:0;19176:4;19201:19;;;:11;:19;;;;;;;;19200:20;;19114:114::o;19236:333::-;19303:7;19323:17;19343:40;19368:14;;19343:20;19354:8;;19343:6;:10;;:20;;;;:::i;:40::-;19441:4;19423:24;;;;:9;:24;;;;;;19323:60;;-1:-1:-1;19423:39:0;;19323:60;19423:28;:39::i;:::-;19414:4;19396:24;;;;:9;:24;;;;;;;;;:66;;;;19478:42;;;;;;;19414:4;;-1:-1:-1;;;;;19478:42:0;;;;;;;;;;;;;19540:21;:6;19551:9;19540:10;:21::i;:::-;19533:28;19236:333;-1:-1:-1;;;;19236:333:0:o;1100:345::-;1186:7;1288:12;1281:5;1273:28;;;;-1:-1:-1;;;1273:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:9;1328:1;1324;:5;;;;;;;1100:345;-1:-1:-1;;;;;1100:345:0:o

Swarm Source

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