S Price: $0.478616 (+2.81%)
    /

    Contract

    0xc3815bF058fB94243Ebc6c559dfc59ceaEeF00eA

    Overview

    S Balance

    Sonic LogoSonic LogoSonic Logo0 S

    S Value

    $0.00

    Token Holdings

    Multichain Info

    No addresses found
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount
    Donate149859922025-03-21 8:19:2231 days ago1742545162IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025984555.01
    Donate136753082025-03-14 13:23:2338 days ago1741958603IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025984555.01
    Donate136751532025-03-14 13:22:1638 days ago1741958536IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025984555.01
    Donate136746312025-03-14 13:18:4738 days ago1741958327IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025942755.01
    Convert Multiple112833432025-03-02 23:25:4149 days ago1740957941IN
    0xc3815bF0...eaEeF00eA
    0 S0.0344005755
    Convert Multiple112832472025-03-02 23:24:5849 days ago1740957898IN
    0xc3815bF0...eaEeF00eA
    0 S0.0135554655
    Donate107539282025-02-28 12:17:4152 days ago1740745061IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025984555.01
    Donate107538902025-02-28 12:17:2452 days ago1740745044IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025984555.01
    Donate107533692025-02-28 12:13:3752 days ago1740744817IN
    0xc3815bF0...eaEeF00eA
    0 S0.0025977355.01
    Donate107531132025-02-28 12:11:4752 days ago1740744707IN
    0xc3815bF0...eaEeF00eA
    0 S0.0019359156.19
    Convert Multiple107351672025-02-28 10:14:5452 days ago1740737694IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179419955
    Convert Multiple107351022025-02-28 10:14:2852 days ago1740737668IN
    0xc3815bF0...eaEeF00eA
    0 S0.0178472255
    Convert Multiple107350882025-02-28 10:14:2352 days ago1740737663IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107350662025-02-28 10:14:1752 days ago1740737657IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107350532025-02-28 10:14:1252 days ago1740737652IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107350402025-02-28 10:14:0852 days ago1740737648IN
    0xc3815bF0...eaEeF00eA
    0 S0.0178472255
    Convert Multiple107350272025-02-28 10:14:0352 days ago1740737643IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107349322025-02-28 10:13:2552 days ago1740737605IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107348972025-02-28 10:13:1352 days ago1740737593IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107348592025-02-28 10:12:5852 days ago1740737578IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107348102025-02-28 10:12:3552 days ago1740737555IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107347742025-02-28 10:12:1952 days ago1740737539IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179158655
    Convert Multiple107326152025-02-28 9:58:4152 days ago1740736721IN
    0xc3815bF0...eaEeF00eA
    0 S0.0418590155
    Convert Multiple107313872025-02-28 9:50:3252 days ago1740736232IN
    0xc3815bF0...eaEeF00eA
    0 S0.0173320455
    Convert Multiple107312152025-02-28 9:49:2352 days ago1740736163IN
    0xc3815bF0...eaEeF00eA
    0 S0.0179558555
    View all transactions

    Latest 1 internal transaction

    Parent Transaction Hash Block Age From To Amount
    44105962025-01-18 14:57:1693 days ago1737212236
    0xc3815bF0...eaEeF00eA
    0 S
    Loading...
    Loading

    Contract Source Code Verified (Exact Match)

    Contract Name:
    BrewBooV3

    Compiler Version
    v0.8.28+commit.7893614a

    Optimization Enabled:
    Yes with 200 runs

    Other Settings:
    cancun EvmVersion, GNU GPLv3 license
    File 1 of 13 : BrewBoo.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // P1 - P3: OK
    pragma solidity 0.8.28;
    import '@openzeppelin/contracts/access/Ownable.sol';
    import "@openzeppelin/contracts/utils/math/SafeMath.sol";
    import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
    import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
    import "./interfaces/IUniswapV2Pair.sol";
    import "./interfaces/IUniswapV2Factory.sol";
    import "./Swapper.sol";
    // BrewBoo is MasterChef's left hand and kinda a wizard. He can brew Boo from pretty much anything!
    // This contract handles "serving up" rewards for xBoo holders by trading tokens collected from fees for Boo.
    // The caller of convertMultiple, the function responsible for converting fees to BOO earns a 0.1% reward for calling.
    contract BrewBooV3 is Ownable, ReentrancyGuard {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    IUniswapV2Factory public immutable factory;
    ISwapper public immutable swapper;
    address public immutable xboo;
    address private immutable boo;
    address private immutable wftm;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 13 : Ownable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
    pragma solidity ^0.8.0;
    import "../utils/Context.sol";
    /**
    * @dev Contract module which provides a basic access control mechanism, where
    * there is an account (an owner) that can be granted exclusive access to
    * specific functions.
    *
    * By default, the owner account will be the one that deploys the contract. This
    * can later be changed with {transferOwnership}.
    *
    * This module is used through inheritance. It will make available the modifier
    * `onlyOwner`, which can be applied to your functions to restrict their use to
    * the owner.
    */
    abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    /**
    * @dev Initializes the contract setting the deployer as the initial owner.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 13 : SafeMath.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)
    pragma solidity ^0.8.0;
    // CAUTION
    // This version of SafeMath should only be used with Solidity 0.8 or later,
    // because it relies on the compiler's built in overflow checks.
    /**
    * @dev Wrappers over Solidity's arithmetic operations.
    *
    * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
    * now has built in overflow checking.
    */
    library SafeMath {
    /**
    * @dev Returns the addition of two unsigned integers, with an overflow flag.
    *
    * _Available since v3.4._
    */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
    unchecked {
    uint256 c = a + b;
    if (c < a) return (false, 0);
    return (true, c);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 13 : SafeERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)
    pragma solidity ^0.8.0;
    import "../IERC20.sol";
    import "../extensions/IERC20Permit.sol";
    import "../../../utils/Address.sol";
    /**
    * @title SafeERC20
    * @dev Wrappers around ERC20 operations that throw on failure (when the token
    * contract returns false). Tokens that return no value (and instead revert or
    * throw on failure) are also supported, non-reverting calls are assumed to be
    * successful.
    * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
    * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
    */
    library SafeERC20 {
    using Address for address;
    /**
    * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,
    * non-reverting calls are assumed to be successful.
    */
    function safeTransfer(IERC20 token, address to, uint256 value) internal {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 13 : ReentrancyGuard.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
    pragma solidity ^0.8.0;
    /**
    * @dev Contract module that helps prevent reentrant calls to a function.
    *
    * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
    * available, which can be applied to functions to make sure there are no nested
    * (reentrant) calls to them.
    *
    * Note that because there is a single `nonReentrant` guard, functions marked as
    * `nonReentrant` may not call one another. This can be worked around by making
    * those functions `private`, and then adding `external` `nonReentrant` entry
    * points to them.
    *
    * TIP: If you would like to learn more about reentrancy and alternative ways
    * to protect against it, check out our blog post
    * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
    */
    abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 13 : IUniswapV2Pair.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity >=0.5.0;
    interface IUniswapV2Pair {
    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);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 13 : IUniswapV2Factory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // SPDX-License-Identifier: MIT
    pragma solidity >=0.5.0;
    interface IUniswapV2Factory {
    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;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 13 : Swapper.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-3.0
    pragma solidity 0.8.28;
    import '@openzeppelin/contracts/access/Ownable.sol';
    import "@openzeppelin/contracts/utils/math/SafeMath.sol";
    import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
    import "./interfaces/IUniswapV2Pair.sol";
    import "./interfaces/ISwapper.sol";
    contract Swapper is ISwapper, Ownable {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    uint public slippage = 9;
    mapping(address => bool) public slippageOverrode;
    // onlyAuth type functions
    function overrideSlippage(address _token) external onlyOwner {
    slippageOverrode[_token] = !slippageOverrode[_token];
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 13 : Context.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)
    pragma solidity ^0.8.0;
    /**
    * @dev Provides information about the current execution context, including the
    * sender of the transaction and its data. While these are generally available
    * via msg.sender and msg.data, they should not be accessed in such a direct
    * manner, since when dealing with meta-transactions the account sending and
    * paying for execution may not be the actual sender (as far as an application
    * is concerned).
    *
    * This contract is only required for intermediate, library-like contracts.
    */
    abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
    return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
    return msg.data;
    }
    function _contextSuffixLength() internal view virtual returns (uint256) {
    return 0;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 13 : IERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
    pragma solidity ^0.8.0;
    /**
    * @dev Interface of the ERC20 standard as defined in the EIP.
    */
    interface IERC20 {
    /**
    * @dev Emitted when `value` tokens are moved from one account (`from`) to
    * another (`to`).
    *
    * Note that `value` may be zero.
    */
    event Transfer(address indexed from, address indexed to, uint256 value);
    /**
    * @dev Emitted when the allowance of a `spender` for an `owner` is set by
    * a call to {approve}. `value` is the new allowance.
    */
    event Approval(address indexed owner, address indexed spender, uint256 value);
    /**
    * @dev Returns the amount of tokens in existence.
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 13 : IERC20Permit.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)
    pragma solidity ^0.8.0;
    /**
    * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
    * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
    *
    * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
    * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
    * need to send a transaction, and thus is not required to hold Ether at all.
    *
    * ==== Security Considerations
    *
    * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature
    * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be
    * considered as an intention to spend the allowance in any specific way. The second is that because permits have
    * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should
    * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be
    * generally recommended is:
    *
    * ```solidity
    * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
    * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}
    * doThing(..., value);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 13 : Address.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)
    pragma solidity ^0.8.1;
    /**
    * @dev Collection of functions related to the address type
    */
    library Address {
    /**
    * @dev Returns true if `account` is a contract.
    *
    * [IMPORTANT]
    * ====
    * It is unsafe to assume that an address for which this function returns
    * false is an externally-owned account (EOA) and not a contract.
    *
    * Among others, `isContract` will return false for the following
    * types of addresses:
    *
    * - an externally-owned account
    * - a contract in construction
    * - an address where a contract will be created
    * - an address where a contract lived, but was destroyed
    *
    * Furthermore, `isContract` will also return true if the target contract within
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 13 of 13 : ISwapper.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // SPDX-License-Identifier: GPL-3.0
    pragma solidity >=0.8.0;
    import "./IUniswapV2Pair.sol";
    interface ISwapper {
    function swap(
    address fromToken,
    IUniswapV2Pair pair,
    uint256 amountIn
    ) external returns (uint256 amountOut);
    function overrideSlippage(address _token) external;
    function setSlippage(uint _amt) external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 200
    },
    "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
    },
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "abi"
    ]
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"bridge","type":"address"}],"name":"LogBridgeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"server","type":"address"},{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOO","type":"uint256"}],"name":"LogConvert","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_adr","type":"address"}],"name":"LogSlippageOverrode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_adr","type":"address"}],"name":"LogToggleOverrode","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"SetDevAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SetDevCut","type":"event"},{"inputs":[],"name":"BOUNTY_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"addAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"authorized","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bridgeRoute","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeRouteAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"token0","type":"address[]"},{"internalType":"address[]","name":"token1","type":"address[]"},{"internalType":"uint256[]","name":"LPamounts","type":"uint256[]"}],"name":"convertMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devCut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"booAmount","type":"uint256"}],"name":"donate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAuth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastRoute","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"overrideSlippage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"overrode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"pairOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"setBounty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"setBridgeRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBridgeRouteAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setDevAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setDevCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"setSlippage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapper","outputs":[{"internalType":"contract ISwapper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"swapperApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xboo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

    610120604052600a6003556003600b5534801561001a575f5ffd5b50610024336101f2565b600180805573ee4bc42157cf65291ba2fe839ae127e3cc76f741608081905273a95ea1cfabccf0e9eb94b646cefe9ed71ff5d60560c0819052737a0c53f7eb34c5bc8b01691723669ada9d6cb38460e081905273039e2fb66102314ce7b64ce5ce3e5183bc94ad3861010081905260048054336001600160a01b031991821681179092555f828152600560209081526040808320805460ff19168b179055600680549a8b0190557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f90990180548416909417909355600a9092527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e380548216841790557fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc780547329219dd400f2bf60e5a23d13be72b486d4038894908316811790915560029092527fbff4442b8ed600beeb8e26b1279a0f0d14c6edfaec26d968ee13c86f7d4c2ba880547350c42deacd8fc9773493ed674b675be577f2634b921682179055955194959394929391929091906101c090610241565b604051809103905ff0801580156101d9573d5f5f3e3d5ffd5b506001600160a01b031660a0525061024e945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610cc2806128bd83390190565b60805160a05160c05160e0516101005161259f61031e5f395f8181610bdb01528181610e5e01528181610f1201528181610f4e0152818161120a0152611c1401525f8181610f6f01528181610ffc015281816110a6015281816110f201528181611131015281816111cd015281816114bf0152818161153a0152611c4f01525f81816101d9015281816110c8015261149001525f818161029b015281816114110152818161175801528181611e750152611f1401525f81816103d2015281816104fd0152611b0e015261259f5ff3fe608060405234801561000f575f5ffd5b50600436106101d0575f3560e01c80639c286837116100fe578063dbcc106d1161009e578063f2fde38b1161006e578063f2fde38b14610486578063f770854d14610499578063f8171dfa146104ac578063f87c4938146104bf575f5ffd5b8063dbcc106d1461041a578063e1e212e11461042d578063f0fa55a914610460578063f14faf6f14610473575f5ffd5b8063b5eabb1e116100d9578063b5eabb1e146103c4578063c45a0155146103cd578063d1e4b993146103f4578063da09c72c14610407575f5ffd5b80639c286837146103805780639d22ae8c14610389578063b254c7851461039c575f5ffd5b80635422224e11610174578063715018a611610144578063715018a6146103335780637e1b95071461033b5780638da5cb5b1461034e578063950a180e1461035e575f5ffd5b80635422224e146102d25780635d87d363146102e557806360b90406146102f85780636ebb64a214610320575f5ffd5b80630d48669a116101af5780630d48669a146102615780632520e7ff146102745780632b3297f9146102965780632e558d69146102bd575f5ffd5b8062b6ada2146101d45780630b6b62aa146102185780630c7e4d351461022f575b5f5ffd5b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b610221600b5481565b60405190815260200161020f565b61025161023d366004612249565b60096020525f908152604090205460ff1681565b604051901515815260200161020f565b6101fb61026f366004612264565b6104d2565b610251610282366004612249565b60056020525f908152604090205460ff1681565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6102d06102cb3660046122c3565b6104fa565b005b6102d06102e0366004612249565b6106c7565b6102d06102f3366004612264565b610734565b6101fb610306366004612249565b600c6020525f90815260409020546001600160a01b031681565b6102d061032e366004612249565b610741565b6102d0610860565b6102d0610349366004612302565b610873565b5f546001600160a01b03166101fb565b61025161036c366004612249565b60086020525f908152604090205460ff1681565b61022160025481565b6102d06103973660046123a1565b61119d565b6101fb6103aa366004612264565b600a6020525f90815260409020546001600160a01b031681565b61022160035481565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6102d0610402366004612264565b6112ff565b6004546101fb906001600160a01b031681565b6102d0610428366004612264565b61133e565b6101fb61043b3660046123a1565b600d60209081525f92835260408084209091529082529020546001600160a01b031681565b6102d061046e366004612264565b6113cd565b6102d0610481366004612264565b611473565b6102d0610494366004612249565b611593565b6102d06104a73660046123d8565b61160c565b6102d06104ba366004612249565b6116e3565b6102d06104cd366004612249565b61170b565b600681815481106104e1575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610557573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057b91906123fb565b90505f5b828110156106c15783838281811061059957610599612416565b90506020020160208101906105ae9190612249565b6001600160a01b031663a9059cbb838686858181106105cf576105cf612416565b90506020020160208101906105e49190612249565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064c919061242a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190612441565b5060010161057f565b50505050565b6106cf6117e9565b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b61073c6117e9565b600355565b5f546001600160a01b031633148061076357506004546001600160a01b031633145b6107a25760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b60448201526064015b60405180910390fd5b6001600160a01b03811661080b5760405162461bcd60e51b815260206004820152602a60248201527f736574446576416464722c20616464726573732063616e6e6f74206265207a65604482015269726f206164647265737360b01b6064820152608401610799565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c73fc162405abe4471c4228f0797176ac32cb9f7be4a25a67cbd1dda6d007e906020015b60405180910390a150565b6108686117e9565b6108715f611842565b565b3332146108ba5760405162461bcd60e51b815260206004820152601560248201527442726577426f6f3a206d7573742075736520454f4160581b6044820152606401610799565b6108c2611891565b5f805b86821015610bd1578585838181106108df576108df612416565b90506020020160208101906108f49190612249565b6001600160a01b031688888481811061090f5761090f612416565b90506020020160208101906109249190612249565b6001600160a01b0316036109a95761096188888481811061094757610947612416565b905060200201602081019061095c9190612249565b6118ea565b1561099e5760405162461bcd60e51b815260206004820152600d60248201526c1b9bc8131408185b1b1bddd959609a1b6044820152606401610799565b8160010191506108c5565b6109be88888481811061094757610947612416565b1580156109dd57506109db86868481811061094757610947612416565b155b610a195760405162461bcd60e51b815260206004820152600d60248201526c1b9bc8131408185b1b1bddd959609a1b6044820152606401610799565b610a6f888884818110610a2e57610a2e612416565b9050602002016020810190610a439190612249565b878785818110610a5557610a55612416565b9050602002016020810190610a6a9190612249565b611a8f565b90506001600160a01b038116610abf5760405162461bcd60e51b8152602060048201526015602482015274213932bba137b79d1024b73b30b634b2103830b4b960591b6044820152606401610799565b610b5e818415610ae757858585818110610adb57610adb612416565b90506020020135610b4d565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4d919061242a565b6001600160a01b0384169190611bba565b60405163226bf2d160e21b81523060048201526001600160a01b038216906389afcb449060240160408051808303815f875af1158015610ba0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc49190612460565b50508160010191506108c5565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260076020526040812043905591505b86821015610e495760075f898985818110610c2b57610c2b612416565b9050602002016020810190610c409190612249565b6001600160a01b03166001600160a01b031681526020019081526020015f2054431115610d6b57610d25888884818110610c7c57610c7c612416565b9050602002016020810190610c919190612249565b898985818110610ca357610ca3612416565b9050602002016020810190610cb89190612249565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610cfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d20919061242a565b611c11565b504360075f8a8a86818110610d3c57610d3c612416565b9050602002016020810190610d519190612249565b6001600160a01b0316815260208101919091526040015f20555b60075f878785818110610d8057610d80612416565b9050602002016020810190610d959190612249565b6001600160a01b03166001600160a01b031681526020019081526020015f2054431115610e3e57610df8868684818110610dd157610dd1612416565b9050602002016020810190610de69190612249565b878785818110610ca357610ca3612416565b504360075f888886818110610e0f57610e0f612416565b9050602002016020810190610e249190612249565b6001600160a01b0316815260208101919091526040015f20555b816001019150610c0e565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610eab573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecf919061242a565b91505f5f6002541115610f49575f610efe612710610ef860025487611df290919063ffffffff16565b90611e04565b600454909150610f3b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683611bba565b610f458482611e0f565b9350505b610f947f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085611e1a565b9150819050610fe55760405162461bcd60e51b815260206004820181905260248201527f42726577426f6f56333a2073776170206661696c75726520696e20746f424f4f6044820152606401610799565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611049573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106d919061242a565b90505f61108b612710610ef860035485611df290919063ffffffff16565b90506110978282611e0f565b94506110ed6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087611bba565b6111217f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163383611bba565b60408051838152602081018790527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133917f9a2b201cb3043b4d299009f7ad0fb8125820088a7c5033fcb41fce87939aaf2d910160405180910390a3505050505061119560018055565b505050505050565b335f9081526005602052604090205460ff166111cb5760405162461bcd60e51b815260040161079990612482565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415801561123f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561125d5750806001600160a01b0316826001600160a01b031614155b6112a95760405162461bcd60e51b815260206004820152601760248201527f42726577426f6f3a20496e76616c6964206272696467650000000000000000006044820152606401610799565b6001600160a01b038281165f818152600c602052604080822080546001600160a01b0319169486169485179055517f2e103aa707acc565f9a1547341914802b2bfe977fd79c595209f248ae4b006139190a35050565b335f9081526005602052604090205460ff1661132d5760405162461bcd60e51b815260040161079990612482565b60028111611339575f5ffd5b600b55565b6113466117e9565b6113888111156113985760405162461bcd60e51b815260206004820152601760248201527f7365744465764375743a2063757420746f6f20686967680000000000000000006044820152606401610799565b60028190556040518181527f914990c75916d406c148e7fca9308486d7806a77c0ef66119c9329add5885d2e90602001610855565b335f9081526005602052604090205460ff166113fb5760405162461bcd60e51b815260040161079990612482565b60405163f0fa55a960e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f0fa55a9906024015f604051808303815f87803b15801561145a575f5ffd5b505af115801561146c573d5f5f3e3d5ffd5b5050505050565b6040516323b872dd60e01b81523360048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303815f875af1158015611505573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115299190612441565b5060408051828152602081018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133917f9a2b201cb3043b4d299009f7ad0fb8125820088a7c5033fcb41fce87939aaf2d910160405180910390a350565b61159b6117e9565b6001600160a01b0381166116005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610799565b61160981611842565b50565b335f9081526005602052604090205460ff1661163a5760405162461bcd60e51b815260040161079990612482565b600b548211156116985760405162461bcd60e51b815260206004820152602360248201527f696e64657820746f6f206c617267652c20757365206e657874206672656520736044820152621b1bdd60ea1b6064820152608401610799565b5f828152600a6020526040902080546001600160a01b0319166001600160a01b038316179055600b5482036116df576001600b5f8282546116d991906124c2565b90915550505b5050565b6116eb6117e9565b6001600160a01b03165f908152600560205260409020805460ff19169055565b335f9081526005602052604090205460ff166117395760405162461bcd60e51b815260040161079990612482565b604051631f0f892760e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f87c4938906024015f604051808303815f87803b158015611799575f5ffd5b505af11580156117ab573d5f5f3e3d5ffd5b50506040516001600160a01b03841681527fbb282aa752df4e6fee49be253bb0063563473a33117712e477e7bebf6ec9bb7792506020019050610855565b5f546001600160a01b031633146108715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610799565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600154036118e35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610799565b6002600155565b6001600160a01b0381165f9081526008602052604081205460ff161561191157505f919050565b5f829050806001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561196f575060408051601f3d908101601f1916820190925261196c918101906123fb565b60015b6119995750506001600160a01b03165f908152600860205260408120805460ff1916600117905590565b5f826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119fa91906123fb565b90505f611a078383611a8f565b9050806001600160a01b0316866001600160a01b031614611a83576001600160a01b0386165f81815260086020908152604091829020805460ff1916600117905590519182527fb2d21e49d911929102e12f7c1ffb79ee823301cadd6c5404be9e5775496042a3910160405180910390a1505f95945050505050565b50600195945050505050565b5f816001600160a01b0316836001600160a01b031610611ab0578183611ab3565b82825b6001600160a01b038083165f908152600d60209081526040808320848616845290915290205492955090935016905080611bb45760405163e6a4390560e01b81526001600160a01b03848116600483015283811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063e6a4390590604401602060405180830381865afa158015611b53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b7791906123fb565b6001600160a01b038481165f908152600d602090815260408083208785168452909152902080546001600160a01b03191691831691909117905590505b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611c0c908490611fd8565b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480611c8357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b15611c9057506001611bb4565b6001600160a01b038084165f908152600c6020526040812054909116908115611cc457611cbe858386611e1a565b90945090505b8015611cda57611cd48285611c11565b50611de7565b5f5b600b54811015611de5575f818152600a60205260409020546001600160a01b0316925082611d0c57600101611cdc565b611d17868487611e1a565b909550915081611dac576001600b54611d3091906124d5565b8103611da45760405162461bcd60e51b815260206004820152603760248201527f42726577426f6f56333a2062726964676520726f757465206661696c7572652060448201527f2d20616c6c206f7074696f6e73206578686175737465640000000000000000006064820152608401610799565b600101611cdc565b6001600160a01b038681165f908152600c6020526040902080546001600160a01b031916918516919091179055611de38386611c11565b505b505b505050600192915050565b5f611dfd82846124e8565b9392505050565b5f611dfd82846124ff565b5f611dfd82846124d5565b5f5f836001600160a01b0316856001600160a01b031603611e3f57508190505f611fd0565b6001600160a01b0385165f9081526009602052604090205460ff16611f125760405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f19602483015286169063095ea7b3906044016020604051808303815f875af1158015611eca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eee9190612441565b506001600160a01b0385165f908152600960205260409020805460ff191660011790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663df791e5086611f4c8888611a8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018690526064016020604051808303815f875af1925050508015611fbb575060408051601f3d908101601f19168201909252611fb89181019061242a565b60015b611fc957508190505f611fd0565b9150600190505b935093915050565b5f61202c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120ab9092919063ffffffff16565b905080515f148061204c57508080602001905181019061204c9190612441565b611c0c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610799565b60606120b984845f856120c1565b949350505050565b6060824710156121225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610799565b5f5f866001600160a01b0316858760405161213d919061251e565b5f6040518083038185875af1925050503d805f8114612177576040519150601f19603f3d011682016040523d82523d5f602084013e61217c565b606091505b509150915061218d87838387612198565b979650505050505050565b606083156122065782515f036121ff576001600160a01b0385163b6121ff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610799565b50816120b9565b6120b9838381511561221b5781518083602001fd5b8060405162461bcd60e51b81526004016107999190612534565b6001600160a01b0381168114611609575f5ffd5b5f60208284031215612259575f5ffd5b8135611dfd81612235565b5f60208284031215612274575f5ffd5b5035919050565b5f5f83601f84011261228b575f5ffd5b50813567ffffffffffffffff8111156122a2575f5ffd5b6020830191508360208260051b85010111156122bc575f5ffd5b9250929050565b5f5f602083850312156122d4575f5ffd5b823567ffffffffffffffff8111156122ea575f5ffd5b6122f68582860161227b565b90969095509350505050565b5f5f5f5f5f5f60608789031215612317575f5ffd5b863567ffffffffffffffff81111561232d575f5ffd5b61233989828a0161227b565b909750955050602087013567ffffffffffffffff811115612358575f5ffd5b61236489828a0161227b565b909550935050604087013567ffffffffffffffff811115612383575f5ffd5b61238f89828a0161227b565b979a9699509497509295939492505050565b5f5f604083850312156123b2575f5ffd5b82356123bd81612235565b915060208301356123cd81612235565b809150509250929050565b5f5f604083850312156123e9575f5ffd5b8235915060208301356123cd81612235565b5f6020828403121561240b575f5ffd5b8151611dfd81612235565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561243a575f5ffd5b5051919050565b5f60208284031215612451575f5ffd5b81518015158114611dfd575f5ffd5b5f5f60408385031215612471575f5ffd5b505080516020909101519092909150565b602080825260129082015271213932bba137b79d102327a92124a22222a760711b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611bb457611bb46124ae565b81810381811115611bb457611bb46124ae565b8082028115828204841417611bb457611bb46124ae565b5f8261251957634e487b7160e01b5f52601260045260245ffd5b500490565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea2646970667358221220793efa6e6a8d0da97bb6027e263443eac25328b86f277137ad72d856ef794cf764736f6c634300081c0033608060405260096001553480156013575f5ffd5b50601b33601f565b606e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610c478061007b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c8063e19d323611610058578063e19d3236146100dc578063f0fa55a91461010e578063f2fde38b14610121578063f87c493814610134575f5ffd5b80633e032a3b14610089578063715018a6146100a55780638da5cb5b146100af578063df791e50146100c9575b5f5ffd5b61009260015481565b6040519081526020015b60405180910390f35b6100ad610147565b005b5f546040516001600160a01b03909116815260200161009c565b6100926100d73660046109e6565b61015a565b6100fe6100ea366004610a24565b60026020525f908152604090205460ff1681565b604051901515815260200161009c565b6100ad61011c366004610a46565b61052d565b6100ad61012f366004610a24565b61058a565b6100ad610142366004610a24565b610603565b61014f610633565b6101585f61068c565b565b5f6001600160a01b0383166101b65760405162461bcd60e51b815260206004820152601760248201527f42726577426f6f3a2043616e6e6f7420636f6e7665727400000000000000000060448201526064015b60405180910390fd5b5f5f846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102189190610a78565b506001600160701b031691506001600160701b031691505f856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102909190610ac4565b6001600160a01b0316876001600160a01b0316149050806102b25781836102b5565b82825b90935091506102cf6001600160a01b0388163388886106db565b6040516370a0823160e01b81526001600160a01b0387811660048301526103439185918a16906370a0823190602401602060405180830381865afa158015610319573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033d9190610adf565b9061073b565b600154909550610353848761074f565b118061037657506001600160a01b0387165f9081526002602052604090205460ff165b6103b65760405162461bcd60e51b81526020600482015260116024820152700e6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016101ad565b5f85116104105760405162461bcd60e51b815260206004820152602260248201527f42726577426f6f3a20494e53554646494349454e545f494e5055545f414d4f55604482015261139560f21b60648201526084016101ad565b5f8311801561041e57505f82115b61046a5760405162461bcd60e51b815260206004820152601f60248201527f42726577426f6f3a20494e53554646494349454e545f4c49515549444954590060448201526064016101ad565b610476856103e661075a565b945061048e85610488856103e861075a565b90610765565b610498868461075a565b6104a29190610b0a565b9350806104b057835f6104b3565b5f845b604080515f8152602081019182905263022c0d9f60e01b90915291945092506001600160a01b0387169063022c0d9f906104f69086908690339060248101610b57565b5f604051808303815f87803b15801561050d575f5ffd5b505af115801561051f573d5f5f3e3d5ffd5b505050505050509392505050565b610535610633565b601481106105855760405162461bcd60e51b815260206004820152601960248201527f736c6970706167652073657474696e6720746f6f20686967680000000000000060448201526064016101ad565b600155565b610592610633565b6001600160a01b0381166105f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ad565b6106008161068c565b50565b61060b610633565b6001600160a01b03165f908152600260205260409020805460ff19811660ff90911615179055565b5f546001600160a01b031633146101585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101ad565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610735908590610770565b50505050565b5f6107468284610b8d565b90505b92915050565b5f6107468284610b0a565b5f6107468284610ba0565b5f6107468284610bb7565b5f6107c4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108489092919063ffffffff16565b905080515f14806107e45750808060200190518101906107e49190610bca565b6108435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101ad565b505050565b606061085684845f8561085e565b949350505050565b6060824710156108bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016101ad565b5f5f866001600160a01b031685876040516108da9190610be9565b5f6040518083038185875af1925050503d805f8114610914576040519150601f19603f3d011682016040523d82523d5f602084013e610919565b606091505b509150915061092a87838387610935565b979650505050505050565b606083156109a35782515f0361099c576001600160a01b0385163b61099c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101ad565b5081610856565b61085683838151156109b85781518083602001fd5b8060405162461bcd60e51b81526004016101ad9190610bff565b6001600160a01b0381168114610600575f5ffd5b5f5f5f606084860312156109f8575f5ffd5b8335610a03816109d2565b92506020840135610a13816109d2565b929592945050506040919091013590565b5f60208284031215610a34575f5ffd5b8135610a3f816109d2565b9392505050565b5f60208284031215610a56575f5ffd5b5035919050565b80516001600160701b0381168114610a73575f5ffd5b919050565b5f5f5f60608486031215610a8a575f5ffd5b610a9384610a5d565b9250610aa160208501610a5d565b9150604084015163ffffffff81168114610ab9575f5ffd5b809150509250925092565b5f60208284031215610ad4575f5ffd5b8151610a3f816109d2565b5f60208284031215610aef575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f82610b2457634e487b7160e01b5f52601260045260245ffd5b500490565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b84815283602082015260018060a01b0383166040820152608060608201525f610b836080830184610b29565b9695505050505050565b8181038181111561074957610749610af6565b808202811582820484141761074957610749610af6565b8082018082111561074957610749610af6565b5f60208284031215610bda575f5ffd5b81518015158114610a3f575f5ffd5b5f82518060208501845e5f920191825250919050565b602081525f6107466020830184610b2956fea2646970667358221220dd0e97c91177f36469ddf1838eb33eb60fb608c0e3a2a011c28cd03608045c8564736f6c634300081c0033

    Deployed Bytecode

    0x608060405234801561000f575f5ffd5b50600436106101d0575f3560e01c80639c286837116100fe578063dbcc106d1161009e578063f2fde38b1161006e578063f2fde38b14610486578063f770854d14610499578063f8171dfa146104ac578063f87c4938146104bf575f5ffd5b8063dbcc106d1461041a578063e1e212e11461042d578063f0fa55a914610460578063f14faf6f14610473575f5ffd5b8063b5eabb1e116100d9578063b5eabb1e146103c4578063c45a0155146103cd578063d1e4b993146103f4578063da09c72c14610407575f5ffd5b80639c286837146103805780639d22ae8c14610389578063b254c7851461039c575f5ffd5b80635422224e11610174578063715018a611610144578063715018a6146103335780637e1b95071461033b5780638da5cb5b1461034e578063950a180e1461035e575f5ffd5b80635422224e146102d25780635d87d363146102e557806360b90406146102f85780636ebb64a214610320575f5ffd5b80630d48669a116101af5780630d48669a146102615780632520e7ff146102745780632b3297f9146102965780632e558d69146102bd575f5ffd5b8062b6ada2146101d45780630b6b62aa146102185780630c7e4d351461022f575b5f5ffd5b6101fb7f000000000000000000000000a95ea1cfabccf0e9eb94b646cefe9ed71ff5d60581565b6040516001600160a01b0390911681526020015b60405180910390f35b610221600b5481565b60405190815260200161020f565b61025161023d366004612249565b60096020525f908152604090205460ff1681565b604051901515815260200161020f565b6101fb61026f366004612264565b6104d2565b610251610282366004612249565b60056020525f908152604090205460ff1681565b6101fb7f0000000000000000000000009f5a800f0a0c7670e3379d2ca733f70ba5a6584d81565b6102d06102cb3660046122c3565b6104fa565b005b6102d06102e0366004612249565b6106c7565b6102d06102f3366004612264565b610734565b6101fb610306366004612249565b600c6020525f90815260409020546001600160a01b031681565b6102d061032e366004612249565b610741565b6102d0610860565b6102d0610349366004612302565b610873565b5f546001600160a01b03166101fb565b61025161036c366004612249565b60086020525f908152604090205460ff1681565b61022160025481565b6102d06103973660046123a1565b61119d565b6101fb6103aa366004612264565b600a6020525f90815260409020546001600160a01b031681565b61022160035481565b6101fb7f000000000000000000000000ee4bc42157cf65291ba2fe839ae127e3cc76f74181565b6102d0610402366004612264565b6112ff565b6004546101fb906001600160a01b031681565b6102d0610428366004612264565b61133e565b6101fb61043b3660046123a1565b600d60209081525f92835260408084209091529082529020546001600160a01b031681565b6102d061046e366004612264565b6113cd565b6102d0610481366004612264565b611473565b6102d0610494366004612249565b611593565b6102d06104a73660046123d8565b61160c565b6102d06104ba366004612249565b6116e3565b6102d06104cd366004612249565b61170b565b600681815481106104e1575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f7f000000000000000000000000ee4bc42157cf65291ba2fe839ae127e3cc76f7416001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610557573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057b91906123fb565b90505f5b828110156106c15783838281811061059957610599612416565b90506020020160208101906105ae9190612249565b6001600160a01b031663a9059cbb838686858181106105cf576105cf612416565b90506020020160208101906105e49190612249565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064c919061242a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190612441565b5060010161057f565b50505050565b6106cf6117e9565b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b61073c6117e9565b600355565b5f546001600160a01b031633148061076357506004546001600160a01b031633145b6107a25760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b60448201526064015b60405180910390fd5b6001600160a01b03811661080b5760405162461bcd60e51b815260206004820152602a60248201527f736574446576416464722c20616464726573732063616e6e6f74206265207a65604482015269726f206164647265737360b01b6064820152608401610799565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c73fc162405abe4471c4228f0797176ac32cb9f7be4a25a67cbd1dda6d007e906020015b60405180910390a150565b6108686117e9565b6108715f611842565b565b3332146108ba5760405162461bcd60e51b815260206004820152601560248201527442726577426f6f3a206d7573742075736520454f4160581b6044820152606401610799565b6108c2611891565b5f805b86821015610bd1578585838181106108df576108df612416565b90506020020160208101906108f49190612249565b6001600160a01b031688888481811061090f5761090f612416565b90506020020160208101906109249190612249565b6001600160a01b0316036109a95761096188888481811061094757610947612416565b905060200201602081019061095c9190612249565b6118ea565b1561099e5760405162461bcd60e51b815260206004820152600d60248201526c1b9bc8131408185b1b1bddd959609a1b6044820152606401610799565b8160010191506108c5565b6109be88888481811061094757610947612416565b1580156109dd57506109db86868481811061094757610947612416565b155b610a195760405162461bcd60e51b815260206004820152600d60248201526c1b9bc8131408185b1b1bddd959609a1b6044820152606401610799565b610a6f888884818110610a2e57610a2e612416565b9050602002016020810190610a439190612249565b878785818110610a5557610a55612416565b9050602002016020810190610a6a9190612249565b611a8f565b90506001600160a01b038116610abf5760405162461bcd60e51b8152602060048201526015602482015274213932bba137b79d1024b73b30b634b2103830b4b960591b6044820152606401610799565b610b5e818415610ae757858585818110610adb57610adb612416565b90506020020135610b4d565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4d919061242a565b6001600160a01b0384169190611bba565b60405163226bf2d160e21b81523060048201526001600160a01b038216906389afcb449060240160408051808303815f875af1158015610ba0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc49190612460565b50508160010191506108c5565b6001600160a01b037f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad38165f90815260076020526040812043905591505b86821015610e495760075f898985818110610c2b57610c2b612416565b9050602002016020810190610c409190612249565b6001600160a01b03166001600160a01b031681526020019081526020015f2054431115610d6b57610d25888884818110610c7c57610c7c612416565b9050602002016020810190610c919190612249565b898985818110610ca357610ca3612416565b9050602002016020810190610cb89190612249565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610cfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d20919061242a565b611c11565b504360075f8a8a86818110610d3c57610d3c612416565b9050602002016020810190610d519190612249565b6001600160a01b0316815260208101919091526040015f20555b60075f878785818110610d8057610d80612416565b9050602002016020810190610d959190612249565b6001600160a01b03166001600160a01b031681526020019081526020015f2054431115610e3e57610df8868684818110610dd157610dd1612416565b9050602002016020810190610de69190612249565b878785818110610ca357610ca3612416565b504360075f888886818110610e0f57610e0f612416565b9050602002016020810190610e249190612249565b6001600160a01b0316815260208101919091526040015f20555b816001019150610c0e565b6040516370a0823160e01b81523060048201527f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b0316906370a0823190602401602060405180830381865afa158015610eab573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecf919061242a565b91505f5f6002541115610f49575f610efe612710610ef860025487611df290919063ffffffff16565b90611e04565b600454909150610f3b906001600160a01b037f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad388116911683611bba565b610f458482611e0f565b9350505b610f947f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad387f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb38485611e1a565b9150819050610fe55760405162461bcd60e51b815260206004820181905260248201527f42726577426f6f56333a2073776170206661696c75726520696e20746f424f4f6044820152606401610799565b6040516370a0823160e01b81523060048201525f907f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb3846001600160a01b0316906370a0823190602401602060405180830381865afa158015611049573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106d919061242a565b90505f61108b612710610ef860035485611df290919063ffffffff16565b90506110978282611e0f565b94506110ed6001600160a01b037f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb384167f000000000000000000000000a95ea1cfabccf0e9eb94b646cefe9ed71ff5d60587611bba565b6111217f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb3846001600160a01b03163383611bba565b60408051838152602081018790527f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb3846001600160a01b03169133917f9a2b201cb3043b4d299009f7ad0fb8125820088a7c5033fcb41fce87939aaf2d910160405180910390a3505050505061119560018055565b505050505050565b335f9081526005602052604090205460ff166111cb5760405162461bcd60e51b815260040161079990612482565b7f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb3846001600160a01b0316826001600160a01b03161415801561123f57507f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b0316826001600160a01b031614155b801561125d5750806001600160a01b0316826001600160a01b031614155b6112a95760405162461bcd60e51b815260206004820152601760248201527f42726577426f6f3a20496e76616c6964206272696467650000000000000000006044820152606401610799565b6001600160a01b038281165f818152600c602052604080822080546001600160a01b0319169486169485179055517f2e103aa707acc565f9a1547341914802b2bfe977fd79c595209f248ae4b006139190a35050565b335f9081526005602052604090205460ff1661132d5760405162461bcd60e51b815260040161079990612482565b60028111611339575f5ffd5b600b55565b6113466117e9565b6113888111156113985760405162461bcd60e51b815260206004820152601760248201527f7365744465764375743a2063757420746f6f20686967680000000000000000006044820152606401610799565b60028190556040518181527f914990c75916d406c148e7fca9308486d7806a77c0ef66119c9329add5885d2e90602001610855565b335f9081526005602052604090205460ff166113fb5760405162461bcd60e51b815260040161079990612482565b60405163f0fa55a960e01b8152600481018290527f0000000000000000000000009f5a800f0a0c7670e3379d2ca733f70ba5a6584d6001600160a01b03169063f0fa55a9906024015f604051808303815f87803b15801561145a575f5ffd5b505af115801561146c573d5f5f3e3d5ffd5b5050505050565b6040516323b872dd60e01b81523360048201526001600160a01b037f000000000000000000000000a95ea1cfabccf0e9eb94b646cefe9ed71ff5d60581166024830152604482018390527f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb38416906323b872dd906064016020604051808303815f875af1158015611505573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115299190612441565b5060408051828152602081018390527f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb3846001600160a01b03169133917f9a2b201cb3043b4d299009f7ad0fb8125820088a7c5033fcb41fce87939aaf2d910160405180910390a350565b61159b6117e9565b6001600160a01b0381166116005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610799565b61160981611842565b50565b335f9081526005602052604090205460ff1661163a5760405162461bcd60e51b815260040161079990612482565b600b548211156116985760405162461bcd60e51b815260206004820152602360248201527f696e64657820746f6f206c617267652c20757365206e657874206672656520736044820152621b1bdd60ea1b6064820152608401610799565b5f828152600a6020526040902080546001600160a01b0319166001600160a01b038316179055600b5482036116df576001600b5f8282546116d991906124c2565b90915550505b5050565b6116eb6117e9565b6001600160a01b03165f908152600560205260409020805460ff19169055565b335f9081526005602052604090205460ff166117395760405162461bcd60e51b815260040161079990612482565b604051631f0f892760e31b81526001600160a01b0382811660048301527f0000000000000000000000009f5a800f0a0c7670e3379d2ca733f70ba5a6584d169063f87c4938906024015f604051808303815f87803b158015611799575f5ffd5b505af11580156117ab573d5f5f3e3d5ffd5b50506040516001600160a01b03841681527fbb282aa752df4e6fee49be253bb0063563473a33117712e477e7bebf6ec9bb7792506020019050610855565b5f546001600160a01b031633146108715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610799565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600154036118e35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610799565b6002600155565b6001600160a01b0381165f9081526008602052604081205460ff161561191157505f919050565b5f829050806001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561196f575060408051601f3d908101601f1916820190925261196c918101906123fb565b60015b6119995750506001600160a01b03165f908152600860205260408120805460ff1916600117905590565b5f826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119fa91906123fb565b90505f611a078383611a8f565b9050806001600160a01b0316866001600160a01b031614611a83576001600160a01b0386165f81815260086020908152604091829020805460ff1916600117905590519182527fb2d21e49d911929102e12f7c1ffb79ee823301cadd6c5404be9e5775496042a3910160405180910390a1505f95945050505050565b50600195945050505050565b5f816001600160a01b0316836001600160a01b031610611ab0578183611ab3565b82825b6001600160a01b038083165f908152600d60209081526040808320848616845290915290205492955090935016905080611bb45760405163e6a4390560e01b81526001600160a01b03848116600483015283811660248301527f000000000000000000000000ee4bc42157cf65291ba2fe839ae127e3cc76f741169063e6a4390590604401602060405180830381865afa158015611b53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b7791906123fb565b6001600160a01b038481165f908152600d602090815260408083208785168452909152902080546001600160a01b03191691831691909117905590505b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611c0c908490611fd8565b505050565b5f7f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b0316836001600160a01b03161480611c8357507f0000000000000000000000007a0c53f7eb34c5bc8b01691723669ada9d6cb3846001600160a01b0316836001600160a01b0316145b15611c9057506001611bb4565b6001600160a01b038084165f908152600c6020526040812054909116908115611cc457611cbe858386611e1a565b90945090505b8015611cda57611cd48285611c11565b50611de7565b5f5b600b54811015611de5575f818152600a60205260409020546001600160a01b0316925082611d0c57600101611cdc565b611d17868487611e1a565b909550915081611dac576001600b54611d3091906124d5565b8103611da45760405162461bcd60e51b815260206004820152603760248201527f42726577426f6f56333a2062726964676520726f757465206661696c7572652060448201527f2d20616c6c206f7074696f6e73206578686175737465640000000000000000006064820152608401610799565b600101611cdc565b6001600160a01b038681165f908152600c6020526040902080546001600160a01b031916918516919091179055611de38386611c11565b505b505b505050600192915050565b5f611dfd82846124e8565b9392505050565b5f611dfd82846124ff565b5f611dfd82846124d5565b5f5f836001600160a01b0316856001600160a01b031603611e3f57508190505f611fd0565b6001600160a01b0385165f9081526009602052604090205460ff16611f125760405163095ea7b360e01b81526001600160a01b037f0000000000000000000000009f5a800f0a0c7670e3379d2ca733f70ba5a6584d811660048301525f19602483015286169063095ea7b3906044016020604051808303815f875af1158015611eca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eee9190612441565b506001600160a01b0385165f908152600960205260409020805460ff191660011790555b7f0000000000000000000000009f5a800f0a0c7670e3379d2ca733f70ba5a6584d6001600160a01b031663df791e5086611f4c8888611a8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018690526064016020604051808303815f875af1925050508015611fbb575060408051601f3d908101601f19168201909252611fb89181019061242a565b60015b611fc957508190505f611fd0565b9150600190505b935093915050565b5f61202c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120ab9092919063ffffffff16565b905080515f148061204c57508080602001905181019061204c9190612441565b611c0c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610799565b60606120b984845f856120c1565b949350505050565b6060824710156121225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610799565b5f5f866001600160a01b0316858760405161213d919061251e565b5f6040518083038185875af1925050503d805f8114612177576040519150601f19603f3d011682016040523d82523d5f602084013e61217c565b606091505b509150915061218d87838387612198565b979650505050505050565b606083156122065782515f036121ff576001600160a01b0385163b6121ff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610799565b50816120b9565b6120b9838381511561221b5781518083602001fd5b8060405162461bcd60e51b81526004016107999190612534565b6001600160a01b0381168114611609575f5ffd5b5f60208284031215612259575f5ffd5b8135611dfd81612235565b5f60208284031215612274575f5ffd5b5035919050565b5f5f83601f84011261228b575f5ffd5b50813567ffffffffffffffff8111156122a2575f5ffd5b6020830191508360208260051b85010111156122bc575f5ffd5b9250929050565b5f5f602083850312156122d4575f5ffd5b823567ffffffffffffffff8111156122ea575f5ffd5b6122f68582860161227b565b90969095509350505050565b5f5f5f5f5f5f60608789031215612317575f5ffd5b863567ffffffffffffffff81111561232d575f5ffd5b61233989828a0161227b565b909750955050602087013567ffffffffffffffff811115612358575f5ffd5b61236489828a0161227b565b909550935050604087013567ffffffffffffffff811115612383575f5ffd5b61238f89828a0161227b565b979a9699509497509295939492505050565b5f5f604083850312156123b2575f5ffd5b82356123bd81612235565b915060208301356123cd81612235565b809150509250929050565b5f5f604083850312156123e9575f5ffd5b8235915060208301356123cd81612235565b5f6020828403121561240b575f5ffd5b8151611dfd81612235565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561243a575f5ffd5b5051919050565b5f60208284031215612451575f5ffd5b81518015158114611dfd575f5ffd5b5f5f60408385031215612471575f5ffd5b505080516020909101519092909150565b602080825260129082015271213932bba137b79d102327a92124a22222a760711b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611bb457611bb46124ae565b81810381811115611bb457611bb46124ae565b8082028115828204841417611bb457611bb46124ae565b5f8261251957634e487b7160e01b5f52601260045260245ffd5b500490565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea2646970667358221220793efa6e6a8d0da97bb6027e263443eac25328b86f277137ad72d856ef794cf764736f6c634300081c0033

    Deployed Bytecode Sourcemap

    754:10446:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;960:29;;;;;;;;-1:-1:-1;;;;;178:32:13;;;160:51;;148:2;133:18;960:29:8;;;;;;;;2114:33;;;;;;;;;368:25:13;;;356:2;341:18;2114:33:8;222:177:13;1918:47:8;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;957:14:13;;950:22;932:41;;920:2;905:18;1918:47:8;792:187:13;1369:27:8;;;;;;:::i;:::-;;:::i;1325:38::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;920:33;;;;;10958:240;;;;;;:::i;:::-;;:::i;:::-;;4729:120;;;;;;:::i;:::-;;:::i;5423:83::-;;;;;;:::i;:::-;;:::i;2203:44::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2203:44:8;;;5140:277;;;;;;:::i;:::-;;:::i;1824:101:0:-;;;:::i;6150:2309:8:-;;;;;;:::i;:::-;;:::i;1201:85:0:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:0;1201:85;;1872:40:8;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1066:18;;;;;;5826:318;;;;;;:::i;:::-;;:::i;2065:43::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2065:43:8;;;1172:27;;;;;;872:42;;;;;3884:133;;;;;;:::i;:::-;;:::i;1205:22::-;;;;;-1:-1:-1;;;;;1205:22:8;;;4954:180;;;;;;:::i;:::-;;:::i;2305:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2305:61:8;;;5728:92;;;;;;:::i;:::-;;:::i;8465:177::-;;;;;;:::i;:::-;;:::i;2074:198:0:-;;;;;;:::i;:::-;;:::i;3537:341:8:-;;;;;;:::i;:::-;;:::i;4855:92::-;;;;;;:::i;:::-;;:::i;5571:151::-;;;;;;:::i;:::-;;:::i;1369:27::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1369:27:8;;-1:-1:-1;1369:27:8;:::o;10958:240::-;11021:13;11037:7;-1:-1:-1;;;;;11037:13:8;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11021:31;-1:-1:-1;11066:6:8;11062:129;11078:17;;;11062:129;;;11121:6;;11128:1;11121:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11114:26:8;;11141:5;11155:6;;11162:1;11155:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11148:42;;-1:-1:-1;;;11148:42:8;;11184:4;11148:42;;;160:51:13;-1:-1:-1;;;;;11148:27:8;;;;;;;133:18:13;;11148:42:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11114:77;;-1:-1:-1;;;;;;11114:77:8;;;;;;;-1:-1:-1;;;;;5172:32:13;;;11114:77:8;;;5154:51:13;5221:18;;;5214:34;5127:18;;11114:77:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11097:3:8;;11062:129;;;;11011:187;10958:240;;:::o;4729:120::-;1094:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;4790:13:8::1;;::::0;;;:6:::1;:13;::::0;;;;:20;;-1:-1:-1;;4790:20:8::1;4806:4;4790:20:::0;;::::1;::::0;;;4820:10:::1;:22:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;4820:22:8::1;::::0;;::::1;::::0;;4729:120::o;5423:83::-;1094:13:0;:11;:13::i;:::-;5482:10:8::1;:17:::0;5423:83::o;5140:277::-;1247:7:0;1273:6;-1:-1:-1;;;;;1273:6:0;734:10:6;5202:23:8;;:50;;-1:-1:-1;5229:7:8;;-1:-1:-1;;;;;5229:7:8;734:10:6;5229:23:8;5202:50;5194:74;;;;-1:-1:-1;;;5194:74:8;;5743:2:13;5194:74:8;;;5725:21:13;5782:2;5762:18;;;5755:30;-1:-1:-1;;;5801:18:13;;;5794:41;5852:18;;5194:74:8;;;;;;;;;-1:-1:-1;;;;;5286:19:8;;5278:74;;;;-1:-1:-1;;;5278:74:8;;6083:2:13;5278:74:8;;;6065:21:13;6122:2;6102:18;;;6095:30;6161:34;6141:18;;;6134:62;-1:-1:-1;;;6212:18:13;;;6205:40;6262:19;;5278:74:8;5881:406:13;5278:74:8;5362:7;:15;;-1:-1:-1;;;;;;5362:15:8;-1:-1:-1;;;;;5362:15:8;;;;;;;;5393:17;;160:51:13;;;5393:17:8;;148:2:13;133:18;5393:17:8;;;;;;;;5140:277;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;6150:2309:8:-;1750:10;1764:9;1750:23;1742:57;;;;-1:-1:-1;;;1742:57:8;;6494:2:13;1742:57:8;;;6476:21:13;6533:2;6513:18;;;6506:30;-1:-1:-1;;;6552:18:13;;;6545:51;6613:18;;1742:57:8;6292:345:13;1742:57:8;2261:21:1::1;:19;:21::i;:::-;6330:6:8::2;::::0;6375:652:::2;6387:17:::0;;::::2;6375:652;;;6438:6;;6445:1;6438:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6425:22:8::2;:6;;6432:1;6425:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6425:22:8::2;::::0;6421:167:::2;;6476:20;6486:6;;6493:1;6486:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6476;:20::i;:::-;6475:21;6467:47;;;::::0;-1:-1:-1;;;6467:47:8;;6844:2:13;6467:47:8::2;::::0;::::2;6826:21:13::0;6883:2;6863:18;;;6856:30;-1:-1:-1;;;6902:18:13;;;6895:43;6955:18;;6467:47:8::2;6642:337:13::0;6467:47:8::2;6543:3;;;;;6375:652;;6421:167;6610:20;6620:6;;6627:1;6620:9;;;;;;;:::i;6610:20::-;6609:21;:46;;;;;6635:20;6645:6;;6652:1;6645:9;;;;;;;:::i;6635:20::-;6634:21;6609:46;6601:72;;;::::0;-1:-1:-1;;;6601:72:8;;6844:2:13;6601:72:8::2;::::0;::::2;6826:21:13::0;6883:2;6863:18;;;6856:30;-1:-1:-1;;;6902:18:13;;;6895:43;6955:18;;6601:72:8::2;6642:337:13::0;6601:72:8::2;6709:30;6718:6;;6725:1;6718:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6729:6;;6736:1;6729:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6709:8;:30::i;:::-;6687:53:::0;-1:-1:-1;;;;;;6762:27:8;::::2;6754:61;;;::::0;-1:-1:-1;;;6754:61:8;;7186:2:13;6754:61:8::2;::::0;::::2;7168:21:13::0;7225:2;7205:18;;;7198:30;-1:-1:-1;;;7244:18:13;;;7237:51;7305:18;;6754:61:8::2;6984:345:13::0;6754:61:8::2;6830:119;6873:4:::0;6880:21;;:68:::2;;6936:9;;6946:1;6936:12;;;;;;;:::i;:::-;;;;;;;6880:68;;;6904:29;::::0;-1:-1:-1;;;6904:29:8;;6927:4:::2;6904:29;::::0;::::2;160:51:13::0;-1:-1:-1;;;;;6904:14:8;::::2;::::0;::::2;::::0;133:18:13;;6904:29:8::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6830:34:8;::::2;::::0;:119;:34:::2;:119::i;:::-;6963:24;::::0;-1:-1:-1;;;6963:24:8;;6981:4:::2;6963:24;::::0;::::2;160:51:13::0;-1:-1:-1;;;;;6963:9:8;::::2;::::0;::::2;::::0;133:18:13;;6963:24:8::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7012:3;;;;;6375:652;;;-1:-1:-1::0;;;;;7047:4:8::2;7037:15;;::::0;;;:9:::2;:15;::::0;;;;7055:12:::2;7037:30:::0;;:15;-1:-1:-1;7098:484:8::2;7110:17:::0;;::::2;7098:484;;;7162:9;:20;7172:6;;7179:1;7172:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7162:20:8::2;-1:-1:-1::0;;;;;7162:20:8::2;;;;;;;;;;;;;7147:12;:35;7144:193;;;7202:67;7215:6;;7222:1;7215:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7233:6;;7240:1;7233:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7226:42;::::0;-1:-1:-1;;;7226:42:8;;7262:4:::2;7226:42;::::0;::::2;160:51:13::0;-1:-1:-1;;;;;7226:27:8;;;::::2;::::0;::::2;::::0;133:18:13;;7226:42:8::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7202:12;:67::i;:::-;;7310:12;7287:9;:20;7297:6;;7304:1;7297:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7287:20:8::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;7287:20:8;:35;7144:193:::2;7368:9;:20;7378:6;;7385:1;7378:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7368:20:8::2;-1:-1:-1::0;;;;;7368:20:8::2;;;;;;;;;;;;;7353:12;:35;7350:193;;;7408:67;7421:6;;7428:1;7421:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7439:6;;7446:1;7439:9;;;;;;;:::i;7408:67::-;;7516:12;7493:9;:20;7503:6;;7510:1;7503:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7493:20:8::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;7493:20:8;:35;7350:193:::2;7567:3;;;;;7098:484;;;7660:37;::::0;-1:-1:-1;;;7660:37:8;;7691:4:::2;7660:37;::::0;::::2;160:51:13::0;7667:4:8::2;-1:-1:-1::0;;;;;7660:22:8::2;::::0;::::2;::::0;133:18:13;;7660:37:8::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7656:41;;7740:12;7775:1;7766:6;;:10;7762:157;;;7792:8;7803:24;7821:5;7803:13;7809:6;;7803:1;:5;;:13;;;;:::i;:::-;:17:::0;::::2;:24::i;:::-;7867:7;::::0;7792:35;;-1:-1:-1;7841:39:8::2;::::0;-1:-1:-1;;;;;7848:4:8::2;7841:25:::0;::::2;::::0;7867:7:::2;7792:35:::0;7841:25:::2;:39::i;:::-;7898:10;:1:::0;7904:3;7898:5:::2;:10::i;:::-;7894:14;;7778:141;7762:157;7942:19;7948:4;7954:3;7959:1;7942:5;:19::i;:::-;7928:33:::0;-1:-1:-1;7928:33:8;;-1:-1:-1;7971:67:8::2;;7996:42;::::0;-1:-1:-1;;;7996:42:8;;7884:2:13;7996:42:8::2;::::0;::::2;7866:21:13::0;;;7903:18;;;7896:30;7962:34;7942:18;;;7935:62;8014:18;;7996:42:8::2;7682:356:13::0;7971:67:8::2;8080:36;::::0;-1:-1:-1;;;8080:36:8;;8110:4:::2;8080:36;::::0;::::2;160:51:13::0;8068:9:8::2;::::0;8087:3:::2;-1:-1:-1::0;;;;;8080:21:8::2;::::0;::::2;::::0;133:18:13;;8080:36:8::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8068:48;;8126:11;8140:31;8165:5;8140:20;8149:10;;8140:4;:8;;:20;;;;:::i;:31::-;8126:45:::0;-1:-1:-1;8185:16:8::2;:4:::0;8126:45;8185:8:::2;:16::i;:::-;8181:20:::0;-1:-1:-1;8244:33:8::2;-1:-1:-1::0;;;;;8251:3:8::2;8244:24;8269:4;8181:20:::0;8244:24:::2;:33::i;:::-;8310:46;8317:3;-1:-1:-1::0;;;;;8310:24:8::2;734:10:6::0;8349:6:8;8310:24:::2;:46::i;:::-;8414:38;::::0;;8217:25:13;;;8273:2;8258:18;;8251:34;;;8439:3:8::2;-1:-1:-1::0;;;;;8414:38:8::2;::::0;734:10:6;;8414:38:8::2;::::0;8190:18:13;8414:38:8::2;;;;;;;6320:2139;;;;;2303:20:1::1;1716:1:::0;2809:22;;2629:209;2303:20:::1;6150:2309:8::0;;;;;;:::o;5826:318::-;734:10:6;1441:20:8;;;;:6;:20;;;;;;;;1433:51;;;;-1:-1:-1;;;1433:51:8;;;;;;;:::i;:::-;5952:3:::1;-1:-1:-1::0;;;;;5943:12:8::1;:5;-1:-1:-1::0;;;;;5943:12:8::1;;;:29;;;;;5968:4;-1:-1:-1::0;;;;;5959:13:8::1;:5;-1:-1:-1::0;;;;;5959:13:8::1;;;5943:29;:48;;;;;5985:6;-1:-1:-1::0;;;;;5976:15:8::1;:5;-1:-1:-1::0;;;;;5976:15:8::1;;;5943:48;5922:118;;;::::0;-1:-1:-1;;;5922:118:8;;8845:2:13;5922:118:8::1;::::0;::::1;8827:21:13::0;8884:2;8864:18;;;8857:30;8923:25;8903:18;;;8896:53;8966:18;;5922:118:8::1;8643:347:13::0;5922:118:8::1;-1:-1:-1::0;;;;;6070:16:8;;::::1;;::::0;;;:9:::1;:16;::::0;;;;;:25;;-1:-1:-1;;;;;;6070:25:8::1;::::0;;::::1;::::0;;::::1;::::0;;6110:27;::::1;::::0;6070:16;6110:27:::1;5826:318:::0;;:::o;3884:133::-;734:10:6;1441:20:8;;;;:6;:20;;;;;;;;1433:51;;;;-1:-1:-1;;;1433:51:8;;;;;;;:::i;:::-;3972:1:::1;3963:6;:10;3955:19;;;;;;3984:17;:26:::0;3884:133::o;4954:180::-;1094:13:0;:11;:13::i;:::-;5035:4:8::1;5024:7;:15;;5016:51;;;::::0;-1:-1:-1;;;5016:51:8;;9197:2:13;5016:51:8::1;::::0;::::1;9179:21:13::0;9236:2;9216:18;;;9209:30;9275:25;9255:18;;;9248:53;9318:18;;5016:51:8::1;8995:347:13::0;5016:51:8::1;5077:6;:16:::0;;;5109:18:::1;::::0;368:25:13;;;5109:18:8::1;::::0;356:2:13;341:18;5109::8::1;222:177:13::0;5728:92:8;734:10:6;1441:20:8;;;;:6;:20;;;;;;;;1433:51;;;;-1:-1:-1;;;1433:51:8;;;;;;;:::i;:::-;5788:25:::1;::::0;-1:-1:-1;;;5788:25:8;;::::1;::::0;::::1;368::13::0;;;5788:7:8::1;-1:-1:-1::0;;;;;5788:19:8::1;::::0;::::1;::::0;341:18:13;;5788:25:8::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5728:92:::0;:::o;8465:177::-;8516:53;;-1:-1:-1;;;8516:53:8;;8541:10;8516:53;;;9549:51:13;-1:-1:-1;;;;;8553:4:8;9636:32:13;;9616:18;;;9609:60;9685:18;;;9678:34;;;8523:3:8;8516:24;;;;9522:18:13;;8516:53:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8584:51:8;;;8217:25:13;;;8273:2;8258:18;;8251:34;;;8609:3:8;-1:-1:-1;;;;;8584:51:8;;734:10:6;;8584:51:8;;8190:18:13;8584:51:8;;;;;;;8465:177;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:0;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:0;;9925:2:13;2154:73:0::1;::::0;::::1;9907:21:13::0;9964:2;9944:18;;;9937:30;10003:34;9983:18;;;9976:62;-1:-1:-1;;;10054:18:13;;;10047:36;10100:19;;2154:73:0::1;9723:402:13::0;2154:73:0::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;3537:341:8:-;734:10:6;1441:20:8;;;;:6;:20;;;;;;;;1433:51;;;;-1:-1:-1;;;1433:51:8;;;;;;;:::i;:::-;3702:17:::1;;3693:5;:26;;3685:74;;;::::0;-1:-1:-1;;;3685:74:8;;10332:2:13;3685:74:8::1;::::0;::::1;10314:21:13::0;10371:2;10351:18;;;10344:30;10410:34;10390:18;;;10383:62;-1:-1:-1;;;10461:18:13;;;10454:33;10504:19;;3685:74:8::1;10130:399:13::0;3685:74:8::1;3770:18;::::0;;;:11:::1;:18;::::0;;;;:26;;-1:-1:-1;;;;;;3770:26:8::1;-1:-1:-1::0;;;;;3770:26:8;::::1;;::::0;;3818:17:::1;::::0;3809:26;;3806:65:::1;;3870:1;3849:17;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3806:65:8::1;3537:341:::0;;:::o;4855:92::-;1094:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;4919:13:8::1;4935:5;4919:13:::0;;;:6:::1;:13;::::0;;;;:21;;-1:-1:-1;;4919:21:8::1;::::0;;4855:92::o;5571:151::-;734:10:6;1441:20:8;;;;:6;:20;;;;;;;;1433:51;;;;-1:-1:-1;;;1433:51:8;;;;;;;:::i;:::-;5641:32:::1;::::0;-1:-1:-1;;;5641:32:8;;-1:-1:-1;;;;;178:32:13;;;5641::8::1;::::0;::::1;160:51:13::0;5641:7:8::1;:24;::::0;::::1;::::0;133:18:13;;5641:32:8::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5688:27:8::1;::::0;-1:-1:-1;;;;;178:32:13;;160:51;;5688:27:8::1;::::0;-1:-1:-1;148:2:13;133:18;;-1:-1:-1;5688:27:8::1;14:203:13::0;1359:130:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:0;734:10:6;1422:23:0;1414:68;;;;-1:-1:-1;;;1414:68:0;;10998:2:13;1414:68:0;;;10980:21:13;;;11017:18;;;11010:30;11076:34;11056:18;;;11049:62;11128:18;;1414:68:0;10796:356:13;2426:187:0;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:0;;;-1:-1:-1;;;;;;2534:17:0;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;2336:287:1:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:1;;11359:2:13;2460:63:1;;;11341:21:13;11398:2;11378:18;;;11371:30;11437:33;11417:18;;;11410:61;11488:18;;2460:63:1;11157:355:13;2460:63:1;1759:1;2598:7;:18;2336:287::o;4023:671:8:-;-1:-1:-1;;;;;4094:14:8;;4074:4;4094:14;;;:8;:14;;;;;;;;4090:32;;;-1:-1:-1;4117:5:8;;4023:671;-1:-1:-1;4023:671:8:o;4090:32::-;4132:19;4169:4;4132:42;;4188:4;-1:-1:-1;;;;;4188:11:8;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:13:8;;;;;;;;-1:-1:-1;;4188:13:8;;;;;;;;;;;;:::i;:::-;;;4184:504;;-1:-1:-1;;;;;;;4630:14:8;;;;;:8;:14;;;;;:21;;-1:-1:-1;;4630:21:8;4647:4;4630:21;;;:14;4023:671::o;4184:504::-;4241:14;4258:4;-1:-1:-1;;;;;4258:11:8;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4241:30;;4285:16;4304:24;4313:6;4321;4304:8;:24::i;:::-;4285:43;;4434:8;-1:-1:-1;;;;;4426:16:8;:4;-1:-1:-1;;;;;4426:16:8;;4422:152;;-1:-1:-1;;;;;4462:14:8;;;;;;:8;:14;;;;;;;;;:21;;-1:-1:-1;;4462:21:8;4479:4;4462:21;;;4506:23;;160:51:13;;;4506:23:8;;133:18:13;4506:23:8;;;;;;;-1:-1:-1;4554:5:8;;4023:671;-1:-1:-1;;;;;4023:671:8:o;4422:152::-;-1:-1:-1;4594:4:8;;4023:671;-1:-1:-1;;;;;4023:671:8:o;10527:348::-;10595:12;10647:6;-1:-1:-1;;;;;10638:15:8;:6;-1:-1:-1;;;;;10638:15:8;;:53;;10676:6;10684;10638:53;;;10657:6;10665;10638:53;-1:-1:-1;;;;;10708:14:8;;;;;;;:6;:14;;;;;;;;:22;;;;;;;;;;;10619:72;;-1:-1:-1;10619:72:8;;-1:-1:-1;10708:22:8;;-1:-1:-1;10708:22:8;10740:129;;10784:31;;-1:-1:-1;;;10784:31:8;;-1:-1:-1;;;;;11709:32:13;;;10784:31:8;;;11691:51:13;11778:32;;;11758:18;;;11751:60;10784:7:8;:15;;;;11664:18:13;;10784:31:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10829:14:8;;;;;;;:6;:14;;;;;;;;:22;;;;;;;;;;:29;;-1:-1:-1;;;;;;10829:29:8;;;;;;;;;;;-1:-1:-1;10740:129:8;10527:348;;;;:::o;941:175:4:-;1050:58;;;-1:-1:-1;;;;;5172:32:13;;1050:58:4;;;5154:51:13;5221:18;;;;5214:34;;;1050:58:4;;;;;;;;;;5127:18:13;;;;1050:58:4;;;;;;;;-1:-1:-1;;;;;1050:58:4;-1:-1:-1;;;1050:58:4;;;1023:86;;1043:5;;1023:19;:86::i;:::-;941:175;;;:::o;8675:1225:8:-;8769:4;8823;-1:-1:-1;;;;;8813:14:8;:6;-1:-1:-1;;;;;8813:14:8;;:31;;;;8841:3;-1:-1:-1;;;;;8831:13:8;:6;-1:-1:-1;;;;;8831:13:8;;8813:31;8809:1064;;;-1:-1:-1;8867:4:8;8860:11;;8809:1064;-1:-1:-1;;;;;8919:17:8;;;8902:14;8919:17;;;:9;:17;;;;;;;;;;8987:20;;8984:90;;9045:29;9051:6;9059;9067;9045:5;:29::i;:::-;9025:49;;-1:-1:-1;9025:49:8;-1:-1:-1;8984:90:8;9092:7;9089:774;;;9117:28;9130:6;9138;9117:12;:28::i;:::-;;9089:774;;;9168:6;9164:699;9184:17;;9180:1;:21;9164:699;;;9231:14;;;;:11;:14;;;;;;-1:-1:-1;;;;;9231:14:8;;-1:-1:-1;9231:14:8;9263:111;;9321:3;;9164:699;;9263:111;9411:29;9417:6;9425;9433;9411:5;:29::i;:::-;9391:49;;-1:-1:-1;9391:49:8;-1:-1:-1;9391:49:8;9458:278;;9519:1;9499:17;;:21;;;;:::i;:::-;9494:1;:26;9491:245;;9546:65;;-1:-1:-1;;;9546:65:8;;12157:2:13;9546:65:8;;;12139:21:13;12196:2;12176:18;;;12169:30;12235:34;12215:18;;;12208:62;12306:25;12286:18;;;12279:53;12349:19;;9546:65:8;11955:419:13;9491:245:8;9675:3;;9164:699;;9491:245;-1:-1:-1;;;;;9753:17:8;;;;;;;:9;:17;;;;;:26;;-1:-1:-1;;;;;;9753:26:8;;;;;;;;;;9797:28;9753:26;9818:6;9797:12;:28::i;:::-;;9164:699;;9089:774;8888:985;;-1:-1:-1;9889:4:8;8675:1225;;;;:::o;3465:96:7:-;3523:7;3549:5;3553:1;3549;:5;:::i;:::-;3542:12;3465:96;-1:-1:-1;;;3465:96:7:o;3850:::-;3908:7;3934:5;3938:1;3934;:5;:::i;3122:96::-;3180:7;3206:5;3210:1;3206;:5;:::i;9906:615:8:-;10023:17;10042:12;10082:7;-1:-1:-1;;;;;10069:20:8;:9;-1:-1:-1;;;;;10069:20:8;;10066:61;;-1:-1:-1;10111:8:8;;-1:-1:-1;10121:5:8;10103:24;;10066:61;-1:-1:-1;;;;;10142:26:8;;;;;;:15;:26;;;;;;;;10138:159;;10184:55;;-1:-1:-1;;;10184:55:8;;-1:-1:-1;;;;;10218:7:8;5172:32:13;;10184:55:8;;;5154:51:13;-1:-1:-1;;5221:18:13;;;5214:34;10184:25:8;;;;;5127:18:13;;10184:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10253:26:8;;;;;;:15;:26;;;;;:33;;-1:-1:-1;;10253:33:8;10282:4;10253:33;;;10138:159;10311:7;-1:-1:-1;;;;;10311:12:8;;10324:9;10350:28;10359:9;10370:7;10350:8;:28::i;:::-;10311:79;;-1:-1:-1;;;;;;10311:79:8;;;;;;;-1:-1:-1;;;;;9567:32:13;;;10311:79:8;;;9549:51:13;9636:32;;9616:18;;;9609:60;9685:18;;;9678:34;;;9522:18;;10311:79:8;;;;;;;;;;;;;;;;;;;-1:-1:-1;10311:79:8;;;;;;;;-1:-1:-1;;10311:79:8;;;;;;;;;;;;:::i;:::-;;;10307:208;;-1:-1:-1;10488:8:8;;-1:-1:-1;10498:5:8;10480:24;;10307:208;10435:6;-1:-1:-1;10443:4:8;;-1:-1:-1;10307:208:8;9906:615;;;;;;:::o;5196:642:4:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:4;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:4;;13739:2:13;5720:111:4;;;13721:21:13;13778:2;13758:18;;;13751:30;13817:34;13797:18;;;13790:62;-1:-1:-1;;;13868:18:13;;;13861:40;13918:19;;5720:111:4;13537:406:13;4108:223:5;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;4108:223;-1:-1:-1;;;;4108:223:5:o;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:5;;14150:2:13;5354:81:5;;;14132:21:13;14189:2;14169:18;;;14162:30;14228:34;14208:18;;;14201:62;-1:-1:-1;;;14279:18:13;;;14272:36;14325:19;;5354:81:5;13948:402:13;5354:81:5;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:5;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:5:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:5;;;8113:60;;;;-1:-1:-1;;;8113:60:5;;14863:2:13;8113:60:5;;;14845:21:13;14902:2;14882:18;;;14875:30;14941:31;14921:18;;;14914:59;14990:18;;8113:60:5;14661:353:13;8113:60:5;-1:-1:-1;8208:10:5;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:5;;;;;;;;:::i;404:131:13:-;-1:-1:-1;;;;;479:31:13;;469:42;;459:70;;525:1;522;515:12;540:247;599:6;652:2;640:9;631:7;627:23;623:32;620:52;;;668:1;665;658:12;620:52;707:9;694:23;726:31;751:5;726:31;:::i;984:226::-;1043:6;1096:2;1084:9;1075:7;1071:23;1067:32;1064:52;;;1112:1;1109;1102:12;1064:52;-1:-1:-1;1157:23:13;;984:226;-1:-1:-1;984:226:13:o;1440:367::-;1503:8;1513:6;1567:3;1560:4;1552:6;1548:17;1544:27;1534:55;;1585:1;1582;1575:12;1534:55;-1:-1:-1;1608:20:13;;1651:18;1640:30;;1637:50;;;1683:1;1680;1673:12;1637:50;1720:4;1712:6;1708:17;1696:29;;1780:3;1773:4;1763:6;1760:1;1756:14;1748:6;1744:27;1740:38;1737:47;1734:67;;;1797:1;1794;1787:12;1734:67;1440:367;;;;;:::o;1812:437::-;1898:6;1906;1959:2;1947:9;1938:7;1934:23;1930:32;1927:52;;;1975:1;1972;1965:12;1927:52;2015:9;2002:23;2048:18;2040:6;2037:30;2034:50;;;2080:1;2077;2070:12;2034:50;2119:70;2181:7;2172:6;2161:9;2157:22;2119:70;:::i;:::-;2208:8;;2093:96;;-1:-1:-1;1812:437:13;-1:-1:-1;;;;1812:437:13:o;2254:1099::-;2412:6;2420;2428;2436;2444;2452;2505:2;2493:9;2484:7;2480:23;2476:32;2473:52;;;2521:1;2518;2511:12;2473:52;2561:9;2548:23;2594:18;2586:6;2583:30;2580:50;;;2626:1;2623;2616:12;2580:50;2665:70;2727:7;2718:6;2707:9;2703:22;2665:70;:::i;:::-;2754:8;;-1:-1:-1;2639:96:13;-1:-1:-1;;2842:2:13;2827:18;;2814:32;2871:18;2858:32;;2855:52;;;2903:1;2900;2893:12;2855:52;2942:72;3006:7;2995:8;2984:9;2980:24;2942:72;:::i;:::-;3033:8;;-1:-1:-1;2916:98:13;-1:-1:-1;;3121:2:13;3106:18;;3093:32;3150:18;3137:32;;3134:52;;;3182:1;3179;3172:12;3134:52;3221:72;3285:7;3274:8;3263:9;3259:24;3221:72;:::i;:::-;2254:1099;;;;-1:-1:-1;2254:1099:13;;-1:-1:-1;2254:1099:13;;3312:8;;2254:1099;-1:-1:-1;;;2254:1099:13:o;3358:388::-;3426:6;3434;3487:2;3475:9;3466:7;3462:23;3458:32;3455:52;;;3503:1;3500;3493:12;3455:52;3542:9;3529:23;3561:31;3586:5;3561:31;:::i;:::-;3611:5;-1:-1:-1;3668:2:13;3653:18;;3640:32;3681:33;3640:32;3681:33;:::i;:::-;3733:7;3723:17;;;3358:388;;;;;:::o;3985:367::-;4053:6;4061;4114:2;4102:9;4093:7;4089:23;4085:32;4082:52;;;4130:1;4127;4120:12;4082:52;4175:23;;;-1:-1:-1;4274:2:13;4259:18;;4246:32;4287:33;4246:32;4287:33;:::i;4357:251::-;4427:6;4480:2;4468:9;4459:7;4455:23;4451:32;4448:52;;;4496:1;4493;4486:12;4448:52;4528:9;4522:16;4547:31;4572:5;4547:31;:::i;4613:127::-;4674:10;4669:3;4665:20;4662:1;4655:31;4705:4;4702:1;4695:15;4729:4;4726:1;4719:15;4745:230;4815:6;4868:2;4856:9;4847:7;4843:23;4839:32;4836:52;;;4884:1;4881;4874:12;4836:52;-1:-1:-1;4929:16:13;;4745:230;-1:-1:-1;4745:230:13:o;5259:277::-;5326:6;5379:2;5367:9;5358:7;5354:23;5350:32;5347:52;;;5395:1;5392;5385:12;5347:52;5427:9;5421:16;5480:5;5473:13;5466:21;5459:5;5456:32;5446:60;;5502:1;5499;5492:12;7334:343;7413:6;7421;7474:2;7462:9;7453:7;7449:23;7445:32;7442:52;;;7490:1;7487;7480:12;7442:52;-1:-1:-1;;7535:16:13;;7641:2;7626:18;;;7620:25;7535:16;;7620:25;;-1:-1:-1;7334:343:13:o;8296:342::-;8498:2;8480:21;;;8537:2;8517:18;;;8510:30;-1:-1:-1;;;8571:2:13;8556:18;;8549:48;8629:2;8614:18;;8296:342::o;10534:127::-;10595:10;10590:3;10586:20;10583:1;10576:31;10626:4;10623:1;10616:15;10650:4;10647:1;10640:15;10666:125;10731:9;;;10752:10;;;10749:36;;;10765:18;;:::i;11822:128::-;11889:9;;;11910:11;;;11907:37;;;11924:18;;:::i;12379:168::-;12452:9;;;12483;;12500:15;;;12494:22;;12480:37;12470:71;;12521:18;;:::i;12552:217::-;12592:1;12618;12608:132;;12662:10;12657:3;12653:20;12650:1;12643:31;12697:4;12694:1;12687:15;12725:4;12722:1;12715:15;12608:132;-1:-1:-1;12754:9:13;;12552:217::o;14355:301::-;14484:3;14522:6;14516:13;14568:6;14561:4;14553:6;14549:17;14544:3;14538:37;14630:1;14594:16;;14619:13;;;-1:-1:-1;14594:16:13;14355:301;-1:-1:-1;14355:301:13:o;15019:418::-;15168:2;15157:9;15150:21;15131:4;15200:6;15194:13;15243:6;15238:2;15227:9;15223:18;15216:34;15302:6;15297:2;15289:6;15285:15;15280:2;15269:9;15265:18;15259:50;15358:1;15353:2;15344:6;15333:9;15329:22;15325:31;15318:42;15428:2;15421;15417:7;15412:2;15404:6;15400:15;15396:29;15385:9;15381:45;15377:54;15369:62;;;15019:418;;;;:::o

    Swarm Source

    ipfs://dd0e97c91177f36469ddf1838eb33eb60fb608c0e3a2a011c28cd03608045c85

    Block Age Transaction Gas Used Reward
    view all blocks ##produced##

    Block Age Uncle Number Difficulty Gas Used Reward
    View All Uncles
    Loading...
    Loading
    Loading...
    Loading

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age Value Eth2 PubKey Valid
    View All Deposits
    [ Download: CSV Export  ]
    [ Download: CSV Export  ]

    A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.