Contract 0x2069043d7556B1207a505eb459D18d908DF29b55 1

 

Contract Overview

Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x295c53c90d10d6f20f9154d4fcceaa0027eb280893c198da5bcf5edaddbc9fd6Deposit36400822021-12-07 12:14:5713 mins ago0xf57ec3db71af075aef95026d16a20d68c41dd3e4 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000923768966 ETH
0x276fc43e18dc3fbae96f4aad2205c9052a8d8ff4c3d2dd49da0319beb22f4cb6Withdraw36400242021-12-07 12:13:1915 mins ago0xf57ec3db71af075aef95026d16a20d68c41dd3e4 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000921556839 ETH
0xdb4f98361b5db17fe9021e0cff65aef737908c7f8b433e4f24ab6a26cd7443a5Deposit36345842021-12-07 5:44:136 hrs 44 mins ago0xf4d9c88c924079422e5ad77ee64b967ce4efd828 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.00115382067 ETH
0x763862cfec38dab458d2b45cff3066bfe4830c4ece43e85a555cce0d5bbdcb29Deposit36259362021-12-06 20:34:2015 hrs 54 mins ago0x2162d991f68cb0991a1b726da341c04e128db3cb IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001145052094 ETH
0x0289189ab25128017341afd113c8fc995be13a45e6ba2f153b7b2f24f0c1526bDeposit36251392021-12-06 19:39:4016 hrs 48 mins ago0xba55bdbf959df826da6c35487eb15fad2164662d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000942321476 ETH
0x7581e88460cd900a42da3fe0039920eb08e8ae2eff94a5e7b95b48046f34decaDeposit36183622021-12-06 13:55:5622 hrs 32 mins ago0xdff4d4f1aa998e83a1b84fb655d9902c1e12e548 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001120487294 ETH
0x725fdc7ad9bc20177480ef487daac724a7f681961877bccd010ca415fa5a62caDeposit36089572021-12-06 7:18:591 day 5 hrs ago0x8034aaff3980487a49ca69341d444fcc000088af IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001176904441 ETH
0x974a408589a0c496de7a17972b6f9762971c81f41914b978ce49ca16eadbd8eaWithdraw36064922021-12-06 5:00:421 day 7 hrs ago0x8170f9304373dc5eb1cb91cd1edf878769c69b3c IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000989273047 ETH
0xd70d5f8dbc7816283fce712a62cea47a8d29d8c1795c4dcb4ce590a5a7941db9Deposit36014782021-12-05 23:54:471 day 12 hrs ago0x785b015195cc3f5577241e41eb60b95a045fad16 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000794250066 ETH
0x80ed9846cc88ed601f846d58a6515c1b32866bb8a232e546ce9df1f8136902dbWithdraw35949232021-12-05 17:35:101 day 18 hrs ago0x81b15c11fd0c736399485307faecd13bdd58185d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000988307706 ETH
0xac50a865136bcfc669626238711631ebe251ce2dc73c2131e76d568c28702063Deposit35936642021-12-05 16:27:121 day 20 hrs ago0x2ec4fe780501684d8f17109410caae8a9d293de2 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001160705847 ETH
0x9e29ac056f9e08f38576a3313534859a3f9b99ad3088c03946077d23c592f941Deposit35899412021-12-05 14:05:511 day 22 hrs ago0x63bdb99d65457183d1a178ee532265492861ea89 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001172427151 ETH
0xce76385dba0fe8055dbd38d0b48a615181ab1e8f03250672ebd8253c1feab6e2Deposit35871492021-12-05 11:58:392 days 29 mins ago0xa858ea02845071dbe09b4b5c3bbea49529beaadb IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001170670743 ETH
0xb98224b4731e7e2748e7842644326f409a0cbcd4aeee62ef26ae9ac46241ce75Deposit35866302021-12-05 11:29:562 days 58 mins ago0x46ab107b3632fc7140e7b2294e5d803774eb9c88 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001172126896 ETH
0xc5884a9fd6dae7deaf2f6e1fc8dc401bf06615ac787de0777228b608ab3d1109Deposit35857802021-12-05 10:37:342 days 1 hr ago0xeb1a90ecd234104bf72f4cf8175941662309aa85 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001170670743 ETH
0x99668d790b4aa22e7afdb9b55c1c8773c1ea4280bd55d8711e4edc87b24df685Deposit35852062021-12-05 10:06:472 days 2 hrs ago0x6b4488f2894a20b8f129b397715178b27ae2bb41 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001196891393 ETH
0x2c26a39fa48fdf3ff322838663fc82c52debea937d214b989d2f6eb60553109cDeposit35822702021-12-05 7:08:532 days 5 hrs ago0xff058c99568e0f753b960f1d0ac7830bdff1a51a IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001274647602 ETH
0x969681dc5df53e90245ea695a5ba3ca227fd37e86c0d9b16797f4939d62c13a0Deposit35756592021-12-04 23:48:142 days 12 hrs ago0x34bb0e6e868aff5a7661445362b3a62551a2fbac IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001339363007 ETH
0x5624e5f031fd002abf036a3c48a5dd6ec058532740303b0c64dae167476dc9ddDeposit35735812021-12-04 21:24:192 days 15 hrs ago0x729fc2d1ed7b062a3f6723c2565932fb4498a77d IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.000879088494 ETH
0x2637aaebadabfe3f4bfab9a18087e48bc8d232e0b3713cc533d501aeef75a33dDeposit35728982021-12-04 20:41:502 days 15 hrs ago0x6d48faa1102a055904e6cdaa4913786b19ace3fa IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001366048397 ETH
0xf6c1d82ab93451bbf1f1fce50014c1ec2d543d1c920207f3ac49d3c516a11c6fDeposit35704222021-12-04 18:03:452 days 18 hrs ago0x09549ce242146a2407bbb66b979d64692563bf35 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001109491847 ETH
0x4389470a341ac2f4d540950c392f546eb618d0b5cf21671329909de46f28e85bWithdraw35693652021-12-04 16:54:182 days 19 hrs ago0x09549ce242146a2407bbb66b979d64692563bf35 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001356190137 ETH
0x3324c26c335208dc31293d8ea370cd4fa2d175b855c075cf2b6262f40f6a14d0Withdraw35684262021-12-04 16:12:302 days 20 hrs ago0xee60e157a0d1f3bc987754492d1fa707ba7e33fc IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001118274385 ETH
0xbc6ed4248aa603116859b35cc43d4ae734cb374a97decaa1d25f6afbfcbfa558Deposit35645612021-12-04 12:26:073 days 2 mins ago0xbb28d2b809b19f3924b1bfffd679d2781dc2d549 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.00109403106 ETH
0x52a19f55b46362a467c6e4ead82132ed0854744e3fa37e68dcad219490bfdc6eWithdraw35645182021-12-04 12:24:133 days 4 mins ago0xbb28d2b809b19f3924b1bfffd679d2781dc2d549 IN  0x2069043d7556b1207a505eb459d18d908df29b550 ETH0.001093012949 ETH
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MiniChefV2

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license
File 1 of 9 : IMasterChef.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;
import "@boringcrypto/boring-solidity/contracts/libraries/BoringERC20.sol";

interface IMasterChef {
    using BoringERC20 for IERC20;
    struct UserInfo {
        uint256 amount;     // How many LP tokens the user has provided.
        uint256 rewardDebt; // Reward debt. See explanation below.
    }

    struct PoolInfo {
        IERC20 lpToken;           // Address of LP token contract.
        uint256 allocPoint;       // How many allocation points assigned to this pool. SADDLE to distribute per block.
        uint256 lastRewardBlock;  // Last block number that SADDLE distribution occurs.
        uint256 accSaddlePerShare; // Accumulated SADDLE per share, times 1e12. See below.
    }

    function poolInfo(uint256 pid) external view returns (IMasterChef.PoolInfo memory);
    function totalAllocPoint() external view returns (uint256);
    function deposit(uint256 _pid, uint256 _amount) external;
}

File 2 of 9 : BoringERC20.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.6.12;

import "../interfaces/IERC20.sol";

library BoringERC20 {
    function safeSymbol(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x95d89b41));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeName(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x06fdde03));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeDecimals(IERC20 token) internal view returns (uint8) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x313ce567));
        return success && data.length == 32 ? abi.decode(data, (uint8)) : 18;
    }

    function safeTransfer(IERC20 token, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0xa9059cbb, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed");
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0x23b872dd, from, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed");
    }
}

File 3 of 9 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    // EIP 2612
    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
}

File 4 of 9 : MiniChefV2.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

import "@boringcrypto/boring-solidity/contracts/libraries/BoringMath.sol";
import "@boringcrypto/boring-solidity/contracts/BoringBatchable.sol";
import "@boringcrypto/boring-solidity/contracts/BoringOwnable.sol";
import "./libraries/SignedSafeMath.sol";
import "./interfaces/IRewarder.sol";
import "./interfaces/IMasterChef.sol";

/// @notice The (older) MasterChef contract gives out a constant number of SADDLE tokens per block.
/// It is the only address with minting rights for SADDLE.
/// The idea for this MasterChef V2 (MCV2) contract is therefore to be the owner of a dummy token
/// that is deposited into the MasterChef V1 (MCV1) contract.
/// The allocation point for this pool on MCV1 is the total allocation point for all pools that receive double incentives.
contract MiniChefV2 is BoringOwnable, BoringBatchable {
    using BoringMath for uint256;
    using BoringMath128 for uint128;
    using BoringERC20 for IERC20;
    using SignedSafeMath for int256;

    /// @notice Info of each MCV2 user.
    /// `amount` LP token amount the user has provided.
    /// `rewardDebt` The amount of SADDLE entitled to the user.
    struct UserInfo {
        uint256 amount;
        int256 rewardDebt;
    }

    /// @notice Info of each MCV2 pool.
    /// `allocPoint` The amount of allocation points assigned to the pool.
    /// Also known as the amount of SADDLE to distribute per block.
    struct PoolInfo {
        uint128 accSaddlePerShare;
        uint64 lastRewardTime;
        uint64 allocPoint;
    }

    /// @notice Address of SADDLE contract.
    IERC20 public immutable SADDLE;

    /// @notice Info of each MCV2 pool.
    PoolInfo[] public poolInfo;
    /// @notice Address of the LP token for each MCV2 pool.
    IERC20[] public lpToken;
    /// @notice Address of each `IRewarder` contract in MCV2.
    IRewarder[] public rewarder;

    /// @notice Info of each user that stakes LP tokens.
    mapping (uint256 => mapping (address => UserInfo)) public userInfo;
    /// @dev Total allocation points. Must be the sum of all allocation points in all pools.
    uint256 public totalAllocPoint;

    uint256 public saddlePerSecond;
    uint256 private constant ACC_SADDLE_PRECISION = 1e12;

    event Deposit(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event Withdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event Harvest(address indexed user, uint256 indexed pid, uint256 amount);
    event LogPoolAddition(uint256 indexed pid, uint256 allocPoint, IERC20 indexed lpToken, IRewarder indexed rewarder);
    event LogSetPool(uint256 indexed pid, uint256 allocPoint, IRewarder indexed rewarder, bool overwrite);
    event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSaddlePerShare);
    event LogSaddlePerSecond(uint256 saddlePerSecond);

    /// @param _saddle The SADDLE token contract address.
    constructor(IERC20 _saddle) public {
        SADDLE = _saddle;
    }

    /// @notice Returns the number of MCV2 pools.
    function poolLength() public view returns (uint256 pools) {
        pools = poolInfo.length;
    }

    /// @notice Add a new LP to the pool. Can only be called by the owner.
    /// DO NOT add the same LP token more than once. Rewards will be messed up if you do.
    /// @param allocPoint AP of the new pool.
    /// @param _lpToken Address of the LP ERC-20 token.
    /// @param _rewarder Address of the rewarder delegate.
    function add(uint256 allocPoint, IERC20 _lpToken, IRewarder _rewarder) public onlyOwner {
        totalAllocPoint = totalAllocPoint.add(allocPoint);
        lpToken.push(_lpToken);
        rewarder.push(_rewarder);

        poolInfo.push(PoolInfo({
        allocPoint: allocPoint.to64(),
        lastRewardTime: block.timestamp.to64(),
        accSaddlePerShare: 0
        }));
        emit LogPoolAddition(lpToken.length.sub(1), allocPoint, _lpToken, _rewarder);
    }

    /// @notice Update the given pool's SADDLE allocation point and `IRewarder` contract. Can only be called by the owner.
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _allocPoint New AP of the pool.
    /// @param _rewarder Address of the rewarder delegate.
    /// @param overwrite True if _rewarder should be `set`. Otherwise `_rewarder` is ignored.
    function set(uint256 _pid, uint256 _allocPoint, IRewarder _rewarder, bool overwrite) public onlyOwner {
        totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add(_allocPoint);
        poolInfo[_pid].allocPoint = _allocPoint.to64();
        if (overwrite) { rewarder[_pid] = _rewarder; }
        emit LogSetPool(_pid, _allocPoint, overwrite ? _rewarder : rewarder[_pid], overwrite);
    }

    /// @notice Sets the saddle per second to be distributed. Can only be called by the owner.
    /// @param _saddlePerSecond The amount of Saddle to be distributed per second.
    function setSaddlePerSecond(uint256 _saddlePerSecond) public onlyOwner {
        saddlePerSecond = _saddlePerSecond;
        emit LogSaddlePerSecond(_saddlePerSecond);
    }

    /// @notice View function to see pending SADDLE on frontend.
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _user Address of user.
    /// @return pending SADDLE reward for a given user.
    function pendingSaddle(uint256 _pid, address _user) external view returns (uint256 pending) {
        PoolInfo memory pool = poolInfo[_pid];
        UserInfo storage user = userInfo[_pid][_user];
        uint256 accSaddlePerShare = pool.accSaddlePerShare;
        uint256 lpSupply = lpToken[_pid].balanceOf(address(this));
        if (block.timestamp > pool.lastRewardTime && lpSupply != 0) {
            uint256 time = block.timestamp.sub(pool.lastRewardTime);
            uint256 saddleReward = time.mul(saddlePerSecond).mul(pool.allocPoint) / totalAllocPoint;
            accSaddlePerShare = accSaddlePerShare.add(saddleReward.mul(ACC_SADDLE_PRECISION) / lpSupply);
        }
        pending = int256(user.amount.mul(accSaddlePerShare) / ACC_SADDLE_PRECISION).sub(user.rewardDebt).toUInt256();
    }

    /// @notice Update reward variables for all pools. Be careful of gas spending!
    /// @param pids Pool IDs of all to be updated. Make sure to update all active pools.
    function massUpdatePools(uint256[] calldata pids) external {
        uint256 len = pids.length;
        for (uint256 i = 0; i < len; ++i) {
            updatePool(pids[i]);
        }
    }

    /// @notice Update reward variables of the given pool.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @return pool Returns the pool that was updated.
    function updatePool(uint256 pid) public returns (PoolInfo memory pool) {
        pool = poolInfo[pid];
        if (block.timestamp > pool.lastRewardTime) {
            uint256 lpSupply = lpToken[pid].balanceOf(address(this));
            if (lpSupply > 0) {
                uint256 time = block.timestamp.sub(pool.lastRewardTime);
                uint256 saddleReward = time.mul(saddlePerSecond).mul(pool.allocPoint) / totalAllocPoint;
                pool.accSaddlePerShare = pool.accSaddlePerShare.add((saddleReward.mul(ACC_SADDLE_PRECISION) / lpSupply).to128());
            }
            pool.lastRewardTime = block.timestamp.to64();
            poolInfo[pid] = pool;
            emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accSaddlePerShare);
        }
    }

    /// @notice Deposit LP tokens to MCV2 for SADDLE allocation.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to deposit.
    /// @param to The receiver of `amount` deposit benefit.
    function deposit(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][to];

        // Effects
        user.amount = user.amount.add(amount);
        user.rewardDebt = user.rewardDebt.add(int256(amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION));

        // Interactions
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, to, to, 0, user.amount);
        }

        lpToken[pid].safeTransferFrom(msg.sender, address(this), amount);

        emit Deposit(msg.sender, pid, amount, to);
    }

    /// @notice Withdraw LP tokens from MCV2.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to withdraw.
    /// @param to Receiver of the LP tokens.
    function withdraw(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];

        // Effects
        user.rewardDebt = user.rewardDebt.sub(int256(amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION));
        user.amount = user.amount.sub(amount);

        // Interactions
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, msg.sender, to, 0, user.amount);
        }

        lpToken[pid].safeTransfer(to, amount);

        emit Withdraw(msg.sender, pid, amount, to);
    }

    /// @notice Harvest proceeds for transaction sender to `to`.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param to Receiver of SADDLE rewards.
    function harvest(uint256 pid, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];
        int256 accumulatedSaddle = int256(user.amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION);
        uint256 _pendingSaddle = accumulatedSaddle.sub(user.rewardDebt).toUInt256();

        // Effects
        user.rewardDebt = accumulatedSaddle;

        // Interactions
        if (_pendingSaddle != 0) {
            SADDLE.safeTransfer(to, _pendingSaddle);
        }

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward( pid, msg.sender, to, _pendingSaddle, user.amount);
        }

        emit Harvest(msg.sender, pid, _pendingSaddle);
    }

    /// @notice Withdraw LP tokens from MCV2 and harvest proceeds for transaction sender to `to`.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to withdraw.
    /// @param to Receiver of the LP tokens and SADDLE rewards.
    function withdrawAndHarvest(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];
        int256 accumulatedSaddle = int256(user.amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION);
        uint256 _pendingSaddle = accumulatedSaddle.sub(user.rewardDebt).toUInt256();

        // Effects
        user.rewardDebt = accumulatedSaddle.sub(int256(amount.mul(pool.accSaddlePerShare) / ACC_SADDLE_PRECISION));
        user.amount = user.amount.sub(amount);

        // Interactions
        SADDLE.safeTransfer(to, _pendingSaddle);

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, msg.sender, to, _pendingSaddle, user.amount);
        }

        lpToken[pid].safeTransfer(to, amount);

        emit Withdraw(msg.sender, pid, amount, to);
        emit Harvest(msg.sender, pid, _pendingSaddle);
    }

    /// @notice Withdraw without caring about rewards. EMERGENCY ONLY.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param to Receiver of the LP tokens.
    function emergencyWithdraw(uint256 pid, address to) public {
        UserInfo storage user = userInfo[pid][msg.sender];
        uint256 amount = user.amount;
        user.amount = 0;
        user.rewardDebt = 0;

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSaddleReward(pid, msg.sender, to, 0, 0);
        }

        // Note: transfer can fail or succeed if `amount` is zero.
        lpToken[pid].safeTransfer(to, amount);
        emit EmergencyWithdraw(msg.sender, pid, amount, to);
    }
}

File 5 of 9 : BoringMath.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
// a library for performing overflow-safe math, updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math)
library BoringMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {require(b == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");}
    function to128(uint256 a) internal pure returns (uint128 c) {
        require(a <= uint128(-1), "BoringMath: uint128 Overflow");
        c = uint128(a);
    }
    function to64(uint256 a) internal pure returns (uint64 c) {
        require(a <= uint64(-1), "BoringMath: uint64 Overflow");
        c = uint64(a);
    }
    function to32(uint256 a) internal pure returns (uint32 c) {
        require(a <= uint32(-1), "BoringMath: uint32 Overflow");
        c = uint32(a);
    }
}

library BoringMath128 {
    function add(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

library BoringMath64 {
    function add(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

library BoringMath32 {
    function add(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

File 6 of 9 : BoringBatchable.sol
// SPDX-License-Identifier: UNLICENSED
// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;
// solhint-disable avoid-low-level-calls

import "./libraries/BoringERC20.sol";

// T1 - T4: OK
contract BaseBoringBatchable {
    function _getRevertMsg(bytes memory _returnData) internal pure returns (string memory) {
        // If the _res length is less than 68, then the transaction failed silently (without a revert message)
        if (_returnData.length < 68) return "Transaction reverted silently";

        assembly {
            // Slice the sighash.
            _returnData := add(_returnData, 0x04)
        }
        return abi.decode(_returnData, (string)); // All that remains is the revert string
    }    
    
    // F3 - F9: OK
    // F1: External is ok here because this is the batch function, adding it to a batch makes no sense
    // F2: Calls in the batch may be payable, delegatecall operates in the same context, so each call in the batch has access to msg.value
    // C1 - C21: OK
    // C3: The length of the loop is fully under user control, so can't be exploited
    // C7: Delegatecall is only used on the same contract, so it's safe
    function batch(bytes[] calldata calls, bool revertOnFail) external payable returns(bool[] memory successes, bytes[] memory results) {
        // Interactions
        successes = new bool[](calls.length);
        results = new bytes[](calls.length);
        for (uint256 i = 0; i < calls.length; i++) {
            (bool success, bytes memory result) = address(this).delegatecall(calls[i]);
            require(success || !revertOnFail, _getRevertMsg(result));
            successes[i] = success;
            results[i] = result;
        }
    }
}

// T1 - T4: OK
contract BoringBatchable is BaseBoringBatchable {
    // F1 - F9: OK
    // F6: Parameters can be used front-run the permit and the user's permit will fail (due to nonce or other revert)
    //     if part of a batch this could be used to grief once as the second call would not need the permit
    // C1 - C21: OK
    function permitToken(IERC20 token, address from, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
        // Interactions
        // X1 - X5
        token.permit(from, to, amount, deadline, v, r, s);
    }
}

File 7 of 9 : BoringOwnable.sol
// SPDX-License-Identifier: MIT
// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;

// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol
// Edited by BoringCrypto

// T1 - T4: OK
contract BoringOwnableData {
    // V1 - V5: OK
    address public owner;
    // V1 - V5: OK
    address public pendingOwner;
}

// T1 - T4: OK
contract BoringOwnable is BoringOwnableData {
    // E1: OK
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () public {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner {
        if (direct) {
            // Checks
            require(newOwner != address(0) || renounce, "Ownable: zero address");

            // Effects
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
            pendingOwner = address(0);
        } else {
            // Effects
            pendingOwner = newOwner;
        }
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function claimOwnership() public {
        address _pendingOwner = pendingOwner;
        
        // Checks
        require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");

        // Effects
        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    // M1 - M5: OK
    // C1 - C21: OK
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
}

File 8 of 9 : SignedSafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

library SignedSafeMath {
    int256 constant private _INT256_MIN = -2**255;

    /**
     * @dev Returns the multiplication of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        require(!(a == -1 && b == _INT256_MIN), "SignedSafeMath: multiplication overflow");

        int256 c = a * b;
        require(c / a == b, "SignedSafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two signed integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0, "SignedSafeMath: division by zero");
        require(!(b == -1 && a == _INT256_MIN), "SignedSafeMath: division overflow");

        int256 c = a / b;

        return c;
    }

    /**
     * @dev Returns the subtraction of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a), "SignedSafeMath: subtraction overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a), "SignedSafeMath: addition overflow");

        return c;
    }

    function toUInt256(int256 a) internal pure returns (uint256) {
        require(a >= 0, "Integer < 0");
        return uint256(a);
    }
}

File 9 of 9 : IRewarder.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
import "@boringcrypto/boring-solidity/contracts/libraries/BoringERC20.sol";
interface IRewarder {
    using BoringERC20 for IERC20;
    function onSaddleReward(uint256 pid, address user, address recipient, uint256 saddleAmount, uint256 newLpAmount) external;
    function pendingTokens(uint256 pid, address user, uint256 saddleAmount) external view returns (IERC20[] memory, uint256[] memory);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  }
}

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_saddle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"lpToken","type":"address"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"saddlePerSecond","type":"uint256"}],"name":"LogSaddlePerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"},{"indexed":false,"internalType":"bool","name":"overwrite","type":"bool"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accSaddlePerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"SADDLE","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"},{"internalType":"bool","name":"revertOnFail","type":"bool"}],"name":"batch","outputs":[{"internalType":"bool[]","name":"successes","type":"bool[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingSaddle","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"permitToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accSaddlePerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"pools","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewarder","outputs":[{"internalType":"contract IRewarder","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saddlePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"},{"internalType":"bool","name":"overwrite","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_saddlePerSecond","type":"uint256"}],"name":"setSaddlePerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accSaddlePerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"internalType":"struct MiniChefV2.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int256","name":"rewardDebt","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawAndHarvest","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040523480156200001157600080fd5b5060405162002bea38038062002bea833981016040819052620000349162000089565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b031916608052620000b9565b6000602082840312156200009b578081fd5b81516001600160a01b0381168114620000b2578182fd5b9392505050565b60805160601c612b09620000e1600039806108a65280610b0152806119555250612b096000f3fe6080604052600436106101965760003560e01c80637b57f716116100e157806393f1a40b1161008a578063d1abb90711610064578063d1abb90714610453578063d2423b5114610473578063dcef47e214610494578063e30c3978146104a957610196565b806393f1a40b146103e5578063ab7de09814610413578063c346253d1461043357610196565b806388bba42f116100bb57806388bba42f146103905780638da5cb5b146103b05780638dbdbe6d146103c557610196565b80637b57f716146103305780637c516e941461035057806384962aba1461037057610196565b80632f940c701161014357806351eb05a61161011d57806351eb05a6146102c357806357a5b58c146102f057806378ed5d1f1461031057610196565b80632f940c701461026c5780634d6227161461028c5780634e71e0c8146102ae57610196565b80631526fe27116101745780631526fe271461020857806317caf6f11461023757806318fccc761461024c57610196565b8063078dfbe71461019b578063081e3eda146101bd5780630ad58d2f146101e8575b600080fd5b3480156101a757600080fd5b506101bb6101b636600461211c565b6104be565b005b3480156101c957600080fd5b506101d26105dd565b6040516101df9190612994565b60405180910390f35b3480156101f457600080fd5b506101bb6102033660046123e1565b6105e3565b34801561021457600080fd5b5061022861022336600461234c565b610795565b6040516101df93929190612960565b34801561024357600080fd5b506101d2610803565b34801561025857600080fd5b506101bb61026736600461237c565b610809565b34801561027857600080fd5b506101bb61028736600461237c565b6109c5565b34801561029857600080fd5b506102a1610aff565b6040516101df91906124cd565b3480156102ba57600080fd5b506101bb610b23565b3480156102cf57600080fd5b506102e36102de36600461234c565b610bc8565b6040516101df919061291d565b3480156102fc57600080fd5b506101bb61030b3660046121b0565b610f15565b34801561031c57600080fd5b506102a161032b36600461234c565b610f4b565b34801561033c57600080fd5b506101bb61034b36600461234c565b610f72565b34801561035c57600080fd5b506101bb61036b36600461220c565b610fdc565b34801561037c57600080fd5b506101d261038b36600461237c565b611069565b34801561039c57600080fd5b506101bb6103ab36600461240e565b6112ab565b3480156103bc57600080fd5b506102a1611430565b3480156103d157600080fd5b506101bb6103e03660046123e1565b61143f565b3480156103f157600080fd5b5061040561040036600461237c565b6115ec565b6040516101df9291906129dc565b34801561041f57600080fd5b506101bb61042e3660046123ab565b611610565b34801561043f57600080fd5b506102a161044e36600461234c565b611868565b34801561045f57600080fd5b506101bb61046e3660046123e1565b611875565b610486610481366004612166565b611ad3565b6040516101df92919061255f565b3480156104a057600080fd5b506101d2611c65565b3480156104b557600080fd5b506102a1611c6b565b6000546001600160a01b031633146104f15760405162461bcd60e51b81526004016104e8906127b3565b60405180910390fd5b81156105a4576001600160a01b03831615158061050b5750805b6105275760405162461bcd60e51b81526004016104e89061270e565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556001805490911690556105d8565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0385161790555b505050565b60025490565b6105eb6120b3565b6105f484610bc8565b6000858152600560209081526040808320338452909152902081519192509061064f9064e8d4a510009061063b9087906fffffffffffffffffffffffffffffffff16611c7a565b8161064257fe5b6001840154919004611cb7565b600182015580546106609085611d04565b815560048054600091908790811061067457fe5b6000918252602090912001546001600160a01b0316905080156107135781546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b916106e0918a9133918a916000919060040161299d565b600060405180830381600087803b1580156106fa57600080fd5b505af115801561070e573d6000803e3d6000fd5b505050505b61074184866003898154811061072557fe5b6000918252602090912001546001600160a01b03169190611d27565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107859190612994565b60405180910390a4505050505050565b600281815481106107a257fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff8116915067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b60065481565b6108116120b3565b61081a83610bc8565b6000848152600560209081526040808320338452909152812082518154939450909264e8d4a510009161085f91906fffffffffffffffffffffffffffffffff16611c7a565b8161086657fe5b049050600061088a610885846001015484611cb790919063ffffffff16565b611e2a565b60018401839055905080156108cd576108cd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611d27565b6000600487815481106108dc57fe5b6000918252602090912001546001600160a01b03169050801561097a5783546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b91610947918b9133918c9189919060040161299d565b600060405180830381600087803b15801561096157600080fd5b505af1158015610975573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954846040516109b49190612994565b60405180910390a350505050505050565b600082815260056020908152604080832033845290915281208054828255600182018390556004805492939192869081106109fc57fe5b6000918252602090912001546001600160a01b031690508015610a9a576040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063cde63d9b90610a6790889033908990600090819060040161299d565b600060405180830381600087803b158015610a8157600080fd5b505af1158015610a95573d6000803e3d6000fd5b505050505b610aac84836003888154811061072557fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610af09190612994565b60405180910390a45050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b0316338114610b4e5760405162461bcd60e51b81526004016104e8906127e8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b610bd06120b3565b60028281548110610bdd57fe5b60009182526020918290206040805160608101825292909101546fffffffffffffffffffffffffffffffff8116835267ffffffffffffffff70010000000000000000000000000000000082048116948401859052780100000000000000000000000000000000000000000000000090910416908201529150421115610f1057600060038381548110610c6b57fe5b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a0823190610cbd9030906004016124cd565b60206040518083038186803b158015610cd557600080fd5b505afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d9190612364565b90508015610dca576000610d38836020015167ffffffffffffffff1642611d0490919063ffffffff16565b90506000600654610d6c856040015167ffffffffffffffff16610d6660075486611c7a90919063ffffffff16565b90611c7a565b81610d7357fe5b049050610db3610d9984610d8c8464e8d4a51000611c7a565b81610d9357fe5b04611e50565b85516fffffffffffffffffffffffffffffffff1690611e82565b6fffffffffffffffffffffffffffffffff16845250505b610dd342611eba565b67ffffffffffffffff1660208301526002805483919085908110610df357fe5b6000918252602091829020835191018054848401516040958601517fffffffffffffffffffffffffffffffff000000000000000000000000000000009092166fffffffffffffffffffffffffffffffff909416939093177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000067ffffffffffffffff948516021777ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000093909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610f0692909186916129ea565b60405180910390a2505b919050565b8060005b81811015610f4557610f3c848483818110610f3057fe5b90506020020135610bc8565b50600101610f19565b50505050565b60038181548110610f5857fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610f9c5760405162461bcd60e51b81526004016104e8906127b3565b60078190556040517fc284691de232f1b12c9423199d8d3955a77f2bc981ef6567c9d6c82493cb292190610fd1908390612994565b60405180910390a150565b6040517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b0389169063d505accf9061102d908a908a908a908a908a908a908a90600401612505565b600060405180830381600087803b15801561104757600080fd5b505af115801561105b573d6000803e3d6000fd5b505050505050505050505050565b60006110736120b3565b6002848154811061108057fe5b600091825260208083206040805160608101825291909301546fffffffffffffffffffffffffffffffff808216835267ffffffffffffffff7001000000000000000000000000000000008304811684860152780100000000000000000000000000000000000000000000000090920490911682850152888552600583528385206001600160a01b038916865290925291832082516003805494965091949216928890811061112a57fe5b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a082319061117c9030906004016124cd565b60206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612364565b9050836020015167ffffffffffffffff16421180156111ea57508015155b15611272576000611212856020015167ffffffffffffffff1642611d0490919063ffffffff16565b90506000600654611240876040015167ffffffffffffffff16610d6660075486611c7a90919063ffffffff16565b8161124757fe5b04905061126d8361125d8364e8d4a51000611c7a565b8161126457fe5b86919004611ee4565b935050505b600183015483546112a0916108859164e8d4a51000906112929087611c7a565b8161129957fe5b0490611cb7565b979650505050505050565b6000546001600160a01b031633146112d55760405162461bcd60e51b81526004016104e8906127b3565b61132a83611324600287815481106112e957fe5b600091825260209091200154600654907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16611d04565b90611ee4565b60065561133683611eba565b6002858154811061134357fe5b9060005260206000200160000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080156113b957816004858154811061138a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806113e557600484815481106113cb57fe5b6000918252602090912001546001600160a01b03166113e7565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e186585846040516114229291906129cc565b60405180910390a350505050565b6000546001600160a01b031681565b6114476120b3565b61145084610bc8565b60008581526005602090815260408083206001600160a01b038716845290915290208054919250906114829085611ee4565b815581516114c29064e8d4a51000906114ae9087906fffffffffffffffffffffffffffffffff16611c7a565b816114b557fe5b6001840154919004611f07565b81600101819055506000600486815481106114d957fe5b6000918252602090912001546001600160a01b0316905080156115785781546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b91611545918a91899182916000919060040161299d565b600060405180830381600087803b15801561155f57600080fd5b505af1158015611573573d6000803e3d6000fd5b505050505b6115a833308760038a8154811061158b57fe5b6000918252602090912001546001600160a01b0316929190611f4d565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107859190612994565b60056020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b0316331461163a5760405162461bcd60e51b81526004016104e8906127b3565b6006546116479084611ee4565b6006556003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560048054938401815560009081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90930180549285169290911691909117905560408051606081019091529081526002906020810161170c42611eba565b67ffffffffffffffff16815260200161172486611eba565b67ffffffffffffffff908116909152825460018181018555600094855260209485902084519201805495850151604090950151841678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff95909416700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909716969096179290921694909417929092161790556003546001600160a01b03808416929085169161182c91611d04565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161185b9190612994565b60405180910390a4505050565b60048181548110610f5857fe5b61187d6120b3565b61188684610bc8565b6000858152600560209081526040808320338452909152812082518154939450909264e8d4a51000916118cb91906fffffffffffffffffffffffffffffffff16611c7a565b816118d257fe5b04905060006118f1610885846001015484611cb790919063ffffffff16565b905061193564e8d4a5100061192586600001516fffffffffffffffffffffffffffffffff1689611c7a90919063ffffffff16565b8161192c57fe5b84919004611cb7565b600184015582546119469087611d04565b835561197c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611d27565b60006004888154811061198b57fe5b6000918252602090912001546001600160a01b031690508015611a295783546040517fcde63d9b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163cde63d9b916119f6918c9133918c9189919060040161299d565b600060405180830381600087803b158015611a1057600080fd5b505af1158015611a24573d6000803e3d6000fd5b505050505b611a3b868860038b8154811061072557fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611a7f9190612994565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611ac19190612994565b60405180910390a35050505050505050565b6060808367ffffffffffffffff81118015611aed57600080fd5b50604051908082528060200260200182016040528015611b17578160200160208202803683370190505b5091508367ffffffffffffffff81118015611b3157600080fd5b50604051908082528060200260200182016040528015611b6557816020015b6060815260200190600190039081611b505790505b50905060005b84811015611c5c576000606030888885818110611b8457fe5b9050602002810190611b969190612a1e565b604051611ba49291906124a1565b600060405180830381855af49150503d8060008114611bdf576040519150601f19603f3d011682016040523d82523d6000602084013e611be4565b606091505b50915091508180611bf3575085155b611bfc82612053565b90611c1a5760405162461bcd60e51b81526004016104e891906125f9565b5081858481518110611c2857fe5b60200260200101901515908115158152505080848481518110611c4757fe5b60209081029190910101525050600101611b6b565b50935093915050565b60075481565b6001546001600160a01b031681565b6000811580611c9557505080820282828281611c9257fe5b04145b611cb15760405162461bcd60e51b81526004016104e8906128e6565b92915050565b6000818303818312801590611ccc5750838113155b80611ce15750600083128015611ce157508381135b611cfd5760405162461bcd60e51b81526004016104e890612854565b9392505050565b80820382811115611cb15760405162461bcd60e51b81526004016104e89061260c565b60006060846001600160a01b031663a9059cbb8585604051602401611d4d929190612546565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d9b91906124b1565b6000604051808303816000865af19150503d8060008114611dd8576040519150601f19603f3d011682016040523d82523d6000602084013e611ddd565b606091505b5091509150818015611e07575080511580611e07575080806020019051810190611e0791906121f0565b611e235760405162461bcd60e51b81526004016104e89061267a565b5050505050565b600080821215611e4c5760405162461bcd60e51b81526004016104e890612643565b5090565b60006fffffffffffffffffffffffffffffffff821115611e4c5760405162461bcd60e51b81526004016104e890612745565b8181016fffffffffffffffffffffffffffffffff8083169082161015611cb15760405162461bcd60e51b81526004016104e89061277c565b600067ffffffffffffffff821115611e4c5760405162461bcd60e51b81526004016104e89061281d565b81810181811015611cb15760405162461bcd60e51b81526004016104e89061277c565b6000828201818312801590611f1c5750838112155b80611f315750600083128015611f3157508381125b611cfd5760405162461bcd60e51b81526004016104e8906126b1565b60006060856001600160a01b03166323b872dd868686604051602401611f75939291906124e1565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fc391906124b1565b6000604051808303816000865af19150503d8060008114612000576040519150601f19603f3d011682016040523d82523d6000602084013e612005565b606091505b509150915081801561202f57508051158061202f57508080602001905181019061202f91906121f0565b61204b5760405162461bcd60e51b81526004016104e8906128b1565b505050505050565b6060604482511015612099575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006020820152610f10565b60048201915081806020019051810190611cb19190612293565b604080516060810182526000808252602082018190529181019190915290565b60008083601f8401126120e4578182fd5b50813567ffffffffffffffff8111156120fb578182fd5b602083019150836020808302850101111561211557600080fd5b9250929050565b600080600060608486031215612130578283fd5b833561213b81612aad565b9250602084013561214b81612ac5565b9150604084013561215b81612ac5565b809150509250925092565b60008060006040848603121561217a578283fd5b833567ffffffffffffffff811115612190578384fd5b61219c868287016120d3565b909450925050602084013561215b81612ac5565b600080602083850312156121c2578182fd5b823567ffffffffffffffff8111156121d8578283fd5b6121e4858286016120d3565b90969095509350505050565b600060208284031215612201578081fd5b8151611cfd81612ac5565b600080600080600080600080610100898b031215612228578384fd5b883561223381612aad565b9750602089013561224381612aad565b9650604089013561225381612aad565b9550606089013594506080890135935060a089013560ff81168114612276578384fd5b979a969950949793969295929450505060c08201359160e0013590565b6000602082840312156122a4578081fd5b815167ffffffffffffffff808211156122bb578283fd5b818401915084601f8301126122ce578283fd5b8151818111156122dc578384fd5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116820101818110848211171561231a578586fd5b604052818152838201602001871015612331578485fd5b612342826020830160208701612a81565b9695505050505050565b60006020828403121561235d578081fd5b5035919050565b600060208284031215612375578081fd5b5051919050565b6000806040838503121561238e578182fd5b8235915060208301356123a081612aad565b809150509250929050565b6000806000606084860312156123bf578283fd5b8335925060208401356123d181612aad565b9150604084013561215b81612aad565b6000806000606084860312156123f5578283fd5b8335925060208401359150604084013561215b81612aad565b60008060008060808587031215612423578182fd5b8435935060208501359250604085013561243c81612aad565b9150606085013561244c81612ac5565b939692955090935050565b6000815180845261246f816020860160208601612a81565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b600082516124c3818460208701612a81565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b8281101561259a57815115158452928401929084019060010161257c565b505050838103828501528085516125b18184612994565b91508192508381028201848801865b838110156125ea5785830385526125d8838351612457565b948701949250908601906001016125c0565b50909998505050505050505050565b600060208252611cfd6020830184612457565b60208082526015908201527f426f72696e674d6174683a20556e646572666c6f770000000000000000000000604082015260600190565b6020808252600b908201527f496e7465676572203c2030000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260408201527f666c6f7700000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516fffffffffffffffffffffffffffffffff16815260208083015167ffffffffffffffff90811691830191909152604092830151169181019190915260600190565b6fffffffffffffffffffffffffffffffff93909316835267ffffffffffffffff918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b67ffffffffffffffff93909316835260208301919091526fffffffffffffffffffffffffffffffff16604082015260600190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612a52578283fd5b83018035915067ffffffffffffffff821115612a6c578283fd5b60200191503681900382131561211557600080fd5b60005b83811015612a9c578181015183820152602001612a84565b83811115610f455750506000910152565b6001600160a01b0381168114612ac257600080fd5b50565b8015158114612ac257600080fdfea2646970667358221220cb341dc9dce12179167d534ee2407db8008dffe4d16bec80d289b62413ad9d6a64736f6c634300060c003300000000000000000000000075c9bc761d88f70156daf83aa010e84680baf131

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

00000000000000000000000075c9bc761d88f70156daf83aa010e84680baf131

-----Decoded View---------------
Arg [0] : _saddle (address): 0x75c9bc761d88f70156daf83aa010e84680baf131

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000075c9bc761d88f70156daf83aa010e84680baf131


Deployed ByteCode Sourcemap

865:11561:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:472:1;;;;;;;;;;-1:-1:-1;774:472:1;;;;;:::i;:::-;;:::i;:::-;;3267:98:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8786:665;;;;;;;;;;-1:-1:-1;8786:665:5;;;;;:::i;:::-;;:::i;1734:26::-;;;;;;;;;;-1:-1:-1;1734:26:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2173:30::-;;;;;;;;;;;;;:::i;9626:792::-;;;;;;;;;;-1:-1:-1;9626:792:5;;;;;:::i;:::-;;:::i;11862:562::-;;;;;;;;;;-1:-1:-1;11862:562:5;;;;;:::i;:::-;;:::i;1657:30::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1295:348:1:-;;;;;;;;;;;;;:::i;6888:779:5:-;;;;;;;;;;-1:-1:-1;6888:779:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6521:188::-;;;;;;;;;;-1:-1:-1;6521:188:5;;;;;:::i;:::-;;:::i;1826:23::-;;;;;;;;;;-1:-1:-1;1826:23:5;;;;;:::i;:::-;;:::i;5144:173::-;;;;;;;;;;-1:-1:-1;5144:173:5;;;;;:::i;:::-;;:::i;2161:246:0:-;;;;;;;;;;-1:-1:-1;2161:246:0;;;;;:::i;:::-;;:::i;5541:802:5:-;;;;;;;;;;-1:-1:-1;5541:802:5;;;;;:::i;:::-;;:::i;4554:406::-;;;;;;;;;;-1:-1:-1;4554:406:5;;;;;:::i;:::-;;:::i;350:20:1:-;;;;;;;;;;;;;:::i;7906:674:5:-;;;;;;;;;;-1:-1:-1;7906:674:5;;;;;:::i;:::-;;:::i;2008:66::-;;;;;;;;;;-1:-1:-1;2008:66:5;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3697:469::-;;;;;;;;;;-1:-1:-1;3697:469:5;;;;;:::i;:::-;;:::i;1917:27::-;;;;;;;;;;-1:-1:-1;1917:27:5;;;;;:::i;:::-;;:::i;10695:987::-;;;;;;;;;;-1:-1:-1;10695:987:5;;;;;:::i;:::-;;:::i;1260:554:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2210:30:5:-;;;;;;;;;;;;;:::i;397:27:1:-;;;;;;;;;;;;;:::i;774:472::-;1746:5;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;;;;;;;;;879:6:::1;875:364;;;-1:-1:-1::0;;;;;933:22:1;::::1;::::0;::::1;::::0;:34:::1;;;959:8;933:34;925:68;;;;-1:-1:-1::0;;;925:68:1::1;;;;;;;:::i;:::-;1060:5;::::0;;1039:37:::1;::::0;-1:-1:-1;;;;;1039:37:1;;::::1;::::0;1060:5;::::1;::::0;1039:37:::1;::::0;::::1;1091:5;:16:::0;;-1:-1:-1;;;;;1091:16:1;::::1;::::0;;;::::1;;::::0;;;;1122:25;;;;::::1;::::0;;875:364:::1;;;1204:12;:23:::0;;;::::1;-1:-1:-1::0;;;;;1204:23:1;::::1;;::::0;;875:364:::1;774:472:::0;;;:::o;3267:98:5:-;3343:8;:15;;3267:98::o;8786:665::-;8862:20;;:::i;:::-;8885:15;8896:3;8885:10;:15::i;:::-;8910:21;8934:13;;;:8;:13;;;;;;;;8948:10;8934:25;;;;;;;9045:22;;8862:38;;-1:-1:-1;8934:25:5;9007:86;;2294:4;;9034:34;;:6;;:34;;:10;:34::i;:::-;:57;;;;;9007:15;;;;;9034:57;;9007:19;:86::i;:::-;8989:15;;;:104;9117:11;;:23;;9133:6;9117:15;:23::i;:::-;9103:37;;9197:8;:13;;9103:11;;9197:8;9206:3;;9197:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9197:13:5;;-1:-1:-1;9224:32:5;;9220:124;;9321:11;;9272:61;;;;;-1:-1:-1;;;;;9272:24:5;;;;;:61;;9297:3;;9302:10;;9314:2;;9318:1;;9321:11;9272:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9220:124;9354:37;9380:2;9384:6;9354:7;9362:3;9354:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9354:12:5;;:37;:25;:37::i;:::-;9441:2;-1:-1:-1;;;;;9407:37:5;9428:3;9416:10;-1:-1:-1;;;;;9407:37:5;;9433:6;9407:37;;;;;;:::i;:::-;;;;;;;;8786:665;;;;;;:::o;1734:26::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1734:26:5;;;;;;;;;;;;:::o;2173:30::-;;;;:::o;9626:792::-;9685:20;;:::i;:::-;9708:15;9719:3;9708:10;:15::i;:::-;9733:21;9757:13;;;:8;:13;;;;;;;;9771:10;9757:25;;;;;;;9842:22;;9826:11;;9685:38;;-1:-1:-1;9757:25:5;;2294:4;;9826:39;;:11;:39;;:15;:39::i;:::-;:62;;;;;;9792:97;;9899:22;9924:50;:38;9946:4;:15;;;9924:17;:21;;:38;;;;:::i;:::-;:48;:50::i;:::-;10004:15;;;:35;;;9899:75;-1:-1:-1;10078:19:5;;10074:89;;10113:39;-1:-1:-1;;;;;10113:6:5;:19;10133:2;10137:14;10113:19;:39::i;:::-;10173:19;10195:8;10204:3;10195:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10195:13:5;;-1:-1:-1;10222:32:5;;10218:138;;10333:11;;10270:75;;;;;-1:-1:-1;;;;;10270:24:5;;;;;:75;;10296:3;;10301:10;;10313:2;;10317:14;;10333:11;10270:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10218:138;10391:3;10379:10;-1:-1:-1;;;;;10371:40:5;;10396:14;10371:40;;;;;;:::i;:::-;;;;;;;;9626:792;;;;;;;:::o;11862:562::-;11931:21;11955:13;;;:8;:13;;;;;;;;11969:10;11955:25;;;;;;;12007:11;;12028:15;;;-1:-1:-1;12053:15:5;;:19;;;12105:8;:13;;11955:25;;12007:11;;11964:3;;12105:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12105:13:5;;-1:-1:-1;12132:32:5;;12128:114;;12180:51;;;;;-1:-1:-1;;;;;12180:24:5;;;;;:51;;12205:3;;12210:10;;12222:2;;12226:1;;;;12180:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12128:114;12319:37;12345:2;12349:6;12319:7;12327:3;12319:12;;;;;;;:37;12414:2;-1:-1:-1;;;;;12371:46:5;12401:3;12389:10;-1:-1:-1;;;;;12371:46:5;;12406:6;12371:46;;;;;;:::i;:::-;;;;;;;;11862:562;;;;;:::o;1657:30::-;;;:::o;1295:348:1:-;1363:12;;-1:-1:-1;;;;;1363:12:1;1423:10;:27;;1415:72;;;;-1:-1:-1;;;1415:72:1;;;;;;;:::i;:::-;1546:5;;;1525:42;;-1:-1:-1;;;;;1525:42:1;;;;1546:5;;;1525:42;;;1578:5;:21;;-1:-1:-1;;;;;1578:21:1;;;;;;;;;;;1610:25;;;;;;;1295:348::o;6888:779:5:-;6937:20;;:::i;:::-;6976:8;6985:3;6976:13;;;;;;;;;;;;;;;;;6969:20;;;;;;;;6976:13;;;;6969:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7003:15:5;:37;6999:662;;;7056:16;7075:7;7083:3;7075:12;;;;;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;7075:12:5;;;;:22;;:37;;7106:4;;7075:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7056:56;-1:-1:-1;7130:12:5;;7126:341;;7162:12;7177:40;7197:4;:19;;;7177:40;;:15;:19;;:40;;;;:::i;:::-;7162:55;;7235:20;7307:15;;7258:46;7288:4;:15;;;7258:46;;:25;7267:15;;7258:4;:8;;:25;;;;:::i;:::-;:29;;:46::i;:::-;:64;;;;;;;-1:-1:-1;7365:87:5;7392:59;7434:8;7393:38;7258:64;2294:4;7393:16;:38::i;:::-;:49;;;;;;7392:57;:59::i;:::-;7365:22;;:26;;;;:87::i;:::-;7340:112;;;;-1:-1:-1;;7126:341:5;7502:22;:15;:20;:22::i;:::-;7480:44;;:19;;;:44;7538:8;:13;;7480:4;;7538:8;7547:3;;7538:13;;;;;;;;;;;;;;;:20;;:13;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7596:19;;;7627:22;;7577:73;;7591:3;;7577:73;;;;7596:19;;7617:8;;7577:73;:::i;:::-;;;;;;;;6999:662;;6888:779;;;:::o;6521:188::-;6604:4;6590:11;6625:78;6649:3;6645:1;:7;6625:78;;;6673:19;6684:4;;6689:1;6684:7;;;;;;;;;;;;;6673:10;:19::i;:::-;-1:-1:-1;6654:3:5;;6625:78;;;;6521:188;;;:::o;1826:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1826:23:5;;-1:-1:-1;1826:23:5;:::o;5144:173::-;1746:5:1;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;5225:15:5::1;:34:::0;;;5274:36:::1;::::0;::::1;::::0;::::1;::::0;5243:16;;5274:36:::1;:::i;:::-;;;;;;;;5144:173:::0;:::o;2161:246:0:-;2350:49;;;;;-1:-1:-1;;;;;2350:12:0;;;;;:49;;2363:4;;2369:2;;2373:6;;2381:8;;2391:1;;2394;;2397;;2350:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2161:246;;;;;;;;:::o;5541:802:5:-;5616:15;5643:20;;:::i;:::-;5666:8;5675:4;5666:14;;;;;;;;;;;;;;;;5643:37;;;;;;;;5666:14;;;;5643:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5714:14;;;:8;:14;;;;;-1:-1:-1;;;;;5714:21:5;;;;;;;;;;5773:22;;5824:7;:13;;5643:37;;-1:-1:-1;5714:21:5;;5745:50;;;5723:4;;5824:13;;;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;;;5824:13:5;;;;:23;;:38;;5856:4;;5824:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5805:57;;5894:4;:19;;;5876:37;;:15;:37;:54;;;;-1:-1:-1;5917:13:5;;;5876:54;5872:347;;;5946:12;5961:40;5981:4;:19;;;5961:40;;:15;:19;;:40;;;;:::i;:::-;5946:55;;6015:20;6087:15;;6038:46;6068:4;:15;;;6038:46;;:25;6047:15;;6038:4;:8;;:25;;;;:::i;:46::-;:64;;;;;;;-1:-1:-1;6136:72:5;6199:8;6158:38;6038:64;2294:4;6158:16;:38::i;:::-;:49;;;;;6136:17;;6158:49;;6136:21;:72::i;:::-;6116:92;;5872:347;;;6308:15;;;;6245:11;;6238:98;;:86;;2294:4;;6245:34;;6261:17;6245:15;:34::i;:::-;:57;;;;;;;6238:69;:86::i;:98::-;6228:108;5541:802;-1:-1:-1;;;;;;;5541:802:5:o;4554:406::-;1746:5:1;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;4684:63:5::1;4735:11;4684:46;4704:8;4713:4;4704:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:25:::0;4684:15:::1;::::0;;4704:25;;::::1;;;4684:19;:46::i;:::-;:50:::0;::::1;:63::i;:::-;4666:15;:81:::0;4785:18:::1;:11:::0;:16:::1;:18::i;:::-;4757:8;4766:4;4757:14;;;;;;;;;;;;;;;:25;;;:46;;;;;;;;;;;;;;;;;;4817:9;4813:46;;;4847:9;4830:8;4839:4;4830:14;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1::0;;;;;4830:26:5::1;;;;;-1:-1:-1::0;;;;;4830:26:5::1;;;;;;4813:46;4903:9;:38;;4927:8;4936:4;4927:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;4927:14:5::1;4903:38;;;4915:9;4903:38;-1:-1:-1::0;;;;;4873:80:5::1;4884:4;4873:80;4890:11;4943:9;4873:80;;;;;;;:::i;:::-;;;;;;;;4554:406:::0;;;;:::o;350:20:1:-;;;-1:-1:-1;;;;;350:20:1;;:::o;7906:674:5:-;7981:20;;:::i;:::-;8004:15;8015:3;8004:10;:15::i;:::-;8029:21;8053:13;;;:8;:13;;;;;;;;-1:-1:-1;;;;;8053:17:5;;;;;;;;;8114:11;;7981:38;;-1:-1:-1;8053:17:5;8114:23;;8130:6;8114:15;:23::i;:::-;8100:37;;8203:22;;8165:86;;2294:4;;8192:34;;:6;;:34;;:10;:34::i;:::-;:57;;;;;8165:15;;;;;8192:57;;8165:19;:86::i;:::-;8147:4;:15;;:104;;;;8286:19;8308:8;8317:3;8308:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8308:13:5;;-1:-1:-1;8335:32:5;;8331:116;;8424:11;;8383:53;;;;;-1:-1:-1;;;;;8383:24:5;;;;;:53;;8408:3;;8413:2;;;;8421:1;;8424:11;8383:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8331:116;8457:64;8487:10;8507:4;8514:6;8457:7;8465:3;8457:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8457:12:5;;:64;;:29;:64::i;:::-;8570:2;-1:-1:-1;;;;;8537:36:5;8557:3;8545:10;-1:-1:-1;;;;;8537:36:5;;8562:6;8537:36;;;;;;:::i;2008:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3697:469::-;1746:5:1;;-1:-1:-1;;;;;1746:5:1;1732:10;:19;1724:64;;;;-1:-1:-1;;;1724:64:1;;;;;;;:::i;:::-;3813:15:5::1;::::0;:31:::1;::::0;3833:10;3813:19:::1;:31::i;:::-;3795:15;:49:::0;3854:7:::1;:22:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;3854:22:5;;::::1;::::0;;;::::1;;::::0;;;3886:8:::1;:24:::0;;;;::::1;::::0;;-1:-1:-1;3886:24:5;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3935:137:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;3921:8:::1;::::0;3854:22:::1;3935:137:::0;::::1;4009:22;:15;:20;:22::i;:::-;3935:137;;;;;;3966:17;:10;:15;:17::i;:::-;3935:137;::::0;;::::1;::::0;;;3921:152;;::::1;::::0;;::::1;::::0;;-1:-1:-1;3921:152:5;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;;::::0;;4104:7:::1;:14:::0;-1:-1:-1;;;;;4088:71:5;;::::1;::::0;;;::::1;::::0;4104:21:::1;::::0;:18:::1;:21::i;:::-;4088:71;4127:10;4088:71;;;;;;:::i;:::-;;;;;;;;3697:469:::0;;;:::o;1917:27::-;;;;;;;;;;10695:987;10781:20;;:::i;:::-;10804:15;10815:3;10804:10;:15::i;:::-;10829:21;10853:13;;;:8;:13;;;;;;;;10867:10;10853:25;;;;;;;10938:22;;10922:11;;10781:38;;-1:-1:-1;10853:25:5;;2294:4;;10922:39;;:11;:39;;:15;:39::i;:::-;:62;;;;;;10888:97;;10995:22;11020:50;:38;11042:4;:15;;;11020:17;:21;;:38;;;;:::i;:50::-;10995:75;;11118:88;2294:4;11147:34;11158:4;:22;;;11147:34;;:6;:10;;:34;;;;:::i;:::-;:57;;;;;11118:17;;11147:57;;11118:21;:88::i;:::-;11100:15;;;:106;11230:11;;:23;;11246:6;11230:15;:23::i;:::-;11216:37;;11288:39;-1:-1:-1;;;;;11288:6:5;:19;11308:2;11312:14;11288:19;:39::i;:::-;11338:19;11360:8;11369:3;11360:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11360:13:5;;-1:-1:-1;11387:32:5;;11383:137;;11497:11;;11435:74;;;;;-1:-1:-1;;;;;11435:24:5;;;;;:74;;11460:3;;11465:10;;11477:2;;11481:14;;11497:11;11435:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11383:137;11530:37;11556:2;11560:6;11530:7;11538:3;11530:12;;;;;;;:37;11617:2;-1:-1:-1;;;;;11583:37:5;11604:3;11592:10;-1:-1:-1;;;;;11583:37:5;;11609:6;11583:37;;;;;;:::i;:::-;;;;;;;;11655:3;11643:10;-1:-1:-1;;;;;11635:40:5;;11660:14;11635:40;;;;;;:::i;:::-;;;;;;;;10695:987;;;;;;;;:::o;1260:554:0:-;1343:23;;1451:5;1440:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1440:24:0;-1:-1:-1;1428:36:0;-1:-1:-1;1497:5:0;1485:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1475:35;;1526:9;1521:286;1541:16;;;1521:286;;;1580:12;1594:19;1625:4;1644:5;;1650:1;1644:8;;;;;;;;;;;;;;;;;;:::i;:::-;1617:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:74;;;;1676:7;:24;;;;1688:12;1687:13;1676:24;1702:21;1716:6;1702:13;:21::i;:::-;1668:56;;;;;-1:-1:-1;;;1668:56:0;;;;;;;;:::i;:::-;;1754:7;1739:9;1749:1;1739:12;;;;;;;;;;;;;:22;;;;;;;;;;;1789:6;1776:7;1784:1;1776:10;;;;;;;;;;;;;;;;;:19;-1:-1:-1;;1559:3:0;;1521:286;;;;1260:554;;;;;;:::o;2210:30:5:-;;;;:::o;397:27:1:-;;;-1:-1:-1;;;;;397:27:1;;:::o;470:137:4:-;528:9;548:6;;;:28;;-1:-1:-1;;563:5:4;;;575:1;570;563:5;570:1;558:13;;;;;:18;548:28;540:65;;;;-1:-1:-1;;;540:65:4;;;;;;;:::i;:::-;470:137;;;;:::o;1895:213:8:-;1951:6;1980:5;;;2004:6;;;;;;:16;;;2019:1;2014;:6;;2004:16;2003:38;;;;2030:1;2026;:5;:14;;;;;2039:1;2035;:5;2026:14;1995:87;;;;-1:-1:-1;;;1995:87:8;;;;;;;:::i;:::-;2100:1;1895:213;-1:-1:-1;;;1895:213:8:o;342:122:4:-;425:5;;;420:16;;;;412:50;;;;-1:-1:-1;;;412:50:4;;;;;;;:::i;951:304:3:-;1036:12;1050:17;1079:5;-1:-1:-1;;;;;1071:19:3;1114:10;1126:2;1130:6;1091:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1071:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:103;;;;1157:7;:57;;;;-1:-1:-1;1169:11:3;;:16;;:44;;;1200:4;1189:24;;;;;;;;;;;;:::i;:::-;1149:98;;;;-1:-1:-1;;;1149:98:3;;;;;;;:::i;:::-;951:304;;;;;:::o;2557:135:8:-;2609:7;2641:1;2636;:6;;2628:30;;;;-1:-1:-1;;;2628:30:8;;;;;;;:::i;:::-;-1:-1:-1;2683:1:8;2557:135::o;613:161:4:-;662:9;692:16;;;;684:57;;;;-1:-1:-1;;;684:57:4;;;;;;;:::i;1134:125::-;1217:5;;;1212:16;;;;;;;;;1204:53;;;;-1:-1:-1;;;1204:53:4;;;;;;;:::i;780:156::-;828:8;857:15;;;;849:55;;;;-1:-1:-1;;;849:55:4;;;;;;;:::i;211:125::-;294:5;;;289:16;;;;281:53;;;;-1:-1:-1;;;281:53:4;;;;;;;:::i;2341:210:8:-;2397:6;2426:5;;;2450:6;;;;;;:16;;;2465:1;2460;:6;;2450:16;2449:38;;;;2476:1;2472;:5;:14;;;;;2485:1;2481;:5;2472:14;2441:84;;;;-1:-1:-1;;;2441:84:8;;;;;;;:::i;1263:332:3:-;1366:12;1380:17;1409:5;-1:-1:-1;;;;;1401:19:3;1444:10;1456:4;1462:2;1466:6;1421:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1365:109;;;;1493:7;:57;;;;-1:-1:-1;1505:11:3;;:16;;:44;;;1536:4;1525:24;;;;;;;;;;;;:::i;:::-;1485:102;;;;-1:-1:-1;;;1485:102:3;;;;;;;:::i;:::-;1263:332;;;;;;:::o;304:496:0:-;376:13;539:2;518:11;:18;:23;514:67;;;-1:-1:-1;543:38:0;;;;;;;;;;;;;;;;;;;514:67;685:4;672:11;668:22;653:37;;729:11;718:33;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;158:363::-;;;299:3;292:4;284:6;280:17;276:27;266:2;;-1:-1;;307:12;266:2;-1:-1;337:20;;377:18;366:30;;363:2;;;-1:-1;;399:12;363:2;443:4;435:6;431:17;419:29;;494:3;443:4;;478:6;474:17;435:6;460:32;;457:41;454:2;;;511:1;;501:12;454:2;259:262;;;;;:::o;2512:479::-;;;;2644:2;2632:9;2623:7;2619:23;2615:32;2612:2;;;-1:-1;;2650:12;2612:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2702:63;-1:-1;2802:2;2838:22;;971:20;996:30;971:20;996:30;:::i;:::-;2810:60;-1:-1;2907:2;2943:22;;971:20;996:30;971:20;996:30;:::i;:::-;2915:60;;;;2606:385;;;;;:::o;2998:538::-;;;;3162:2;3150:9;3141:7;3137:23;3133:32;3130:2;;;-1:-1;;3168:12;3130:2;3226:17;3213:31;3264:18;3256:6;3253:30;3250:2;;;-1:-1;;3286:12;3250:2;3324:91;3407:7;3398:6;3387:9;3383:22;3324:91;:::i;:::-;3306:109;;-1:-1;3306:109;-1:-1;;3452:2;3488:22;;971:20;996:30;971:20;996:30;:::i;3543:397::-;;;3682:2;3670:9;3661:7;3657:23;3653:32;3650:2;;;-1:-1;;3688:12;3650:2;3746:17;3733:31;3784:18;3776:6;3773:30;3770:2;;;-1:-1;;3806:12;3770:2;3844:80;3916:7;3907:6;3896:9;3892:22;3844:80;:::i;:::-;3826:98;;;;-1:-1;3644:296;-1:-1;;;;3644:296::o;3947:257::-;;4059:2;4047:9;4038:7;4034:23;4030:32;4027:2;;;-1:-1;;4065:12;4027:2;1119:6;1113:13;1131:30;1155:5;1131:30;:::i;4211:1145::-;;;;;;;;;4446:3;4434:9;4425:7;4421:23;4417:33;4414:2;;;-1:-1;;4453:12;4414:2;1404:6;1391:20;1416:47;1457:5;1416:47;:::i;:::-;4505:77;-1:-1;4619:2;4658:22;;72:20;97:33;72:20;97:33;:::i;:::-;4627:63;-1:-1;4727:2;4766:22;;72:20;97:33;72:20;97:33;:::i;:::-;4735:63;-1:-1;4835:2;4874:22;;2168:20;;-1:-1;4943:3;4983:22;;2168:20;;-1:-1;5052:3;5090:22;;2444:20;37495:4;37484:16;;40106:33;;40096:2;;-1:-1;;40143:12;40096:2;4408:948;;;;-1:-1;4408:948;;;;;;5061:61;;-1:-1;;;5159:3;5199:22;;1240:20;;5268:3;5308:22;1240:20;;4408:948::o;5363:362::-;;5488:2;5476:9;5467:7;5463:23;5459:32;5456:2;;;-1:-1;;5494:12;5456:2;5545:17;5539:24;5583:18;;5575:6;5572:30;5569:2;;;-1:-1;;5605:12;5569:2;5692:6;5681:9;5677:22;;;1762:3;1755:4;1747:6;1743:17;1739:27;1729:2;;-1:-1;;1770:12;1729:2;1810:6;1804:13;5583:18;34251:6;34248:30;34245:2;;;-1:-1;;34281:12;34245:2;33914;33908:9;5488:2;34354:9;1755:4;34339:6;34335:17;34331:33;33944:6;33940:17;;34051:6;34039:10;34036:22;5583:18;34003:10;34000:34;33997:62;33994:2;;;-1:-1;;34062:12;33994:2;33914;34081:22;1903:21;;;2003:16;;;5488:2;2003:16;2000:25;-1:-1;1997:2;;;-1:-1;;2028:12;1997:2;2048:39;2080:6;5488:2;1979:5;1975:16;5488:2;1945:6;1941:17;2048:39;:::i;:::-;5625:84;5450:275;-1:-1;;;;;;5450:275::o;5732:241::-;;5836:2;5824:9;5815:7;5811:23;5807:32;5804:2;;;-1:-1;;5842:12;5804:2;-1:-1;2168:20;;5798:175;-1:-1;5798:175::o;5980:263::-;;6095:2;6083:9;6074:7;6070:23;6066:32;6063:2;;;-1:-1;;6101:12;6063:2;-1:-1;2316:13;;6057:186;-1:-1;6057:186::o;6250:366::-;;;6371:2;6359:9;6350:7;6346:23;6342:32;6339:2;;;-1:-1;;6377:12;6339:2;2181:6;2168:20;6429:63;;6529:2;6572:9;6568:22;72:20;97:33;124:5;97:33;:::i;:::-;6537:63;;;;6333:283;;;;;:::o;6623:555::-;;;;6793:2;6781:9;6772:7;6768:23;6764:32;6761:2;;;-1:-1;;6799:12;6761:2;2181:6;2168:20;6851:63;;6951:2;7008:9;7004:22;1391:20;1416:47;1457:5;1416:47;:::i;:::-;6959:77;-1:-1;7073:2;7130:22;;1560:20;1585:51;1560:20;1585:51;:::i;7185:491::-;;;;7323:2;7311:9;7302:7;7298:23;7294:32;7291:2;;;-1:-1;;7329:12;7291:2;2181:6;2168:20;7381:63;;7481:2;7524:9;7520:22;2168:20;7489:63;;7589:2;7632:9;7628:22;72:20;97:33;124:5;97:33;:::i;7683:647::-;;;;;7853:3;7841:9;7832:7;7828:23;7824:33;7821:2;;;-1:-1;;7860:12;7821:2;2181:6;2168:20;7912:63;;8012:2;8055:9;8051:22;2168:20;8020:63;;8120:2;8181:9;8177:22;1560:20;1585:51;1630:5;1585:51;:::i;:::-;8128:81;-1:-1;8246:2;8282:22;;971:20;996:30;971:20;996:30;:::i;:::-;7815:515;;;;-1:-1;7815:515;;-1:-1;;7815:515::o;11301:323::-;;11433:5;34866:12;35681:6;35676:3;35669:19;11516:52;11561:6;35718:4;35713:3;35709:14;35718:4;11542:5;11538:16;11516:52;:::i;:::-;39230:2;39210:14;39226:7;39206:28;11580:39;;;;35718:4;11580:39;;11381:243;-1:-1;;11381:243::o;18930:291::-;;38793:6;38788:3;38783;38770:30;38831:16;;38824:27;;;38831:16;19074:147;-1:-1;19074:147::o;19228:271::-;;11791:5;34866:12;11902:52;11947:6;11942:3;11935:4;11928:5;11924:16;11902:52;:::i;:::-;11966:16;;;;;19362:137;-1:-1;;19362:137::o;19506:222::-;-1:-1;;;;;37176:54;;;;8925:37;;19633:2;19618:18;;19604:124::o;19735:444::-;-1:-1;;;;;37176:54;;;8925:37;;37176:54;;;;20082:2;20067:18;;8925:37;20165:2;20150:18;;10911:37;;;;19918:2;19903:18;;19889:290::o;20186:884::-;-1:-1;;;;;37176:54;;;8925:37;;37176:54;;;;20642:2;20627:18;;8925:37;20725:2;20710:18;;10911:37;;;;20808:2;20793:18;;10911:37;;;;37495:4;37484:16;20887:3;20872:19;;18883:35;20971:3;20956:19;;10911:37;21055:3;21040:19;;10911:37;;;;20477:3;20462:19;;20448:622::o;21077:333::-;-1:-1;;;;;37176:54;;;;8925:37;;21396:2;21381:18;;10911:37;21232:2;21217:18;;21203:207::o;21417:653::-;21684:2;21698:47;;;34866:12;;21669:18;;;35669:19;;;21417:653;;35718:4;;35709:14;;;;34556;;;21417:653;9392:251;9417:6;9414:1;9411:13;9392:251;;;9478:13;;36583;36576:21;10683:34;;8479:14;;;;35403;;;;9439:1;9432:9;9392:251;;;9396:14;;;21909:9;21903:4;21899:20;35718:4;21883:9;21879:18;21872:48;21934:126;9920:5;34866:12;9939:95;10027:6;10022:3;9939:95;:::i;:::-;9932:102;;;;;35718:4;10091:6;10087:17;10082:3;10078:27;35718:4;10185:5;34556:14;-1:-1;10224:357;10249:6;10246:1;10243:13;10224:357;;;10311:9;10305:4;10301:20;10296:3;10289:33;8627:64;8687:3;10356:6;10350:13;8627:64;:::i;:::-;10560:14;;;;10370:90;-1:-1;35403:14;;;;9439:1;10264:9;10224:357;;;-1:-1;21926:134;;21655:415;-1:-1;;;;;;;;;21655:415::o;22599:310::-;;22746:2;22767:17;22760:47;22821:78;22746:2;22735:9;22731:18;22885:6;22821:78;:::i;22916:416::-;23116:2;23130:47;;;13169:2;23101:18;;;35669:19;13205:23;35709:14;;;13185:44;13248:12;;;23087:245::o;23339:416::-;23539:2;23553:47;;;13499:2;23524:18;;;35669:19;13535:13;35709:14;;;13515:34;13568:12;;;23510:245::o;23762:416::-;23962:2;23976:47;;;13819:2;23947:18;;;35669:19;13855:30;35709:14;;;13835:51;13905:12;;;23933:245::o;24185:416::-;24385:2;24399:47;;;14156:2;24370:18;;;35669:19;14192:34;35709:14;;;14172:55;14261:3;14247:12;;;14240:25;14284:12;;;24356:245::o;24608:416::-;24808:2;24822:47;;;14535:2;24793:18;;;35669:19;14571:23;35709:14;;;14551:44;14614:12;;;24779:245::o;25031:416::-;25231:2;25245:47;;;14865:2;25216:18;;;35669:19;14901:30;35709:14;;;14881:51;14951:12;;;25202:245::o;25454:416::-;25654:2;25668:47;;;15202:2;25639:18;;;35669:19;15238:26;35709:14;;;15218:47;15284:12;;;25625:245::o;25877:416::-;26077:2;26091:47;;;26062:18;;;35669:19;15571:34;35709:14;;;15551:55;15625:12;;;26048:245::o;26300:416::-;26500:2;26514:47;;;26485:18;;;35669:19;15912:34;35709:14;;;15892:55;15966:12;;;26471:245::o;26723:416::-;26923:2;26937:47;;;16217:2;26908:18;;;35669:19;16253:29;35709:14;;;16233:50;16302:12;;;26894:245::o;27146:416::-;27346:2;27360:47;;;16553:2;27331:18;;;35669:19;16589:34;35709:14;;;16569:55;16658:6;16644:12;;;16637:28;16684:12;;;27317:245::o;27569:416::-;27769:2;27783:47;;;27754:18;;;35669:19;16971:34;35709:14;;;16951:55;17025:12;;;27740:245::o;27992:416::-;28192:2;28206:47;;;17276:2;28177:18;;;35669:19;17312:26;35709:14;;;17292:47;17358:12;;;28163:245::o;28415:322::-;17669:23;;37067:34;37056:46;18170:37;;17850:4;17839:16;;;17833:23;37393:18;37382:30;;;17908:14;;;18651:36;;;;18008:4;17997:16;;;17991:23;37382:30;18066:14;;;18651:36;;;;28592:2;28577:18;;28563:174::o;28744:436::-;37067:34;37056:46;;;;18170:37;;37393:18;37382:30;;;29085:2;29070:18;;18651:36;37382:30;29166:2;29151:18;;18651:36;28923:2;28908:18;;28894:286::o;29187:222::-;10911:37;;;29314:2;29299:18;;29285:124::o;29416:716::-;10911:37;;;-1:-1;;;;;37176:54;;;29852:2;29837:18;;8784:58;37176:54;;;;29935:2;29920:18;;8925:37;30026:2;30011:18;;12520:58;;;;30117:3;30102:19;;12520:58;29679:3;29664:19;;29650:482::o;32228:321::-;10911:37;;;36583:13;36576:21;32535:2;32520:18;;10683:34;32377:2;32362:18;;32348:201::o;32556:329::-;10911:37;;;32871:2;32856:18;;10911:37;32709:2;32694:18;;32680:205::o;32892:440::-;37393:18;37382:30;;;;18651:36;;33235:2;33220:18;;10911:37;;;;37067:34;37056:46;33318:2;33303:18;;18410:50;33073:2;33058:18;;33044:288::o;33339:506::-;;;33474:11;33461:25;33525:48;33549:8;33533:14;33529:29;33525:48;33505:18;33501:73;33491:2;;-1:-1;;33578:12;33491:2;33605:33;;33659:18;;;-1:-1;33697:18;33686:30;;33683:2;;;-1:-1;;33719:12;33683:2;33564:4;33747:13;;-1:-1;33533:14;33779:38;;;33769:49;;33766:2;;;33831:1;;33821:12;38866:268;38931:1;38938:101;38952:6;38949:1;38946:13;38938:101;;;39019:11;;;39013:18;39000:11;;;38993:39;38974:2;38967:10;38938:101;;;39054:6;39051:1;39048:13;39045:2;;;-1:-1;;38931:1;39101:16;;39094:27;38915:219::o;39247:117::-;-1:-1;;;;;39334:5;37176:54;39309:5;39306:35;39296:2;;39355:1;;39345:12;39296:2;39290:74;:::o;39371:111::-;39452:5;36583:13;36576:21;39430:5;39427:32;39417:2;;39473:1;;39463:12

Swarm Source

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