Contract 0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x37deb79e2d338be45b2069e8c18e85f33f57eb33d2a95e767944ceabc1f8f99a83738202021-06-17 11:13:395 days 12 hrs ago0xca5faae6a0d2db10a46432a384f7066d86db6d46 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00012429
0x043084afe3759646b5339e5ed856a48851858153617794785330729e9bb31e7f83724572021-06-17 10:04:075 days 13 hrs ago0xca5faae6a0d2db10a46432a384f7066d86db6d46 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00012429
0x5fefc3f490ea1ba5ea9de10e7da575e4ca98d3ea8e29d93eed0e6d4bbe03320081786762021-06-10 15:09:0512 days 8 hrs ago0x188f82ae4299d6714aef759676da8ed2d243e0af IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00012429
0x74230d2f8e8ea0047d873c4aee266c5f71bb486415e02075f1a1dd5f340deb2a81786632021-06-10 15:08:2612 days 8 hrs ago0x188f82ae4299d6714aef759676da8ed2d243e0af IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.000072645
0xe7feb795f9d3dfd90dc024e4b6ff51c7cfb30899b9f102efe146f1130a6d6bf079956172021-06-04 6:16:4718 days 17 hrs ago0x103400b88eecefca963ef400b04c064f3005a907 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00012429
0xc555ad48e3f6c1899ca79794e9b39cb5be6015ca8e7b2d51e350dbe02634de2879956172021-06-04 6:16:4718 days 17 hrs ago0x103400b88eecefca963ef400b04c064f3005a907 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00012429
0x7eeea5cbd418346c141fa5bb4b9e8a20b043f25b9af302819bee438fb6b717ad79847122021-06-03 21:07:4919 days 2 hrs ago0x14966b9be95b54936ba46f25ca885d523525524a IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x34ece9723b2a0e64547ee8dce310fabb615c1a574520f77b04e9636e95438b4b79286122021-06-01 22:14:2421 days 1 hr ago0x77054a8f05ff5a166fa6f1c809176a0e8e3c29da IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x1360a3b392258911c8081d8287d26f1955261be83270a944249f7c866b3b377c79113332021-06-01 7:48:0921 days 15 hrs ago0x34726ba3f9efe4bc816048b317283c28385cfc30 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0xf4cadcd63b73b8478a5ffa8832aacd54457f887f85a6d457b9a6b92cac53486b79091302021-06-01 5:55:4121 days 17 hrs ago0xd94f0e5e88978dc730c7bd98206b929f19c02dfb IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x71b33d7142fc2b7d1fe75483dfc1fe4b187311e8d494455852e3feb5c6cec7d278631402021-05-30 15:27:0323 days 7 hrs ago0x59165f6219936b1e6a970c44f750d588d1f5d558 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022035
0x45d5b10d64937f94a2d29362c9674b6a14bc96f41bc393936e794f2ad624f7d478622012021-05-30 14:39:1723 days 8 hrs ago0xdb66c8b11d683ea3351e6dddd62730976f5b0df4 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x0ab26a1a25dd73e5badb6cf33cf6db08505d71b5bc78e6b4dca916712b0dd94c78599082021-05-30 12:44:3823 days 10 hrs ago0xa062999c620e5b50ebc04376f34788f80a537d96 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0xc1944d4561cca9fdb1e6b02509e84915f267bb7b89b7006401505086b4c03b5478584682021-05-30 11:32:3423 days 11 hrs ago0x67df0b458c7e3a6c9462fb0d970167f856f0f6b4 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0xec29838857eb866e3ed30edd49f4322b564a6cafbd1002e94473beb07c95665f78584412021-05-30 11:31:1323 days 11 hrs ago0x15ed5de4a80cbb1996427842be67a084c0c8afe3 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x30fbff705e9263e59a6d9c1376b9ff439b55c00ca52e9363db16daf8e080813078582522021-05-30 11:21:4623 days 11 hrs ago0xf455069e3b929bdb8775af32b47e35b36c0e239c IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022053
0xd3842415f261ad78826c862bbc7baac244b46da4f79e674d5e6858e72f1fca0178548252021-05-30 8:29:3923 days 14 hrs ago0x4363dad8e0952d623ba3d9a7eb1ae60181fae5e9 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x22d23a1d344e3b9b30f0536669e06571229d04d92bf74dcd04d4f59500155c9578547432021-05-30 8:25:3323 days 14 hrs ago0x1a06e926849a0df7770304e81e2ef05e14b28398 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x30329ca79dae2a176a63e30738e5cec8415cb2ebd29f6207fbbf8e8e51e9134578538142021-05-30 7:38:5323 days 15 hrs ago0xd54b758a9ba3cb1641a6992b987335731636b5e8 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x2558575defaf8273f9ffc778eead51026b7d90501606e34687e891d455b5bbd178531782021-05-30 7:07:0523 days 16 hrs ago0x0b96fbe0d44f937892b18e7f484e0a72cc6901c5 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x6f72460fc0ee8055ba706814372cd654b7493c0a6e786cc26cbffaf2c0a44bb378510182021-05-30 5:18:3323 days 18 hrs ago0xa319d38d69eee7525f8114509ad2b7efbe78d8e3 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0xb38714f462ab42b6a6459eed7b82c8047cd6362150bc88fcd32d796df99da04478502712021-05-30 4:41:1223 days 18 hrs ago0x668c6f75486d6882a1aacf7bf03eee605c96fdad IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x9e28f0a493c13884b817c73414bda5bc250e27558eea36de767f047ef055e43678500112021-05-30 4:28:1123 days 18 hrs ago0x5d78e7309c3dca81b877f15f85a5a9d67bb5d156 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022053
0xbabc518e80416418d7000d3d2bb97751f3a5461eea8b0bd42183e6934d0d6aef78456622021-05-30 0:50:4023 days 22 hrs ago0x4b20715d6cf7662b75845ec483b1070956d9cd85 IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022221
0x34ade8d28100ecebec686ca0e6b5c4d4dbc3b217f710ec8715862710a404690d78449452021-05-30 0:14:4823 days 23 hrs ago0xedcaaf45841629fd372fbb54df9433ccf2b0c64b IN  0x130b56cbf46bc3cbd3cf737b7c16ca28f1b3429e0 BNB0.00022059
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x0fc4b6a5ecd5847036e9d8647c1a762df6ba6389102328d2bd9c9b94b0739dde68477782021-04-24 15:41:0759 days 7 hrs ago PancakeSwap: Factory v2  Contract Creation0 BNB
[ Download CSV Export 
Loading

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

Contract Name:
PancakePair

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-04-23
*/

// 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 8/25 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)).mul(8);
                    uint denominator = rootK.mul(17).add(rootKLast.mul(8));
                    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(10000).sub(amount0In.mul(25)));
        uint balance1Adjusted = (balance1.mul(10000).sub(amount1In.mul(25)));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(10000**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"}]

60806040526001600c5534801561001557600080fd5b5060004690506040518080613bfa60529139605201905060405180910390206040518060400160405280600b81526020017f50616e63616b65204c5073000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a85806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611234565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661126d565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ca565b604051808215151515815260200191505060405180910390f35b6103c46112e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e611307565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061130d565b604051808215151515815260200191505060405180910390f35b6104b26114d8565b6040518082815260200191505060405180910390f35b6104d06114ff565b604051808260ff1660ff16815260200191505060405180910390f35b6104f4611504565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061150a565b005b610576611653565b6040518082815260200191505060405180910390f35b610594611659565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b10565b6040518082815260200191505060405180910390f35b610662611b28565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b2e565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b46565b604051808381526020018281526020019250505060405180910390f35b610737612133565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061216c565b604051808215151515815260200191505060405180910390f35b610820612183565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612189565b005b610882612464565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61248a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506124b0565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f4565b6040518082815260200191505060405180910390f35b610a27612819565b005b6001600c5414610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613a086023913960400191505060405180910390fd5b600080610b1861126d565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f50616e63616b653a20494e53554646494349454e545f4c49515549444954590081525060200191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c7657508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f50616e63616b653a20494e56414c49445f544f0000000000000000000000000081525060200191505060405180910390fd5b60008b1115610cfd57610cfc828a8d612a99565b5b60008a1115610d1257610d11818a8c612a99565b5b6000888890501115610dfa578873ffffffffffffffffffffffffffffffffffffffff166384800812338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d6020811015610f5b57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f92576000610fa8565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610fcc576000610fe2565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ff35750600081115b611048576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806139c06022913960400191505060405180910390fd5b6000611084611061601985612ce690919063ffffffff16565b61107661271088612ce690919063ffffffff16565b612d7b90919063ffffffff16565b905060006110c261109f601985612ce690919063ffffffff16565b6110b461271088612ce690919063ffffffff16565b612d7b90919063ffffffff16565b905061110d6305f5e1006110ff896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b612ce690919063ffffffff16565b6111208284612ce690919063ffffffff16565b1015611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f50616e63616b653a204b0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506111a284848888612dfe565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600b81526020017f50616e63616b65204c507300000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112d733848461317c565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114c25761144182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114cd848484613267565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f50616e63616b653a20464f5242494444454e000000000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ec61126d565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561179257600080fd5b505afa1580156117a6573d6000803e3d6000fd5b505050506040513d60208110156117bc57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561187057600080fd5b505afa158015611884573d6000803e3d6000fd5b505050506040513d602081101561189a57600080fd5b8101908080519060200190929190505050905060006118d2856dffffffffffffffffffffffffffff1684612d7b90919063ffffffff16565b905060006118f9856dffffffffffffffffffffffffffff1684612d7b90919063ffffffff16565b9050600061190787876133fb565b9050600080549050600081141561195b576119476103e86119396119348688612ce690919063ffffffff16565b613602565b612d7b90919063ffffffff16565b985061195660006103e8613664565b6119be565b6119bb886dffffffffffffffffffffffffffff166119828387612ce690919063ffffffff16565b8161198957fe5b04886dffffffffffffffffffffffffffff166119ae8487612ce690919063ffffffff16565b816119b557fe5b0461377e565b98505b60008911611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613a2b6026913960400191505060405180910390fd5b611a218a8a613664565b611a2d86868a8a612dfe565b8115611aa557611a9e6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611bc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bd461126d565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ca657600080fd5b505afa158015611cba573d6000803e3d6000fd5b505050506040513d6020811015611cd057600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d6257600080fd5b505afa158015611d76573d6000803e3d6000fd5b505050506040513d6020811015611d8c57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611def88886133fb565b905060008054905080611e0b8685612ce690919063ffffffff16565b81611e1257fe5b049a5080611e298585612ce690919063ffffffff16565b81611e3057fe5b04995060008b118015611e43575060008a115b611e98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806139e26026913960400191505060405180910390fd5b611ea23084613797565b611ead878d8d612a99565b611eb8868d8c612a99565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f3557600080fd5b505afa158015611f49573d6000803e3d6000fd5b505050506040513d6020811015611f5f57600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fef57600080fd5b505afa158015612003573d6000803e3d6000fd5b505050506040513d602081101561201957600080fd5b8101908080519060200190929190505050935061203885858b8b612dfe565b81156120b0576120a96008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600781526020017f43616b652d4c500000000000000000000000000000000000000000000000000081525081565b6000612179338484613267565b6001905092915050565b6103e881565b6001600c5414612201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123578284612352600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561230957600080fd5b505afa15801561231d573d6000803e3d6000fd5b505050506040513d602081101561233357600080fd5b8101908080519060200190929190505050612d7b90919063ffffffff16565b612a99565b61245781846124526008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d602081101561243357600080fd5b8101908080519060200190929190505050612d7b90919063ffffffff16565b612a99565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612526576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f50616e63616b653a20455850495245440000000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126f8573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561276c57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f50616e63616b653a20494e56414c49445f5349474e415455524500000000000081525060200191505060405180910390fd5b6127e989898961317c565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a8f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561293b57600080fd5b505afa15801561294f573d6000803e3d6000fd5b505050506040513d602081101561296557600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a1557600080fd5b505afa158015612a29573d6000803e3d6000fd5b505050506040513d6020811015612a3f57600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612dfe565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612bc65780518252602082019150602081019050602083039250612ba3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c28576040519150601f19603f3d011682016040523d82523d6000602084013e612c2d565b606091505b5091509150818015612c6d5750600081511480612c6c5750808060200190516020811015612c5a57600080fd5b81019080805190602001909291905050505b5b612cdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50616e63616b653a205452414e534645525f4641494c4544000000000000000081525060200191505060405180910390fd5b5050505050565b600080821480612d035750828283850292508281612d0057fe5b04145b612d75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e6e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ee0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f50616e63616b653a204f564552464c4f5700000000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612ef057fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f3357506000846dffffffffffffffffffffffffffff1614155b8015612f5057506000836dffffffffffffffffffffffffffff1614155b15613032578063ffffffff16612f9585612f69866138b1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138dc90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff1661300384612fd7876138b1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138dc90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6132b981600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061334e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461393c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561346657600080fd5b505afa15801561347a573d6000803e3d6000fd5b505050506040513d602081101561349057600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135e857600081146135e3576000613528613523866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612ce690919063ffffffff16565b613602565b9050600061353583613602565b9050808211156135e057600061357b600861356d61355c8587612d7b90919063ffffffff16565b600054612ce690919063ffffffff16565b612ce690919063ffffffff16565b905060006135b8613596600885612ce690919063ffffffff16565b6135aa601187612ce690919063ffffffff16565b61393c90919063ffffffff16565b905060008183816135c557fe5b04905060008111156135dc576135db8782613664565b5b5050505b50505b6135fa565b600081146135f9576000600b819055505b5b505092915050565b6000600382111561365157819050600060016002848161361e57fe5b040190505b8181101561364b5780915060028182858161363a57fe5b04018161364357fe5b049050613623565b5061365f565b6000821461365e57600190505b5b919050565b6136798160005461393c90919063ffffffff16565b6000819055506136d181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461393c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600081831061378d578161378f565b825b905092915050565b6137e981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061384181600054612d7b90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168161393357fe5b04905092915050565b60008282840191508110156139b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e454450616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158204c647542259e471353892c1bc85f3bd97626f8162e3134e910684c65f3f4f2ca64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed ByteCode Sourcemap

11082:9676:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11082:9676:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18281:1884;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;18281:1884:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18281:1884:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18281:1884:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18281:1884:0;;;;;;;;;;;;:::i;:::-;;4522:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4522:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12095:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6571:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6571:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11386:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4662:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6873:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6873:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4954:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4620:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4811:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13153:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13153:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11737:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11776;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15355:1238;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15355:1238:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4693:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4693:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11815:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5069:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5069:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16705:1464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16705:1464:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4572:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4572:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6726:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6726:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11207:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20214:334;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20214:334:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11357:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11414:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7182:670;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7182:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4741:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4741:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20597:158;;;:::i;:::-;;18281:1884;12000:1;11988:8;;:13;11980:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12043:1;12032:8;:12;;;;18408:1;18395:10;:14;:32;;;;18426:1;18413:10;:14;18395:32;18387:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18479:17;18498;18520:13;:11;:13::i;:::-;18478:55;;;;;18580:9;18567:22;;:10;:22;:48;;;;;18606:9;18593:22;;:10;:22;18567:48;18559:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18664:13;18688;18778:15;18796:6;;;;;;;;;;;18778:24;;18813:15;18831:6;;;;;;;;;;;18813:24;;18862:7;18856:13;;:2;:13;;;;:30;;;;;18879:7;18873:13;;:2;:13;;;;18856:30;18848:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18938:1;18925:10;:14;18921:58;;;18941:38;18955:7;18964:2;18968:10;18941:13;:38::i;:::-;18921:58;19041:1;19028:10;:14;19024:58;;;19044:38;19058:7;19067:2;19071:10;19044:13;:38::i;:::-;19024:58;19145:1;19131:4;;:11;;:15;19127:93;;;19163:2;19148:30;;;19179:10;19191;19203;19215:4;;19148:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;19148:72:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19148:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19148:72:0;;;;19127:93;19249:7;19242:25;;;19276:4;19242:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19242:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19242:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19242:40:0;;;;;;;;;;;;;;;;19231:51;;19311:7;19304:25;;;19338:4;19304:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19304:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19304:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19304:40:0;;;;;;;;;;;;;;;;19293:51;;12055:1;;19366:14;19406:10;19394:9;:22;;;19383:8;:33;:75;;19457:1;19383:75;;;19443:10;19431:9;:22;;;19419:8;:35;19383:75;19366:92;;19469:14;19509:10;19497:9;:22;;;19486:8;:33;:75;;19560:1;19486:75;;;19546:10;19534:9;:22;;;19522:8;:35;19486:75;19469:92;;19592:1;19580:9;:13;:30;;;;19609:1;19597:9;:13;19580:30;19572:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19735:21;19760:42;19784:17;19798:2;19784:9;:13;;:17;;;;:::i;:::-;19760:19;19773:5;19760:8;:12;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;19735:68;;19814:21;19839:42;19863:17;19877:2;19863:9;:13;;:17;;;;:::i;:::-;19839:19;19852:5;19839:8;:12;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;19814:68;;19943:44;19978:8;19943:30;19963:9;19943:30;;19948:9;19943:15;;:19;;:30;;;;:::i;:::-;:34;;:44;;;;:::i;:::-;19901:38;19922:16;19901;:20;;:38;;;;:::i;:::-;:86;;19893:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12055:1;;20026:49;20034:8;20044;20054:9;20065;20026:7;:49::i;:::-;20154:2;20091:66;;20096:10;20091:66;;;20108:9;20119;20130:10;20142;20091:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12055:1;;;;;;12078;12067:8;:12;;;;18281:1884;;;;;:::o;4522:43::-;;;;;;;;;;;;;;;;;;;:::o;12095:231::-;12139:17;12158;12177:26;12228:8;;;;;;;;;;;12216:20;;12259:8;;;;;;;;;;;12247:20;;12300:18;;;;;;;;;;;12278:40;;12095:231;;;:::o;6571:147::-;6635:4;6652:36;6661:10;6673:7;6682:5;6652:8;:36::i;:::-;6706:4;6699:11;;6571:147;;;;:::o;11386:21::-;;;;;;;;;;;;;:::o;4662:24::-;;;;:::o;6873:301::-;6951:4;7008:2;6972:9;:15;6982:4;6972:15;;;;;;;;;;;;;;;:27;6988:10;6972:27;;;;;;;;;;;;;;;;:39;6968:140;;7058:38;7090:5;7058:9;:15;7068:4;7058:15;;;;;;;;;;;;;;;:27;7074:10;7058:27;;;;;;;;;;;;;;;;:31;;:38;;;;:::i;:::-;7028:9;:15;7038:4;7028:15;;;;;;;;;;;;;;;:27;7044:10;7028:27;;;;;;;;;;;;;;;:68;;;;6968:140;7118:26;7128:4;7134:2;7138:5;7118:9;:26::i;:::-;7162:4;7155:11;;6873:301;;;;;:::o;4954:108::-;4996:66;4954:108;;;:::o;4620:35::-;4653:2;4620:35;:::o;4811:31::-;;;;:::o;13153:208::-;13249:7;;;;;;;;;;;13235:21;;:10;:21;;;13227:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13319:7;13310:6;;:16;;;;;;;;;;;;;;;;;;13346:7;13337:6;;:16;;;;;;;;;;;;;;;;;;13153:208;;:::o;11737:32::-;;;;:::o;11776:::-;;;;:::o;15355:1238::-;15404:14;12000:1;11988:8;;:13;11980:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12043:1;12032:8;:12;;;;15432:17;15451;15473:13;:11;:13::i;:::-;15431:55;;;;;15512:13;15535:6;;;;;;;;;;;15528:24;;;15561:4;15528:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15528:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15528:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15528:39:0;;;;;;;;;;;;;;;;15512:55;;15578:13;15601:6;;;;;;;;;;;15594:24;;;15627:4;15594:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15594:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15594:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15594:39:0;;;;;;;;;;;;;;;;15578:55;;15644:12;15659:23;15672:9;15659:23;;:8;:12;;:23;;;;:::i;:::-;15644:38;;15693:12;15708:23;15721:9;15708:23;;:8;:12;;:23;;;;:::i;:::-;15693:38;;15744:10;15757:30;15766:9;15777;15757:8;:30::i;:::-;15744:43;;15798:17;15818:11;;15798:31;;15938:1;15922:12;:17;15918:352;;;15968:54;11248:5;15968:31;15978:20;15990:7;15978;:11;;:20;;;;:::i;:::-;15968:9;:31::i;:::-;:35;;:54;;;;:::i;:::-;15956:66;;16036:36;16050:1;11248:5;16036;:36::i;:::-;15918:352;;;16172:86;16209:9;16181:37;;:25;16193:12;16181:7;:11;;:25;;;;:::i;:::-;:37;;;;;;16248:9;16220:37;;:25;16232:12;16220:7;:11;;:25;;;;:::i;:::-;:37;;;;;;16172:8;:86::i;:::-;16160:98;;15918:352;16300:1;16288:9;:13;16280:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16355:20;16361:2;16365:9;16355:5;:20::i;:::-;16388:49;16396:8;16406;16416:9;16427;16388:7;:49::i;:::-;16452:5;16448:47;;;16467:28;16486:8;;;;;;;;;;;16467:28;;16472:8;;;;;;;;;;;16467:14;;:18;;:28;;;;:::i;:::-;16459:5;:36;;;;16448:47;16556:10;16551:34;;;16568:7;16577;16551:34;;;;;;;;;;;;;;;;;;;;;;;;12055:1;;;;;;;;12078;12067:8;:12;;;;15355:1238;;;:::o;4693:41::-;;;;;;;;;;;;;;;;;:::o;11815:17::-;;;;:::o;5069:38::-;;;;;;;;;;;;;;;;;:::o;16705:1464::-;16754:12;16768;12000:1;11988:8;;:13;11980:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12043:1;12032:8;:12;;;;16794:17;16813;16835:13;:11;:13::i;:::-;16793:55;;;;;16874:15;16892:6;;;;;;;;;;;16874:24;;16955:15;16973:6;;;;;;;;;;;16955:24;;17036:13;17059:7;17052:25;;;17086:4;17052:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17052:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17052:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17052:40:0;;;;;;;;;;;;;;;;17036:56;;17103:13;17126:7;17119:25;;;17153:4;17119:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17119:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17119:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17119:40:0;;;;;;;;;;;;;;;;17103:56;;17170:14;17187:9;:24;17205:4;17187:24;;;;;;;;;;;;;;;;17170:41;;17224:10;17237:30;17246:9;17257;17237:8;:30::i;:::-;17224:43;;17278:17;17298:11;;17278:31;;17434:12;17408:23;17422:8;17408:9;:13;;:23;;;;:::i;:::-;:38;;;;;;17398:48;;17541:12;17515:23;17529:8;17515:9;:13;;:23;;;;:::i;:::-;:38;;;;;;17505:48;;17630:1;17620:7;:11;:26;;;;;17645:1;17635:7;:11;17620:26;17612:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17700:31;17714:4;17721:9;17700:5;:31::i;:::-;17742:35;17756:7;17765:2;17769:7;17742:13;:35::i;:::-;17788;17802:7;17811:2;17815:7;17788:13;:35::i;:::-;17852:7;17845:25;;;17879:4;17845:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17845:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17845:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17845:40:0;;;;;;;;;;;;;;;;17834:51;;17914:7;17907:25;;;17941:4;17907:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17907:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17907:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17907:40:0;;;;;;;;;;;;;;;;17896:51;;17960:49;17968:8;17978;17988:9;17999;17960:7;:49::i;:::-;18024:5;18020:47;;;18039:28;18058:8;;;;;;;;;;;18039:28;;18044:8;;;;;;;;;;;18039:14;;:18;;:28;;;;:::i;:::-;18031:5;:36;;;;18020:47;18158:2;18123:38;;18128:10;18123:38;;;18140:7;18149;18123:38;;;;;;;;;;;;;;;;;;;;;;;;12055:1;;;;;;;;;12078;12067:8;:12;;;;16705:1464;;;:::o;4572:41::-;;;;;;;;;;;;;;;;;;;:::o;6726:139::-;6786:4;6803:32;6813:10;6825:2;6829:5;6803:9;:32::i;:::-;6853:4;6846:11;;6726:139;;;;:::o;11207:46::-;11248:5;11207:46;:::o;20214:334::-;12000:1;11988:8;;:13;11980:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12043:1;12032:8;:12;;;;20265:15;20283:6;;;;;;;;;;;20265:24;;20315:15;20333:6;;;;;;;;;;;20315:24;;20365:82;20379:7;20388:2;20392:54;20437:8;;;;;;;;;;;20392:54;;20399:7;20392:25;;;20426:4;20392:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20392:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20392:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20392:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;20365:13;:82::i;:::-;20458;20472:7;20481:2;20485:54;20530:8;;;;;;;;;;;20485:54;;20492:7;20485:25;;;20519:4;20485:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20485:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20485:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20485:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;20458:13;:82::i;:::-;12055:1;;12078;12067:8;:12;;;;20214:334;:::o;11357:22::-;;;;;;;;;;;;;:::o;11414:21::-;;;;;;;;;;;;;:::o;7182:670::-;7328:15;7316:8;:27;;7308:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7375:14;7480:16;;4996:66;7536:15;;7553:5;7560:7;7569:5;7576:6;:13;7583:5;7576:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;7593:8;7525:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7525:77:0;;;7515:88;;;;;;7416:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7416:202:0;;;7392:237;;;;;;7375:254;;7640:24;7667:26;7677:6;7685:1;7688;7691;7667:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7667:26:0;;;;;;;;7640:53;;7740:1;7712:30;;:16;:30;;;;:59;;;;;7766:5;7746:25;;:16;:25;;;7712:59;7704:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7813:31;7822:5;7829:7;7838:5;7813:8;:31::i;:::-;7182:670;;;;;;;;;:::o;4741:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20597:158::-;12000:1;11988:8;;:13;11980:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12043:1;12032:8;:12;;;;20638:109;20653:6;;;;;;;;;;;20646:24;;;20679:4;20646:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20646:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20646:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20646:39:0;;;;;;;;;;;;;;;;20694:6;;;;;;;;;;;20687:24;;;20720:4;20687:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20687:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20687:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20687:39:0;;;;;;;;;;;;;;;;20728:8;;;;;;;;;;;20738;;;;;;;;;;;20638:7;:109::i;:::-;12078:1;12067:8;:12;;;;20597:158::o;12334:285::-;12416:12;12430:17;12451:5;:10;;11312:34;;;;;;;;;;;;;;;;;11302:45;;;;;;12495:2;12499:5;12462:43;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12462:43:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;12462:43:0;12451:55;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;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;;;12451: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;;12415:91:0;;;;12525:7;:57;;;;;12552:1;12537:4;:11;:16;:44;;;;12568:4;12557:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12557:24:0;;;;;;;;;;;;;;;;12537:44;12525:57;12517:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:285;;;;;:::o;4226:142::-;4278:6;4310:1;4305;:6;:30;;;;4334:1;4329;4324;4320;:5;4316:9;;;4315:15;;;;;;:20;4305:30;4297:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4226:142;;;;:::o;4089:129::-;4141:6;4183:1;4177;4173;:5;4169:9;;;4168:16;;4160:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4089:129;;;;:::o;13446:858::-;13578:2;13558:23;;:8;:23;;:50;;;;;13605:2;13585:23;;:8;:23;;13558:50;13550:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13641:21;13690:5;13672:15;:23;;;;;;13641:55;;13707:18;13745;;;;;;;;;;;13728:14;:35;13707:56;;13815:1;13801:11;:15;;;:33;;;;;13833:1;13820:9;:14;;;;13801:33;:51;;;;;13851:1;13838:9;:14;;;;13801:51;13797:336;;;14007:11;13954:64;;13959:44;13993:9;13959:27;13976:9;13959:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;13954:50;;:64;13930:20;;:88;;;;;;;;;;;14110:11;14057:64;;14062:44;14096:9;14062:27;14079:9;14062:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;14057:50;;:64;14033:20;;:88;;;;;;;;;;;13797:336;14162:8;14143;;:28;;;;;;;;;;;;;;;;;;14201:8;14182;;:28;;;;;;;;;;;;;;;;;;14242:14;14221:18;;:35;;;;;;;;;;;;;;;;;;14272:24;14277:8;;;;;;;;;;;14287;;;;;;;;;;;14272:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13446:858;;;;;;:::o;6166:169::-;6275:5;6247:9;:16;6257:5;6247:16;;;;;;;;;;;;;;;:25;6264:7;6247:25;;;;;;;;;;;;;;;:33;;;;6312:7;6296:31;;6305:5;6296:31;;;6321:5;6296:31;;;;;;;;;;;;;;;;;;6166:169;;;:::o;6343:220::-;6437:26;6457:5;6437:9;:15;6447:4;6437:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6419:9;:15;6429:4;6419:15;;;;;;;;;;;;;;;:44;;;;6490:24;6508:5;6490:9;:13;6500:2;6490:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6474:9;:13;6484:2;6474:13;;;;;;;;;;;;;;;:40;;;;6545:2;6530:25;;6539:4;6530:25;;;6549:5;6530:25;;;;;;;;;;;;;;;;;;6343:220;;;:::o;14393:850::-;14466:10;14489:13;14521:7;;;;;;;;;;;14505:30;;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14505:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14505:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14505:32:0;;;;;;;;;;;;;;;;14489:48;;14573:1;14556:19;;:5;:19;;;;14548:27;;14586:11;14600:5;;14586:19;;14635:5;14631:605;;;14671:1;14661:6;:11;14657:509;;14693:10;14706:41;14716:30;14736:9;14716:30;;14721:9;14716:15;;:19;;:30;;;;:::i;:::-;14706:9;:41::i;:::-;14693:54;;14766:14;14783:17;14793:6;14783:9;:17::i;:::-;14766:34;;14831:9;14823:5;:17;14819:332;;;14865:14;14882:44;14924:1;14882:37;14898:20;14908:9;14898:5;:9;;:20;;;;:::i;:::-;14882:11;;:15;;:37;;;;:::i;:::-;:41;;:44;;;;:::i;:::-;14865:61;;14949:16;14968:35;14986:16;15000:1;14986:9;:13;;:16;;;;:::i;:::-;14968:13;14978:2;14968:5;:9;;:13;;;;:::i;:::-;:17;;:35;;;;:::i;:::-;14949:54;;15026:14;15055:11;15043:9;:23;;;;;;15026:40;;15105:1;15093:9;:13;15089:42;;;15108:23;15114:5;15121:9;15108:5;:23::i;:::-;15089:42;14819:332;;;;14657:509;;;14631:605;;;15197:1;15187:6;:11;15183:53;;15223:1;15215:5;:9;;;;15183:53;14631:605;14393:850;;;;;;:::o;8217:303::-;8262:6;8289:1;8285;:5;8281:232;;;8311:1;8307:5;;8327:6;8344:1;8340;8336;:5;;;;;;:9;8327:18;;8360:92;8371:1;8367;:5;8360:92;;;8397:1;8393:5;;8435:1;8430;8426;8422;:5;;;;;;:9;8421:15;;;;;;8417:19;;8360:92;;;8281:232;;;;8478:1;8473;:6;8469:44;;8500:1;8496:5;;8469:44;8281:232;8217:303;;;:::o;5740:201::-;5813:22;5829:5;5813:11;;:15;;:22;;;;:::i;:::-;5799:11;:36;;;;5862:24;5880:5;5862:9;:13;5872:2;5862:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5846:9;:13;5856:2;5846:13;;;;;;;;;;;;;;;:40;;;;5923:2;5902:31;;5919:1;5902:31;;;5927:5;5902:31;;;;;;;;;;;;;;;;;;5740:201;;:::o;8003:96::-;8055:6;8082:1;8078;:5;:13;;8090:1;8078:13;;;8086:1;8078:13;8074:17;;8003:96;;;;:::o;5949:209::-;6028:26;6048:5;6028:9;:15;6038:4;6028:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6010:9;:15;6020:4;6010:15;;;;;;;;;;;;;;;:44;;;;6079:22;6095:5;6079:11;;:15;;:22;;;;:::i;:::-;6065:11;:36;;;;6140:1;6117:33;;6126:4;6117:33;;;6144:5;6117:33;;;;;;;;;;;;;;;;;;5949:209;;:::o;8867:120::-;8917:9;8812:6;8951:1;8943:10;;:17;8939:21;;8867:120;;;:::o;9058:108::-;9118:9;9156:1;9148:10;;9144:14;;:1;:14;;;;;;;;9140:18;;9058:108;;;;:::o;3953:128::-;4005:6;4047:1;4041;4037;:5;4033:9;;;4032:16;;4024:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:128;;;;:::o

Swarm Source

bzzr://4c647542259e471353892c1bc85f3bd97626f8162e3134e910684c65f3f4f2ca
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.