Contract 0x112fbe7f60329e9e2d232008e56f94d1582ae3bc 2

 

Contract Overview

Baby Floki Billionaire: BabyFB Token
Balance:
0.620067768179193213 BNB

BNB Value:
$239.99 (@ $387.04/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x63ad80d1e5a4bc66ba7996df263001ca210199879fabbc29f7b0962753e76794Approve147744492022-01-29 0:43:238 mins ago0xd0d7b295d760002a6823f21593af6bf319e3bb0e IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000072855
0xbf8398b234b08f9327e8e47d86a25029469dcfd0994ed663b4ed3fb2e99ddb89Approve147737572022-01-29 0:08:3543 mins ago0x75c324c351c3bd4fb2dc64c48fb961f80a2788e9 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000267156
0x946882b3fe5201f4eb5f199161b94396304345b4e7df0860ef097974dffc2c89Approve147733442022-01-28 23:47:561 hr 4 mins ago0x4b36af615df082bbf35d05a7394971d3f8551874 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x8a7a134855e1cfeeb72382c5f00638e3839e414161eb7d6e0fdedbb87a41f9a2Approve147731132022-01-28 23:36:231 hr 15 mins ago0x5d37d88b684ea0d74b6125d46cdb92aa93ab7370 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x3d78b4a38c77f54be35e2363ca76d9c19523e5b3e19456a15094a220cdd09e67Approve147730922022-01-28 23:35:201 hr 16 mins ago0x00f205811b744d6752e4e62ad2e97069b43a796d IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x4b85da93a28937c99e1dd8be17dfd1bcc3a05a9e5c080c7f1cd1f0ebf04f210fTransfer147730522022-01-28 23:33:201 hr 18 mins agoHotbit 2 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00186125
0x6380d007bacefb968da4235278badf3e55fc406e45df963c29bba3041412280bApprove147701072022-01-28 21:06:053 hrs 45 mins ago0x84907dc5c9e4e1e6800cf50fa66bbc7b41f9cb89 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x6bb77f8e06140b8d358e4c52c7e2b505f0e44b05b822bdab1319a2384699a9a9Approve147700052022-01-28 21:00:593 hrs 51 mins ago0xaf9ae7210189195878ba74f010eedba07604b335 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0xdd9455ba3bf63ac1a2c0e7cf70dd537f27a342b40615e2730ff99b88ebf92edfApprove147698492022-01-28 20:53:113 hrs 58 mins ago0xa0f07dc34e91465a19b9c7e89aaf30d9b3507df4 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x14e18d5f676675a446e2dd5c38f25393fc5733f92f9c9bb256818c5eeb31564fApprove147697822022-01-28 20:49:504 hrs 2 mins ago0x995155d890fa5c0a9da8a364df6bc16f400b97d6 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000267156
0xcbc21efe840508e3422ceec4ca49248e644fc632ac17e1e4b119114eb21fffa3Approve147695942022-01-28 20:40:264 hrs 11 mins ago0x369e081e6f6a9930ecdfd100cf6a4b709f758515 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x7dd2313248f4c7d0f313b29acab2e484d3b00d9504c0030a6c98e031c76412f2Approve147695712022-01-28 20:39:174 hrs 12 mins ago0x32f3fff0b0107f0671fed097910fcd122ccf0f10 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0xaf074ee3e6abe10db76a1d752ccdd9a08451be7de9f79f6e7c8c5f64d84682d0Approve147686152022-01-28 19:50:535 hrs 1 min ago0x4b2ea9e791fa65b798ba2c365d717c58de04a960 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x98a957bc09055c8fe464165fb6918976e49d988faf21ebf46b76100df0e426eeApprove147685572022-01-28 19:47:595 hrs 4 mins ago0x0cb2bfbe42c08dff9f448c41b3bed53ec94b98be IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0xe7605ffae017b6b0d1ee69f5ad902a3df3a8fa62c86b5d272f30cf6a0ebc1ca8Transfer147682502022-01-28 19:32:385 hrs 19 mins ago0xa0c78baacefce683fcf503274df19e9097a56b1f IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000151575
0x849f91650a4338915ef2fabc5c33e43340fce1fae9947bf088d68bbacc729f9dTransfer147675152022-01-28 18:55:535 hrs 56 mins ago0xe609e216b6a82466cfe0aca6181b927be6c82824 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000615375
0xabc428f9f6e52cd17604a4c414ab428e80fc87589b348a84f28528f85c4efbc9Approve147672242022-01-28 18:41:206 hrs 10 mins ago0xbba4e4add11cb159bf087595071566c401346de3 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0xa0c607350a7664b4d96a48fbcb41f134040680b5983f2976d1cf131bc00a883cTransfer147669002022-01-28 18:25:086 hrs 26 mins ago0xf17ab9f138e7644066650e53d7c99024a7029dd3 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000615375
0xa7f7f651bfc67bcbc62fd2f3e2a3661321f85991c6e7e3797cdb85b6ff9ee4b3Transfer147668332022-01-28 18:21:476 hrs 30 mins agoHotbit 2 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000690255
0x5833d7e3b42df95de10d8ef8fcd5f903fddafcfb0a473a24528e16d637f0a01aApprove147657442022-01-28 17:27:207 hrs 24 mins ago0x0d813584f02ea78c7a8d435c73bde8235f3a7ea0 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x7a05d9757a6103907b30e7a14bf45e79770cd314dd6bb0e3ebb93a624317fc61Approve147649612022-01-28 16:48:118 hrs 3 mins ago0xaf7fa5818e78d115b5c53604f27983a9e735c80f IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0xb7dc74768ea5a936727a2db05e4df7e01d7e1c3ede97c4f772fe7df80fcd7726Approve147648102022-01-28 16:40:388 hrs 11 mins ago0x38f8557298c79d46e2d4961e85a66766d196210f IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0x9a997cb7df919993dd1a4e5c5f4ea7e118ca3fe152c7b47fc82f9604724e8e24Transfer147644482022-01-28 16:22:328 hrs 29 mins ago0x1704059943379775a08159defe055adfbfd4d5a4 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000615375
0x7d4d60092f4ea59809495a65e0b38e84320dc9a325c4beda77d200b085334177Approve147634882022-01-28 15:34:309 hrs 17 mins ago0x7794badbe1c725a91327302f0d492d68ded1e34f IN  Baby Floki Billionaire: BabyFB Token0 BNB0.00022263
0xff5b62751908b1a86560da503db316b7e8724bd76ef450b99b3d43e8e2dc2719Approve147631732022-01-28 15:18:459 hrs 33 mins ago0x631a9670805f6e881ec086cdc53b801285837df6 IN  Baby Floki Billionaire: BabyFB Token0 BNB0.000072855
[ Download CSV Export 

OVERVIEW

Baby Floki Billionaire is a meme coin on the BSC, inspired by the Floki Inu meme coins success. It rewards token holders with reflections.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x709f2b341ad9ea15515682002229b68bdde051ec3a2acc5971c4cddf8b470bbc147731252022-01-28 23:36:591 hr 15 mins ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.64476799747099995 BNB
0x709f2b341ad9ea15515682002229b68bdde051ec3a2acc5971c4cddf8b470bbc147731252022-01-28 23:36:591 hr 15 mins ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.64476799747099995 BNB
0x4b85da93a28937c99e1dd8be17dfd1bcc3a05a9e5c080c7f1cd1f0ebf04f210f147730522022-01-28 23:33:201 hr 18 mins ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.64733259553817952 BNB
0x4b85da93a28937c99e1dd8be17dfd1bcc3a05a9e5c080c7f1cd1f0ebf04f210f147730522022-01-28 23:33:201 hr 18 mins ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.64733259553817952 BNB
0x0e8bcfb7047d03da2063c5c6dfb345be77bd0bdfae1a5fd25393eb87dd49897c147717262022-01-28 22:27:022 hrs 24 mins ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.649100925896527226 BNB
0x0e8bcfb7047d03da2063c5c6dfb345be77bd0bdfae1a5fd25393eb87dd49897c147717262022-01-28 22:27:022 hrs 24 mins ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.649100925896527227 BNB
0xc5f665d041b0a2f007d8565ee9dc51bd1e7f46d7d792a1fb776f45748fca9b10147607342022-01-28 13:16:2411 hrs 35 mins ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.664435625642141 BNB
0xc5f665d041b0a2f007d8565ee9dc51bd1e7f46d7d792a1fb776f45748fca9b10147607342022-01-28 13:16:2411 hrs 35 mins ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.664435625642141001 BNB
0xe8cd106ba8005236aa5c8731ee6f45fb7cc38fe6e4e0bfea0ab893a6666cb940147597652022-01-28 12:27:5712 hrs 24 mins ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.661432749544129986 BNB
0xe8cd106ba8005236aa5c8731ee6f45fb7cc38fe6e4e0bfea0ab893a6666cb940147597652022-01-28 12:27:5712 hrs 24 mins ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.661432749544129987 BNB
0x7158dbf81b18b1863bedaa8fbf5cbd9db429f992aca90dcf5d99b73e20ce637c147370332022-01-27 17:27:001 day 7 hrs ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.671461606417485068 BNB
0x7158dbf81b18b1863bedaa8fbf5cbd9db429f992aca90dcf5d99b73e20ce637c147370332022-01-27 17:27:001 day 7 hrs ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.671461606417485068 BNB
0x00961aa589c4187910247add1a93aae621743dcef72c2cdfe5110ce79a005701147280732022-01-27 9:57:581 day 14 hrs ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.680259563481475552 BNB
0x00961aa589c4187910247add1a93aae621743dcef72c2cdfe5110ce79a005701147280732022-01-27 9:57:581 day 14 hrs ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.680259563481475552 BNB
0x755ad3c01f25c17c4cc19e877252cac090ca6493f7a049d43d50c8c9da41e715147071822022-01-26 16:31:072 days 8 hrs ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.659958490691985636 BNB
0x755ad3c01f25c17c4cc19e877252cac090ca6493f7a049d43d50c8c9da41e715147071822022-01-26 16:31:072 days 8 hrs ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.659958490691985636 BNB
0xd81ea5d7fb8ee06262e76b3f2bfb0682d537cea296807874e25b448415537582146876012022-01-26 0:07:423 days 44 mins ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.644041879778392458 BNB
0xd81ea5d7fb8ee06262e76b3f2bfb0682d537cea296807874e25b448415537582146876012022-01-26 0:07:423 days 44 mins ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.644041879778392459 BNB
0x89ae7e51ef52602eab3f8c21527e6acf517716508af377d67f1ba3f284855ad6146870312022-01-25 23:39:123 days 1 hr ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.645280681291729932 BNB
0x89ae7e51ef52602eab3f8c21527e6acf517716508af377d67f1ba3f284855ad6146870312022-01-25 23:39:123 days 1 hr ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.645280681291729933 BNB
0x14d254e9f295218714d45621ff173fab8458804ece9b095f053d6768ca60b1d8146860462022-01-25 22:49:573 days 2 hrs ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.646586158641249738 BNB
0x14d254e9f295218714d45621ff173fab8458804ece9b095f053d6768ca60b1d8146860462022-01-25 22:49:573 days 2 hrs ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.646586158641249738 BNB
0x092a38175eb16f49f57ed2e0a80f2b6d266f840d634a82e785e62f19438168e5146851652022-01-25 22:05:543 days 2 hrs ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.647965114604357092 BNB
0x092a38175eb16f49f57ed2e0a80f2b6d266f840d634a82e785e62f19438168e5146851652022-01-25 22:05:543 days 2 hrs ago PancakeSwap: Router v2 Baby Floki Billionaire: BabyFB Token0.647965114604357093 BNB
0x5f214b794df2c29b9a2bcdabf3553ec422cee9f96380ef6174f900e4e42b47fe146851442022-01-25 22:04:513 days 2 hrs ago Baby Floki Billionaire: BabyFB Token0xc7ff94a17d8225ca014f9fb51e0f5359502a65160.649630373105609402 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabyFlokiBillionaire

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-09-25
*/

/**
 
Baby Floki Billionaire is the son of the famous and now trending coin Floki on Binance Smart BSC!
100% Legit Team | Experience Team in 5+ Projects | Extraordinary Potential

* Telegram:  https://t.me/babyflokibillionaire
* Twitter:   https://twitter.com/BabyFlokiBLN
* Website:   https://babyflokibillionaire.com/

╭━━╮   ╭╮      ╭━━━┳╮   ╭╮   ╭━━╮ ╭╮╭╮
┃╭╮┃   ┃┃      ┃╭━━┫┃   ┃┃   ┃╭╮┃ ┃┃┃┃
┃╰╯╰┳━━┫╰━┳╮ ╭╮┃╰━━┫┃╭━━┫┃╭┳╮┃╰╯╰┳┫┃┃┃╭┳━━┳━╮╭━━┳┳━┳━━╮
┃╭━╮┃╭╮┃╭╮┃┃ ┃┃┃╭━━┫┃┃╭╮┃╰╯╋┫┃╭━╮┣┫┃┃┃┣┫╭╮┃╭╮┫╭╮┣┫╭┫┃━┫
┃╰━╯┃╭╮┃╰╯┃╰━╯┃┃┃  ┃╰┫╰╯┃╭╮┫┃┃╰━╯┃┃╰┫╰┫┃╰╯┃┃┃┃╭╮┃┃┃┃┃━┫
╰━━━┻╯╰┻━━┻━╮╭╯╰╯  ╰━┻━━┻╯╰┻╯╰━━━┻┻━┻━┻┻━━┻╯╰┻╯╰┻┻╯╰━━╯
          ╭━╯┃
          ╰━━╯
*/

// SPDX-License-Identifier: NOLICENSE
pragma solidity ^0.8.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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




library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}



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

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



library Address {
    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}




abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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


//"ETH" symb is used for better uniswap-core integration
//uniswap is use due to their better repo management

contract BabyFlokiBillionaire is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isBot;
    

    address[] private _excluded;

    bool public tradingEnabled;
    bool public swapEnabled;
    bool public buyBackEnabled = false;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 1000000000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public maxBuyAmount = _tTotal.mul(2).div(100);
    uint256 public maxSellAmount = _tTotal.mul(1).div(100);
    uint256 public swapTokensAtAmount = 500000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000000000 * 10**9; 
    uint256 public buyBackUpperLimit = 1 * 10**18;

    address public marketingAddress = 0xa74737C74826708c138697cF013178668c0567Fe;
    address public operationsAddress = 0x690E8D4F73D9ab9752B4F496CD6E64a6a35B73eA;
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    string private constant _name = "Baby Floki Billionaire";
    string private constant _symbol = "BabyFB";


    struct feeRatesStruct {
      uint256 rfi;
      uint256 operations;
      uint256 marketing;
      uint256 liquidity;
      uint256 buyback;
    }


    feeRatesStruct public feeRates = feeRatesStruct(
     {rfi: 20,
      operations: 30,
      marketing: 0,
      liquidity: 40,
      buyback: 0
    });

    feeRatesStruct public sellFeeRates = feeRatesStruct(
    {rfi: 20,
     operations: 30,
     marketing: 0,
     liquidity: 40,
     buyback: 0
    });

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 operations;
        uint256 marketing;
        uint256 liquidity;
        uint256 buyBack;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rOperations;
      uint256 rMarketing;
      uint256 rLiquidity;
      uint256 rBuyback;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tOperations;
      uint256 tMarketing;
      uint256 tLiquidity;
      uint256 tBuyback;
    }

    event FeesChanged();
    event TradingEnabled(uint256 startDate);
    event UpdatedRouter(address oldRouter, address newRouter);

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

    constructor (address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingAddress]=true;
        _isExcludedFromFee[operationsAddress] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    //std ERC20:
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    //override ERC20:
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        valuesFromGetValues memory s = _getValues(tAmount, true, false);
        _rOwned[sender] = _rOwned[sender].sub(s.rAmount);
        _rTotal = _rTotal.sub(s.rAmount);
        totFeesPaid.rfi += tAmount;
    }

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

    function startTrading() external onlyOwner{
        tradingEnabled = true;
        swapEnabled = true;
        emit TradingEnabled(block.timestamp);
    }


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

    //@dev kept original RFI naming -> "reward" as in reflection
    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

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


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

   function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletSize = _tTotal.mul(maxWallPercent).div(
            10**2
        );
   }   
   
    function setFeeRates(uint256 _rfi, uint256 _operations, uint256 _marketing, uint256 _liquidity, uint256 _buyback) external onlyOwner {
        feeRates.rfi = _rfi;
        feeRates.operations = _operations;
        feeRates.marketing = _marketing;
        feeRates.liquidity = _liquidity;
        feeRates.buyback = _buyback;
        emit FeesChanged();
    }

    function setSellFeeRates(uint256 _rfi, uint256 _operations, uint256 _marketing, uint256 _liquidity, uint256 _buyback) external onlyOwner{
        sellFeeRates.rfi = _rfi;
        sellFeeRates.operations = _operations;
        sellFeeRates.marketing = _marketing;
        sellFeeRates.liquidity = _liquidity;
        sellFeeRates.buyback = _buyback;
        emit FeesChanged();
    }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeOperations(uint256 rOperations, uint256 tOperations) private {
        totFeesPaid.operations +=tOperations;
        if(_isExcluded[address(this)]){
             _tOwned[address(this)]+=tOperations;
        }
        _rOwned[address(this)] +=rOperations;

    }

    function _takeBuyback(uint256 rBuyback, uint256 tBuyback) private {
        totFeesPaid.buyBack +=tBuyback;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tBuyback;
        }
        _rOwned[address(this)] +=rBuyback;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[marketingAddress])
        {
            _tOwned[marketingAddress]+=tMarketing;
        }
        _rOwned[marketingAddress] +=rMarketing;
    }


    function _getValues(uint256 tAmount, bool takeFee, bool isSale) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSale);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi,to_return.rOperations, to_return.rMarketing, to_return.rLiquidity, to_return.rBuyback) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee, bool isSale) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }

        if(isSale){
            s.tRfi = tAmount*sellFeeRates.rfi/1000;
            s.tOperations = tAmount*sellFeeRates.operations/1000;
            s.tMarketing = tAmount*sellFeeRates.marketing/1000;
            s.tLiquidity = tAmount*sellFeeRates.liquidity/1000;
            s.tBuyback = tAmount*sellFeeRates.buyback/1000;
            s.tTransferAmount = tAmount-s.tRfi-s.tOperations-s.tMarketing-s.tLiquidity-s.tBuyback;
        }
        else{
            s.tRfi = tAmount*feeRates.rfi/1000;
            s.tOperations = tAmount*feeRates.operations/1000;
            s.tMarketing = tAmount*feeRates.marketing/1000;
            s.tLiquidity = tAmount*feeRates.liquidity/1000;
            s.tBuyback = tAmount*feeRates.buyback/1000;
            s.tTransferAmount = tAmount-s.tRfi-s.tOperations-s.tMarketing-s.tLiquidity-s.tBuyback;
        }
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rOperations,uint256 rMarketing, uint256 rLiquidity, uint256 rBuyback) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rOperations = s.tOperations*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rBuyback = s.tBuyback*currentRate;
        rTransferAmount =  rAmount-rRfi-rOperations-rMarketing-rLiquidity-rBuyback;
        return (rAmount, rTransferAmount, rRfi,rOperations,rMarketing,rLiquidity, rBuyback);
    }

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
      
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBot[from] && !_isBot[to], "Fuck you Bots");

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(tradingEnabled, "Trading is not enabled yet");
        }

        if( from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
            from == pair){
            require(amount <= maxBuyAmount, "you are exceeding maxBuyAmount");
           uint256 walletCurrentBalance = balanceOf(to);
            require(walletCurrentBalance + amount <= _maxWalletSize, "Exceeds maximum wallet token amount");
        }

        if( from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
            from == pair){
            require(amount <= maxSellAmount, "Amount is exceeding maxSellAmount");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair){
            uint256 balance = address(this).balance;
            if (buyBackEnabled && balance > uint256(1 * 10**18) && to == pair) {
                if (balance > buyBackUpperLimit) balance = buyBackUpperLimit;
                buyBackTokens(balance.div(100));
            }

            swapAndLiquify(swapTokensAtAmount);
        }
        bool isSale;
        if(to == pair) isSale = true;

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]), isSale);
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSale) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSale);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        _reflectRfi(s.rRfi, s.tRfi);
        _takeOperations(s.rOperations,s.tOperations);
        _takeLiquidity(s.rLiquidity,s.tLiquidity);
        _takeMarketing(s.rMarketing, s.tMarketing);
        _takeBuyback(s.rBuyback, s.tBuyback);
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tLiquidity + s.tOperations + s.tBuyback);
        emit Transfer(sender, marketingAddress, s.tMarketing);

    }

    function buyBackTokens(uint256 amount) private lockTheSwap{
    	if (amount > 0) {
    	    swapETHForTokens(amount);
	    }
    }

    function swapETHForTokens(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

      // make the swap
        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            deadAddress, // Burn address
            block.timestamp.add(300)
        );
     }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
         // Split the contract balance into halves
        uint256 denominator= (feeRates.liquidity + feeRates.buyback + feeRates.operations) * 2;
        uint256 tokensToAddLiquidityWith = tokens * feeRates.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance= deltaBalance / (denominator - feeRates.liquidity);
        uint256 bnbToAddLiquidityWith = unitBalance * feeRates.liquidity;

        if(bnbToAddLiquidityWith > 0){
            // Add liquidity to pancake
            addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
        }

        // Send BNB to operationsWallet
        uint256 operationsAmt = unitBalance * 2 * feeRates.operations;
        if(operationsAmt > 0){
          payable(operationsAddress).transfer(operationsAmt);
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );

    }


    function updateMarketingWallet(address newWallet) external onlyOwner{
        require(marketingAddress != newWallet ,'Wallet already set');
        marketingAddress = newWallet;
        _isExcludedFromFee[marketingAddress];
    }

    function updateOperationsWallet(address newWallet) external onlyOwner{
        require(operationsAddress != newWallet ,'Wallet already set');
        operationsAddress = newWallet;
        _isExcludedFromFee[operationsAddress];
    }

    function setMaxBuyAndSellAmount(uint256 _maxBuyamount, uint256 _maxSellAmount) external onlyOwner{
        maxBuyAmount = _maxBuyamount * 10**9;
        maxSellAmount = _maxSellAmount * 10**9;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }

    function updateBuybackEnabled(bool _enabled) external onlyOwner{
        buyBackEnabled = _enabled;
    }

    function setAntibot(address account, bool _bot) external onlyOwner{
        require(_isBot[account] != _bot, 'Value already set');
        _isBot[account] = _bot;
    }

    function setBuybackUpperLimit(uint256 buyBackLimit) external onlyOwner() {
        buyBackUpperLimit = buyBackLimit * 10**15;
    }

    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }

    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }

    function rescueBEP20Tokens(address tokenAddress) external onlyOwner{
        IERC20(tokenAddress).transfer(msg.sender, IERC20(tokenAddress).balanceOf(address(this)));
    }

    /// @dev Update router address in case of pancakeswap migration
    function setRouterAddress(address newRouter) external onlyOwner {
        require(newRouter != address(router));
        IRouter _newRouter = IRouter(newRouter);
        address get_pair = IFactory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            pair = IFactory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            pair = get_pair;
        }
        router = _newRouter;
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"startDate","type":"uint256"}],"name":"TradingEnabled","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackUpperLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"operations","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operationsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"operations","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_bot","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyBackLimit","type":"uint256"}],"name":"setBuybackUpperLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_operations","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_buyback","type":"uint256"}],"name":"setFeeRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyamount","type":"uint256"},{"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"setMaxBuyAndSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_operations","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_buyback","type":"uint256"}],"name":"setSellFeeRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"operations","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyBack","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateBuybackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008805462ff0000191690556200001e6009600a620005c0565b620000319066038d7ea4c680006200067f565b600a8190556200004490600019620006bb565b6200005290600019620006a1565b600b556200008c6064620000786002600a54620004b960201b62001d7b1790919060201c565b620004d060201b62001d871790919060201c565b600c55620000b26064620000786001600a54620004b960201b62001d7b1790919060201c565b600d55620000c36009600a620005c0565b620000d49064746a5288006200067f565b600e5569043c33c1937564800000600f55670de0b6b3a7640000601055601180546001600160a01b031990811673a74737c74826708c138697cf013178668c0567fe179091556012805490911673690e8d4f73d9ab9752b4f496cd6e64a6a35b73ea1790556040805160a080820183526014808352601e6020808501829052600085870181905260286060808801829052608097880183905260138690558486556015839055601682905560178390558851968701895285875292860184905296850181905290840186905292909301829052601855601991909155601a819055601b91909155601c55348015620001cb57600080fd5b50604051620040fb380380620040fb833981016040819052620001ee916200052e565b620001f933620004de565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023a57600080fd5b505afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027591906200052e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002be57600080fd5b505afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f991906200052e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034257600080fd5b505af115801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d91906200052e565b60088054600160201b600160c01b0319166401000000006001600160a01b038681169190910291909117909155600980546001600160a01b031916838316179055600b54600080549092168252600160208190526040832091909155919250600490620003f26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601154821681526004909352818320805485166001908117909155601254909116835291208054909216179055620004606000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620004a891815260200190565b60405180910390a3505050620006fe565b6000620004c782846200067f565b90505b92915050565b6000620004c7828462000560565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200054157600080fd5b81516001600160a01b03811681146200055957600080fd5b9392505050565b600082620005725762000572620006e8565b500490565b600181815b80851115620005b85781600019048211156200059c576200059c620006d2565b80851615620005aa57918102915b93841c93908002906200057c565b509250929050565b6000620004c760ff841683600082620005dc57506001620004ca565b81620005eb57506000620004ca565b81600181146200060457600281146200060f576200062f565b6001915050620004ca565b60ff841115620006235762000623620006d2565b50506001821b620004ca565b5060208310610133831016604e8410600b841016171562000654575081810a620004ca565b62000660838362000577565b8060001904821115620006775762000677620006d2565b029392505050565b60008160001904831182151516156200069c576200069c620006d2565b500290565b600082821015620006b657620006b6620006d2565b500390565b600082620006cd57620006cd620006e8565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6139ed806200070e6000396000f3fe6080604052600436106103545760003560e01c806370e50241116101c6578063a8aa1b31116100f7578063e116554511610095578063ea4cfe121161006f578063ea4cfe1214610a78578063f2fde38b14610a98578063f887ea4014610ab8578063f9e0896914610adf57600080fd5b8063e116554514610a22578063e2f4560514610a42578063ea2f0b3714610a5857600080fd5b8063abeef102116100d1578063abeef1021461097c578063cdebfea31461099c578063d257b34f146109bc578063dd62ed3e146109dc57600080fd5b8063a8aa1b311461091c578063a9059cbb1461093c578063aacebbe31461095c57600080fd5b80638da5cb5b1161016457806395d89b411161013e57806395d89b41146108865780639ba5e4d5146108b5578063a457c2d7146108dc578063a5ece941146108fc57600080fd5b80638da5cb5b146108325780638f9a55c014610850578063924de9b71461086657600080fd5b806382bf293c116101a057806382bf293c146107a357806382d2a4bb146107c357806388e765ff146107e357806388f82020146107f957600080fd5b806370e5024114610751578063715018a6146107675780637688c5841461077c57600080fd5b80633bbac579116102a057806352390c021161023e57806366d602ae1161021857806366d602ae146106dc57806368ca6145146106f25780636ddd17131461071257806370a082311461073157600080fd5b806352390c02146106635780635342acb4146106835780636053a0e3146106bc57600080fd5b8063437823ec1161027a578063437823ec146105e9578063441b1d30146106095780634549b039146106295780634ada218b1461064957600080fd5b80633bbac579146105705780633bd5d173146105a957806341cb87fc146105c957600080fd5b806327c8f8351161030d57806330d5d18d116102e757806330d5d18d146104f4578063313ce567146105145780633685d41914610530578063395093511461055057600080fd5b806327c8f83514610491578063293230b8146104bf5780632d838119146104d457600080fd5b8063042cfb511461036057806306fdde0314610382578063095ea7b3146103d357806318160ddd1461040357806318a90c441461042257806323b872dd1461047157600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b5061038061037b366004613423565b610aff565b005b34801561038e57600080fd5b506040805180820190915260168152754261627920466c6f6b692042696c6c696f6e6169726560501b60208201525b6040516103ca91906136c6565b60405180910390f35b3480156103df57600080fd5b506103f36103ee366004613505565b610c35565b60405190151581526020016103ca565b34801561040f57600080fd5b50600a545b6040519081526020016103ca565b34801561042e57600080fd5b50601854601954601a54601b54601c54610449949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103ca565b34801561047d57600080fd5b506103f361048c366004613496565b610c4c565b34801561049d57600080fd5b506104a761dead81565b6040516001600160a01b0390911681526020016103ca565b3480156104cb57600080fd5b50610380610cb6565b3480156104e057600080fd5b506104146104ef36600461356b565b610d24565b34801561050057600080fd5b5061038061050f366004613423565b610da1565b34801561052057600080fd5b50604051600981526020016103ca565b34801561053c57600080fd5b5061038061054b366004613423565b610e47565b34801561055c57600080fd5b506103f361056b366004613505565b610ffa565b34801561057c57600080fd5b506103f361058b366004613423565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156105b557600080fd5b506103806105c436600461356b565b611031565b3480156105d557600080fd5b506103806105e4366004613423565b611126565b3480156105f557600080fd5b50610380610604366004613423565b6114d9565b34801561061557600080fd5b5061038061062436600461356b565b611527565b34801561063557600080fd5b5061041461064436600461359d565b6115ce565b34801561065557600080fd5b506008546103f39060ff1681565b34801561066f57600080fd5b5061038061067e366004613423565b61165c565b34801561068f57600080fd5b506103f361069e366004613423565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156106c857600080fd5b506008546103f39062010000900460ff1681565b3480156106e857600080fd5b50610414600d5481565b3480156106fe57600080fd5b5061038061070d366004613612565b6117af565b34801561071e57600080fd5b506008546103f390610100900460ff1681565b34801561073d57600080fd5b5061041461074c366004613423565b611822565b34801561075d57600080fd5b5061041460105481565b34801561077357600080fd5b50610380611881565b34801561078857600080fd5b50601354601454601554601654601754610449949392919085565b3480156107af57600080fd5b506103806107be36600461356b565b6118b7565b3480156107cf57600080fd5b506103806107de36600461356b565b611907565b3480156107ef57600080fd5b50610414600c5481565b34801561080557600080fd5b506103f3610814366004613423565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561083e57600080fd5b506000546001600160a01b03166104a7565b34801561085c57600080fd5b50610414600f5481565b34801561087257600080fd5b50610380610881366004613531565b611948565b34801561089257600080fd5b506040805180820190915260068152652130b13ca32160d11b60208201526103bd565b3480156108c157600080fd5b50601d54601e54601f54602054602154610449949392919085565b3480156108e857600080fd5b506103f36108f7366004613505565b61198c565b34801561090857600080fd5b506011546104a7906001600160a01b031681565b34801561092857600080fd5b506009546104a7906001600160a01b031681565b34801561094857600080fd5b506103f3610957366004613505565b6119db565b34801561096857600080fd5b50610380610977366004613423565b6119e8565b34801561098857600080fd5b50610380610997366004613612565b611a8e565b3480156109a857600080fd5b506103806109b73660046135c2565b611b01565b3480156109c857600080fd5b506103806109d736600461356b565b611b51565b3480156109e857600080fd5b506104146109f736600461345d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a2e57600080fd5b50610380610a3d3660046134d7565b611b97565b348015610a4e57600080fd5b50610414600e5481565b348015610a6457600080fd5b50610380610a73366004613423565b611c4f565b348015610a8457600080fd5b506012546104a7906001600160a01b031681565b348015610aa457600080fd5b50610380610ab3366004613423565b611c9a565b348015610ac457600080fd5b506008546104a790600160201b90046001600160a01b031681565b348015610aeb57600080fd5b50610380610afa366004613531565b611d35565b6000546001600160a01b03163314610b325760405162461bcd60e51b8152600401610b299061371b565b60405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b158015610b7b57600080fd5b505afa158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613584565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c31919061354e565b5050565b6000610c42338484611d93565b5060015b92915050565b6000610c59848484611eb7565b610cab8433610ca68560405180606001604052806028815260200161396b602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906124b8565b611d93565b5060015b9392505050565b6000546001600160a01b03163314610ce05760405162461bcd60e51b8152600401610b299061371b565b6008805461ffff19166101011790556040514281527fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e9239060200160405180910390a1565b6000600b54821115610d8b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b29565b6000610d956124e4565b9050610caf81846137a4565b6000546001600160a01b03163314610dcb5760405162461bcd60e51b8152600401610b299061371b565b6012546001600160a01b0382811691161415610e1e5760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b6044820152606401610b29565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b03163314610e715760405162461bcd60e51b8152600401610b299061371b565b6001600160a01b03811660009081526005602052604090205460ff16610ed95760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610b29565b60005b600754811015610c3157816001600160a01b031660078281548110610f0357610f03613931565b6000918252602090912001546001600160a01b03161415610fe85760078054610f2e906001906138d3565b81548110610f3e57610f3e613931565b600091825260209091200154600780546001600160a01b039092169183908110610f6a57610f6a613931565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610fc257610fc261391b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ff2816138ea565b915050610edc565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610c42918590610ca690869061378c565b3360008181526005602052604090205460ff16156110a65760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610b29565b60006110b58360016000612507565b80516001600160a01b0384166000908152600160205260409020549192506110dd9190612556565b6001600160a01b0383166000908152600160205260409020558051600b5461110491612556565b600b55601d805484919060009061111c90849061378c565b9091555050505050565b6000546001600160a01b031633146111505760405162461bcd60e51b8152600401610b299061371b565b6008546001600160a01b03828116600160201b90920416141561117257600080fd5b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111b257600080fd5b505afa1580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea9190613440565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561123257600080fd5b505afa158015611246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126a9190613440565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b1580156112b057600080fd5b505afa1580156112c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e89190613440565b90506001600160a01b03811661148e57816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561133157600080fd5b505afa158015611345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113699190613440565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156113b157600080fd5b505afa1580156113c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e99190613440565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561143157600080fd5b505af1158015611445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114699190613440565b600980546001600160a01b0319166001600160a01b03929092169190911790556114aa565b600980546001600160a01b0319166001600160a01b0383161790555b50600880546001600160a01b03909216600160201b02640100000000600160c01b031990921691909117905550565b6000546001600160a01b031633146115035760405162461bcd60e51b8152600401610b299061371b565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146115515760405162461bcd60e51b8152600401610b299061371b565b804710156115a15760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610b29565b604051339082156108fc029083906000818181858888f19350505050158015610c31573d6000803e3d6000fd5b6000600a548311156116225760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b29565b816116405760006116368460016000612507565b519150610c469050565b600061164f8460016000612507565b602001519150610c469050565b6000546001600160a01b031633146116865760405162461bcd60e51b8152600401610b299061371b565b6001600160a01b03811660009081526005602052604090205460ff16156116ef5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b29565b6001600160a01b03811660009081526001602052604090205415611749576001600160a01b03811660009081526001602052604090205461172f90610d24565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146117d95760405162461bcd60e51b8152600401610b299061371b565b601385905560148490556015839055601682905560178190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6001600160a01b03811660009081526005602052604081205460ff161561185f57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c4690610d24565b6000546001600160a01b031633146118ab5760405162461bcd60e51b8152600401610b299061371b565b6118b56000612562565b565b6000546001600160a01b031633146118e15760405162461bcd60e51b8152600401610b299061371b565b61190160646118fb83600a54611d7b90919063ffffffff16565b90611d87565b600f5550565b6000546001600160a01b031633146119315760405162461bcd60e51b8152600401610b299061371b565b6119428166038d7ea4c680006138b4565b60105550565b6000546001600160a01b031633146119725760405162461bcd60e51b8152600401610b299061371b565b600880549115156101000261ff0019909216919091179055565b6000610c423384610ca685604051806060016040528060258152602001613993602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906124b8565b6000610c42338484611eb7565b6000546001600160a01b03163314611a125760405162461bcd60e51b8152600401610b299061371b565b6011546001600160a01b0382811691161415611a655760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b6044820152606401610b29565b601180546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b03163314611ab85760405162461bcd60e51b8152600401610b299061371b565b60188590556019849055601a839055601b829055601c8190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b03163314611b2b5760405162461bcd60e51b8152600401610b299061371b565b611b3982633b9aca006138b4565b600c55611b4a81633b9aca006138b4565b600d555050565b6000546001600160a01b03163314611b7b5760405162461bcd60e51b8152600401610b299061371b565b611b876009600a613809565b611b9190826138b4565b600e5550565b6000546001600160a01b03163314611bc15760405162461bcd60e51b8152600401610b299061371b565b6001600160a01b03821660009081526006602052604090205460ff1615158115151415611c245760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610b29565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611c795760405162461bcd60e51b8152600401610b299061371b565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611cc45760405162461bcd60e51b8152600401610b299061371b565b6001600160a01b038116611d295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b29565b611d3281612562565b50565b6000546001600160a01b03163314611d5f5760405162461bcd60e51b8152600401610b299061371b565b60088054911515620100000262ff000019909216919091179055565b6000610caf82846138b4565b6000610caf82846137a4565b6001600160a01b038316611df55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b29565b6001600160a01b038216611e565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b29565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f1b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b29565b6001600160a01b038216611f7d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b29565b60008111611fdf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b29565b611fe883611822565b8111156120515760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610b29565b6001600160a01b03831660009081526006602052604090205460ff1615801561209357506001600160a01b03821660009081526006602052604090205460ff16155b6120cf5760405162461bcd60e51b815260206004820152600d60248201526c4675636b20796f7520426f747360981b6044820152606401610b29565b6001600160a01b03831660009081526004602052604090205460ff1615801561211157506001600160a01b03821660009081526004602052604090205460ff16155b156121685760085460ff166121685760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610b29565b6000546001600160a01b0384811691161480159061219457506000546001600160a01b03838116911614155b80156121a857506001600160a01b03821615155b80156121bf57506001600160a01b03821661dead14155b80156121d857506009546001600160a01b038481169116145b156122a657600c5481111561222f5760405162461bcd60e51b815260206004820152601e60248201527f796f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610b29565b600061223a83611822565b600f5490915061224a838361378c565b11156122a45760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b29565b505b6000546001600160a01b038481169116148015906122d257506000546001600160a01b03838116911614155b80156122e657506001600160a01b03821615155b80156122fd57506001600160a01b03821661dead14155b801561231657506009546001600160a01b038481169116145b1561237757600d548111156123775760405162461bcd60e51b815260206004820152602160248201527f416d6f756e7420697320657863656564696e67206d617853656c6c416d6f756e6044820152601d60fa1b6064820152608401610b29565b600061238230611822565b600e54600854919250821015906301000000900460ff161580156123ad5750600854610100900460ff165b80156123b65750805b80156123d057506009546001600160a01b03868116911614155b1561244357600854479062010000900460ff1680156123f65750670de0b6b3a764000081115b801561240f57506009546001600160a01b038681169116145b156124365760105481111561242357506010545b612436612431826064611d87565b6125b2565b612441600e546125e4565b505b6009546000906001600160a01b0386811691161415612460575060015b6001600160a01b0386166000908152600460205260409020546124b09087908790879060ff16806124a957506001600160a01b03891660009081526004602052604090205460ff165b1585612721565b505050505050565b600081848411156124dc5760405162461bcd60e51b8152600401610b2991906136c6565b505050900390565b60008060006124f16129dc565b909250905061250081836137a4565b9250505090565b61250f6133bb565b61251a848484612b5f565b905061252f81858561252a6124e4565b612d76565b60c088015260a0870152608086015260608501526040840152602083015281529392505050565b6000610caf82846138d3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805463ff0000001916630100000017905580156125d4576125d481612e4c565b506008805463ff00000019169055565b6008805463ff000000191663010000001790556014546017546016546000929161260d9161378c565b612617919061378c565b6126229060026138b4565b90506000816013600301548461263891906138b4565b61264291906137a4565b9050600061265082856138d3565b90504761265c82612fc8565b600061266882476138d3565b60165490915060009061267b90876138d3565b61268590836137a4565b60165490915060009061269890836138b4565b905080156126aa576126aa8682613150565b6014546000906126bb8460026138b4565b6126c591906138b4565b90508015612709576012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612707573d6000803e3d6000fd5b505b50506008805463ff0000001916905550505050505050565b600061272e848484612507565b6001600160a01b03871660009081526005602052604090205490915060ff1615612790576001600160a01b0386166000908152600260205260409020546127769085906138d3565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156127f35760e08101516001600160a01b0386166000908152600260205260409020546127d9919061378c565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b03871660009081526001602052604090205461281891906138d3565b6001600160a01b038088166000908152600160209081526040808320949094558401519188168152919091205461284f919061378c565b6001600160a01b03861660009081526001602052604090819020919091558101516101008201516128809190613243565b6128938160600151826101200151613278565b6128a68160a001518261016001516132ee565b6128b98160800151826101400151613303565b6128cc8160c0015182610180015161339a565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015160405161291591815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610180015184610120015185610160015161296e919061378c565b612978919061378c565b60405190815260200160405180910390a36011546101408201516040519081526001600160a01b03918216918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b600b54600a546000918291825b600754811015612b2e57826001600060078481548110612a0b57612a0b613931565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612a765750816002600060078481548110612a4f57612a4f613931565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612a8c57600b54600a54945094505050509091565b6001600060078381548110612aa357612aa3613931565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612ad290846138d3565b92506002600060078381548110612aeb57612aeb613931565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612b1a90836138d3565b915080612b26816138ea565b9150506129e9565b50600a54600b54612b3f91906137a4565b821015612b5657600b54600a549350935050509091565b90939092509050565b612b676133bb565b82612b785760e08101849052610caf565b8115612c79576018546103e890612b8f90866138b4565b612b9991906137a4565b6101008201526019546103e890612bb090866138b4565b612bba91906137a4565b610120820152601a546103e890612bd190866138b4565b612bdb91906137a4565b610140820152601b546103e890612bf290866138b4565b612bfc91906137a4565b610160820152601c546103e890612c1390866138b4565b612c1d91906137a4565b6101808201819052610160820151610140830151610120840151610100850151612c4790896138d3565b612c5191906138d3565b612c5b91906138d3565b612c6591906138d3565b612c6f91906138d3565b60e0820152610caf565b6013546103e890612c8a90866138b4565b612c9491906137a4565b6101008201526014546103e890612cab90866138b4565b612cb591906137a4565b6101208201526015546103e890612ccc90866138b4565b612cd691906137a4565b6101408201526016546103e890612ced90866138b4565b612cf791906137a4565b6101608201526017546103e890612d0e90866138b4565b612d1891906137a4565b6101808201819052610160820151610140830151610120840151610100850151612d4290896138d3565b612d4c91906138d3565b612d5691906138d3565b612d6091906138d3565b612d6a91906138d3565b60e08201529392505050565b6000808080808080612d88888b6138b4565b965088612da657508594506000935083925082915081905080612e3e565b878b6101000151612db791906138b4565b9450878b6101200151612dca91906138b4565b9350878b6101400151612ddd91906138b4565b9250878b6101600151612df091906138b4565b9150878b6101800151612e0391906138b4565b905080828486612e13898c6138d3565b612e1d91906138d3565b612e2791906138d3565b612e3191906138d3565b612e3b91906138d3565b95505b949950949992975094509450565b604080516002808252606082018352600092602083019080368337019050509050600860049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ebb57600080fd5b505afa158015612ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef39190613440565b81600081518110612f0657612f06613931565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612f3a57612f3a613931565b6001600160a01b039283166020918202929092010152600854600160201b90041663b6f9de958360008461dead612f734261012c6133af565b6040518663ffffffff1660e01b8152600401612f929493929190613691565b6000604051808303818588803b158015612fab57600080fd5b505af1158015612fbf573d6000803e3d6000fd5b50505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ffd57612ffd613931565b60200260200101906001600160a01b031690816001600160a01b031681525050600860049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561306b57600080fd5b505afa15801561307f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a39190613440565b816001815181106130b6576130b6613931565b6001600160a01b0392831660209182029290920101526008546130e3913091600160201b90041684611d93565b60085460405163791ac94760e01b8152600160201b9091046001600160a01b03169063791ac94790613122908590600090869030904290600401613750565b600060405180830381600087803b15801561313c57600080fd5b505af11580156124b0573d6000803e3d6000fd5b60085461316f903090600160201b90046001600160a01b031684611d93565b6008546001600160a01b03600160201b9091041663f305d7198230856000806131a06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561320357600080fd5b505af1158015613217573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061323c91906135e4565b5050505050565b81600b600082825461325591906138d3565b9091555050601d805482919060009061326f90849061378c565b90915550505050565b80601d600101600082825461328d919061378c565b90915550503060009081526005602052604090205460ff16156132cf5730600090815260026020526040812080548392906132c990849061378c565b90915550505b306000908152600160205260408120805484929061326f90849061378c565b80601d600301600082825461328d919061378c565b80601d6002016000828254613318919061378c565b90915550506011546001600160a01b031660009081526005602052604090205460ff1615613370576011546001600160a01b03166000908152600260205260408120805483929061336a90849061378c565b90915550505b6011546001600160a01b03166000908152600160205260408120805484929061326f90849061378c565b80601d600401600082825461328d919061378c565b6000610caf828461378c565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561343557600080fd5b8135610caf81613947565b60006020828403121561345257600080fd5b8151610caf81613947565b6000806040838503121561347057600080fd5b823561347b81613947565b9150602083013561348b81613947565b809150509250929050565b6000806000606084860312156134ab57600080fd5b83356134b681613947565b925060208401356134c681613947565b929592945050506040919091013590565b600080604083850312156134ea57600080fd5b82356134f581613947565b9150602083013561348b8161395c565b6000806040838503121561351857600080fd5b823561352381613947565b946020939093013593505050565b60006020828403121561354357600080fd5b8135610caf8161395c565b60006020828403121561356057600080fd5b8151610caf8161395c565b60006020828403121561357d57600080fd5b5035919050565b60006020828403121561359657600080fd5b5051919050565b600080604083850312156135b057600080fd5b82359150602083013561348b8161395c565b600080604083850312156135d557600080fd5b50508035926020909101359150565b6000806000606084860312156135f957600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561362a57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600081518084526020808501945080840160005b838110156136865781516001600160a01b031687529582019590820190600101613661565b509495945050505050565b8481526080602082015260006136aa608083018661364d565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b818110156136f3578581018301518582016040015282016136d7565b81811115613705576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b85815284602082015260a06040820152600061376f60a083018661364d565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561379f5761379f613905565b500190565b6000826137c157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156138015781600019048211156137e7576137e7613905565b808516156137f457918102915b93841c93908002906137cb565b509250929050565b6000610caf60ff84168360008261382257506001610c46565b8161382f57506000610c46565b8160018114613845576002811461384f5761386b565b6001915050610c46565b60ff84111561386057613860613905565b50506001821b610c46565b5060208310610133831016604e8410600b841016171561388e575081810a610c46565b61389883836137c6565b80600019048211156138ac576138ac613905565b029392505050565b60008160001904831182151516156138ce576138ce613905565b500290565b6000828210156138e5576138e5613905565b500390565b60006000198214156138fe576138fe613905565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611d3257600080fd5b8015158114611d3257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209a176f4a2a4f57d5f93ddec579846e49f726022a7faa601956fa68642fee117564736f6c6343000807003300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

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

00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e

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


Deployed ByteCode Sourcemap

10443:22279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31920:174;;;;;;;;;;-1:-1:-1;31920:174:0;;;;;:::i;:::-;;:::i;:::-;;13906:83;;;;;;;;;;-1:-1:-1;13976:5:0;;;;;;;;;;;;-1:-1:-1;;;13976:5:0;;;;13906:83;;;;;;;:::i;:::-;;;;;;;;14837:161;;;;;;;;;;-1:-1:-1;14837:161:0;;;;;:::i;:::-;;:::i;:::-;;;6329:14:1;;6322:22;6304:41;;6292:2;6277:18;14837:161:0;6164:187:1;14202:95:0;;;;;;;;;;-1:-1:-1;14282:7:0;;14202:95;;;15856:25:1;;;15844:2;15829:18;14202:95:0;15710:177:1;12370:155:0;;;;;;;;;;-1:-1:-1;12370:155:0;;;;;;;;;;;;;;;;;;;;;;16738:25:1;;;16794:2;16779:18;;16772:34;;;;16822:18;;;16815:34;;;;16880:2;16865:18;;16858:34;16923:3;16908:19;;16901:35;16725:3;16710:19;12370:155:0;16479:463:1;15006:313:0;;;;;;;;;;-1:-1:-1;15006:313:0;;;;;:::i;:::-;;:::i;11837:80::-;;;;;;;;;;;;11875:42;11837:80;;;;;-1:-1:-1;;;;;4920:32:1;;;4902:51;;4890:2;4875:18;11837:80:0;4756:203:1;16835:158:0;;;;;;;;;;;;;:::i;17003:248::-;;;;;;;;;;-1:-1:-1;17003:248:0;;;;;:::i;:::-;;:::i;30410:237::-;;;;;;;;;;-1:-1:-1;30410:237:0;;;;;:::i;:::-;;:::i;14088:83::-;;;;;;;;;;-1:-1:-1;14088:83:0;;11180:1;17089:36:1;;17077:2;17062:18;14088:83:0;16947:184:1;17666:475:0;;;;;;;;;;-1:-1:-1;17666:475:0;;;;;:::i;:::-;;:::i;15327:213::-;;;;;;;;;;-1:-1:-1;15327:213:0;;;;;:::i;:::-;;:::i;31546:98::-;;;;;;;;;;-1:-1:-1;31546:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;31621:15:0;31598:4;31621:15;;;:6;:15;;;;;;;;;31546:98;15953:390;;;;;;;;;;-1:-1:-1;15953:390:0;;;;;:::i;:::-;;:::i;32171:506::-;;;;;;;;;;-1:-1:-1;32171:506:0;;;;;:::i;:::-;;:::i;18151:111::-;;;;;;;;;;-1:-1:-1;18151:111:0;;;;;:::i;:::-;;:::i;31716:196::-;;;;;;;;;;-1:-1:-1;31716:196:0;;;;;:::i;:::-;;:::i;16357:470::-;;;;;;;;;;-1:-1:-1;16357:470:0;;;;;:::i;:::-;;:::i;10955:26::-;;;;;;;;;;-1:-1:-1;10955:26:0;;;;;;;;17325:333;;;;;;;;;;-1:-1:-1;17325:333:0;;;;;:::i;:::-;;:::i;18390:123::-;;;;;;;;;;-1:-1:-1;18390:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;18478:27:0;18454:4;18478:27;;;:18;:27;;;;;;;;;18390:123;11018:34;;;;;;;;;;-1:-1:-1;11018:34:0;;;;;;;;;;;11422:54;;;;;;;;;;;;;;;;18705:366;;;;;;;;;;-1:-1:-1;18705:366:0;;;;;:::i;:::-;;:::i;10988:23::-;;;;;;;;;;-1:-1:-1;10988:23:0;;;;;;;;;;;14305:198;;;;;;;;;;-1:-1:-1;14305:198:0;;;;;:::i;:::-;;:::i;11616:45::-;;;;;;;;;;;;;;;;8809:94;;;;;;;;;;;;;:::i;12205:156::-;;;;;;;;;;-1:-1:-1;12205:156:0;;;;;;;;;;;;;;;;;;18520:171;;;;;;;;;;-1:-1:-1;18520:171:0;;;;;:::i;:::-;;:::i;31405:133::-;;;;;;;;;;-1:-1:-1;31405:133:0;;;;;:::i;:::-;;:::i;11362:53::-;;;;;;;;;;;;;;;;15825:120;;;;;;;;;;-1:-1:-1;15825:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;15917:20:0;15893:4;15917:20;;;:11;:20;;;;;;;;;15825:120;8586:87;;;;;;;;;;-1:-1:-1;8632:7:0;8659:6;-1:-1:-1;;;;;8659:6:0;8586:87;;11554:54;;;;;;;;;;;;;;;;31002:101;;;;;;;;;;-1:-1:-1;31002:101:0;;;;;:::i;:::-;;:::i;13995:87::-;;;;;;;;;;-1:-1:-1;14067:7:0;;;;;;;;;;;;-1:-1:-1;;;14067:7:0;;;;13995:87;;12705:36;;;;;;;;;;-1:-1:-1;12705:36:0;;;;;;;;;;;;;;;;;;15548:269;;;;;;;;;;-1:-1:-1;15548:269:0;;;;;:::i;:::-;;:::i;11670:76::-;;;;;;;;;;-1:-1:-1;11670:76:0;;;;-1:-1:-1;;;;;11670:76:0;;;11117:19;;;;;;;;;;-1:-1:-1;11117:19:0;;;;-1:-1:-1;;;;;11117:19:0;;;14511:167;;;;;;;;;;-1:-1:-1;14511:167:0;;;;;:::i;:::-;;:::i;30169:233::-;;;;;;;;;;-1:-1:-1;30169:233:0;;;;;:::i;:::-;;:::i;19079:389::-;;;;;;;;;;-1:-1:-1;19079:389:0;;;;;:::i;:::-;;:::i;30655:201::-;;;;;;;;;;-1:-1:-1;30655:201:0;;;;;:::i;:::-;;:::i;30864:130::-;;;;;;;;;;-1:-1:-1;30864:130:0;;;;;:::i;:::-;;:::i;14686:143::-;;;;;;;;;;-1:-1:-1;14686:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14794:18:0;;;14767:7;14794:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14686:143;31226:171;;;;;;;;;;-1:-1:-1;31226:171:0;;;;;:::i;:::-;;:::i;11483:64::-;;;;;;;;;;;;;;;;18270:110;;;;;;;;;;-1:-1:-1;18270:110:0;;;;;:::i;:::-;;:::i;11753:77::-;;;;;;;;;;-1:-1:-1;11753:77:0;;;;-1:-1:-1;;;;;11753:77:0;;;8911:192;;;;;;;;;;-1:-1:-1;8911:192:0;;;;;:::i;:::-;;:::i;11089:21::-;;;;;;;;;;-1:-1:-1;11089:21:0;;;;-1:-1:-1;;;11089:21:0;;-1:-1:-1;;;;;11089:21:0;;;31111:107;;;;;;;;;;-1:-1:-1;31111:107:0;;;;;:::i;:::-;;:::i;31920:174::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;;;;;;;;;32040:45:::1;::::0;-1:-1:-1;;;32040:45:0;;32079:4:::1;32040:45;::::0;::::1;4902:51:1::0;-1:-1:-1;;;;;31998:29:0;::::1;::::0;::::1;::::0;32028:10:::1;::::0;31998:29;;32040:30:::1;::::0;4875:18:1;;32040:45:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31998:88;::::0;-1:-1:-1;;;;;;31998:88:0::1;::::0;;;;;;-1:-1:-1;;;;;5465:32:1;;;31998:88:0::1;::::0;::::1;5447:51:1::0;5514:18;;;5507:34;5420:18;;31998:88:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;31920:174:::0;:::o;14837:161::-;14912:4;14929:39;4533:10;14952:7;14961:6;14929:8;:39::i;:::-;-1:-1:-1;14986:4:0;14837:161;;;;;:::o;15006:313::-;15104:4;15121:36;15131:6;15139:9;15150:6;15121:9;:36::i;:::-;15168:121;15177:6;4533:10;15199:89;15237:6;15199:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15199:19:0;;;;;;:11;:19;;;;;;;;4533:10;15199:33;;;;;;;;;;:37;:89::i;:::-;15168:8;:121::i;:::-;-1:-1:-1;15307:4:0;15006:313;;;;;;:::o;16835:158::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;16888:14:::1;:21:::0;;-1:-1:-1;;16920:18:0;;;;;16954:31:::1;::::0;16969:15:::1;15856:25:1::0;;16954:31:0::1;::::0;15844:2:1;15829:18;16954:31:0::1;;;;;;;16835:158::o:0;17003:248::-;17069:7;17108;;17097;:18;;17089:73;;;;-1:-1:-1;;;17089:73:0;;9421:2:1;17089:73:0;;;9403:21:1;9460:2;9440:18;;;9433:30;9499:34;9479:18;;;9472:62;-1:-1:-1;;;9550:18:1;;;9543:40;9600:19;;17089:73:0;9219:406:1;17089:73:0;17173:19;17196:10;:8;:10::i;:::-;17173:33;-1:-1:-1;17224:19:0;17173:33;17224:7;:19;:::i;30410:237::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;30498:17:::1;::::0;-1:-1:-1;;;;;30498:30:0;;::::1;:17:::0;::::1;:30;;30490:61;;;::::0;-1:-1:-1;;;30490:61:0;;13238:2:1;30490:61:0::1;::::0;::::1;13220:21:1::0;13277:2;13257:18;;;13250:30;-1:-1:-1;;;13296:18:1;;;13289:48;13354:18;;30490:61:0::1;13036:342:1::0;30490:61:0::1;30562:17;:29:::0;;-1:-1:-1;;;;;30562:29:0;;::::1;-1:-1:-1::0;;;;;;30562:29:0;;::::1;::::0;::::1;::::0;;:17:::1;30602:37:::0;:18:::1;:37;::::0;30410:237::o;17666:475::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17748:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;17740:56;;;::::0;-1:-1:-1;;;17740:56:0;;11402:2:1;17740:56:0::1;::::0;::::1;11384:21:1::0;11441:2;11421:18;;;11414:30;11480:25;11460:18;;;11453:53;11523:18;;17740:56:0::1;11200:347:1::0;17740:56:0::1;17812:9;17807:327;17831:9;:16:::0;17827:20;::::1;17807:327;;;17889:7;-1:-1:-1::0;;;;;17873:23:0::1;:9;17883:1;17873:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17873:12:0::1;:23;17869:254;;;17932:9;17942:16:::0;;:20:::1;::::0;17961:1:::1;::::0;17942:20:::1;:::i;:::-;17932:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;17917:9:::1;:12:::0;;-1:-1:-1;;;;;17932:31:0;;::::1;::::0;17927:1;;17917:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;17917:46:0::1;-1:-1:-1::0;;;;;17917:46:0;;::::1;;::::0;;17982:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;18021:11:::1;:20:::0;;;;:28;;-1:-1:-1;;18021:28:0::1;::::0;;18068:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;18068:15:0;;;;;-1:-1:-1;;;;;;18068:15:0::1;::::0;;;;;31998:88:::1;31920:174:::0;:::o;17869:254::-:1;17849:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17807:327;;15327:213:::0;4533:10;15415:4;15464:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15464:34:0;;;;;;;;;;15415:4;;15432:78;;15455:7;;15464:45;;15499:10;;15464:45;:::i;15953:390::-;4533:10;16005:14;16054:19;;;:11;:19;;;;;;;;16053:20;16045:77;;;;-1:-1:-1;;;16045:77:0;;15097:2:1;16045:77:0;;;15079:21:1;15136:2;15116:18;;;15109:30;15175:34;15155:18;;;15148:62;-1:-1:-1;;;15226:18:1;;;15219:42;15278:19;;16045:77:0;14895:408:1;16045:77:0;16133:28;16164:32;16175:7;16184:4;16190:5;16164:10;:32::i;:::-;16245:9;;-1:-1:-1;;;;;16225:15:0;;16245:9;16225:15;;;:7;:15;;;;;;16133:63;;-1:-1:-1;16225:30:0;;:15;:19;:30::i;:::-;-1:-1:-1;;;;;16207:15:0;;;;;;:7;:15;;;;;:48;16288:9;;16276:7;;:22;;:11;:22::i;:::-;16266:7;:32;16309:11;:26;;16328:7;;16309:11;:15;;:26;;16328:7;;16309:26;:::i;:::-;;;;-1:-1:-1;;;;;15953:390:0:o;32171:506::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;32275:6:::1;::::0;-1:-1:-1;;;;;32254:28:0;;::::1;-1:-1:-1::0;;;32275:6:0;;::::1;;32254:28;;32246:37;;;::::0;::::1;;32294:18;32323:9;32294:39;;32344:16;32372:10;-1:-1:-1::0;;;;;32372:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;32363:38:0::1;;32410:4;32417:10;-1:-1:-1::0;;;;;32417:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32363:72;::::0;-1:-1:-1;;;;;;32363:72:0::1;::::0;;;;;;-1:-1:-1;;;;;5194:15:1;;;32363:72:0::1;::::0;::::1;5176:34:1::0;5246:15;;5226:18;;;5219:43;5111:18;;32363:72:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32344:91:::0;-1:-1:-1;;;;;;32450:22:0;::::1;32446:194;;32505:10;-1:-1:-1::0;;;;;32505:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;32496:41:0::1;;32546:4;32553:10;-1:-1:-1::0;;;;;32553:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32496:75;::::0;-1:-1:-1;;;;;;32496:75:0::1;::::0;;;;;;-1:-1:-1;;;;;5194:15:1;;;32496:75:0::1;::::0;::::1;5176:34:1::0;5246:15;;5226:18;;;5219:43;5111:18;;32496:75:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32489:4;:82:::0;;-1:-1:-1;;;;;;32489:82:0::1;-1:-1:-1::0;;;;;32489:82:0;;;::::1;::::0;;;::::1;::::0;;32446:194:::1;;;32613:4;:15:::0;;-1:-1:-1;;;;;;32613:15:0::1;-1:-1:-1::0;;;;;32613:15:0;::::1;;::::0;;32446:194:::1;-1:-1:-1::0;32650:6:0::1;:19:::0;;-1:-1:-1;;;;;32650:19:0;;::::1;-1:-1:-1::0;;;32650:19:0::1;-1:-1:-1::0;;;;;;32650:19:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;32171:506:0:o;18151:111::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18220:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;18220:34:0::1;18250:4;18220:34;::::0;;18151:111::o;31716:196::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;31816:9:::1;31791:21;:34;;31783:71;;;::::0;-1:-1:-1;;;31783:71:0;;12114:2:1;31783:71:0::1;::::0;::::1;12096:21:1::0;12153:2;12133:18;;;12126:30;12192:26;12172:18;;;12165:54;12236:18;;31783:71:0::1;11912:348:1::0;31783:71:0::1;31865:39;::::0;31873:10:::1;::::0;31865:39;::::1;;;::::0;31894:9;;31865:39:::1;::::0;;;31894:9;31873:10;31865:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;16357:470:::0;16447:7;16486;;16475;:18;;16467:62;;;;-1:-1:-1;;;16467:62:0;;11754:2:1;16467:62:0;;;11736:21:1;11793:2;11773:18;;;11766:30;11832:33;11812:18;;;11805:61;11883:18;;16467:62:0;11552:355:1;16467:62:0;16545:17;16540:280;;16579:28;16610:32;16621:7;16630:4;16636:5;16610:10;:32::i;:::-;16664:9;;-1:-1:-1;16657:16:0;;-1:-1:-1;16657:16:0;16540:280;16706:28;16737:32;16748:7;16757:4;16763:5;16737:10;:32::i;:::-;16791:17;;;;-1:-1:-1;16784:24:0;;-1:-1:-1;16784:24:0;17325:333;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17408:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;17407:21;17399:61;;;::::0;-1:-1:-1;;;17399:61:0;;10642:2:1;17399:61:0::1;::::0;::::1;10624:21:1::0;10681:2;10661:18;;;10654:30;10720:29;10700:18;;;10693:57;10767:18;;17399:61:0::1;10440:351:1::0;17399:61:0::1;-1:-1:-1::0;;;;;17474:16:0;::::1;17493:1;17474:16:::0;;;:7:::1;:16;::::0;;;;;:20;17471:108:::1;;-1:-1:-1::0;;;;;17550:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;17530:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;17511:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;17471:108:::1;-1:-1:-1::0;;;;;17589:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;17589:27:0::1;17612:4;17589:27:::0;;::::1;::::0;;;17627:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;17627:23:0::1;::::0;;::::1;::::0;;17325:333::o;18705:366::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;18849:8:::1;:19:::0;;;18879;:33;;;18923:18;:31;;;18965:18;:31;;;19007:16;:27;;;19050:13:::1;::::0;::::1;::::0;18849:12:::1;::::0;19050:13:::1;18705:366:::0;;;;;:::o;14305:198::-;-1:-1:-1;;;;;14395:20:0;;14371:7;14395:20;;;:11;:20;;;;;;;;14391:49;;;-1:-1:-1;;;;;;14424:16:0;;;;;:7;:16;;;;;;;14305:198::o;14391:49::-;-1:-1:-1;;;;;14478:16:0;;;;;;:7;:16;;;;;;14458:37;;:19;:37::i;8809:94::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;8874:21:::1;8892:1;8874:9;:21::i;:::-;8809:94::o:0;18520:171::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;18622:62:::1;18668:5;18622:27;18634:14;18622:7;;:11;;:27;;;;:::i;:::-;:31:::0;::::1;:62::i;:::-;18605:14;:79:::0;-1:-1:-1;18520:171:0:o;31405:133::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;31509:21:::1;:12:::0;31524:6:::1;31509:21;:::i;:::-;31489:17;:41:::0;-1:-1:-1;31405:133:0:o;31002:101::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;31073:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;31073:22:0;;::::1;::::0;;;::::1;::::0;;31002:101::o;15548:269::-;15641:4;15658:129;4533:10;15681:7;15690:96;15729:15;15690:96;;;;;;;;;;;;;;;;;4533:10;15690:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15690:34:0;;;;;;;;;;;;:38;:96::i;14511:167::-;14589:4;14606:42;4533:10;14630:9;14641:6;14606:9;:42::i;30169:233::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;30256:16:::1;::::0;-1:-1:-1;;;;;30256:29:0;;::::1;:16:::0;::::1;:29;;30248:60;;;::::0;-1:-1:-1;;;30248:60:0;;13238:2:1;30248:60:0::1;::::0;::::1;13220:21:1::0;13277:2;13257:18;;;13250:30;-1:-1:-1;;;13296:18:1;;;13289:48;13354:18;;30248:60:0::1;13036:342:1::0;30248:60:0::1;30319:16;:28:::0;;-1:-1:-1;;;;;30319:28:0;;::::1;-1:-1:-1::0;;;;;;30319:28:0;;::::1;::::0;::::1;::::0;;:16:::1;30358:36:::0;:18:::1;:36;::::0;30169:233::o;19079:389::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;19226:12:::1;:23:::0;;;19260;:37;;;19308:22;:35;;;19354:22;:35;;;19400:20;:31;;;19447:13:::1;::::0;::::1;::::0;19226:16:::1;::::0;19447:13:::1;19079:389:::0;;;;;:::o;30655:201::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;30778:21:::1;:13:::0;30794:5:::1;30778:21;:::i;:::-;30763:12;:36:::0;30826:22:::1;:14:::0;30843:5:::1;30826:22;:::i;:::-;30810:13;:38:::0;-1:-1:-1;;30655:201:0:o;30864:130::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;30973:13:::1;11180:1;30973:2;:13;:::i;:::-;30964:22;::::0;:6;:22:::1;:::i;:::-;30943:18;:43:::0;-1:-1:-1;30864:130:0:o;31226:171::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31311:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;::::1;;:23;;::::0;::::1;;;;31303:53;;;::::0;-1:-1:-1;;;31303:53:0;;8657:2:1;31303:53:0::1;::::0;::::1;8639:21:1::0;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;31303:53:0::1;8455:341:1::0;31303:53:0::1;-1:-1:-1::0;;;;;31367:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:22;;-1:-1:-1;;31367:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;31226:171::o;18270:110::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18337:27:0::1;18367:5;18337:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;18337:35:0::1;::::0;;18270:110::o;8911:192::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9000:22:0;::::1;8992:73;;;::::0;-1:-1:-1;;;8992:73:0;;9832:2:1;8992:73:0::1;::::0;::::1;9814:21:1::0;9871:2;9851:18;;;9844:30;9910:34;9890:18;;;9883:62;-1:-1:-1;;;9961:18:1;;;9954:36;10007:19;;8992:73:0::1;9630:402:1::0;8992:73:0::1;9076:19;9086:8;9076:9;:19::i;:::-;8911:192:::0;:::o;31111:107::-;8632:7;8659:6;-1:-1:-1;;;;;8659:6:0;4533:10;8721:23;8713:68;;;;-1:-1:-1;;;8713:68:0;;;;;;;:::i;:::-;31185:14:::1;:25:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;31185:25:0;;::::1;::::0;;;::::1;::::0;;31111:107::o;3357:98::-;3415:7;3442:5;3446:1;3442;:5;:::i;3463:98::-;3521:7;3548:5;3552:1;3548;:5;:::i;23844:335::-;-1:-1:-1;;;;;23937:19:0;;23929:68;;;;-1:-1:-1;;;23929:68:0;;14333:2:1;23929:68:0;;;14315:21:1;14372:2;14352:18;;;14345:30;14411:34;14391:18;;;14384:62;-1:-1:-1;;;14462:18:1;;;14455:34;14506:19;;23929:68:0;14131:400:1;23929:68:0;-1:-1:-1;;;;;24016:21:0;;24008:68;;;;-1:-1:-1;;;24008:68:0;;10239:2:1;24008:68:0;;;10221:21:1;10278:2;10258:18;;;10251:30;10317:34;10297:18;;;10290:62;-1:-1:-1;;;10368:18:1;;;10361:32;10410:19;;24008:68:0;10037:398:1;24008:68:0;-1:-1:-1;;;;;24087:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24139:32;;15856:25:1;;;24139:32:0;;15829:18:1;24139:32:0;;;;;;;23844:335;;;:::o;24187:2017::-;-1:-1:-1;;;;;24283:18:0;;24275:68;;;;-1:-1:-1;;;24275:68:0;;13927:2:1;24275:68:0;;;13909:21:1;13966:2;13946:18;;;13939:30;14005:34;13985:18;;;13978:62;-1:-1:-1;;;14056:18:1;;;14049:35;14101:19;;24275:68:0;13725:401:1;24275:68:0;-1:-1:-1;;;;;24362:16:0;;24354:64;;;;-1:-1:-1;;;24354:64:0;;7898:2:1;24354:64:0;;;7880:21:1;7937:2;7917:18;;;7910:30;7976:34;7956:18;;;7949:62;-1:-1:-1;;;8027:18:1;;;8020:33;8070:19;;24354:64:0;7696:399:1;24354:64:0;24446:1;24437:6;:10;24429:64;;;;-1:-1:-1;;;24429:64:0;;12828:2:1;24429:64:0;;;12810:21:1;12867:2;12847:18;;;12840:30;12906:34;12886:18;;;12879:62;-1:-1:-1;;;12957:18:1;;;12950:39;13006:19;;24429:64:0;12626:405:1;24429:64:0;24522:15;24532:4;24522:9;:15::i;:::-;24512:6;:25;;24504:86;;;;-1:-1:-1;;;24504:86:0;;9003:2:1;24504:86:0;;;8985:21:1;9042:2;9022:18;;;9015:30;9081:34;9061:18;;;9054:62;-1:-1:-1;;;9132:18:1;;;9125:47;9189:19;;24504:86:0;8801:413:1;24504:86:0;-1:-1:-1;;;;;24610:12:0;;;;;;:6;:12;;;;;;;;24609:13;:28;;;;-1:-1:-1;;;;;;24627:10:0;;;;;;:6;:10;;;;;;;;24626:11;24609:28;24601:54;;;;-1:-1:-1;;;24601:54:0;;13585:2:1;24601:54:0;;;13567:21:1;13624:2;13604:18;;;13597:30;-1:-1:-1;;;13643:18:1;;;13636:43;13696:18;;24601:54:0;13383:337:1;24601:54:0;-1:-1:-1;;;;;24672:24:0;;;;;;:18;:24;;;;;;;;24671:25;:52;;;;-1:-1:-1;;;;;;24701:22:0;;;;;;:18;:22;;;;;;;;24700:23;24671:52;24668:136;;;24747:14;;;;24739:53;;;;-1:-1:-1;;;24739:53:0;;8302:2:1;24739:53:0;;;8284:21:1;8341:2;8321:18;;;8314:30;8380:28;8360:18;;;8353:56;8426:18;;24739:53:0;8100:350:1;24739:53:0;8632:7;8659:6;-1:-1:-1;;;;;24820:15:0;;;8659:6;;24820:15;;;;:45;;-1:-1:-1;8632:7:0;8659:6;-1:-1:-1;;;;;24852:13:0;;;8659:6;;24852:13;;24820:45;:78;;;;-1:-1:-1;;;;;;24882:16:0;;;;24820:78;:116;;;;-1:-1:-1;;;;;;24915:21:0;;24929:6;24915:21;;24820:116;:145;;;;-1:-1:-1;24961:4:0;;-1:-1:-1;;;;;24953:12:0;;;24961:4;;24953:12;24820:145;24816:410;;;24999:12;;24989:6;:22;;24981:65;;;;-1:-1:-1;;;24981:65:0;;14738:2:1;24981:65:0;;;14720:21:1;14777:2;14757:18;;;14750:30;14816:32;14796:18;;;14789:60;14866:18;;24981:65:0;14536:354:1;24981:65:0;25060:28;25091:13;25101:2;25091:9;:13::i;:::-;25160:14;;25060:44;;-1:-1:-1;25127:29:0;25150:6;25060:44;25127:29;:::i;:::-;:47;;25119:95;;;;-1:-1:-1;;;25119:95:0;;10998:2:1;25119:95:0;;;10980:21:1;11037:2;11017:18;;;11010:30;11076:34;11056:18;;;11049:62;-1:-1:-1;;;11127:18:1;;;11120:33;11170:19;;25119:95:0;10796:399:1;25119:95:0;24966:260;24816:410;8632:7;8659:6;-1:-1:-1;;;;;25242:15:0;;;8659:6;;25242:15;;;;:45;;-1:-1:-1;8632:7:0;8659:6;-1:-1:-1;;;;;25274:13:0;;;8659:6;;25274:13;;25242:45;:78;;;;-1:-1:-1;;;;;;25304:16:0;;;;25242:78;:116;;;;-1:-1:-1;;;;;;25337:21:0;;25351:6;25337:21;;25242:116;:145;;;;-1:-1:-1;25383:4:0;;-1:-1:-1;;;;;25375:12:0;;;25383:4;;25375:12;25242:145;25238:246;;;25421:13;;25411:6;:23;;25403:69;;;;-1:-1:-1;;;25403:69:0;;15510:2:1;25403:69:0;;;15492:21:1;15549:2;15529:18;;;15522:30;15588:34;15568:18;;;15561:62;-1:-1:-1;;;15639:18:1;;;15632:31;15680:19;;25403:69:0;15308:397:1;25403:69:0;25496:28;25527:24;25545:4;25527:9;:24::i;:::-;25601:18;;25634:8;;25496:55;;-1:-1:-1;25577:42:0;;;;25634:8;;;;;25633:9;:24;;;;-1:-1:-1;25646:11:0;;;;;;;25633:24;:35;;;;;25661:7;25633:35;:51;;;;-1:-1:-1;25680:4:0;;-1:-1:-1;;;;;25672:12:0;;;25680:4;;25672:12;;25633:51;25630:398;;;25758:14;;25718:21;;25758:14;;;;;:47;;;;;25794:10;25776:7;:29;25758:47;:61;;;;-1:-1:-1;25815:4:0;;-1:-1:-1;;;;;25809:10:0;;;25815:4;;25809:10;25758:61;25754:212;;;25854:17;;25844:7;:27;25840:60;;;-1:-1:-1;25883:17:0;;25840:60;25919:31;25933:16;:7;25945:3;25933:11;:16::i;:::-;25919:13;:31::i;:::-;25982:34;25997:18;;25982:14;:34::i;:::-;25685:343;25630:398;26069:4;;26038:11;;-1:-1:-1;;;;;26063:10:0;;;26069:4;;26063:10;26060:28;;;-1:-1:-1;26084:4:0;26060:28;-1:-1:-1;;;;;26136:24:0;;;;;;:18;:24;;;;;;26101:95;;26116:4;;26122:2;;26126:6;;26136:24;;;:50;;-1:-1:-1;;;;;;26164:22:0;;;;;;:18;:22;;;;;;;;26136:50;26134:53;26189:6;26101:14;:95::i;:::-;24256:1948;;;24187:2017;;;:::o;3675:240::-;3795:7;3856:12;3848:6;;;;3840:29;;;;-1:-1:-1;;;3840:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3891:5:0;;;3675:240::o;23130:158::-;23171:7;23192:15;23209;23228:19;:17;:19::i;:::-;23191:56;;-1:-1:-1;23191:56:0;-1:-1:-1;23265:15:0;23191:56;;23265:15;:::i;:::-;23258:22;;;;23130:158;:::o;20770:433::-;20856:36;;:::i;:::-;20917:37;20929:7;20938;20947:6;20917:11;:37::i;:::-;20905:49;;21116:52;21128:9;21139:7;21148;21157:10;:8;:10::i;:::-;21116:11;:52::i;:::-;21094:18;;;20965:203;21072:20;;;20965:203;21050:20;;;20965:203;21027:21;;;20965:203;21012:14;;;20965:203;20985:25;;;20965:203;;;20770:433;;;;;:::o;3251:98::-;3309:7;3336:5;3340:1;3336;:5;:::i;9111:173::-;9167:16;9186:6;;-1:-1:-1;;;;;9203:17:0;;;-1:-1:-1;;;;;;9203:17:0;;;;;;9236:40;;9186:6;;;;;;;9236:40;;9167:16;9236:40;9156:128;9111:173;:::o;27348:134::-;13306:8;:15;;-1:-1:-1;;13306:15:0;;;;;27418:10;;27414:61:::1;;27442:24;27459:6;27442:16;:24::i;:::-;-1:-1:-1::0;13344:8:0;:16;;-1:-1:-1;;13344:16:0;;;27348:134::o;28003:1081::-;13306:8;:15;;-1:-1:-1;;13306:15:0;;;;;28187:19;;28168:16;;28147:18;;13306:15;;28187:19;28147:37:::1;::::0;::::1;:::i;:::-;:59;;;;:::i;:::-;28146:65;::::0;28210:1:::1;28146:65;:::i;:::-;28125:86;;28222:32;28287:11;28266:8;:18;;;28257:6;:27;;;;:::i;:::-;:41;;;;:::i;:::-;28222:76:::0;-1:-1:-1;28309:14:0::1;28326:33;28222:76:::0;28326:6;:33:::1;:::i;:::-;28309:50:::0;-1:-1:-1;28397:21:0::1;28431:24;28309:50:::0;28431:16:::1;:24::i;:::-;28468:20;28491:38;28515:14:::0;28491:21:::1;:38;:::i;:::-;28591:18:::0;;28468:61;;-1:-1:-1;28540:19:0::1;::::0;28577:32:::1;::::0;:11;:32:::1;:::i;:::-;28561:49;::::0;:12;:49:::1;:::i;:::-;28667:18:::0;;28540:70;;-1:-1:-1;28621:29:0::1;::::0;28653:32:::1;::::0;28540:70;28653:32:::1;:::i;:::-;28621:64:::0;-1:-1:-1;28701:25:0;;28698:158:::1;;28783:61;28796:24;28822:21;28783:12;:61::i;:::-;28951:19:::0;;28909:21:::1;::::0;28933:15:::1;:11:::0;28947:1:::1;28933:15;:::i;:::-;:37;;;;:::i;:::-;28909:61:::0;-1:-1:-1;28984:17:0;;28981:96:::1;;29023:17;::::0;29015:50:::1;::::0;-1:-1:-1;;;;;29023:17:0;;::::1;::::0;29015:50;::::1;;;::::0;29051:13;;29023:17:::1;29015:50:::0;29023:17;29015:50;29051:13;29023:17;29015:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;28981:96;-1:-1:-1::0;;13344:8:0;:16;;-1:-1:-1;;13344:16:0;;;-1:-1:-1;;;;;;;28003:1081:0:o;26287:1053::-;26411:28;26442:36;26453:7;26462;26471:6;26442:10;:36::i;:::-;-1:-1:-1;;;;;26495:19:0;;;;;;:11;:19;;;;;;26411:67;;-1:-1:-1;26495:19:0;;26491:115;;;-1:-1:-1;;;;;26571:15:0;;;;;;:7;:15;;;;;;:23;;26587:7;;26571:23;:::i;:::-;-1:-1:-1;;;;;26553:15:0;;;;;;:7;:15;;;;;:41;26491:115;-1:-1:-1;;;;;26620:22:0;;;;;;:11;:22;;;;;;;;26616:130;;;26717:17;;;;-1:-1:-1;;;;;26698:18:0;;;;;;:7;:18;;;;;;:36;;26717:17;26698:36;:::i;:::-;-1:-1:-1;;;;;26677:18:0;;;;;;:7;:18;;;;;:57;26616:130;26792:9;;-1:-1:-1;;;;;26776:15:0;;26792:9;26776:15;;;:7;:15;;;;;;:25;;26792:9;26776:25;:::i;:::-;-1:-1:-1;;;;;26758:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;26852:17;;;26833:18;;;;;;;;;;:36;;26852:17;26833:36;:::i;:::-;-1:-1:-1;;;;;26812:18:0;;;;;;:7;:18;;;;;;;:57;;;;26892:6;;;26900;;;;26880:27;;26892:6;26880:11;:27::i;:::-;26918:44;26934:1;:13;;;26948:1;:13;;;26918:15;:44::i;:::-;26973:41;26988:1;:12;;;27001:1;:12;;;26973:14;:41::i;:::-;27025:42;27040:1;:12;;;27054:1;:12;;;27025:14;:42::i;:::-;27078:36;27091:1;:10;;;27103:1;:10;;;27078:12;:36::i;:::-;27147:9;-1:-1:-1;;;;;27130:46:0;27139:6;-1:-1:-1;;;;;27130:46:0;;27158:1;:17;;;27130:46;;;;15856:25:1;;15844:2;15829:18;;15710:177;27130:46:0;;;;;;;;27217:4;-1:-1:-1;;;;;27192:74:0;27201:6;-1:-1:-1;;;;;27192:74:0;;27255:1;:10;;;27239:1;:13;;;27224:1;:12;;;:28;;;;:::i;:::-;:41;;;;:::i;:::-;27192:74;;15856:25:1;;;15844:2;15829:18;27192:74:0;;;;;;;27299:16;;27317:12;;;;27282:48;;15856:25:1;;;-1:-1:-1;;;;;27299:16:0;;;;27282:48;;;;;15844:2:1;15829:18;27282:48:0;;;;;;;26398:942;26287:1053;;;;;:::o;23296:540::-;23393:7;;23429;;23346;;;;;23447:279;23471:9;:16;23467:20;;23447:279;;;23537:7;23513;:21;23521:9;23531:1;23521:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23521:12:0;23513:21;;;;;;;;;;;;;:31;;:66;;;23572:7;23548;:21;23556:9;23566:1;23556:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23556:12:0;23548:21;;;;;;;;;;;;;:31;23513:66;23509:97;;;23589:7;;23598;;23581:25;;;;;;;23296:540;;:::o;23509:97::-;23639:7;:21;23647:9;23657:1;23647:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23647:12:0;23639:21;;;;;;;;;;;;;23631:29;;:7;:29;:::i;:::-;23621:39;;23693:7;:21;23701:9;23711:1;23701:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23701:12:0;23693:21;;;;;;;;;;;;;23685:29;;:7;:29;:::i;:::-;23675:39;-1:-1:-1;23489:3:0;;;;:::i;:::-;;;;23447:279;;;;23758:7;;23750;;:15;;;;:::i;:::-;23740:7;:25;23736:56;;;23775:7;;23784;;23767:25;;;;;;23296:540;;:::o;23736:56::-;23811:7;;23820;;-1:-1:-1;23296:540:0;-1:-1:-1;23296:540:0:o;21211:1104::-;21298:28;;:::i;:::-;21345:7;21341:86;;21367:17;;;:27;;;21407:8;;21341:86;21442:6;21439:850;;;21481:12;:16;21498:4;;21473:24;;:7;:24;:::i;:::-;:29;;;;:::i;:::-;21464:6;;;:38;21541:23;;21565:4;;21533:31;;:7;:31;:::i;:::-;:36;;;;:::i;:::-;21517:13;;;:52;21607:22;;21630:4;;21599:30;;:7;:30;:::i;:::-;:35;;;;:::i;:::-;21584:12;;;:50;21672:22;;21695:4;;21664:30;;:7;:30;:::i;:::-;:35;;;;:::i;:::-;21649:12;;;:50;21735:20;;21756:4;;21727:28;;:7;:28;:::i;:::-;:33;;;;:::i;:::-;21714:10;;;:46;;;21837:12;;;;21824;;;;21810:13;;;;21803:6;;;;21795:14;;:7;:14;:::i;:::-;:28;;;;:::i;:::-;:41;;;;:::i;:::-;:54;;;;:::i;:::-;:65;;;;:::i;:::-;21775:17;;;:85;21439:850;;;21918:8;:12;21931:4;;21910:20;;:7;:20;:::i;:::-;:25;;;;:::i;:::-;21901:6;;;:34;21974:19;;21994:4;;21966:27;;:7;:27;:::i;:::-;:32;;;;:::i;:::-;21950:13;;;:48;22036:18;;22055:4;;22028:26;;:7;:26;:::i;:::-;:31;;;;:::i;:::-;22013:12;;;:46;22097:18;;22116:4;;22089:26;;:7;:26;:::i;:::-;:31;;;;:::i;:::-;22074:12;;;:46;22156:16;;22173:4;;22148:24;;:7;:24;:::i;:::-;:29;;;;:::i;:::-;22135:10;;;:42;;;22254:12;;;;22241;;;;22227:13;;;;22220:6;;;;22212:14;;:7;:14;:::i;:::-;:28;;;;:::i;:::-;:41;;;;:::i;:::-;:54;;;;:::i;:::-;:65;;;;:::i;:::-;22192:17;;;:85;21211:1104;;;;;:::o;22323:799::-;22448:15;;;;;;;22603:19;22611:11;22603:7;:19;:::i;:::-;22593:29;;22639:7;22635:73;;-1:-1:-1;22668:7:0;;-1:-1:-1;22686:1:0;;-1:-1:-1;22686:1:0;;-1:-1:-1;22686:1:0;;-1:-1:-1;22686:1:0;;-1:-1:-1;22686:1:0;22661:35;;22635:73;22734:11;22727:1;:6;;;:18;;;;:::i;:::-;22720:25;;22784:11;22770:1;:13;;;:25;;;;:::i;:::-;22756:39;;22832:11;22819:1;:12;;;:24;;;;:::i;:::-;22806:37;;22880:11;22867:1;:12;;;:24;;;;:::i;:::-;22854:37;;22924:11;22913:1;:10;;;:22;;;;:::i;:::-;22902:33;-1:-1:-1;22902:33:0;23001:10;22990;22978:11;22965:12;22973:4;22965:7;:12;:::i;:::-;:24;;;;:::i;:::-;:35;;;;:::i;:::-;:46;;;;:::i;:::-;:55;;;;:::i;:::-;22946:74;;22323:799;;;;;;;;;;;;;:::o;27490:505::-;27635:16;;;27649:1;27635:16;;;;;;;;27611:21;;27635:16;;;;;;;;;;-1:-1:-1;27635:16:0;27611:40;;27672:6;;;;;;;;;-1:-1:-1;;;;;27672:6:0;-1:-1:-1;;;;;27672:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27662:4;27667:1;27662:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;27662:23:0;;;-1:-1:-1;;;;;27662:23:0;;;;;27714:4;27696;27701:1;27696:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27696:23:0;;;:7;;;;;;;;;:23;27756:6;;-1:-1:-1;;;27756:6:0;;;:57;27821:6;27843:1;27890:4;11875:42;27951:24;:15;27971:3;27951:19;:24::i;:::-;27756:230;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27540:455;27490:505;:::o;29595:564::-;29745:16;;;29759:1;29745:16;;;;;;;;29721:21;;29745:16;;;;;;;;;;-1:-1:-1;29745:16:0;29721:40;;29790:4;29772;29777:1;29772:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;29772:23:0;;;-1:-1:-1;;;;;29772:23:0;;;;;29816:6;;;;;;;;;-1:-1:-1;;;;;29816:6:0;-1:-1:-1;;;;;29816:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29806:4;29811:1;29806:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29806:23:0;;;:7;;;;;;;;;:23;29874:6;;29842:53;;29859:4;;-1:-1:-1;;;29874:6:0;;;29883:11;29842:8;:53::i;:::-;29934:6;;:215;;-1:-1:-1;;;29934:215:0;;-1:-1:-1;;;29934:6:0;;;-1:-1:-1;;;;;29934:6:0;;:57;;:215;;30006:11;;30032:1;;30076:4;;30103;;30123:15;;29934:6;:215;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29092:495;29272:6;;29240:53;;29257:4;;-1:-1:-1;;;29272:6:0;;-1:-1:-1;;;;;29272:6:0;29281:11;29240:8;:53::i;:::-;29336:6;;-1:-1:-1;;;;;;;;29336:6:0;;;;:22;29366:9;29399:4;29419:11;29445:1;;29531:7;8632;8659:6;-1:-1:-1;;;;;8659:6:0;;8586:87;29531:7;29336:243;;;;;;-1:-1:-1;;;;;;29336:243:0;;;-1:-1:-1;;;;;5911:15:1;;;29336:243:0;;;5893:34:1;5943:18;;;5936:34;;;;5986:18;;;5979:34;;;;6029:18;;;6022:34;6093:15;;;6072:19;;;6065:44;29553:15:0;6125:19:1;;;6118:35;5827:19;;29336:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29092:495;;:::o;19476:123::-;19554:4;19544:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;19569:11:0;:22;;19587:4;;19569:11;:15;;:22;;19587:4;;19569:22;:::i;:::-;;;;-1:-1:-1;;;;19476:123:0:o;19607:282::-;19718:11;19693;:22;;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;19763:4:0;19743:26;;;;:11;:26;;;;;;;;19740:93;;;19802:4;19786:22;;;;:7;:22;;;;;:35;;19810:11;;19786:22;:35;;19810:11;;19786:35;:::i;:::-;;;;-1:-1:-1;;19740:93:0;19859:4;19843:22;;;;:7;:22;;;;;:36;;19868:11;;19843:22;:36;;19868:11;;19843:36;:::i;20175:284::-;20282:10;20258:11;:21;;;:34;;;;;;;:::i;20467:293::-;20574:10;20550:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;20612:16:0;;-1:-1:-1;;;;;20612:16:0;20600:29;;;;:11;:29;;;;;;;;20597:107;;;20663:16;;-1:-1:-1;;;;;20663:16:0;20655:25;;;;:7;:25;;;;;:37;;20682:10;;20655:25;:37;;20682:10;;20655:37;:::i;:::-;;;;-1:-1:-1;;20597:107:0;20722:16;;-1:-1:-1;;;;;20722:16:0;20714:25;;;;:7;:25;;;;;:38;;20742:10;;20714:25;:38;;20742:10;;20714:38;:::i;19897:270::-;19996:8;19974:11;:19;;;:30;;;;;;;:::i;3145:98::-;3203:7;3230:5;3234:1;3230;:5;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:382::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1696:30;1655:32;1696:30;:::i;1763:315::-;1831:6;1839;1892:2;1880:9;1871:7;1867:23;1863:32;1860:52;;;1908:1;1905;1898:12;1860:52;1947:9;1934:23;1966:31;1991:5;1966:31;:::i;:::-;2016:5;2068:2;2053:18;;;;2040:32;;-1:-1:-1;;;1763:315:1:o;2083:241::-;2139:6;2192:2;2180:9;2171:7;2167:23;2163:32;2160:52;;;2208:1;2205;2198:12;2160:52;2247:9;2234:23;2266:28;2288:5;2266:28;:::i;2329:245::-;2396:6;2449:2;2437:9;2428:7;2424:23;2420:32;2417:52;;;2465:1;2462;2455:12;2417:52;2497:9;2491:16;2516:28;2538:5;2516:28;:::i;2579:180::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;-1:-1:-1;2730:23:1;;2579:180;-1:-1:-1;2579:180:1:o;2764:184::-;2834:6;2887:2;2875:9;2866:7;2862:23;2858:32;2855:52;;;2903:1;2900;2893:12;2855:52;-1:-1:-1;2926:16:1;;2764:184;-1:-1:-1;2764:184:1:o;2953:309::-;3018:6;3026;3079:2;3067:9;3058:7;3054:23;3050:32;3047:52;;;3095:1;3092;3085:12;3047:52;3131:9;3118:23;3108:33;;3191:2;3180:9;3176:18;3163:32;3204:28;3226:5;3204:28;:::i;3267:248::-;3335:6;3343;3396:2;3384:9;3375:7;3371:23;3367:32;3364:52;;;3412:1;3409;3402:12;3364:52;-1:-1:-1;;3435:23:1;;;3505:2;3490:18;;;3477:32;;-1:-1:-1;3267:248:1:o;3520:306::-;3608:6;3616;3624;3677:2;3665:9;3656:7;3652:23;3648:32;3645:52;;;3693:1;3690;3683:12;3645:52;3722:9;3716:16;3706:26;;3772:2;3761:9;3757:18;3751:25;3741:35;;3816:2;3805:9;3801:18;3795:25;3785:35;;3520:306;;;;;:::o;3831:454::-;3926:6;3934;3942;3950;3958;4011:3;3999:9;3990:7;3986:23;3982:33;3979:53;;;4028:1;4025;4018:12;3979:53;-1:-1:-1;;4051:23:1;;;4121:2;4106:18;;4093:32;;-1:-1:-1;4172:2:1;4157:18;;4144:32;;4223:2;4208:18;;4195:32;;-1:-1:-1;4274:3:1;4259:19;4246:33;;-1:-1:-1;3831:454:1;-1:-1:-1;3831:454:1:o;4290:461::-;4343:3;4381:5;4375:12;4408:6;4403:3;4396:19;4434:4;4463:2;4458:3;4454:12;4447:19;;4500:2;4493:5;4489:14;4521:1;4531:195;4545:6;4542:1;4539:13;4531:195;;;4610:13;;-1:-1:-1;;;;;4606:39:1;4594:52;;4666:12;;;;4701:15;;;;4642:1;4560:9;4531:195;;;-1:-1:-1;4742:3:1;;4290:461;-1:-1:-1;;;;;4290:461:1:o;6579:510::-;6850:6;6839:9;6832:25;6893:3;6888:2;6877:9;6873:18;6866:31;6813:4;6914:57;6966:3;6955:9;6951:19;6943:6;6914:57;:::i;:::-;-1:-1:-1;;;;;7007:32:1;;;;7002:2;6987:18;;6980:60;-1:-1:-1;7071:2:1;7056:18;7049:34;6906:65;6579:510;-1:-1:-1;;6579:510:1:o;7094:597::-;7206:4;7235:2;7264;7253:9;7246:21;7296:6;7290:13;7339:6;7334:2;7323:9;7319:18;7312:34;7364:1;7374:140;7388:6;7385:1;7382:13;7374:140;;;7483:14;;;7479:23;;7473:30;7449:17;;;7468:2;7445:26;7438:66;7403:10;;7374:140;;;7532:6;7529:1;7526:13;7523:91;;;7602:1;7597:2;7588:6;7577:9;7573:22;7569:31;7562:42;7523:91;-1:-1:-1;7675:2:1;7654:15;-1:-1:-1;;7650:29:1;7635:45;;;;7682:2;7631:54;;7094:597;-1:-1:-1;;;7094:597:1:o;12265:356::-;12467:2;12449:21;;;12486:18;;;12479:30;12545:34;12540:2;12525:18;;12518:62;12612:2;12597:18;;12265:356::o;15892:582::-;16191:6;16180:9;16173:25;16234:6;16229:2;16218:9;16214:18;16207:34;16277:3;16272:2;16261:9;16257:18;16250:31;16154:4;16298:57;16350:3;16339:9;16335:19;16327:6;16298:57;:::i;:::-;-1:-1:-1;;;;;16391:32:1;;;;16386:2;16371:18;;16364:60;-1:-1:-1;16455:3:1;16440:19;16433:35;16290:65;15892:582;-1:-1:-1;;;15892:582:1:o;17136:128::-;17176:3;17207:1;17203:6;17200:1;17197:13;17194:39;;;17213:18;;:::i;:::-;-1:-1:-1;17249:9:1;;17136:128::o;17269:217::-;17309:1;17335;17325:132;;17379:10;17374:3;17370:20;17367:1;17360:31;17414:4;17411:1;17404:15;17442:4;17439:1;17432:15;17325:132;-1:-1:-1;17471:9:1;;17269:217::o;17491:422::-;17580:1;17623:5;17580:1;17637:270;17658:7;17648:8;17645:21;17637:270;;;17717:4;17713:1;17709:6;17705:17;17699:4;17696:27;17693:53;;;17726:18;;:::i;:::-;17776:7;17766:8;17762:22;17759:55;;;17796:16;;;;17759:55;17875:22;;;;17835:15;;;;17637:270;;;17641:3;17491:422;;;;;:::o;17918:140::-;17976:5;18005:47;18046:4;18036:8;18032:19;18026:4;18112:5;18142:8;18132:80;;-1:-1:-1;18183:1:1;18197:5;;18132:80;18231:4;18221:76;;-1:-1:-1;18268:1:1;18282:5;;18221:76;18313:4;18331:1;18326:59;;;;18399:1;18394:130;;;;18306:218;;18326:59;18356:1;18347:10;;18370:5;;;18394:130;18431:3;18421:8;18418:17;18415:43;;;18438:18;;:::i;:::-;-1:-1:-1;;18494:1:1;18480:16;;18509:5;;18306:218;;18608:2;18598:8;18595:16;18589:3;18583:4;18580:13;18576:36;18570:2;18560:8;18557:16;18552:2;18546:4;18543:12;18539:35;18536:77;18533:159;;;-1:-1:-1;18645:19:1;;;18677:5;;18533:159;18724:34;18749:8;18743:4;18724:34;:::i;:::-;18794:6;18790:1;18786:6;18782:19;18773:7;18770:32;18767:58;;;18805:18;;:::i;:::-;18843:20;;18063:806;-1:-1:-1;;;18063:806:1:o;18874:168::-;18914:7;18980:1;18976;18972:6;18968:14;18965:1;18962:21;18957:1;18950:9;18943:17;18939:45;18936:71;;;18987:18;;:::i;:::-;-1:-1:-1;19027:9:1;;18874:168::o;19047:125::-;19087:4;19115:1;19112;19109:8;19106:34;;;19120:18;;:::i;:::-;-1:-1:-1;19157:9:1;;19047:125::o;19177:135::-;19216:3;-1:-1:-1;;19237:17:1;;19234:43;;;19257:18;;:::i;:::-;-1:-1:-1;19304:1:1;19293:13;;19177:135::o;19317:127::-;19378:10;19373:3;19369:20;19366:1;19359:31;19409:4;19406:1;19399:15;19433:4;19430:1;19423:15;19449:127;19510:10;19505:3;19501:20;19498:1;19491:31;19541:4;19538:1;19531:15;19565:4;19562:1;19555:15;19581:127;19642:10;19637:3;19633:20;19630:1;19623:31;19673:4;19670:1;19663:15;19697:4;19694:1;19687:15;19845:131;-1:-1:-1;;;;;19920:31:1;;19910:42;;19900:70;;19966:1;19963;19956:12;19981:118;20067:5;20060:13;20053:21;20046:5;20043:32;20033:60;;20089:1;20086;20079:12

Swarm Source

ipfs://9a176f4a2a4f57d5f93ddec579846e49f726022a7faa601956fa68642fee1175
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.