Contract 0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a6

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2d921775d63fccdef4b1d05f793ba5fadec04b8dc9a340a5986776ab1537d715Approve114469612021-10-03 9:41:2120 days 2 hrs ago0x96666ee6e3b46b9b3df7d2b57a00ff4953098f48 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0x493ad2540da47d824d78e9b71e3e632feffc0a0637d18722404890e5947b2666Approve114468492021-10-03 9:35:4320 days 2 hrs ago0x5f772306cd55f96fb3321f2ae3ce625e7219560d IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022113
0x848a543f7c241fb158c4ff50f3be1385b5a634638c8ca80ade13f7163db8a64aTransfer114467342021-10-03 9:29:5820 days 2 hrs ago0x3c438d63c9001378c32a730c6493494e94d251fe IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.000180675
0xd45050aa88a493e8ed79a95d7de20f78b2e0f1c6ea86413bd2e8672be6acc05dApprove114240172021-10-02 14:23:1920 days 21 hrs ago0x09977cfd0b3dcb52eb0b53bc3f5227059a3ba3f4 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022041
0xa6124f10314cddf7b95a5a1ff6444b6a9b9a4eaca6fec0b310a152a0ad4d5271Approve114134922021-10-02 5:31:1521 days 6 hrs ago0xc5024007dd98605988549c99ee8999b6093f68f0 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022107
0x37caafb1beaa7af42bdd53712b54e08ada34168b25a7791641a2043cde25c54cApprove104256372021-08-28 15:38:4255 days 20 hrs ago0xd2017b9de09784f2a4cb28671a075062583f32f4 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.000072645
0x724b92877a890964521ee28c0765b9c6b27207314c7610a7d7585b894c241230Approve90721282021-07-11 20:10:09103 days 15 hrs ago0xf56d40dbaa3d47b35d0d277650499017c77eb4a4 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.000101661
0xfa247ed7c1080f76d7fda18c3463cf3554e3a64597daa3a23642affa36f92fecApprove78707292021-05-30 21:47:11145 days 14 hrs ago0x96666ee6e3b46b9b3df7d2b57a00ff4953098f48 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022215
0x164c02e54e889089a9c65e8381446e9ab11129228db8aa149c82e6c8825f97ffApprove77684922021-05-27 8:15:13149 days 3 hrs ago0xf56d40dbaa3d47b35d0d277650499017c77eb4a4 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022215
0xaf1ab1be6dcad860cd08cc92fd071b9c57066d412d6da2cc00ed5d55c8ab8971Approve77131452021-05-25 9:47:48151 days 2 hrs ago0xae2b2ac8167631ed22fb6c0233179afd27afacaf IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022215
0xbf4dbf0c420b6a9c3981f0b69186f98649795e73af7a8cd926c99060724593c3Approve76054882021-05-21 15:47:18154 days 20 hrs ago0x62b4265f8f66abc1c78b2c33bbaa7b8d38835716 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.000072615
0x13967c24176361d0e0a8e5763edfaef0e2b7030d4894f5383cba3737e9f84801Approve76054572021-05-21 15:45:45154 days 20 hrs ago0x62b4265f8f66abc1c78b2c33bbaa7b8d38835716 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022215
0x235c2d076cfbbced99596aa03840ce9a79433b6cb8b145996cf56b77c127d114Approve73995832021-05-14 9:40:25162 days 2 hrs ago0x3c438d63c9001378c32a730c6493494e94d251fe IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022089
0x0db1718b0413fc90af6237e4e4a2ea1ed45a2d722ff756e5354e8c3b536cc33dApprove73764132021-05-13 14:10:08162 days 21 hrs ago0xc29abe7c4184e61b871bd71ae499fa12ac6659ae IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022215
0xc5afa6647f28b17de2ddbb2e45fe92d2485a8329264081524e348288881e4aacApprove73309982021-05-11 21:50:20164 days 14 hrs ago0x9d9c36464bba5ba89dc36585e3902dbcffba0103 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00048873
0x98e48c103a7b6d852d53e8d35d578f7353bffea2b2aaf610ef6ac56dd28325f2Approve73286582021-05-11 19:35:33164 days 16 hrs ago0x9e01b67b83aa360076de9803fd68abd07f95b07f IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00062202
0x4d5effbcc7bd37775e4d8bc065f87511465c9da4b0d1fd7a65e449c793c0dc4fApprove70320912021-05-01 2:36:28175 days 9 hrs ago0x9408b24dba4270dedb5a12dc3a1ca2eac76952d0 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.000087174
0x8107d5e5145c61933f043a209573a84c0dc52b1cb0afb4338bfa8e6b1e3b771fApprove68464852021-04-24 14:35:45181 days 21 hrs ago0x6241070a43aba3acc496cfd1d56e484f66617af6 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0x0b6efc3a0fbc58af7970d27dddbfeda26f7ff12948fa517c47b0d8fed33bfbf6Approve68406132021-04-24 9:41:15182 days 2 hrs ago0xde63c6449f5de3000d10f2bcae6e1107132052fb IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0x4d3e7fcbf2ddf867088ac5c2dbce6ae536f7ded0feb5ec5d587e145b5726bf78Approve68305632021-04-24 1:18:20182 days 10 hrs ago0x8eea16b157ed44c9de836e3348a1c2359a672e1d IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0x530728917ba94fee8ebbb3b6870c8511b5e2b2dd6acf15567d9b6e680c63a4c9Approve68297722021-04-24 0:38:47182 days 11 hrs ago0x7bce4e4af107032283a15ab74f4a6b768d1a89dd IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0x20c10dc807495ea861d91be77dc8ffa6a3ac459545e2a20062dda63c3acd7965Approve68295612021-04-24 0:28:14182 days 11 hrs ago0x7e9176f8c46103e996f1917d67fb51cd1a6f6e0e IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0x98ce2b8b68ac3d33d0bdd9030adb7c92a9c20af10e4350634c5cdc8c298bcf55Approve68289962021-04-23 23:59:56182 days 12 hrs ago0xef8cc4e82428750af87a7061ae100423d2714cdc IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00012621
0x9ec9f0e4af3e42375a1656d4900d2907342a182d2ff5462058b7bce4fbc1a700Approve68283162021-04-23 23:25:56182 days 12 hrs ago0xef8cc4e82428750af87a7061ae100423d2714cdc IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
0xbb060201f2f51c706e5e6493b777f37c2f0bade993192825be8d57de909101f0Approve68237962021-04-23 19:38:37182 days 16 hrs ago0x25e55fe168c0b792a6423044fcd3a75244568a76 IN  0x4d7078a6b348766e7a16cd6e6fcb3064721bc6a60 BNB0.00022221
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x180fc197a51ceaeb8e66ae167dea354d601e742c349f8ca7096f059d25b0f83c67849742021-04-22 10:39:34184 days 1 hr ago 0x877fe7f4e22e21be397cd9364fafd4af4e15edb6  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 0x507966115DF39548cCc96dBA34Fe0eeBc15de8A4

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-22
*/

// 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)))/10;
        uint balance1Adjusted = (balance1.mul(10000).sub(amount1In.mul(25)))/10;
        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 Security Audit

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"}]

60806040526001600c5534801561001557600080fd5b5060004690506040518080613c0d60529139605201905060405180910390206040518060400160405280600b81526020017f50616e63616b65204c5073000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a98806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611247565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e6611280565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112dd565b604051808215151515815260200191505060405180910390f35b6103c46112f4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e61131a565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611320565b604051808215151515815260200191505060405180910390f35b6104b26114eb565b6040518082815260200191505060405180910390f35b6104d0611512565b604051808260ff1660ff16815260200191505060405180910390f35b6104f4611517565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061151d565b005b610576611666565b6040518082815260200191505060405180910390f35b61059461166c565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611672565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b23565b6040518082815260200191505060405180910390f35b610662611b3b565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b41565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b59565b604051808381526020018281526020019250505060405180910390f35b610737612146565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061217f565b604051808215151515815260200191505060405180910390f35b610820612196565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219c565b005b610882612477565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc61249d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506124c3565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612807565b6040518082815260200191505060405180910390f35b610a2761282c565b005b6001600c5414610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613a1b6023913960400191505060405180910390fd5b600080610b18611280565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f50616e63616b653a20494e53554646494349454e545f4c49515549444954590081525060200191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c7657508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f50616e63616b653a20494e56414c49445f544f0000000000000000000000000081525060200191505060405180910390fd5b60008b1115610cfd57610cfc828a8d612aac565b5b60008a1115610d1257610d11818a8c612aac565b5b6000888890501115610dfa578873ffffffffffffffffffffffffffffffffffffffff166384800812338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d6020811015610f5b57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f92576000610fa8565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610fcc576000610fe2565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ff35750600081115b611048576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806139d36022913960400191505060405180910390fd5b6000600a611086611063601986612cf990919063ffffffff16565b61107861271089612cf990919063ffffffff16565b612d8e90919063ffffffff16565b8161108d57fe5b0490506000600a6110ce6110ab601986612cf990919063ffffffff16565b6110c061271089612cf990919063ffffffff16565b612d8e90919063ffffffff16565b816110d557fe5b049050611120620f4240611112896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612cf990919063ffffffff16565b612cf990919063ffffffff16565b6111338284612cf990919063ffffffff16565b10156111a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f50616e63616b653a204b0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506111b584848888612e11565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600b81526020017f50616e63616b65204c507300000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112ea33848461318f565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114d55761145482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d8e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114e084848461327a565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f50616e63616b653a20464f5242494444454e000000000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116ff611280565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117a557600080fd5b505afa1580156117b9573d6000803e3d6000fd5b505050506040513d60208110156117cf57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188357600080fd5b505afa158015611897573d6000803e3d6000fd5b505050506040513d60208110156118ad57600080fd5b8101908080519060200190929190505050905060006118e5856dffffffffffffffffffffffffffff1684612d8e90919063ffffffff16565b9050600061190c856dffffffffffffffffffffffffffff1684612d8e90919063ffffffff16565b9050600061191a878761340e565b9050600080549050600081141561196e5761195a6103e861194c6119478688612cf990919063ffffffff16565b613615565b612d8e90919063ffffffff16565b985061196960006103e8613677565b6119d1565b6119ce886dffffffffffffffffffffffffffff166119958387612cf990919063ffffffff16565b8161199c57fe5b04886dffffffffffffffffffffffffffff166119c18487612cf990919063ffffffff16565b816119c857fe5b04613791565b98505b60008911611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613a3e6026913960400191505060405180910390fd5b611a348a8a613677565b611a4086868a8a612e11565b8115611ab857611ab16008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cf990919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611bd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611be7611280565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cb957600080fd5b505afa158015611ccd573d6000803e3d6000fd5b505050506040513d6020811015611ce357600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d7557600080fd5b505afa158015611d89573d6000803e3d6000fd5b505050506040513d6020811015611d9f57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611e02888861340e565b905060008054905080611e1e8685612cf990919063ffffffff16565b81611e2557fe5b049a5080611e3c8585612cf990919063ffffffff16565b81611e4357fe5b04995060008b118015611e56575060008a115b611eab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806139f56026913960400191505060405180910390fd5b611eb530846137aa565b611ec0878d8d612aac565b611ecb868d8c612aac565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f4857600080fd5b505afa158015611f5c573d6000803e3d6000fd5b505050506040513d6020811015611f7257600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561200257600080fd5b505afa158015612016573d6000803e3d6000fd5b505050506040513d602081101561202c57600080fd5b8101908080519060200190929190505050935061204b85858b8b612e11565b81156120c3576120bc6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612cf990919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600781526020017f43616b652d4c500000000000000000000000000000000000000000000000000081525081565b600061218c33848461327a565b6001905092915050565b6103e881565b6001600c5414612214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061236a8284612365600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561231c57600080fd5b505afa158015612330573d6000803e3d6000fd5b505050506040513d602081101561234657600080fd5b8101908080519060200190929190505050612d8e90919063ffffffff16565b612aac565b61246a81846124656008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561241c57600080fd5b505afa158015612430573d6000803e3d6000fd5b505050506040513d602081101561244657600080fd5b8101908080519060200190929190505050612d8e90919063ffffffff16565b612aac565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f50616e63616b653a20455850495245440000000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561270b573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561277f57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f50616e63616b653a20494e56414c49445f5349474e415455524500000000000081525060200191505060405180910390fd5b6127fc89898961318f565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c54146128a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612aa2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561294e57600080fd5b505afa158015612962573d6000803e3d6000fd5b505050506040513d602081101561297857600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a2857600080fd5b505afa158015612a3c573d6000803e3d6000fd5b505050506040513d6020811015612a5257600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612e11565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612bd95780518252602082019150602081019050602083039250612bb6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c3b576040519150601f19603f3d011682016040523d82523d6000602084013e612c40565b606091505b5091509150818015612c805750600081511480612c7f5750808060200190516020811015612c6d57600080fd5b81019080805190602001909291905050505b5b612cf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50616e63616b653a205452414e534645525f4641494c4544000000000000000081525060200191505060405180910390fd5b5050505050565b600080821480612d165750828283850292508281612d1357fe5b04145b612d88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612e0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e8157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612ef3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f50616e63616b653a204f564552464c4f5700000000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612f0357fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f4657506000846dffffffffffffffffffffffffffff1614155b8015612f6357506000836dffffffffffffffffffffffffffff1614155b15613045578063ffffffff16612fa885612f7c866138c4565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138ef90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff1661301684612fea876138c4565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138ef90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6132cc81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d8e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061336181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461394f90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561347957600080fd5b505afa15801561348d573d6000803e3d6000fd5b505050506040513d60208110156134a357600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135fb57600081146135f657600061353b613536866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612cf990919063ffffffff16565b613615565b9050600061354883613615565b9050808211156135f357600061358e600861358061356f8587612d8e90919063ffffffff16565b600054612cf990919063ffffffff16565b612cf990919063ffffffff16565b905060006135cb6135a9600885612cf990919063ffffffff16565b6135bd601187612cf990919063ffffffff16565b61394f90919063ffffffff16565b905060008183816135d857fe5b04905060008111156135ef576135ee8782613677565b5b5050505b50505b61360d565b6000811461360c576000600b819055505b5b505092915050565b6000600382111561366457819050600060016002848161363157fe5b040190505b8181101561365e5780915060028182858161364d57fe5b04018161365657fe5b049050613636565b50613672565b6000821461367157600190505b5b919050565b61368c8160005461394f90919063ffffffff16565b6000819055506136e481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461394f90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008183106137a057816137a2565b825b905092915050565b6137fc81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d8e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061385481600054612d8e90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168161394657fe5b04905092915050565b60008282840191508110156139cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e454450616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207183bcb5efc00d1a5c29212b3fd00917ca9ae62c75ca2e3fd2005bb2674cba1e64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed ByteCode Sourcemap

11086:9681:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11086:9681:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18285:1889;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;18285:1889:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18285:1889:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18285:1889: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;18285:1889:0;;;;;;;;;;;;:::i;:::-;;4524: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;4524:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12099:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6573:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6573:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11390:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4664:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6875:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;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;13157:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11741:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11780;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15359:1238;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15359:1238:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4695:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;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;5071:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16709:1464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16709:1464:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4574: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;4574:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6728:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6728:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11211:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20223:334;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20223: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;7184:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4743:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4743:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20606:158;;;:::i;:::-;;18285:1889;12004:1;11992:8;;:13;11984:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;;18412:1;18399:10;:14;:32;;;;18430:1;18417:10;:14;18399:32;18391:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18483:17;18502;18524:13;:11;:13::i;:::-;18482:55;;;;;18584:9;18571:22;;:10;:22;:48;;;;;18610:9;18597:22;;:10;:22;18571:48;18563:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18668:13;18692;18782:15;18800:6;;;;;;;;;;;18782:24;;18817:15;18835:6;;;;;;;;;;;18817:24;;18866:7;18860:13;;:2;:13;;;;:30;;;;;18883:7;18877:13;;:2;:13;;;;18860:30;18852:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18942:1;18929:10;:14;18925:58;;;18945:38;18959:7;18968:2;18972:10;18945:13;:38::i;:::-;18925:58;19045:1;19032:10;:14;19028:58;;;19048:38;19062:7;19071:2;19075:10;19048:13;:38::i;:::-;19028:58;19149:1;19135:4;;:11;;:15;19131:93;;;19167:2;19152:30;;;19183:10;19195;19207;19219:4;;19152: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;;19152:72:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19152:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19152:72:0;;;;19131:93;19253:7;19246:25;;;19280:4;19246:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19246:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19246:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19246:40:0;;;;;;;;;;;;;;;;19235:51;;19315:7;19308:25;;;19342:4;19308:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19308:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19308:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19308:40:0;;;;;;;;;;;;;;;;19297:51;;12059:1;;19370:14;19410:10;19398:9;:22;;;19387:8;:33;:75;;19461:1;19387:75;;;19447:10;19435:9;:22;;;19423:8;:35;19387:75;19370:92;;19473:14;19513:10;19501:9;:22;;;19490:8;:33;:75;;19564:1;19490:75;;;19550:10;19538:9;:22;;;19526:8;:35;19490:75;19473:92;;19596:1;19584:9;:13;:30;;;;19613:1;19601:9;:13;19584:30;19576:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19739:21;19808:2;19764:42;19788:17;19802:2;19788:9;:13;;:17;;;;:::i;:::-;19764:19;19777:5;19764:8;:12;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;19763:47;;;;;;19739:71;;19821:21;19890:2;19846:42;19870:17;19884:2;19870:9;:13;;:17;;;;:::i;:::-;19846:19;19859:5;19846:8;:12;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;19845:47;;;;;;19821:71;;19953:43;19988:7;19953:30;19973:9;19953:30;;19958:9;19953:15;;:19;;:30;;;;:::i;:::-;:34;;:43;;;;:::i;:::-;19911:38;19932:16;19911;:20;;:38;;;;:::i;:::-;:85;;19903:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12059:1;;20035:49;20043:8;20053;20063:9;20074;20035:7;:49::i;:::-;20163:2;20100:66;;20105:10;20100:66;;;20117:9;20128;20139:10;20151;20100:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12059:1;;;;;;12082;12071:8;:12;;;;18285:1889;;;;;:::o;4524:43::-;;;;;;;;;;;;;;;;;;;:::o;12099:231::-;12143:17;12162;12181:26;12232:8;;;;;;;;;;;12220:20;;12263:8;;;;;;;;;;;12251:20;;12304:18;;;;;;;;;;;12282:40;;12099:231;;;:::o;6573:147::-;6637:4;6654:36;6663:10;6675:7;6684:5;6654:8;:36::i;:::-;6708:4;6701:11;;6573:147;;;;:::o;11390:21::-;;;;;;;;;;;;;:::o;4664:24::-;;;;:::o;6875:301::-;6953:4;7010:2;6974:9;:15;6984:4;6974:15;;;;;;;;;;;;;;;:27;6990:10;6974:27;;;;;;;;;;;;;;;;:39;6970:140;;7060:38;7092:5;7060:9;:15;7070:4;7060:15;;;;;;;;;;;;;;;:27;7076:10;7060:27;;;;;;;;;;;;;;;;:31;;:38;;;;:::i;:::-;7030:9;:15;7040:4;7030:15;;;;;;;;;;;;;;;:27;7046:10;7030:27;;;;;;;;;;;;;;;:68;;;;6970:140;7120:26;7130:4;7136:2;7140:5;7120:9;:26::i;:::-;7164:4;7157:11;;6875:301;;;;;:::o;4956:108::-;4998:66;4956:108;;;:::o;4622:35::-;4655:2;4622:35;:::o;4813:31::-;;;;:::o;13157:208::-;13253:7;;;;;;;;;;;13239:21;;:10;:21;;;13231:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13323:7;13314:6;;:16;;;;;;;;;;;;;;;;;;13350:7;13341:6;;:16;;;;;;;;;;;;;;;;;;13157:208;;:::o;11741:32::-;;;;:::o;11780:::-;;;;:::o;15359:1238::-;15408:14;12004:1;11992:8;;:13;11984:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;;15436:17;15455;15477:13;:11;:13::i;:::-;15435:55;;;;;15516:13;15539:6;;;;;;;;;;;15532:24;;;15565:4;15532:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15532:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15532:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15532:39:0;;;;;;;;;;;;;;;;15516:55;;15582:13;15605:6;;;;;;;;;;;15598:24;;;15631:4;15598:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15598:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15598:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15598:39:0;;;;;;;;;;;;;;;;15582:55;;15648:12;15663:23;15676:9;15663:23;;:8;:12;;:23;;;;:::i;:::-;15648:38;;15697:12;15712:23;15725:9;15712:23;;:8;:12;;:23;;;;:::i;:::-;15697:38;;15748:10;15761:30;15770:9;15781;15761:8;:30::i;:::-;15748:43;;15802:17;15822:11;;15802:31;;15942:1;15926:12;:17;15922:352;;;15972:54;11252:5;15972:31;15982:20;15994:7;15982;:11;;:20;;;;:::i;:::-;15972:9;:31::i;:::-;:35;;:54;;;;:::i;:::-;15960:66;;16040:36;16054:1;11252:5;16040;:36::i;:::-;15922:352;;;16176:86;16213:9;16185:37;;:25;16197:12;16185:7;:11;;:25;;;;:::i;:::-;:37;;;;;;16252:9;16224:37;;:25;16236:12;16224:7;:11;;:25;;;;:::i;:::-;:37;;;;;;16176:8;:86::i;:::-;16164:98;;15922:352;16304:1;16292:9;:13;16284:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16359:20;16365:2;16369:9;16359:5;:20::i;:::-;16392:49;16400:8;16410;16420:9;16431;16392:7;:49::i;:::-;16456:5;16452:47;;;16471:28;16490:8;;;;;;;;;;;16471:28;;16476:8;;;;;;;;;;;16471:14;;:18;;:28;;;;:::i;:::-;16463:5;:36;;;;16452:47;16560:10;16555:34;;;16572:7;16581;16555:34;;;;;;;;;;;;;;;;;;;;;;;;12059:1;;;;;;;;12082;12071:8;:12;;;;15359:1238;;;:::o;4695:41::-;;;;;;;;;;;;;;;;;:::o;11819:17::-;;;;:::o;5071:38::-;;;;;;;;;;;;;;;;;:::o;16709:1464::-;16758:12;16772;12004:1;11992:8;;:13;11984:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;;16798:17;16817;16839:13;:11;:13::i;:::-;16797:55;;;;;16878:15;16896:6;;;;;;;;;;;16878:24;;16959:15;16977:6;;;;;;;;;;;16959:24;;17040:13;17063:7;17056:25;;;17090:4;17056:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17056:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17056:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17056:40:0;;;;;;;;;;;;;;;;17040:56;;17107:13;17130:7;17123:25;;;17157:4;17123:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17123:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17123:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17123:40:0;;;;;;;;;;;;;;;;17107:56;;17174:14;17191:9;:24;17209:4;17191:24;;;;;;;;;;;;;;;;17174:41;;17228:10;17241:30;17250:9;17261;17241:8;:30::i;:::-;17228:43;;17282:17;17302:11;;17282:31;;17438:12;17412:23;17426:8;17412:9;:13;;:23;;;;:::i;:::-;:38;;;;;;17402:48;;17545:12;17519:23;17533:8;17519:9;:13;;:23;;;;:::i;:::-;:38;;;;;;17509:48;;17634:1;17624:7;:11;:26;;;;;17649:1;17639:7;:11;17624:26;17616:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17704:31;17718:4;17725:9;17704:5;:31::i;:::-;17746:35;17760:7;17769:2;17773:7;17746:13;:35::i;:::-;17792;17806:7;17815:2;17819:7;17792:13;:35::i;:::-;17856:7;17849:25;;;17883:4;17849:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17849:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17849:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17849:40:0;;;;;;;;;;;;;;;;17838:51;;17918:7;17911:25;;;17945:4;17911:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17911:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17911:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17911:40:0;;;;;;;;;;;;;;;;17900:51;;17964:49;17972:8;17982;17992:9;18003;17964:7;:49::i;:::-;18028:5;18024:47;;;18043:28;18062:8;;;;;;;;;;;18043:28;;18048:8;;;;;;;;;;;18043:14;;:18;;:28;;;;:::i;:::-;18035:5;:36;;;;18024:47;18162:2;18127:38;;18132:10;18127:38;;;18144:7;18153;18127:38;;;;;;;;;;;;;;;;;;;;;;;;12059:1;;;;;;;;;12082;12071:8;:12;;;;16709:1464;;;:::o;4574:41::-;;;;;;;;;;;;;;;;;;;:::o;6728:139::-;6788:4;6805:32;6815:10;6827:2;6831:5;6805:9;:32::i;:::-;6855:4;6848:11;;6728:139;;;;:::o;11211:46::-;11252:5;11211:46;:::o;20223:334::-;12004:1;11992:8;;:13;11984:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;;20274:15;20292:6;;;;;;;;;;;20274:24;;20324:15;20342:6;;;;;;;;;;;20324:24;;20374:82;20388:7;20397:2;20401:54;20446:8;;;;;;;;;;;20401:54;;20408:7;20401:25;;;20435:4;20401:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20401:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20401:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20401:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;20374:13;:82::i;:::-;20467;20481:7;20490:2;20494:54;20539:8;;;;;;;;;;;20494:54;;20501:7;20494:25;;;20528:4;20494:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20494:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20494:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20494:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;20467:13;:82::i;:::-;12059:1;;12082;12071:8;:12;;;;20223:334;:::o;11361:22::-;;;;;;;;;;;;;:::o;11418:21::-;;;;;;;;;;;;;:::o;7184:670::-;7330:15;7318:8;:27;;7310:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:14;7482:16;;4998:66;7538:15;;7555:5;7562:7;7571:5;7578:6;:13;7585:5;7578:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;7595:8;7527:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7527:77:0;;;7517:88;;;;;;7418:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7418:202:0;;;7394:237;;;;;;7377:254;;7642:24;7669:26;7679:6;7687:1;7690;7693;7669:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7669:26:0;;;;;;;;7642:53;;7742:1;7714:30;;:16;:30;;;;:59;;;;;7768:5;7748:25;;:16;:25;;;7714:59;7706:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7815:31;7824:5;7831:7;7840:5;7815:8;:31::i;:::-;7184:670;;;;;;;;;:::o;4743:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20606:158::-;12004:1;11992:8;;:13;11984:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;;20647:109;20662:6;;;;;;;;;;;20655:24;;;20688:4;20655:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20655:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20655:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20655:39:0;;;;;;;;;;;;;;;;20703:6;;;;;;;;;;;20696:24;;;20729:4;20696:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20696:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20696:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20696:39:0;;;;;;;;;;;;;;;;20737:8;;;;;;;;;;;20747;;;;;;;;;;;20647:7;:109::i;:::-;12082:1;12071:8;:12;;;;20606:158::o;12338:285::-;12420:12;12434:17;12455:5;:10;;11316:34;;;;;;;;;;;;;;;;;11306:45;;;;;;12499:2;12503:5;12466:43;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12466: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;;;12466:43:0;12455: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;;;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;;;;;12556:1;12541:4;:11;:16;:44;;;;12572:4;12561:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12561:24:0;;;;;;;;;;;;;;;;12541:44;12529:57;12521:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12338: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;13450:858::-;13582:2;13562:23;;:8;:23;;:50;;;;;13609:2;13589:23;;:8;:23;;13562:50;13554:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13645:21;13694:5;13676:15;:23;;;;;;13645:55;;13711:18;13749;;;;;;;;;;;13732:14;:35;13711:56;;13819:1;13805:11;:15;;;:33;;;;;13837:1;13824:9;:14;;;;13805:33;:51;;;;;13855:1;13842:9;:14;;;;13805:51;13801:336;;;14011:11;13958:64;;13963:44;13997:9;13963:27;13980:9;13963:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;13958:50;;:64;13934:20;;:88;;;;;;;;;;;14114:11;14061:64;;14066:44;14100:9;14066:27;14083:9;14066:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;14061:50;;:64;14037:20;;:88;;;;;;;;;;;13801:336;14166:8;14147;;:28;;;;;;;;;;;;;;;;;;14205:8;14186;;:28;;;;;;;;;;;;;;;;;;14246:14;14225:18;;:35;;;;;;;;;;;;;;;;;;14276:24;14281:8;;;;;;;;;;;14291;;;;;;;;;;;14276:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13450:858;;;;;;:::o;6168:169::-;6277:5;6249:9;:16;6259:5;6249:16;;;;;;;;;;;;;;;:25;6266:7;6249:25;;;;;;;;;;;;;;;:33;;;;6314:7;6298:31;;6307:5;6298:31;;;6323:5;6298:31;;;;;;;;;;;;;;;;;;6168:169;;;:::o;6345:220::-;6439:26;6459:5;6439:9;:15;6449:4;6439:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6421:9;:15;6431:4;6421:15;;;;;;;;;;;;;;;:44;;;;6492:24;6510:5;6492:9;:13;6502:2;6492:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6476:9;:13;6486:2;6476:13;;;;;;;;;;;;;;;:40;;;;6547:2;6532:25;;6541:4;6532:25;;;6551:5;6532:25;;;;;;;;;;;;;;;;;;6345:220;;;:::o;14397:850::-;14470:10;14493:13;14525:7;;;;;;;;;;;14509:30;;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14509:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14509:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14509:32:0;;;;;;;;;;;;;;;;14493:48;;14577:1;14560:19;;:5;:19;;;;14552:27;;14590:11;14604:5;;14590:19;;14639:5;14635:605;;;14675:1;14665:6;:11;14661:509;;14697:10;14710:41;14720:30;14740:9;14720:30;;14725:9;14720:15;;:19;;:30;;;;:::i;:::-;14710:9;:41::i;:::-;14697:54;;14770:14;14787:17;14797:6;14787:9;:17::i;:::-;14770:34;;14835:9;14827:5;:17;14823:332;;;14869:14;14886:44;14928:1;14886:37;14902:20;14912:9;14902:5;:9;;:20;;;;:::i;:::-;14886:11;;:15;;:37;;;;:::i;:::-;:41;;:44;;;;:::i;:::-;14869:61;;14953:16;14972:35;14990:16;15004:1;14990:9;:13;;:16;;;;:::i;:::-;14972:13;14982:2;14972:5;:9;;:13;;;;:::i;:::-;:17;;:35;;;;:::i;:::-;14953:54;;15030:14;15059:11;15047:9;:23;;;;;;15030:40;;15109:1;15097:9;:13;15093:42;;;15112:23;15118:5;15125:9;15112:5;:23::i;:::-;15093:42;14823:332;;;;14661:509;;;14635:605;;;15201:1;15191:6;:11;15187:53;;15227:1;15219:5;:9;;;;15187:53;14635:605;14397:850;;;;;;:::o;8219:303::-;8264:6;8291:1;8287;:5;8283:232;;;8313:1;8309:5;;8329:6;8346:1;8342;8338;:5;;;;;;:9;8329:18;;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;;;;8480:1;8475;:6;8471:44;;8502:1;8498:5;;8471:44;8283:232;8219:303;;;:::o;5742:201::-;5815:22;5831:5;5815:11;;:15;;:22;;;;:::i;:::-;5801:11;:36;;;;5864:24;5882:5;5864:9;:13;5874:2;5864:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5848:9;:13;5858:2;5848:13;;;;;;;;;;;;;;;:40;;;;5925:2;5904:31;;5921:1;5904:31;;;5929:5;5904:31;;;;;;;;;;;;;;;;;;5742:201;;:::o;8005:96::-;8057:6;8084:1;8080;:5;:13;;8092:1;8080:13;;;8088:1;8080:13;8076:17;;8005:96;;;;:::o;5951:209::-;6030:26;6050:5;6030:9;:15;6040:4;6030:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6012:9;:15;6022:4;6012:15;;;;;;;;;;;;;;;:44;;;;6081:22;6097:5;6081:11;;:15;;:22;;;;:::i;:::-;6067:11;:36;;;;6142:1;6119:33;;6128:4;6119:33;;;6146:5;6119:33;;;;;;;;;;;;;;;;;;5951:209;;:::o;8869:120::-;8919:9;8814:6;8953:1;8945:10;;:17;8941:21;;8869:120;;;:::o;9060:108::-;9120:9;9158:1;9150:10;;9146:14;;:1;:14;;;;;;;;9142:18;;9060:108;;;;:::o;3953:128::-;4005:6;4047:1;4041;4037;:5;4033:9;;;4032:16;;4024:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:128;;;;:::o

Swarm Source

bzzr://7183bcb5efc00d1a5c29212b3fd00917ca9ae62c75ca2e3fd2005bb2674cba1e
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.