Contract 0xAcebCD6C50556033E59d0E441Bedb935B070f6BA

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x13d6b3ce5081dc9b5a5d86be9ed5876dfa2ec51ee45ea35a0cc6f9b19d8f9f9e81297182021-06-08 22:12:394 days 23 hrs ago0x8f175dc926163fc38a33836d6f204cfb7157c219 IN  PancakeSwap: SUPRA0 BNB0.00007237
0x015ce7a91ec75ee08931895d0dddfbcddb009ff90a4fe0f906a135ff1a8f391f80101692021-06-04 18:25:119 days 2 hrs ago0xec76d523bc7c2d0ae9d02b06b32718c803af249a IN  PancakeSwap: SUPRA0 BNB0.00007237
0x711502e4c6defb50a29dc34de5414e5d81f6c3ca945e9756e4eba28fa34541e680099712021-06-04 18:15:059 days 3 hrs ago0xec76d523bc7c2d0ae9d02b06b32718c803af249a IN  PancakeSwap: SUPRA0 BNB0.00007237
0xb472738cab43df58e6e26ab454b389d7ee289e05d8b640fb583f9489ffd2527178289222021-05-29 10:50:0015 days 10 hrs ago0x2a28ea1f5be7e0f2374362c0f7ee4ecf7884c5a3 IN  PancakeSwap: SUPRA0 BNB0.000123735
0xbe56f2b4f08cd7817804d97911c1c15e3a2940ce1325d208c68d6c4022628df078288742021-05-29 10:47:3615 days 10 hrs ago0x2a28ea1f5be7e0f2374362c0f7ee4ecf7884c5a3 IN  PancakeSwap: SUPRA0 BNB0.00007237
0x89e0404e66c04aa5cc55596dba9d63c3ffb1eb0b5637deb3de3c9bce3656fa5478283312021-05-29 10:20:2715 days 10 hrs ago0x2a28ea1f5be7e0f2374362c0f7ee4ecf7884c5a3 IN  PancakeSwap: SUPRA0 BNB0.00007237
0xbc0eec84888b50618e39cc5dd57c33d4c5e2912d5fdc802979d6ddfcb4ee90b876870662021-05-24 11:59:2420 days 9 hrs ago0x3b3f04deb78e8d12929af043b12b605e552eeace IN  PancakeSwap: SUPRA0 BNB0.000123735
0xc4a5a9357b06a23f9a6738a8c9d6cb03f912fd5c3617485eed679e6bbfd82f1c76855972021-05-24 10:45:5720 days 10 hrs ago0xc6cccfe6b0c43aafbec5a1d1bae636866a632abb IN  PancakeSwap: SUPRA0 BNB0.00007237
0x7aef79130f6c96168e11788170c370838a086b0aab07a6376520312e1c9c0a8476855312021-05-24 10:42:3920 days 10 hrs ago0xc6cccfe6b0c43aafbec5a1d1bae636866a632abb IN  PancakeSwap: SUPRA0 BNB0.00007237
0x37c6ba7682ed9d3eacb8b490b325a578261cded2baf1e4f4c94c6ae858d7601c76853892021-05-24 10:35:3320 days 10 hrs ago0xc6cccfe6b0c43aafbec5a1d1bae636866a632abb IN  PancakeSwap: SUPRA0 BNB0.00007237
0x058e6dbd91762824d320c29603e22ae293ecf66e5c4ccb8b788d1491f711495675573982021-05-19 23:24:4924 days 21 hrs ago0xeb37d5b7707e1dfcdfdc801fbfcee47ab75673ea IN  PancakeSwap: SUPRA0 BNB0.00007237
0x7b9b9d112009c1b30165cdebf8487166ce64f0ec45d932fdaf3a19be810f41d675231932021-05-18 18:33:2126 days 2 hrs ago0x105ae604b7c0859941bd8ab2455b5e89ef3e8970 IN  PancakeSwap: SUPRA0 BNB0.0001114498
0x688f39a9a9c8d03e69cdc2a63a6fa5a9a6920dc0559732b3734853ea400a4ef473877412021-05-13 23:43:2630 days 21 hrs ago0x18734c1b09e55c5da041e5e363a6c2a7fd4cd106 IN  PancakeSwap: SUPRA0 BNB0.000221655
0x9794d54f24fd5b9558087ddd65142221fe6913a8543c2801152f7384148861ee72371722021-05-08 8:14:2536 days 13 hrs ago0xcb011b57d570b2815468665bb69358b364ca557c IN  PancakeSwap: SUPRA0 BNB0.00007237
0xc6949888e18eeff5069687de947e512e11e3d9c3f041227a3a9cedc4e72c4b8e72343002021-05-08 5:50:3236 days 15 hrs ago0x3b3f04deb78e8d12929af043b12b605e552eeace IN  PancakeSwap: SUPRA0 BNB0.00007237
0x7121c81fb52f79d55a337647e791d9666a9c18ea820c77cecf7d21a59354a74772316792021-05-08 3:34:2636 days 17 hrs ago0xd1f44b1a4cbe6a3c23ab00976c6bd66adbbed278 IN  PancakeSwap: SUPRA0 BNB0.00007237
0xa68f351696227b85513def04fb9d4bf8e5e87e22891dc1ffd8f819395faed42472316772021-05-08 3:34:2036 days 17 hrs ago0xd1f44b1a4cbe6a3c23ab00976c6bd66adbbed278 IN  PancakeSwap: SUPRA0 BNB0.00007237
0x3b8761b7a09fbcf32335f22d3d780506f78b40a83e05137dc8fa489d011dfe0671654232021-05-05 18:55:0539 days 2 hrs ago0x040e0102566f4410b9bd43e2846236447fe2f89c IN  PancakeSwap: SUPRA0 BNB0.000220335
0x665098070335205a59ace455a0f29b72ee8c4fbc5664bda8abd9434c958ceda870475982021-05-01 15:35:4843 days 5 hrs ago0x1ce99932fd278e00911814dc4bd403e1293d8ed2 IN  PancakeSwap: SUPRA0 BNB0.000220335
0x0b415a40216eafda9058d3e49807bafe3689f5923f3a4a54b3a2709bc9d3851069648122021-04-28 17:50:3846 days 3 hrs ago0xd8264c28c6acef6cd96262ade098e535e682c259 IN  PancakeSwap: SUPRA0 BNB0.000220335
0x383f103ffb9b110880f75403a751d62c2ce44c6f05e1eafaffff0db506196f0469085342021-04-26 18:34:2848 days 2 hrs ago0xef860433f925b4a6ad556fd4527e84f114900fd4 IN  PancakeSwap: SUPRA0 BNB0.00007237
0xa147caf8976a9cf58b829dc8d86affd1f3c6bd62040f3b7ae2622922dd4758e768754632021-04-25 14:52:2349 days 6 hrs ago0x4852d27a3f66fe8c4e91885b8446630a8d4dae52 IN  PancakeSwap: SUPRA0 BNB0.000221655
0x6aec5eb2f26e1af600fde63968a83da2ace8f98545bae62aa4a898199b3f9ed067960882021-04-22 20:17:4152 days 57 mins ago0xc42681f28c0f86ed0ca685b2324018802ec0836e IN  PancakeSwap: SUPRA0 BNB0.00007237
0x41b750916b09fe4932dfa939f0f55213273bc9456210bc3b996ff1e55c29530267937182021-04-22 18:04:2652 days 3 hrs ago0xece9d5e60ff8f715f3b5669496b5948f9374ac67 IN  PancakeSwap: SUPRA0 BNB0.000221655
0x775293c3196ca5d728179f88b11c70874e13b739dcb0b520012d131acc2f7f3267879812021-04-22 13:10:1352 days 8 hrs ago0xd8264c28c6acef6cd96262ade098e535e682c259 IN  PancakeSwap: SUPRA0 BNB0.00007237
[ Download CSV Export 

OVERVIEW

PancakeSwap pool to exchange between SUPRA and WBNB.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x3d2fc278e3ffca5ce6944972e529a181cc3d2aa13cf9d11d2374a6c24102dff754711642021-03-07 11:51:0998 days 9 hrs ago PancakeSwap: SUPRA Binance: WBNB Token0 BNB
0x3d2fc278e3ffca5ce6944972e529a181cc3d2aa13cf9d11d2374a6c24102dff754711642021-03-07 11:51:0998 days 9 hrs ago PancakeSwap: SUPRA Supra: SUPRA Token0 BNB
0x3d2fc278e3ffca5ce6944972e529a181cc3d2aa13cf9d11d2374a6c24102dff754711642021-03-07 11:51:0998 days 9 hrs ago PancakeSwap: SUPRA Binance: WBNB Token0 BNB
0x3d2fc278e3ffca5ce6944972e529a181cc3d2aa13cf9d11d2374a6c24102dff754711642021-03-07 11:51:0998 days 9 hrs ago PancakeSwap: Router PancakeSwap: SUPRA0 BNB
0x3d2fc278e3ffca5ce6944972e529a181cc3d2aa13cf9d11d2374a6c24102dff754711642021-03-07 11:51:0998 days 9 hrs ago PancakeSwap: Router PancakeSwap: SUPRA0 BNB
0x4026ab0274f3b2dcc4235540e60a52d7341a492e183a7e856a0e7b40f318eff554707832021-03-07 11:32:0698 days 9 hrs ago PancakeSwap: Router PancakeSwap: SUPRA0 BNB
0xe080aa77ee020fef37a566d9805ca8fd133fe0e47bb885077f6cfda22e0ba66354707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
0x35e37e809fc9802cbaea27fe71a52ef1ae016531b6935a4a62e5ad95d6ede9fd54707832021-03-07 11:32:0698 days 9 hrs ago 0xebfc329f30d9f9838b4ed149a1ff593f8308f688 PancakeSwap: SUPRA0 BNB
0x82c695babf88cfe8df5b9327e2bdb472616c81b3851dbaec3d32f7b17baab9d154707832021-03-07 11:32:0698 days 9 hrs ago 0xebfc329f30d9f9838b4ed149a1ff593f8308f688 PancakeSwap: SUPRA0 BNB
0x8ea6c2fd5b3110a85a3afddbd50c45a33798b86d0deb50da899e19d640dddc7354707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
0x1f239d393946490b72ccb3defbd83bd9f1fc4f039b0798711d9afc7dfcb7d1f354707832021-03-07 11:32:0698 days 9 hrs ago PancakeSwap: SUPRA Binance: WBNB Token0 BNB
0x1f239d393946490b72ccb3defbd83bd9f1fc4f039b0798711d9afc7dfcb7d1f354707832021-03-07 11:32:0698 days 9 hrs ago PancakeSwap: SUPRA Supra: SUPRA Token0 BNB
0x1f239d393946490b72ccb3defbd83bd9f1fc4f039b0798711d9afc7dfcb7d1f354707832021-03-07 11:32:0698 days 9 hrs ago PancakeSwap: SUPRA Binance: WBNB Token0 BNB
0x1f239d393946490b72ccb3defbd83bd9f1fc4f039b0798711d9afc7dfcb7d1f354707832021-03-07 11:32:0698 days 9 hrs ago 0xebfc329f30d9f9838b4ed149a1ff593f8308f688 PancakeSwap: SUPRA0 BNB
0x1f239d393946490b72ccb3defbd83bd9f1fc4f039b0798711d9afc7dfcb7d1f354707832021-03-07 11:32:0698 days 9 hrs ago 0xebfc329f30d9f9838b4ed149a1ff593f8308f688 PancakeSwap: SUPRA0 BNB
0xa8377bb7aef0b3dbedce4d05176b77be48d5953ada83435cf9f506473ab3ac9554707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
0x40c5306341be29c622803ecd5e99fac0e2172f440add4a68e7c894e40efa14fd54707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
0x0c5328d6691a9b784a3add4136529390237793f6d06b0a06db8da9b3aa732b0254707832021-03-07 11:32:0698 days 9 hrs ago 0x23db7a87f26c35180607429a85c3b1a9eb05cd6e PancakeSwap: SUPRA0 BNB
0xc08bebd0f6c517af2ad5e633b59a1520512734cf1d1d040a224505e6bfbc68f854707832021-03-07 11:32:0698 days 9 hrs ago 0xebfc329f30d9f9838b4ed149a1ff593f8308f688 PancakeSwap: SUPRA0 BNB
0x1f82a52ca3f96c11cbd650d7399e582d82df7e0ba7ee9047c28ce4cc38e974be54707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
0x1fc8a6f1f3472ed996926d543852223a8695c5d77f30131b7aa3db9e19b9aaf654707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
0x12ee2f7792ab7df59419581c2eec2a137370aab0455e1084d257bf60e6b74d2f54707832021-03-07 11:32:0698 days 9 hrs ago 0x5fa296cca27a14d26aca6fd7c7e5db6294f16613 PancakeSwap: SUPRA0 BNB
0x72e97096a3fb2e2ef5bf60ea0bfbbf317c7fed9383e21dd207743c35e641eef354707832021-03-07 11:32:0698 days 9 hrs ago 0xc29bbe4c7a875e113f641e66823315e5cb61d0f2 PancakeSwap: SUPRA0 BNB
0x7d1c54aab4d5315619825990f3061f1185666887895ab5366b33f5c7ea92d80854707832021-03-07 11:32:0698 days 9 hrs ago 0x23db7a87f26c35180607429a85c3b1a9eb05cd6e PancakeSwap: SUPRA0 BNB
0x2463c4aaccf96326654455d89ac637e6e40e8ecdef5ecd140de3d42d9aa6500d54707832021-03-07 11:32:0698 days 9 hrs ago 0x6251b90679fe18be6b8996bc2a803f6b2ef8f2d5 PancakeSwap: SUPRA0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xa527a61703d82139f8a06bc30097cc9caa2df5a6

Contract Name:
PancakePair

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2020-09-24
*/

// File: contracts/interfaces/IPancakePair.sol

pragma solidity >=0.5.0;

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

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

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

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

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

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

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

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

    function initialize(address, address) external;
}

// File: contracts/interfaces/IPancakeERC20.sol

pragma solidity >=0.5.0;

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

// File: contracts/libraries/SafeMath.sol

pragma solidity =0.5.16;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

// File: contracts/PancakeERC20.sol

pragma solidity =0.5.16;



contract PancakeERC20 is IPancakeERC20 {
    using SafeMath for uint;

    string public constant name = 'Pancake LPs';
    string public constant symbol = 'Cake-LP';
    uint8 public constant decimals = 18;
    uint  public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    bytes32 public DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint) public nonces;

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

    constructor() public {
        uint chainId;
        assembly {
            chainId := chainid
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes(name)),
                keccak256(bytes('1')),
                chainId,
                address(this)
            )
        );
    }

    function _mint(address to, uint value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint value) internal {
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(address owner, address spender, uint value) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(address from, address to, uint value) private {
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external returns (bool) {
        if (allowance[from][msg.sender] != uint(-1)) {
            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'Pancake: EXPIRED');
        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
            )
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(recoveredAddress != address(0) && recoveredAddress == owner, 'Pancake: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

// File: contracts/libraries/Math.sol

pragma solidity =0.5.16;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

// File: contracts/libraries/UQ112x112.sol

pragma solidity =0.5.16;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

// File: contracts/interfaces/IERC20.sol

pragma solidity >=0.5.0;

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

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view 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);
}

// File: contracts/interfaces/IPancakeFactory.sol

pragma solidity >=0.5.0;

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

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

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

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

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

// File: contracts/interfaces/IPancakeCallee.sol

pragma solidity >=0.5.0;

interface IPancakeCallee {
    function pancakeCall(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

// File: contracts/PancakePair.sol

pragma solidity =0.5.16;








contract PancakePair is IPancakePair, PancakeERC20 {
    using SafeMath  for uint;
    using UQ112x112 for uint224;

    uint public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0;           // uses single storage slot, accessible via getReserves
    uint112 private reserve1;           // uses single storage slot, accessible via getReserves
    uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint public price0CumulativeLast;
    uint public price1CumulativeLast;
    uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'Pancake: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(address token, address to, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'Pancake: TRANSFER_FAILED');
    }

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

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, 'Pancake: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'Pancake: OVERFLOW');
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IPancakeFactory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast));
                    uint denominator = rootK.mul(3).add(rootKLast);
                    uint liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IERC20(token0).balanceOf(address(this));
        uint balance1 = IERC20(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
           _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
        } else {
            liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
        }
        require(liquidity > 0, 'Pancake: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to) external lock returns (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IERC20(_token0).balanceOf(address(this));
        uint balance1 = IERC20(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(amount0 > 0 && amount1 > 0, 'Pancake: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
        require(amount0Out > 0 || amount1Out > 0, 'Pancake: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'Pancake: INSUFFICIENT_LIQUIDITY');

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
        address _token0 = token0;
        address _token1 = token1;
        require(to != _token0 && to != _token1, 'Pancake: INVALID_TO');
        if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
        if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
        if (data.length > 0) IPancakeCallee(to).pancakeCall(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'Pancake: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(2));
        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(2));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'Pancake: K');
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
    }

    // force reserves to match balances
    function sync() external lock {
        _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
    }
}

Contract ABI

[{"inputs":[],"payable":false,"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":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","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"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526001600c5534801561001557600080fd5b5060405146908060526122e08239604080519182900360520182208282018252600b83526a50616e63616b65204c507360a81b6020938401528151808301835260018152603160f81b908401528151808401919091527fe87cb5a4dc26cf9451529a20899fcee996799afd48d7c0db7c25e150b364661d818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b031916331790556121da806101066000396000f3fe608060405234801561001057600080fd5b50600436106101595760003560e01c80636a627842116100c95780636a627842146103bf57806370a08231146103e55780637464fc3d1461040b5780637ecebe001461041357806389afcb441461043957806395d89b4114610478578063a9059cbb14610480578063ba9a7a56146104ac578063bc25cf77146104b4578063c45a0155146104da578063d21220a7146104e2578063d505accf146104ea578063dd62ed3e1461053b578063fff6cae91461056957610159565b8063022c0d9f1461015e57806306fdde03146101ea5780630902f1ac14610267578063095ea7b31461029f5780630dfe1681146102df57806318160ddd1461030357806323b872dd1461031d57806330adf81f14610353578063313ce5671461035b5780633644e51514610379578063485cc955146103815780635909c0d5146103af5780635a3d5493146103b7575b600080fd5b6101e86004803603608081101561017457600080fd5b8135916020810135916001600160a01b036040830135169190810190608081016060820135600160201b8111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460018302840111600160201b831117156101dd57600080fd5b509092509050610571565b005b6101f2610abc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022c578181015183820152602001610214565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026f610ae3565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6102cb600480360360408110156102b557600080fd5b506001600160a01b038135169060200135610b0d565b604080519115158252519081900360200190f35b6102e7610b24565b604080516001600160a01b039092168252519081900360200190f35b61030b610b33565b60408051918252519081900360200190f35b6102cb6004803603606081101561033357600080fd5b506001600160a01b03813581169160208101359091169060400135610b39565b61030b610bd3565b610363610bf7565b6040805160ff9092168252519081900360200190f35b61030b610bfc565b6101e86004803603604081101561039757600080fd5b506001600160a01b0381358116916020013516610c02565b61030b610c84565b61030b610c8a565b61030b600480360360208110156103d557600080fd5b50356001600160a01b0316610c90565b61030b600480360360208110156103fb57600080fd5b50356001600160a01b0316610f8e565b61030b610fa0565b61030b6004803603602081101561042957600080fd5b50356001600160a01b0316610fa6565b61045f6004803603602081101561044f57600080fd5b50356001600160a01b0316610fb8565b6040805192835260208301919091528051918290030190f35b6101f261135c565b6102cb6004803603604081101561049657600080fd5b506001600160a01b03813516906020013561137f565b61030b61138c565b6101e8600480360360208110156104ca57600080fd5b50356001600160a01b0316611392565b6102e76114fb565b6102e761150a565b6101e8600480360360e081101561050057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611519565b61030b6004803603604081101561055157600080fd5b506001600160a01b0381358116916020013516611716565b6101e8611733565b600c546001146105ba576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55841515806105cd5750600084115b6106085760405162461bcd60e51b815260040180806020018281038252602381526020018061215d6023913960400191505060405180910390fd5b600080610613610ae3565b5091509150816001600160701b0316871080156106385750806001600160701b031686105b610689576040805162461bcd60e51b815260206004820152601f60248201527f50616e63616b653a20494e53554646494349454e545f4c495155494449545900604482015290519081900360640190fd5b60065460075460009182916001600160a01b039182169190811690891682148015906106c75750806001600160a01b0316896001600160a01b031614155b61070e576040805162461bcd60e51b815260206004820152601360248201527250616e63616b653a20494e56414c49445f544f60681b604482015290519081900360640190fd5b8a1561071f5761071f828a8d611893565b891561073057610730818a8c611893565b86156107eb57886001600160a01b03166384800812338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156107d257600080fd5b505af11580156107e6573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561083157600080fd5b505afa158015610845573d6000803e3d6000fd5b505050506040513d602081101561085b57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108a757600080fd5b505afa1580156108bb573d6000803e3d6000fd5b505050506040513d60208110156108d157600080fd5b5051925060009150506001600160701b0385168a900383116108f4576000610903565b89856001600160701b03160383035b9050600089856001600160701b031603831161092057600061092f565b89856001600160701b03160383035b905060008211806109405750600081115b61097b5760405162461bcd60e51b81526004018080602001828103825260228152602001806120f56022913960400191505060405180910390fd5b60006109af61099184600263ffffffff611a2416565b6109a3876103e863ffffffff611a2416565b9063ffffffff611a8716565b905060006109c761099184600263ffffffff611a2416565b90506109f8620f42406109ec6001600160701b038b8116908b1663ffffffff611a2416565b9063ffffffff611a2416565b610a08838363ffffffff611a2416565b1015610a48576040805162461bcd60e51b815260206004820152600a60248201526950616e63616b653a204b60b01b604482015290519081900360640190fd5b5050610a5684848888611ad7565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600b81526020016a50616e63616b65204c507360a81b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b1a338484611c8c565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bbe576001600160a01b0384166000908152600260209081526040808320338452909152902054610b99908363ffffffff611a8716565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bc9848484611cee565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c56576040805162461bcd60e51b81526020600482015260126024820152712830b731b0b5b29d102327a92124a22222a760711b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cdb576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580610ceb610ae3565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d3f57600080fd5b505afa158015610d53573d6000803e3d6000fd5b505050506040513d6020811015610d6957600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dbc57600080fd5b505afa158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b505190506000610e05836001600160701b03871663ffffffff611a8716565b90506000610e22836001600160701b03871663ffffffff611a8716565b90506000610e308787611d96565b60005490915080610e6d57610e596103e86109a3610e54878763ffffffff611a2416565b611ef4565b9850610e6860006103e8611f46565b610ebc565b610eb96001600160701b038916610e8a868463ffffffff611a2416565b81610e9157fe5b046001600160701b038916610eac868563ffffffff611a2416565b81610eb357fe5b04611fca565b98505b60008911610efb5760405162461bcd60e51b81526004018080602001828103825260268152602001806121806026913960400191505060405180910390fd5b610f058a8a611f46565b610f1186868a8a611ad7565b8115610f4157600854610f3d906001600160701b0380821691600160701b90041663ffffffff611a2416565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611004576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580611014610ae3565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561107057600080fd5b505afa158015611084573d6000803e3d6000fd5b505050506040513d602081101561109a57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d602081101561111257600080fd5b5051306000908152600160205260408120549192506111318888611d96565b60005490915080611148848763ffffffff611a2416565b8161114f57fe5b049a5080611163848663ffffffff611a2416565b8161116a57fe5b04995060008b11801561117d575060008a115b6111b85760405162461bcd60e51b81526004018080602001828103825260268152602001806121176026913960400191505060405180910390fd5b6111c23084611fe2565b6111cd878d8d611893565b6111d8868d8c611893565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561121e57600080fd5b505afa158015611232573d6000803e3d6000fd5b505050506040513d602081101561124857600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561129457600080fd5b505afa1580156112a8573d6000803e3d6000fd5b505050506040513d60208110156112be57600080fd5b505193506112ce85858b8b611ad7565b81156112fe576008546112fa906001600160701b0380821691600160701b90041663ffffffff611a2416565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b60405180604001604052806007815260200166043616b652d4c560cc1b81525081565b6000610b1a338484611cee565b6103e881565b600c546001146113db576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261148a9285928792611485926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561144d57600080fd5b505afa158015611461573d6000803e3d6000fd5b505050506040513d602081101561147757600080fd5b50519063ffffffff611a8716565b611893565b600854604080516370a0823160e01b815230600482015290516114f1928492879261148592600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561144d57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611561576040805162461bcd60e51b815260206004820152601060248201526f14185b98d85ad94e881156141254915160821b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561167c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116b25750886001600160a01b0316816001600160a01b0316145b611700576040805162461bcd60e51b815260206004820152601a60248201527950616e63616b653a20494e56414c49445f5349474e415455524560301b604482015290519081900360640190fd5b61170b898989611c8c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5460011461177c576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b8152306004820152905161188c926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156117cd57600080fd5b505afa1580156117e1573d6000803e3d6000fd5b505050506040513d60208110156117f757600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b50516008546001600160701b0380821691600160701b900416611ad7565b6001600c55565b60408051808201825260198152787472616e7366657228616464726573732c75696e743235362960381b60209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061193c5780518252601f19909201916020918201910161191d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461199e576040519150601f19603f3d011682016040523d82523d6000602084013e6119a3565b606091505b50915091508180156119d15750805115806119d157508080602001905160208110156119ce57600080fd5b50515b611a1d576040805162461bcd60e51b815260206004820152601860248201527714185b98d85ad94e881514905394d1915497d1905253115160421b604482015290519081900360640190fd5b5050505050565b6000811580611a3f57505080820282828281611a3c57fe5b04145b610b1e576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b1e576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611af557506001600160701b038311155b611b3a576040805162461bcd60e51b815260206004820152601160248201527050616e63616b653a204f564552464c4f5760781b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611b6a57506001600160701b03841615155b8015611b7e57506001600160701b03831615155b15611bef578063ffffffff16611bac85611b978661206e565b6001600160e01b03169063ffffffff61208016565b600980546001600160e01b03929092169290920201905563ffffffff8116611bd784611b978761206e565b600a80546001600160e01b0392909216929092020190555b600880546001600160701b0319166001600160701b0388811691909117600160701b600160e01b031916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d17908263ffffffff611a8716565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611d4c908263ffffffff6120a516565b6001600160a01b03808416600081815260016020908152604091829020949094558051858152905191939287169260008051602061213d83398151915292918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051600b546001600160a01b038216158015945091925090611ee0578015611edb576000611e54610e546001600160701b0388811690881663ffffffff611a2416565b90506000611e6183611ef4565b905080821115611ed8576000611e8f611e80848463ffffffff611a8716565b6000549063ffffffff611a2416565b90506000611eb483611ea886600363ffffffff611a2416565b9063ffffffff6120a516565b90506000818381611ec157fe5b0490508015611ed457611ed48782611f46565b5050505b50505b611eec565b8015611eec576000600b555b505092915050565b60006003821115611f37575080600160028204015b81811015611f3157809150600281828581611f2057fe5b040181611f2957fe5b049050611f09565b50611f41565b8115611f41575060015b919050565b600054611f59908263ffffffff6120a516565b60009081556001600160a01b038316815260016020526040902054611f84908263ffffffff6120a516565b6001600160a01b038316600081815260016020908152604080832094909455835185815293519293919260008051602061213d8339815191529281900390910190a35050565b6000818310611fd95781611fdb565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461200b908263ffffffff611a8716565b6001600160a01b03831660009081526001602052604081209190915554612038908263ffffffff611a8716565b60009081556040805183815290516001600160a01b0385169160008051602061213d833981519152919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161209d57fe5b049392505050565b80820182811015610b1e576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e4544ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef50616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582082d63502615ee1d8d2654f9dbbe00633c648597f2419f5919c9a5bd46e1de28c64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed ByteCode Sourcemap

11086:9653:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11086:9653:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18271:1875;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;18271:1875:0;;;;;;;;-1:-1:-1;;;;;18271:1875:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;18271:1875:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18271:1875:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;18271:1875:0;;-1:-1:-1;18271:1875:0;-1:-1:-1;18271:1875:0;:::i;:::-;;4524:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4524:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12099:231;;;:::i;:::-;;;;-1:-1:-1;;;;;12099:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6573:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6573:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11390:21;;;:::i;:::-;;;;-1:-1:-1;;;;;11390:21:0;;;;;;;;;;;;;;4664:24;;;:::i;:::-;;;;;;;;;;;;;;;;6875:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6875:301:0;;;;;;;;;;;;;;;;;:::i;4956:108::-;;;:::i;4622:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4813:31;;;:::i;13157:208::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13157:208:0;;;;;;;;;;:::i;11741:32::-;;;:::i;11780:::-;;;:::i;15345:1238::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15345:1238:0;-1:-1:-1;;;;;15345:1238:0;;:::i;4695:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4695:41:0;-1:-1:-1;;;;;4695:41:0;;:::i;11819:17::-;;;:::i;5071:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5071:38:0;-1:-1:-1;;;;;5071:38:0;;:::i;16695:1464::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16695:1464:0;-1:-1:-1;;;;;16695:1464:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4574:41;;;:::i;6728:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6728:139:0;;;;;;;;:::i;11211:46::-;;;:::i;20195:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20195:334:0;-1:-1:-1;;;;;20195:334:0;;:::i;11361:22::-;;;:::i;11418:21::-;;;:::i;7184:670::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;7184:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4743:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4743:61:0;;;;;;;;;;:::i;20578:158::-;;;:::i;18271:1875::-;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;18385:14;;;;:32;;;18416:1;18403:10;:14;18385:32;18377:80;;;;-1:-1:-1;;;18377:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18469:17;18488;18510:13;:11;:13::i;:::-;18468:55;;;;;18570:9;-1:-1:-1;;;;;18557:22:0;:10;:22;:48;;;;;18596:9;-1:-1:-1;;;;;18583:22:0;:10;:22;18557:48;18549:92;;;;;-1:-1:-1;;;18549:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18786:6;;18821;;18654:13;;;;-1:-1:-1;;;;;18786:6:0;;;;18821;;;;18846:13;;;;;;;:30;;;18869:7;-1:-1:-1;;;;;18863:13:0;:2;-1:-1:-1;;;;;18863:13:0;;;18846:30;18838:62;;;;;-1:-1:-1;;;18838:62:0;;;;;;;;;;;;-1:-1:-1;;;18838:62:0;;;;;;;;;;;;;;;18915:14;;18911:58;;18931:38;18945:7;18954:2;18958:10;18931:13;:38::i;:::-;19018:14;;19014:58;;19034:38;19048:7;19057:2;19061:10;19034:13;:38::i;:::-;19121:15;;19117:93;;19153:2;-1:-1:-1;;;;;19138:30:0;;19169:10;19181;19193;19205:4;;19138:72;;;;;;;;;;;;;-1:-1:-1;;;;;19138:72:0;-1:-1:-1;;;;;19138:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19138:72:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19138:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19138:72:0;;;;19117:93;19232:40;;;-1:-1:-1;;;19232:40:0;;19266:4;19232:40;;;;;;-1:-1:-1;;;;;19232:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19232:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19232:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19232:40:0;19294;;;-1:-1:-1;;;19294:40:0;;19328:4;19294:40;;;;;;19232;;-1:-1:-1;;;;;;19294:25:0;;;;;:40;;;;;19232;;19294;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19294:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19294:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19294:40:0;;-1:-1:-1;19356:14:0;;-1:-1:-1;;;;;;;19384:22:0;;;;;19373:33;;:75;;19447:1;19373:75;;;19433:10;19421:9;-1:-1:-1;;;;;19421:22:0;;19409:8;:35;19373:75;19356:92;;19459:14;19499:10;19487:9;-1:-1:-1;;;;;19487:22:0;;19476:8;:33;:75;;19550:1;19476:75;;;19536:10;19524:9;-1:-1:-1;;;;;19524:22:0;;19512:8;:35;19476:75;19459:92;;19582:1;19570:9;:13;:30;;;;19599:1;19587:9;:13;19570:30;19562:77;;;;-1:-1:-1;;;19562:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19725:21;19749:40;19772:16;:9;19786:1;19772:16;:13;:16;:::i;:::-;19749:18;:8;19762:4;19749:18;:12;:18;:::i;:::-;:22;:40;:22;:40;:::i;:::-;19725:64;-1:-1:-1;19800:21:0;19824:40;19847:16;:9;19861:1;19847:16;:13;:16;:::i;19824:40::-;19800:64;-1:-1:-1;19925:43:0;19960:7;19925:30;-1:-1:-1;;;;;19925:15:0;;;;:30;;;:19;:30;:::i;:::-;:34;:43;:34;:43;:::i;:::-;19883:38;:16;19904;19883:38;:20;:38;:::i;:::-;:85;;19875:108;;;;;-1:-1:-1;;;19875:108:0;;;;;;;;;;;;-1:-1:-1;;;19875:108:0;;;;;;;;;;;;;;;12059:1;;20007:49;20015:8;20025;20035:9;20046;20007:7;:49::i;:::-;20072:66;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20072:66:0;;;20077:10;;20072:66;;;;;;;;;-1:-1:-1;;12082:1:0;12071:8;:12;-1:-1:-1;;;;;;;;;18271:1875:0:o;4524:43::-;;;;;;;;;;;;;;-1:-1:-1;;;4524:43:0;;;;:::o;12099:231::-;12232:8;;-1:-1:-1;;;;;12232:8:0;;;;-1:-1:-1;;;12263:8:0;;;;;;-1:-1:-1;;;12304:18:0;;;;;12099:231::o;6573:147::-;6637:4;6654:36;6663:10;6675:7;6684:5;6654:8;:36::i;:::-;-1:-1:-1;6708:4:0;6573:147;;;;;:::o;11390:21::-;;;-1:-1:-1;;;;;11390:21:0;;:::o;4664:24::-;;;;:::o;6875:301::-;-1:-1:-1;;;;;6974:15:0;;6953:4;6974:15;;;:9;:15;;;;;;;;6990:10;6974:27;;;;;;;;-1:-1:-1;;6974:39:0;6970:140;;-1:-1:-1;;;;;7060:15:0;;;;;;:9;:15;;;;;;;;7076:10;7060:27;;;;;;;;:38;;7092:5;7060:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;7030:15:0;;;;;;:9;:15;;;;;;;;7046:10;7030:27;;;;;;;:68;6970:140;7120:26;7130:4;7136:2;7140:5;7120:9;:26::i;:::-;-1:-1:-1;7164:4:0;6875:301;;;;;:::o;4956:108::-;4998:66;4956:108;:::o;4622:35::-;4655:2;4622:35;:::o;4813:31::-;;;;:::o;13157:208::-;13253:7;;-1:-1:-1;;;;;13253:7:0;13239:10;:21;13231:52;;;;;-1:-1:-1;;;13231:52:0;;;;;;;;;;;;-1:-1:-1;;;13231:52:0;;;;;;;;;;;;;;;13314:6;:16;;-1:-1:-1;;;;;13314:16:0;;;-1:-1:-1;;;;;;13314:16:0;;;;;;;13341:6;:16;;;;;;;;;;;13157:208::o;11741:32::-;;;;:::o;11780:::-;;;;:::o;15345:1238::-;15394:14;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;12047:1;15463:13;:11;:13::i;:::-;-1:-1:-1;15525:6:0;;15518:39;;;-1:-1:-1;;;15518:39:0;;15551:4;15518:39;;;;;;15421:55;;-1:-1:-1;15421:55:0;;-1:-1:-1;15502:13:0;;-1:-1:-1;;;;;15525:6:0;;;;15518:24;;:39;;;;;;;;;;;;;;15525:6;15518:39;;;5:2:-1;;;;30:1;27;20:12;5:2;15518:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15518:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15518:39:0;15591:6;;15584:39;;;-1:-1:-1;;;15584:39:0;;15617:4;15584:39;;;;;;15518;;-1:-1:-1;15568:13:0;;-1:-1:-1;;;;;15591:6:0;;;;15584:24;;:39;;;;;15518;;15584;;;;;;;;15591:6;15584:39;;;5:2:-1;;;;30:1;27;20:12;5:2;15584:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15584:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15584:39:0;;-1:-1:-1;15634:12:0;15649:23;:8;-1:-1:-1;;;;;15649:23:0;;;:12;:23;:::i;:::-;15634:38;-1:-1:-1;15683:12:0;15698:23;:8;-1:-1:-1;;;;;15698:23:0;;;:12;:23;:::i;:::-;15683:38;;15734:10;15747:30;15756:9;15767;15747:8;:30::i;:::-;15788:17;15808:11;15734:43;;-1:-1:-1;15912:17:0;15908:352;;15958:54;11252:5;15958:31;15968:20;:7;15980;15968:20;:11;:20;:::i;:::-;15958:9;:31::i;:54::-;15946:66;;16026:36;16040:1;11252:5;16026;:36::i;:::-;15908:352;;;16162:86;-1:-1:-1;;;;;16171:37:0;;:25;:7;16183:12;16171:25;:11;:25;:::i;:::-;:37;;;;;;-1:-1:-1;;;;;16210:37:0;;:25;:7;16222:12;16210:25;:11;:25;:::i;:::-;:37;;;;;;16162:8;:86::i;:::-;16150:98;;15908:352;16290:1;16278:9;:13;16270:64;;;;-1:-1:-1;;;16270:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16345:20;16351:2;16355:9;16345:5;:20::i;:::-;16378:49;16386:8;16396;16406:9;16417;16378:7;:49::i;:::-;16442:5;16438:47;;;16476:8;;16457:28;;-1:-1:-1;;;;;16462:8:0;;;;-1:-1:-1;;;16476:8:0;;;16457:28;:18;:28;:::i;:::-;16449:5;:36;16438:47;16541:34;;;;;;;;;;;;;;16546:10;;16541:34;;;;;;;;-1:-1:-1;;12082:1:0;12071:8;:12;-1:-1:-1;15345:1238:0;;;-1:-1:-1;;;;;;15345:1238:0:o;4695:41::-;;;;;;;;;;;;;:::o;11819:17::-;;;;:::o;5071:38::-;;;;;;;;;;;;;:::o;16695:1464::-;16744:12;16758;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;12047:1;16825:13;:11;:13::i;:::-;-1:-1:-1;16882:6:0;;16963;;17042:40;;;-1:-1:-1;;;17042:40:0;;17076:4;17042:40;;;;;;16783:55;;-1:-1:-1;16783:55:0;;-1:-1:-1;;;;;;16882:6:0;;;;16963;;;16864:15;;16882:6;;17042:25;;:40;;;;;;;;;;;;;;16882:6;17042:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17042:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17042:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17042:40:0;17109;;;-1:-1:-1;;;17109:40:0;;17143:4;17109:40;;;;;;17042;;-1:-1:-1;17093:13:0;;-1:-1:-1;;;;;17109:25:0;;;;;:40;;;;;17042;;17109;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17109:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17109:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17109:40:0;17195:4;17160:14;17177:24;;;:9;17109:40;17177:24;;;;;17109:40;;-1:-1:-1;17227:30:0;17236:9;17247;17227:8;:30::i;:::-;17268:17;17288:11;17214:43;;-1:-1:-1;17288:11:0;17398:23;:9;17412:8;17398:23;:13;:23;:::i;:::-;:38;;;;;;;-1:-1:-1;17531:12:0;17505:23;:9;17519:8;17505:23;:13;:23;:::i;:::-;:38;;;;;;17495:48;;17620:1;17610:7;:11;:26;;;;;17635:1;17625:7;:11;17610:26;17602:77;;;;-1:-1:-1;;;17602:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17690:31;17704:4;17711:9;17690:5;:31::i;:::-;17732:35;17746:7;17755:2;17759:7;17732:13;:35::i;:::-;17778;17792:7;17801:2;17805:7;17778:13;:35::i;:::-;17835:40;;;-1:-1:-1;;;17835:40:0;;17869:4;17835:40;;;;;;-1:-1:-1;;;;;17835:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17835:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17835:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17835:40:0;17897;;;-1:-1:-1;;;17897:40:0;;17931:4;17897:40;;;;;;17835;;-1:-1:-1;;;;;;17897:25:0;;;;;:40;;;;;17835;;17897;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17897:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17897:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17897:40:0;;-1:-1:-1;17950:49:0;17958:8;17897:40;17978:9;17989;17950:7;:49::i;:::-;18014:5;18010:47;;;18048:8;;18029:28;;-1:-1:-1;;;;;18034:8:0;;;;-1:-1:-1;;;18048:8:0;;;18029:28;:18;:28;:::i;:::-;18021:5;:36;18010:47;18113:38;;;;;;;;;;;;;;-1:-1:-1;;;;;18113:38:0;;;18118:10;;18113:38;;;;;;;;;;;12059:1;;;;;;;;;12082;12071:8;:12;;;;16695:1464;;;:::o;4574:41::-;;;;;;;;;;;;;;-1:-1:-1;;;4574:41:0;;;;:::o;6728:139::-;6788:4;6805:32;6815:10;6827:2;6831:5;6805:9;:32::i;11211:46::-;11252:5;11211:46;:::o;20195:334::-;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;20264:6;;20314;;20418:8;;20373:40;;;-1:-1:-1;;;20373:40:0;;20407:4;20373:40;;;;;;-1:-1:-1;;;;;20264:6:0;;;;20314;;;;20346:82;;20264:6;;20369:2;;20373:54;;-1:-1:-1;;;;;20418:8:0;;20264:6;;20373:25;;:40;;;;;;;;;;;;;;;20264:6;20373:40;;;5:2:-1;;;;30:1;27;20:12;5:2;20373:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20373:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20373:40:0;;:54;:44;:54;:::i;:::-;20346:13;:82::i;:::-;20511:8;;20466:40;;;-1:-1:-1;;;20466:40:0;;20500:4;20466:40;;;;;;20439:82;;20453:7;;20462:2;;20466:54;;-1:-1:-1;;;20511:8:0;;-1:-1:-1;;;;;20511:8:0;;-1:-1:-1;;;;;20466:25:0;;;;;:40;;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;20439:82:0;-1:-1:-1;;12082:1:0;12071:8;:12;-1:-1:-1;20195:334:0:o;11361:22::-;;;-1:-1:-1;;;;;11361:22:0;;:::o;11418:21::-;;;-1:-1:-1;;;;;11418:21:0;;:::o;7184:670::-;7330:15;7318:8;:27;;7310:56;;;;;-1:-1:-1;;;7310:56:0;;;;;;;;;;;;-1:-1:-1;;;7310:56:0;;;;;;;;;;;;;;;7482:16;;-1:-1:-1;;;;;7578:13:0;;;7377:14;7578:13;;;:6;:13;;;;;;;;:15;;;;;;;;;7527:77;;4998:66;7527:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7527:77:0;;;;;7517:88;;;;;;-1:-1:-1;;;7418:202:0;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7418:202:0;;;;;;7394:237;;;;;;;;;7669:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:14;;7578:15;7669:26;;;;;-1:-1:-1;;7669:26:0;;;;;;;;;;7578:15;7669:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7669:26:0;;-1:-1:-1;;7669:26:0;;;-1:-1:-1;;;;;;;7714:30:0;;;;;;:59;;;7768:5;-1:-1:-1;;;;;7748:25:0;:16;-1:-1:-1;;;;;7748:25:0;;7714:59;7706:98;;;;;-1:-1:-1;;;7706:98:0;;;;;;;;;;;;-1:-1:-1;;;7706:98:0;;;;;;;;;;;;;;;7815:31;7824:5;7831:7;7840:5;7815:8;:31::i;:::-;7184:670;;;;;;;;;:::o;4743:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;20578:158::-;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;20634:6;;20627:39;;;-1:-1:-1;;;20627:39:0;;20660:4;20627:39;;;;;;20619:109;;-1:-1:-1;;;;;20634:6:0;;20627:24;;:39;;;;;;;;;;;;;;20634:6;20627:39;;;5:2:-1;;;;30:1;27;20:12;5:2;20627:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20627:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20627:39:0;20675:6;;20668:39;;;-1:-1:-1;;;20668:39:0;;20701:4;20668:39;;;;;;-1:-1:-1;;;;;20675:6:0;;;;20668:24;;:39;;;;;20627;;20668;;;;;;;;20675:6;20668:39;;;5:2:-1;;;;30:1;27;20:12;5:2;20668:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20668:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20668:39:0;20709:8;;-1:-1:-1;;;;;20709:8:0;;;;-1:-1:-1;;;20719:8:0;;;20619:7;:109::i;:::-;12082:1;12071:8;:12;20578:158::o;12338:285::-;11316:34;;;;;;;;;;;-1:-1:-1;;;11316:34:0;;;;;12466:43;;-1:-1:-1;;;;;12466:43:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;12466:43:0;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;12455:55:0;;;;12420:12;;12434:17;;12455:10;;;12466:43;12455:55;;;25:18:-1;12455:55:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12455:55:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;12419:91:0;;;;12529:7;:57;;;;-1:-1:-1;12541:11:0;;:16;;:44;;;12572:4;12561:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12561:24:0;12541:44;12521:94;;;;;-1:-1:-1;;;12521:94:0;;;;;;;;;;;;-1:-1:-1;;;12521:94:0;;;;;;;;;;;;;;;12338:285;;;;;:::o;4226:142::-;4278:6;4305;;;:30;;-1:-1:-1;;4320:5:0;;;4334:1;4329;4320:5;4329:1;4315:15;;;;;:20;4305:30;4297:63;;;;;-1:-1:-1;;;4297:63:0;;;;;;;;;;;;-1:-1:-1;;;4297:63:0;;;;;;;;;;;;;;4089:129;4173:5;;;4168:16;;;;4160:50;;;;;-1:-1:-1;;;4160:50:0;;;;;;;;;;;;-1:-1:-1;;;4160:50:0;;;;;;;;;;;;;;13450:858;-1:-1:-1;;;;;13562:23:0;;;;;:50;;-1:-1:-1;;;;;;13589:23:0;;;13562:50;13554:80;;;;;-1:-1:-1;;;13554:80:0;;;;;;;;;;;;-1:-1:-1;;;13554:80:0;;;;;;;;;;;;;;;13749:18;;13676:23;:15;:23;;;-1:-1:-1;;;13749:18:0;;;;13732:35;;;13805:15;;;;;;:33;;-1:-1:-1;;;;;;13824:14:0;;;;13805:33;:51;;;;-1:-1:-1;;;;;;13842:14:0;;;;13805:51;13801:336;;;14011:11;13958:64;;13963:44;13997:9;13963:27;13980:9;13963:16;:27::i;:::-;-1:-1:-1;;;;;13963:33:0;;:44;:33;:44;:::i;:::-;13934:20;:88;;-1:-1:-1;;;;;13958:50:0;;;;:64;;;;13934:88;;;14061:64;;;14066:44;14100:9;14066:27;14083:9;14066:16;:27::i;:44::-;14037:20;:88;;-1:-1:-1;;;;;14061:50:0;;;;:64;;;;14037:88;;;13801:336;14147:8;:28;;-1:-1:-1;;;;;;14147:28:0;-1:-1:-1;;;;;14147:28:0;;;;;;;-1:-1:-1;;;;;;;;14186:28:0;-1:-1:-1;;;14186:28:0;;;;;;;;;-1:-1:-1;;;;;14225:35:0;-1:-1:-1;;;14225:35:0;;;;;;;;;14276:24;;;14281:8;;;14276:24;;14291:8;;;;;;;14276:24;;;;;;;;;;;;;;;;;13450:858;;;;;;:::o;6168:169::-;-1:-1:-1;;;;;6249:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;6298:31;;;;;;;;;;;;;;;;;6168:169;;;:::o;6345:220::-;-1:-1:-1;;;;;6439:15:0;;;;;;:9;:15;;;;;;:26;;6459:5;6439:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;6421:15:0;;;;;;;:9;:15;;;;;;:44;;;;6492:13;;;;;;;:24;;6510:5;6492:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;6476:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;6532:25;;;;;;;6476:13;;6532:25;;;;-1:-1:-1;;;;;;;;;;;6532:25:0;;;;;;;;6345:220;;;:::o;14398:835::-;14471:10;14494:13;14526:7;;;;;;;;;-1:-1:-1;;;;;14526:7:0;-1:-1:-1;;;;;14510:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14510:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14510:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14510:32:0;14605:5;;-1:-1:-1;;;;;14561:19:0;;;;;;-1:-1:-1;14510:32:0;;-1:-1:-1;14605:5:0;14636:590;;14666:11;;14662:494;;14698:10;14711:41;14721:30;-1:-1:-1;;;;;14721:15:0;;;;:30;;;:19;:30;:::i;14711:41::-;14698:54;;14771:14;14788:17;14798:6;14788:9;:17::i;:::-;14771:34;;14836:9;14828:5;:17;14824:317;;;14870:14;14887:37;14903:20;:5;14913:9;14903:20;:9;:20;:::i;:::-;14887:11;;;:37;:15;:37;:::i;:::-;14870:54;-1:-1:-1;14947:16:0;14966:27;14983:9;14966:12;:5;14976:1;14966:12;:9;:12;:::i;:::-;:16;:27;:16;:27;:::i;:::-;14947:46;;15016:14;15045:11;15033:9;:23;;;;;;;-1:-1:-1;15083:13:0;;15079:42;;15098:23;15104:5;15111:9;15098:5;:23::i;:::-;14824:317;;;;14662:494;;;14636:590;;;15177:11;;15173:53;;15213:1;15205:5;:9;15173:53;14398:835;;;;;;:::o;8219:303::-;8264:6;8291:1;8287;:5;8283:232;;;-1:-1:-1;8313:1:0;8346;8342;8338:5;;:9;8362:92;8373:1;8369;:5;8362:92;;;8399:1;8395:5;;8437:1;8432;8428;8424;:5;;;;;;:9;8423:15;;;;;;8419:19;;8362:92;;;8283:232;;;;8475:6;;8471:44;;-1:-1:-1;8502:1:0;8471:44;8219:303;;;:::o;5742:201::-;5815:11;;:22;;5831:5;5815:22;:15;:22;:::i;:::-;5801:11;:36;;;-1:-1:-1;;;;;5864:13:0;;;;:9;:13;;;;;;:24;;5882:5;5864:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5848:13:0;;;;;;:9;:13;;;;;;;;:40;;;;5904:31;;;;;;;5848:13;;;;-1:-1:-1;;;;;;;;;;;5904:31:0;;;;;;;;;5742:201;;:::o;8005:96::-;8057:6;8084:1;8080;:5;:13;;8092:1;8080:13;;;8088:1;8080:13;8076:17;8005:96;-1:-1:-1;;;8005:96:0:o;5951:209::-;-1:-1:-1;;;;;6030:15:0;;;;;;:9;:15;;;;;;:26;;6050:5;6030:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;6012:15:0;;;;;;:9;:15;;;;;:44;;;;6081:11;:22;;6097:5;6081:22;:15;:22;:::i;:::-;6067:11;:36;;;6119:33;;;;;;;;-1:-1:-1;;;;;6119:33:0;;;-1:-1:-1;;;;;;;;;;;6119:33:0;;;;;;;;;5951:209;;:::o;8869:120::-;-1:-1:-1;;;;;8945:10:0;-1:-1:-1;;;8945:17:0;;8869:120::o;9060:108::-;9120:9;-1:-1:-1;;;;;9150:10:0;;-1:-1:-1;;;;;9146:14:0;;9150:10;9146:14;;;;;;9060:108;-1:-1:-1;;;9060:108:0:o;3953:128::-;4037:5;;;4032:16;;;;4024:49;;;;;-1:-1:-1;;;4024:49:0;;;;;;;;;;;;-1:-1:-1;;;4024:49:0;;;;;;;;;;;;;

Swarm Source

bzzr://82d63502615ee1d8d2654f9dbbe00633c648597f2419f5919c9a5bd46e1de28c
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.