Contract 0x7bae4899da6141dca832188e8237bf5f2fdb85f9 1

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xa1a21261d158af487e8e67865a7483b448da9d09435756eaf126e723e8e25ea3Create Pool407895652023-03-26 12:12:183 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.03315387591 932.31
0x1207c96d33da470ba2749836cd5dc71e92909b3e24205c452eba2377c21d93b7Create Pool407895652023-03-26 12:12:183 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.02495955468 701.88
0x72bab58284e863cd0f3fc9e1ccb4d8a5abffbb117a325f39b4c6706f8d170b72Create Pool407895652023-03-26 12:12:183 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.021133368885 594.285
0x5a929fbf37ea8d48d56d6ddfc59ba4834027eb1e715e3949d27da3263850b35bCreate Pool407895652023-03-26 12:12:183 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.029551724415 831.015
0xbd33e479b86629f5737e626bd5b886a8267e0d56463fe56572f58307ce4c6ab5Trigger407895652023-03-26 12:12:183 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.015384522825 200.025
0xefe7533148d43944020d6818b9b4efe209b874b1164eb50ca0b49d78fce704d7Trigger407892772023-03-26 11:58:183 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.010030253625 200.025
0xf578bd6af0c7e8d34d1433f4ca0ee8edcde6a594c01cd0fdab4e1e908ad7b3f1Trigger407892692023-03-26 11:57:463 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.015382122525 200.025
0x9046f47f428bc5d923f2b63e00c54253ce233adf2f4ed3d28d49027dfdb2e0fcTrigger407892602023-03-26 11:57:143 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.010030253625 200.025
0x0af08c368c976ffaccedb535afc03bfc209fd03822cf729e200263be3c488d3eCreate Pool407892572023-03-26 11:57:083 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.007113089025 200.025
0x46a42b3f0fc66de1384689d3d6ae90cab6d6b17b74cb62a928c68b2c670ab593Trigger407892412023-03-26 11:56:343 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.010513378133 136.670498975
0x0980f41b8751a076f8948eb915ad3fc602e749b511637c788822db680e34d2feTrigger407892272023-03-26 11:56:043 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.007089925461 141.388482633
0x8aae8c30e3b5abb57544620fcb21d16ecf96e705f454164b073b7da74e6ed61cTrigger407892122023-03-26 11:55:323 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.012239233255 159.130878462
0x29ea41139c2241a749eed17a9109152d2c60d9bd98b0637d83d04cee71f7a050Trigger407891982023-03-26 11:55:023 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.008349487521 166.506880472
0x1d7f61b3489c44f0563684f42fce6eec87687ef58a7cfd21268adf9738765480Trigger407891842023-03-26 11:54:343 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.014291065284 185.808189577
0x26afb1874cc9719e57904917c2297931981966b0c5189b00d255176d3c95cc89Trigger407891692023-03-26 11:54:023 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.010906020121 217.489682354
0xcb9565a3e125494ba6298eb6ba28aa613b230c229b788410061afbce9c12ddb7Trigger407891562023-03-26 11:53:343 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.01854343084 241.096184525
0x4129b78512c749e8498c23de201c67ae67549b5d235837bffdddd57aeb7172c9Trigger407891532023-03-26 11:53:283 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.012752204355 254.30659797
0x95a9a3c8d9ecc05fbad38bd151396b93cf4d1aec48badbfffbededa0afc5736eTrigger407891442023-03-26 11:52:403 days 22 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.016136852502 209.80656719
0x8ecfa5ceb267e48c43be1feebef07a847232752369e843c0b2cf704fa606df84Trigger407891292023-03-26 11:51:323 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.008010106928 159.738895773
0x7867354e618b54f34b0bd208a29fcd23691e0034126535cf7ec0e5333ab0c0f2Trigger407891152023-03-26 11:51:023 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.01240391959 161.272081315
0x6c1c758cfc3cff72ea3019d4d92bcd38c0adfcb9647776da553f7f480acf8940Trigger407891012023-03-26 11:50:323 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.009059125503 180.658600137
0x3cda86fbf871d6204da7c80c1e09e282e39ed808abe8bc44409b808e4a1370c5Trigger407890872023-03-26 11:50:023 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.015814835285 205.619794905
0x898cc8ca1e9de1dcce81330bcfcba1e68f6f426db1682aa7aa08a6b1be5a3cc3Trigger407890742023-03-26 11:49:363 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.012021739618 239.73954769
0xc4d800c0851169cae45fca2f13c1bc4ee627e2d09250771c297e28924fa97e10Trigger407890582023-03-26 11:49:023 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.021382837961 278.013313241
0x4be3e1b6b5ecfa88cf6d3ef4f1d0b37d028f97c2379f5fec4536992ee42a0ccaTrigger407890442023-03-26 11:48:323 days 23 hrs ago0xde968771e9a0c173398bbbe977fb125d34409809 IN  0x7bae4899da6141dca832188e8237bf5f2fdb85f90 MATIC0.016411342961 327.277753748
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x3b5bd68e05bbf749832468c68832846b72c823dbde1e1e3dfdfa98db18274fc2407877922023-03-26 10:56:123 days 23 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098090.9 MATIC
0x3b5bd68e05bbf749832468c68832846b72c823dbde1e1e3dfdfa98db18274fc2407877922023-03-26 10:56:123 days 23 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x3e70bc04a272d79309de25e8907930be3361b49d9.55 MATIC
0x3b5bd68e05bbf749832468c68832846b72c823dbde1e1e3dfdfa98db18274fc2407877922023-03-26 10:56:123 days 23 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x57f6f2ae31a16e6eec97079c26164b962b32f5679.55 MATIC
0xf80c80e02a6fb1c8e98dc1b08842cef75f6682f72d649b174994a947dc6c37f9406377212023-03-22 13:08:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098090.45 MATIC
0xf80c80e02a6fb1c8e98dc1b08842cef75f6682f72d649b174994a947dc6c37f9406377212023-03-22 13:08:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x67b503bd5898d7efe71bdc83fcfea645f3f39c3c9.55 MATIC
0xb947050b2deb53f26826379a88f3dfd2cd9e774776708b2332763bcf0b7472e9406376922023-03-22 13:07:017 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098090.45 MATIC
0xb947050b2deb53f26826379a88f3dfd2cd9e774776708b2332763bcf0b7472e9406376922023-03-22 13:07:017 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x4efe0b85934b7375256d1ec8bd792aa3173f88eb9.55 MATIC
0xc1742df710ecd4f8955ef307b0503495fdade8e915e68fc93bc521b38badb40d406376642023-03-22 13:06:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098090.4955 MATIC
0xc1742df710ecd4f8955ef307b0503495fdade8e915e68fc93bc521b38badb40d406376642023-03-22 13:06:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xa9d673f0c4a181a6189612813f0d335cbf5d1b7f6.5015 MATIC
0xc1742df710ecd4f8955ef307b0503495fdade8e915e68fc93bc521b38badb40d406376642023-03-22 13:06:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x67b503bd5898d7efe71bdc83fcfea645f3f39c3c6.5015 MATIC
0xc1742df710ecd4f8955ef307b0503495fdade8e915e68fc93bc521b38badb40d406376642023-03-22 13:06:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x5fc45831bfea82b7c573db30d3b4f1544a5c16646.5015 MATIC
0xb81f3cdc692643c5526cac4028fdf3f38d75282c07d8eb47806ac8189a23f45b406376422023-03-22 13:05:057 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098091.4865 MATIC
0xb81f3cdc692643c5526cac4028fdf3f38d75282c07d8eb47806ac8189a23f45b406376422023-03-22 13:05:057 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xbc0ecc0cca02066231ecaa6d54cbd393b38a70b99.5045 MATIC
0xb81f3cdc692643c5526cac4028fdf3f38d75282c07d8eb47806ac8189a23f45b406376422023-03-22 13:05:057 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xa9d673f0c4a181a6189612813f0d335cbf5d1b7f9.5045 MATIC
0xb81f3cdc692643c5526cac4028fdf3f38d75282c07d8eb47806ac8189a23f45b406376422023-03-22 13:05:057 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x95dc95970200e8cbb93f0f8956b7d9dd0ebe76f69.5045 MATIC
0xf7e7fa2ac4d472fd62f7b48c7e16f44a6b723e5f38d2791567c167d41174d220406376232023-03-22 13:04:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x856d5a1f3d7769bebf46473354f1acf6fc172ea85 MATIC
0xf7e7fa2ac4d472fd62f7b48c7e16f44a6b723e5f38d2791567c167d41174d220406376232023-03-22 13:04:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xb068f6b496fda147b4923b2fac6c67ad47a7b0515 MATIC
0xf7e7fa2ac4d472fd62f7b48c7e16f44a6b723e5f38d2791567c167d41174d220406376232023-03-22 13:04:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xad6229fcf4d8ebb1b6ffab6894e456b361b7c2315 MATIC
0x165b4e3cb09d7add544bff716e8c0aff5bcbc22e37300fddb59bfa00da798261406375952023-03-22 13:03:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x5fc45831bfea82b7c573db30d3b4f1544a5c16645 MATIC
0x86c1de11d0ed356ccf70741a1d9518ff7b350c47cdbc9d9ae446969ec61ca6e1406375682023-03-22 13:02:077 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098090.991 MATIC
0x86c1de11d0ed356ccf70741a1d9518ff7b350c47cdbc9d9ae446969ec61ca6e1406375682023-03-22 13:02:077 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xbc0ecc0cca02066231ecaa6d54cbd393b38a70b97.366 MATIC
0x86c1de11d0ed356ccf70741a1d9518ff7b350c47cdbc9d9ae446969ec61ca6e1406375682023-03-22 13:02:077 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xc68c7a33c0b49ed356b33567f391bccde860c2bf13.277 MATIC
0x86c1de11d0ed356ccf70741a1d9518ff7b350c47cdbc9d9ae446969ec61ca6e1406375682023-03-22 13:02:077 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90x57f9b4a3f3bc8544e39ac9e66a50aaff2769a0ba7.366 MATIC
0xcd9bc1d01be74a94d9b0da13d7520c8a2d217a3524b2b46ed4bcc5b45db05141406375522023-03-22 13:01:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xde968771e9a0c173398bbbe977fb125d344098090.45 MATIC
0xcd9bc1d01be74a94d9b0da13d7520c8a2d217a3524b2b46ed4bcc5b45db05141406375522023-03-22 13:01:037 days 21 hrs ago 0x7bae4899da6141dca832188e8237bf5f2fdb85f90xb068f6b496fda147b4923b2fac6c67ad47a7b0519.55 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UpVsDownGameV1

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2023-02-01
*/

// File: @openzeppelin/contracts/utils/Context.sol

// SPDX-License-Identifier: MIT

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;
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol


pragma solidity ^0.8.0;

/**
 * @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.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts/UpVsDownGameV1.sol

pragma solidity >=0.4.22 <0.9.0;

contract UpVsDownGameV1 is Ownable {

  struct BetGroup {
    uint256[] bets;
    address[] addresses;
    string[] avatars;
    string[] countries;
    uint256 total;
    uint256 distributedCount;
    uint256 totalDistributed;
  }

  struct Round {
    bool created;
    int32 startPrice;
    int32 endPrice;
    uint256 minBetAmount;
    uint256 maxBetAmount;
    uint256 poolBetsLimit;
    BetGroup upBetGroup;
    BetGroup downBetGroup;
    int64 roundStartTime;
  }

  struct Distribution {
    uint256 fee;
    uint256 totalMinusFee;
    uint256 pending;
  }

  address public gameController;
  mapping(bytes => Round) public pools;
  uint8 public feePercentage = 5;
  address public feeAddress = msg.sender;
  bool public isRunning;
  bytes public notRunningReason;

  // Errors

  error PendingDistributions();

  // Events

  event RoundStarted(bytes poolId, int64 timestamp, int32 price, uint256 minTradeAmount, uint256 maxTradeAmount, uint256 poolTradesLimit, bytes indexed indexedPoolId);
  event RoundEnded(bytes poolId, int64 timestamp, int32 startPrice, int32 endPrice, bytes indexed indexedPoolId);
  event TradePlaced(bytes poolId, address sender, uint256 amount, string prediction, uint256 newTotal, bytes indexed indexedPoolId, address indexed indexedSender, string avatarUrl, string countryCode, int64 roundStartTime);
  event TradeReturned(bytes poolId, address sender, uint256 amount);
  event GameStopped(bytes reason);
  event GameStarted();
  event RoundDistributed(bytes poolId, uint totalWinners, uint from, uint to, int64 timestamp);
  event TradeWinningsSent(bytes poolId, address sender, uint256 tradeAmount, uint256 winningsAmount, address indexed indexedSender);

  // Modifiers

  modifier onlyGameController () {
    require(msg.sender == gameController, 'Only game controller can do this');
    _;
  }

  modifier onlyOpenPool (bytes calldata poolId) {
    require(isPoolOpen(poolId), 'This pool has a round in progress');
    _;
  }

  modifier onlyGameRunning () {
    require(isRunning, 'The game is not running');
    _;
  }

  modifier onlyPoolExists (bytes calldata poolId) {
    require(pools[poolId].created == true, 'Pool does not exist');
    _;
  }

  constructor(address newGameController) {
    gameController = newGameController;
  }

  // Methods

  function changeGameControllerAddress(address newGameController) public onlyOwner {
    gameController = newGameController;
  }

  function changeGameFeePercentage(uint8 newFeePercentage) public onlyOwner {
    feePercentage = newFeePercentage;
  }

  function changeGameFeeAddress(address newFeeAddress) public onlyOwner {
    feeAddress = newFeeAddress;
  }

  function stopGame(bytes calldata reason) public onlyOwner {
    isRunning = false;
    notRunningReason = reason;
    emit GameStopped(reason);
  }

  function startGame() public onlyOwner {
    isRunning = true;
    notRunningReason = '';
    emit GameStarted();
  }

  function createPool(bytes calldata poolId, uint256 minBetAmount , uint256 maxBetAmount, uint256 poolBetsLimit) public onlyGameController {
    pools[poolId].created = true;
    pools[poolId].minBetAmount = minBetAmount;
    pools[poolId].maxBetAmount = maxBetAmount;
    pools[poolId].poolBetsLimit = poolBetsLimit;
  }

  function trigger(
    bytes calldata poolId,
    int64 timeMS,
    int32 price,
    uint32 batchSize
  ) public onlyGameController onlyPoolExists(poolId) {
    Round storage currentRound = pools[poolId];

    if(isPoolOpen(poolId)) {
      require(isRunning, 'The game is not running, rounds can only be ended at this point');
      currentRound.startPrice = price;
      currentRound.roundStartTime = timeMS;
    
      emit RoundStarted(poolId, timeMS, currentRound.startPrice, currentRound.minBetAmount, currentRound.maxBetAmount, currentRound.poolBetsLimit, poolId);
    } else if (currentRound.endPrice == 0) {
      currentRound.endPrice = price;

      emit RoundEnded(poolId, timeMS, currentRound.startPrice, currentRound.endPrice, poolId);

      distribute(poolId, batchSize, timeMS);
    } else {
      revert PendingDistributions();
    }
  }

  function returnBets (
    bytes calldata poolId,
    BetGroup storage group,
    uint32 batchSize
  ) private {
    uint256 pending = group.bets.length - group.distributedCount;
    uint256 limit = pending > batchSize ? batchSize : pending;
    uint256 to = group.distributedCount + limit;

    for (uint i = group.distributedCount; i < to; i ++) {
      sendEther(group.addresses[i], group.bets[i]);
      emit TradeReturned(poolId, group.addresses[i], group.bets[i]);
    }

    group.distributedCount = to;
  }

  function distribute (
    bytes calldata poolId,
    uint32 batchSize,
    int64 timeMS
  ) public onlyGameController onlyPoolExists(poolId) {
    Round storage round = pools[poolId];

    if (round.upBetGroup.bets.length == 0 || round.downBetGroup.bets.length == 0) {
      BetGroup storage returnGroup = round.downBetGroup.bets.length == 0 ? round.upBetGroup : round.downBetGroup;

      uint fromReturn = returnGroup.distributedCount;
      returnBets(poolId, returnGroup, batchSize);
      emit RoundDistributed(poolId, returnGroup.bets.length, fromReturn, returnGroup.distributedCount,timeMS);

      if (returnGroup.distributedCount == returnGroup.bets.length) {
        clearPool(poolId);
      }
      return;
    }


    BetGroup storage winners = round.downBetGroup;
    BetGroup storage losers = round.upBetGroup;

    if (round.startPrice < round.endPrice) {
      winners = round.upBetGroup;
      losers = round.downBetGroup;
    }

    Distribution memory dist = calculateDistribution(winners, losers);
    uint256 limit = dist.pending > batchSize ? batchSize : dist.pending;
    uint256 to = winners.distributedCount + limit;

    for (uint i = winners.distributedCount; i < to; i++) {
      uint256 winnings = ((winners.bets[i] * 100 / winners.total) * dist.totalMinusFee / 100);
      sendEther(winners.addresses[i], winnings + winners.bets[i]);
      emit TradeWinningsSent(poolId, winners.addresses[i], winners.bets[i], winnings, winners.addresses[i]);
      winners.totalDistributed = winners.totalDistributed + winnings;
    }

    emit RoundDistributed(poolId, winners.bets.length, winners.distributedCount, to, timeMS);

    winners.distributedCount = to;
    if (winners.distributedCount == winners.bets.length) {
      sendEther(feeAddress, dist.fee + dist.totalMinusFee - winners.totalDistributed);
      clearPool(poolId);
    }
  }

  function calculateDistribution (
    BetGroup storage winners,
    BetGroup storage losers
  ) private view returns (Distribution memory) {
    uint256 fee = feePercentage * losers.total / 100;
    uint256 pending = winners.bets.length - winners.distributedCount;
    return Distribution({
      fee: fee,
      totalMinusFee: losers.total - fee,
      pending: pending
    });
  }

  function clearPool (
    bytes calldata poolId
  ) private {
    delete pools[poolId].upBetGroup;
    delete pools[poolId].downBetGroup;
    delete pools[poolId].startPrice;
    delete pools[poolId].endPrice;
  }

  function hasPendingDistributions(
    bytes calldata poolId
  ) public view returns (bool) {
    return (pools[poolId].upBetGroup.bets.length + pools[poolId].downBetGroup.bets.length) > 0;
  }

  function isPoolOpen(
    bytes calldata poolId
  ) public view returns (bool) {
    return pools[poolId].startPrice == 0;
  }

  function addBet (
    BetGroup storage betGroup,
    uint256 amount,
    string calldata avatar,
    string calldata countryCode
  ) private returns (uint256) {
    betGroup.bets.push(amount);
    betGroup.addresses.push(msg.sender);
    betGroup.avatars.push(avatar);
    betGroup.countries.push(countryCode);
    betGroup.total += amount;
    return betGroup.total;
  }

  struct makeTradeStruct{
    bytes poolId;
    string avatarUrl;
    string countryCode;
    bool upOrDown;
  }

  function makeTrade(
    makeTradeStruct calldata userTrade
  ) public payable onlyOpenPool(userTrade.poolId) onlyGameRunning onlyPoolExists(userTrade.poolId) {
    require(msg.value > 0, "Needs to send Matic to trade");
    require(msg.value >= pools[userTrade.poolId].minBetAmount, "Trade amount should be higher than the minimum");
    require(msg.value <= pools[userTrade.poolId].maxBetAmount, "Trade amount should be lower than the maximum");
    uint256 newTotal;

    if (userTrade.upOrDown) {
      require(pools[userTrade.poolId].upBetGroup.bets.length <= pools[userTrade.poolId].poolBetsLimit-1,"Pool is full, wait for next round");
      newTotal = addBet(pools[userTrade.poolId].upBetGroup, msg.value, userTrade.avatarUrl, userTrade.countryCode);
    } else {
      require(pools[userTrade.poolId].downBetGroup.bets.length <= pools[userTrade.poolId].poolBetsLimit-1,"Pool is full, wait for next round");
      newTotal = addBet(pools[userTrade.poolId].downBetGroup, msg.value, userTrade.avatarUrl, userTrade.countryCode);
    }

    string memory avatar;
    {
      avatar = userTrade.avatarUrl;
    }

    string memory countryCode;
    {
      countryCode = userTrade.countryCode;
    }

    int64 roundStartTime;
    {
      roundStartTime = pools[userTrade.poolId].roundStartTime;
    }

    emit TradePlaced(userTrade.poolId, msg.sender, msg.value, (userTrade.upOrDown) ? "UP":"DOWN", newTotal, userTrade.poolId, msg.sender, avatar, countryCode, roundStartTime);
  }

  function sendEther (
    address to, 
    uint256 amount
  ) private {
    (bool sent, bytes memory data) = payable(to).call{gas: 0, value: amount}("");
    require(sent, "Couldn't send ether");
  } 
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"newGameController","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"PendingDistributions","type":"error"},{"anonymous":false,"inputs":[],"name":"GameStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"GameStopped","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":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"totalWinners","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"from","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"to","type":"uint256"},{"indexed":false,"internalType":"int64","name":"timestamp","type":"int64"}],"name":"RoundDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"int64","name":"timestamp","type":"int64"},{"indexed":false,"internalType":"int32","name":"startPrice","type":"int32"},{"indexed":false,"internalType":"int32","name":"endPrice","type":"int32"},{"indexed":true,"internalType":"bytes","name":"indexedPoolId","type":"bytes"}],"name":"RoundEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"int64","name":"timestamp","type":"int64"},{"indexed":false,"internalType":"int32","name":"price","type":"int32"},{"indexed":false,"internalType":"uint256","name":"minTradeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTradeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"poolTradesLimit","type":"uint256"},{"indexed":true,"internalType":"bytes","name":"indexedPoolId","type":"bytes"}],"name":"RoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"prediction","type":"string"},{"indexed":false,"internalType":"uint256","name":"newTotal","type":"uint256"},{"indexed":true,"internalType":"bytes","name":"indexedPoolId","type":"bytes"},{"indexed":true,"internalType":"address","name":"indexedSender","type":"address"},{"indexed":false,"internalType":"string","name":"avatarUrl","type":"string"},{"indexed":false,"internalType":"string","name":"countryCode","type":"string"},{"indexed":false,"internalType":"int64","name":"roundStartTime","type":"int64"}],"name":"TradePlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TradeReturned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tradeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"winningsAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"indexedSender","type":"address"}],"name":"TradeWinningsSent","type":"event"},{"inputs":[{"internalType":"address","name":"newGameController","type":"address"}],"name":"changeGameControllerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeAddress","type":"address"}],"name":"changeGameFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newFeePercentage","type":"uint8"}],"name":"changeGameFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"uint256","name":"minBetAmount","type":"uint256"},{"internalType":"uint256","name":"maxBetAmount","type":"uint256"},{"internalType":"uint256","name":"poolBetsLimit","type":"uint256"}],"name":"createPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"uint32","name":"batchSize","type":"uint32"},{"internalType":"int64","name":"timeMS","type":"int64"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"}],"name":"hasPendingDistributions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"}],"name":"isPoolOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRunning","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"string","name":"avatarUrl","type":"string"},{"internalType":"string","name":"countryCode","type":"string"},{"internalType":"bool","name":"upOrDown","type":"bool"}],"internalType":"struct UpVsDownGameV1.makeTradeStruct","name":"userTrade","type":"tuple"}],"name":"makeTrade","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"notRunningReason","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"pools","outputs":[{"internalType":"bool","name":"created","type":"bool"},{"internalType":"int32","name":"startPrice","type":"int32"},{"internalType":"int32","name":"endPrice","type":"int32"},{"internalType":"uint256","name":"minBetAmount","type":"uint256"},{"internalType":"uint256","name":"maxBetAmount","type":"uint256"},{"internalType":"uint256","name":"poolBetsLimit","type":"uint256"},{"components":[{"internalType":"uint256[]","name":"bets","type":"uint256[]"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"string[]","name":"avatars","type":"string[]"},{"internalType":"string[]","name":"countries","type":"string[]"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"distributedCount","type":"uint256"},{"internalType":"uint256","name":"totalDistributed","type":"uint256"}],"internalType":"struct UpVsDownGameV1.BetGroup","name":"upBetGroup","type":"tuple"},{"components":[{"internalType":"uint256[]","name":"bets","type":"uint256[]"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"string[]","name":"avatars","type":"string[]"},{"internalType":"string[]","name":"countries","type":"string[]"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"distributedCount","type":"uint256"},{"internalType":"uint256","name":"totalDistributed","type":"uint256"}],"internalType":"struct UpVsDownGameV1.BetGroup","name":"downBetGroup","type":"tuple"},{"internalType":"int64","name":"roundStartTime","type":"int64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"stopGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"int64","name":"timeMS","type":"int64"},{"internalType":"int32","name":"price","type":"int32"},{"internalType":"uint32","name":"batchSize","type":"uint32"}],"name":"trigger","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526005600360006101000a81548160ff021916908360ff16021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006e57600080fd5b506040516200464338038062004643833981810160405281019062000094919062000232565b620000b4620000a8620000fc60201b60201c565b6200010460201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000264565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fa82620001cd565b9050919050565b6200020c81620001ed565b81146200021857600080fd5b50565b6000815190506200022c8162000201565b92915050565b6000602082840312156200024b576200024a620001c8565b5b60006200025b848285016200021b565b91505092915050565b6143cf80620002746000396000f3fe60806040526004361061011f5760003560e01c8063a001ecdd116100a0578063d65ab5f211610064578063d65ab5f2146103ba578063e4709969146103d1578063eab79b7d146103fa578063f2fde38b14610423578063f68256a81461044c5761011f565b8063a001ecdd146102f8578063a7c3324d14610323578063a9b99af51461034c578063d4c770cf14610375578063d52947bc1461039e5761011f565b806341275358116100e75780634127535814610237578063595dc897146102625780636518a0a91461028b578063715018a6146102b65780638da5cb5b146102cd5761011f565b80630c2f915e146101245780631d0d625b146101615780632014e5d11461018a57806330efabd4146101b55780633fafac92146101f2575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612bf1565b610477565b6040516101589190612c59565b60405180910390f35b34801561016d57600080fd5b5061018860048036038101906101839190612cd2565b6104e1565b005b34801561019657600080fd5b5061019f6105a1565b6040516101ac9190612c59565b60405180910390f35b3480156101c157600080fd5b506101dc60048036038101906101d79190612bf1565b6105b4565b6040516101e99190612c59565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612e40565b6105f4565b60405161022e99989796959493929190613251565b60405180910390f35b34801561024357600080fd5b5061024c610c0c565b60405161025991906132fb565b60405180910390f35b34801561026e57600080fd5b5061028960048036038101906102849190612cd2565b610c32565b005b34801561029757600080fd5b506102a0610cf2565b6040516102ad919061336b565b60405180910390f35b3480156102c257600080fd5b506102cb610d80565b005b3480156102d957600080fd5b506102e2610e08565b6040516102ef91906132fb565b60405180910390f35b34801561030457600080fd5b5061030d610e31565b60405161031a91906133a9565b60405180910390f35b34801561032f57600080fd5b5061034a6004803603810190610345919061342c565b610e44565b005b34801561035857600080fd5b50610373600480360381019061036e91906134cc565b6113ae565b005b34801561038157600080fd5b5061039c60048036038101906103979190613580565b611714565b005b6103b860048036038101906103b391906135d1565b6117ae565b005b3480156103c657600080fd5b506103cf611e64565b005b3480156103dd57600080fd5b506103f860048036038101906103f39190613646565b611f4f565b005b34801561040657600080fd5b50610421600480360381019061041c9190612bf1565b61209a565b005b34801561042f57600080fd5b5061044a60048036038101906104459190612cd2565b612180565b005b34801561045857600080fd5b50610461612278565b60405161046e91906132fb565b60405180910390f35b6000806002848460405161048c9291906136fe565b9081526020016040518091039020600b0160000180549050600285856040516104b69291906136fe565b9081526020016040518091039020600401600001805490506104d89190613746565b11905092915050565b6104e961229e565b73ffffffffffffffffffffffffffffffffffffffff16610507610e08565b73ffffffffffffffffffffffffffffffffffffffff161461055d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610554906137f9565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360159054906101000a900460ff1681565b600080600284846040516105c99291906136fe565b908152602001604051809103902060000160019054906101000a900460030b60030b14905092915050565b6002818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460030b908060000160059054906101000a900460030b90806001015490806002015490806003015490806004016040518060e0016040529081600082018054806020026020016040519081016040528092919081815260200182805480156106c757602002820191906000526020600020905b8154815260200190600101908083116106b3575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561075557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161070b575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b8282101561082f5783829060005260206000200180546107a290613848565b80601f01602080910402602001604051908101604052809291908181526020018280546107ce90613848565b801561081b5780601f106107f05761010080835404028352916020019161081b565b820191906000526020600020905b8154815290600101906020018083116107fe57829003601f168201915b505050505081526020019060010190610783565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561090857838290600052602060002001805461087b90613848565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790613848565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b50505050508152602001906001019061085c565b50505050815260200160048201548152602001600582015481526020016006820154815250509080600b016040518060e00160405290816000820180548060200260200160405190810160405280929190818152602001828054801561098d57602002820191906000526020600020905b815481526020019060010190808311610979575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610a1b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116109d1575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610af5578382906000526020600020018054610a6890613848565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9490613848565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b505050505081526020019060010190610a49565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610bce578382906000526020600020018054610b4190613848565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6d90613848565b8015610bba5780601f10610b8f57610100808354040283529160200191610bba565b820191906000526020600020905b815481529060010190602001808311610b9d57829003601f168201915b505050505081526020019060010190610b22565b5050505081526020016004820154815260200160058201548152602001600682015481525050908060120160009054906101000a900460070b905089565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c3a61229e565b73ffffffffffffffffffffffffffffffffffffffff16610c58610e08565b73ffffffffffffffffffffffffffffffffffffffff1614610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca5906137f9565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60048054610cff90613848565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b90613848565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b505050505081565b610d8861229e565b73ffffffffffffffffffffffffffffffffffffffff16610da6610e08565b73ffffffffffffffffffffffffffffffffffffffff1614610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df3906137f9565b60405180910390fd5b610e0660006122a6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb906138c6565b60405180910390fd5b83836001151560028383604051610eec9291906136fe565b908152602001604051809103902060000160009054906101000a900460ff16151514610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490613932565b60405180910390fd5b600060028787604051610f619291906136fe565b90815260200160405180910390209050600081600401600001805490501480610f945750600081600b0160000180549050145b156110435760008082600b016000018054905014610fb55781600b01610fba565b816004015b9050600081600501549050610fd18989848a61236a565b7fd86802201c3bf5d79ef71027c49cdfdee99fa298848917618ba148d098f15f74898984600001805490508486600501548b6040516110159695949392919061397f565b60405180910390a181600001805490508260050154141561103b5761103a89896124f7565b5b5050506113a6565b600081600b01905060008260040190508260000160059054906101000a900460030b60030b8360000160019054906101000a900460030b60030b12156110905782600401915082600b0190505b600061109c8383612663565b905060008863ffffffff168260400151116110bb5781604001516110c3565b8863ffffffff165b905060008185600501546110d79190613746565b90506000856005015490505b818110156112dd57600060648560200151886004015460648a6000018681548110611111576111106139db565b5b90600052602060002001546111269190613a0a565b6111309190613a93565b61113a9190613a0a565b6111449190613a93565b90506111bb87600101838154811061115f5761115e6139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168860000184815481106111a05761119f6139db565b5b9060005260206000200154836111b69190613746565b6126ec565b8660010182815481106111d1576111d06139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f60126990c62860b34a33a079082f6792fa0193def7ed581b626414399f9dae9c8f8f8a600101868154811061124b5761124a6139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b600001878154811061128c5761128b6139db565b5b9060005260206000200154866040516112a9959493929190613ac4565b60405180910390a28087600601546112c19190613746565b87600601819055505080806112d590613b12565b9150506110e3565b507fd86802201c3bf5d79ef71027c49cdfdee99fa298848917618ba148d098f15f748c8c87600001805490508860050154858e6040516113229695949392919061397f565b60405180910390a180856005018190555084600001805490508560050154141561139f57611394600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168660060154856020015186600001516113859190613746565b61138f9190613b5b565b6126ec565b61139e8c8c6124f7565b5b5050505050505b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906138c6565b60405180910390fd5b848460011515600283836040516114569291906136fe565b908152602001604051809103902060000160009054906101000a900460ff161515146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613932565b60405180910390fd5b6000600288886040516114cb9291906136fe565b908152602001604051809103902090506114e588886105b4565b1561160a57600360159054906101000a900460ff16611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613c01565b60405180910390fd5b848160000160016101000a81548163ffffffff021916908360030b63ffffffff160217905550858160120160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550878760405161159d9291906136fe565b60405180910390207f977f157300bb4d69d09b3e083fb55a17a0c02f978e5b220c08173c63de9665aa8989898560000160019054906101000a900460030b8660010154876002015488600301546040516115fd9796959493929190613c21565b60405180910390a261170a565b60008160000160059054906101000a900460030b60030b14156116d757848160000160056101000a81548163ffffffff021916908360030b63ffffffff160217905550878760405161165d9291906136fe565b60405180910390207fe097bf610f5827ffcdd36eb07b790e6ee02dd498f911ab45664208cfad9323b08989898560000160019054906101000a900460030b8660000160059054906101000a900460030b6040516116be959493929190613c8b565b60405180910390a26116d288888689610e44565b611709565b6040517fd56be5db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5050505050505050565b61171c61229e565b73ffffffffffffffffffffffffffffffffffffffff1661173a610e08565b73ffffffffffffffffffffffffffffffffffffffff1614611790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611787906137f9565b60405180910390fd5b80600360006101000a81548160ff021916908360ff16021790555050565b8080600001906117be9190613ce8565b6117c882826105b4565b611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90613dbd565b60405180910390fd5b600360159054906101000a900460ff16611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90613e29565b60405180910390fd5b8280600001906118669190613ce8565b600115156002838360405161187c9291906136fe565b908152602001604051809103902060000160009054906101000a900460ff161515146118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d490613932565b60405180910390fd5b60003411611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613e95565b60405180910390fd5b60028580600001906119329190613ce8565b6040516119409291906136fe565b908152602001604051809103902060010154341015611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613f27565b60405180910390fd5b60028580600001906119a69190613ce8565b6040516119b49291906136fe565b908152602001604051809103902060020154341115611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90613fb9565b60405180910390fd5b6000856060016020810190611a1d9190614005565b15611b3a5760016002878060000190611a369190613ce8565b604051611a449291906136fe565b908152602001604051809103902060030154611a609190613b5b565b6002878060000190611a729190613ce8565b604051611a809291906136fe565b9081526020016040518091039020600401600001805490501115611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906140a4565b60405180910390fd5b611b336002878060000190611aee9190613ce8565b604051611afc9291906136fe565b908152602001604051809103902060040134888060200190611b1e91906140c4565b8a8060400190611b2e91906140c4565b6127a3565b9050611c4e565b60016002878060000190611b4e9190613ce8565b604051611b5c9291906136fe565b908152602001604051809103902060030154611b789190613b5b565b6002878060000190611b8a9190613ce8565b604051611b989291906136fe565b9081526020016040518091039020600b01600001805490501115611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be8906140a4565b60405180910390fd5b611c4b6002878060000190611c069190613ce8565b604051611c149291906136fe565b9081526020016040518091039020600b0134888060200190611c3691906140c4565b8a8060400190611c4691906140c4565b6127a3565b90505b6060868060200190611c6091906140c4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506060878060400190611cb791906140c4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060006002898060000190611d109190613ce8565b604051611d1e9291906136fe565b908152602001604051809103902060120160009054906101000a900460070b90503373ffffffffffffffffffffffffffffffffffffffff16898060000190611d669190613ce8565b604051611d749291906136fe565b60405180910390207ff291bb36c3b51271e4642a86feed650b5c8c1ceb8305facdd13577c05264526a8b8060000190611dad9190613ce8565b33348f6060016020810190611dc29190614005565b611e01576040518060400160405280600481526020017f444f574e00000000000000000000000000000000000000000000000000000000815250611e38565b6040518060400160405280600281526020017f55500000000000000000000000000000000000000000000000000000000000008152505b8b8b8b8b604051611e5199989796959493929190614160565b60405180910390a3505050505050505050565b611e6c61229e565b73ffffffffffffffffffffffffffffffffffffffff16611e8a610e08565b73ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed7906137f9565b60405180910390fd5b6001600360156101000a81548160ff0219169083151502179055506040518060200160405280600081525060049080519060200190611f209291906128e1565b507f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e33560405160405180910390a1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd6906138c6565b60405180910390fd5b600160028686604051611ff39291906136fe565b908152602001604051809103902060000160006101000a81548160ff021916908315150217905550826002868660405161202e9291906136fe565b90815260200160405180910390206001018190555081600286866040516120569291906136fe565b908152602001604051809103902060020181905550806002868660405161207e9291906136fe565b9081526020016040518091039020600301819055505050505050565b6120a261229e565b73ffffffffffffffffffffffffffffffffffffffff166120c0610e08565b73ffffffffffffffffffffffffffffffffffffffff1614612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906137f9565b60405180910390fd5b6000600360156101000a81548160ff021916908315150217905550818160049190612142929190612967565b507fbbed56c796999ec9481de9169e54d6f193c57a335189c8b82053d80e263fdbd682826040516121749291906141fc565b60405180910390a15050565b61218861229e565b73ffffffffffffffffffffffffffffffffffffffff166121a6610e08565b73ffffffffffffffffffffffffffffffffffffffff16146121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f3906137f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561226c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226390614292565b60405180910390fd5b612275816122a6565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000826005015483600001805490506123839190613b5b565b905060008263ffffffff16821161239a57816123a2565b8263ffffffff165b905060008185600501546123b69190613746565b90506000856005015490505b818110156124e4576124348660010182815481106123e3576123e26139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876000018381548110612424576124236139db565b5b90600052602060002001546126ec565b7f0ef369ab00174499e32a26cfe220b3dd58fad9d231e8319504ce52fa0801e0b4888888600101848154811061246d5761246c6139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168960000185815481106124ae576124ad6139db565b5b90600052602060002001546040516124c994939291906142b2565b60405180910390a180806124dc90613b12565b9150506123c2565b5080856005018190555050505050505050565b600282826040516125099291906136fe565b90815260200160405180910390206004016000808201600061252b91906129ed565b60018201600061253b9190612a0e565b60028201600061254b9190612a2f565b60038201600061255b9190612a2f565b6004820160009055600582016000905560068201600090555050600282826040516125879291906136fe565b9081526020016040518091039020600b01600080820160006125a991906129ed565b6001820160006125b99190612a0e565b6002820160006125c99190612a2f565b6003820160006125d99190612a2f565b6004820160009055600582016000905560068201600090555050600282826040516126059291906136fe565b908152602001604051809103902060000160016101000a81549063ffffffff02191690556002828260405161263b9291906136fe565b908152602001604051809103902060000160056101000a81549063ffffffff02191690555050565b61266b612a50565b600060648360040154600360009054906101000a900460ff1660ff166126919190613a0a565b61269b9190613a93565b90506000846005015485600001805490506126b69190613b5b565b905060405180606001604052808381526020018386600401546126d99190613b5b565b8152602001828152509250505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1660008460405161271590614318565b600060405180830381858888f193505050503d8060008114612753576040519150601f19603f3d011682016040523d82523d6000602084013e612758565b606091505b50915091508161279d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279490614379565b60405180910390fd5b50505050565b60008660000186908060018154018082558091505060019003906000526020600020016000909190919091505586600101339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600201858590918060018154018082558091505060019003906000526020600020016000909192909192909192909192509190612874929190612a71565b50866003018383909180600181540180825580915050600190039060005260206000200160009091929091929091929091925091906128b4929190612a71565b50858760040160008282546128c99190613746565b92505081905550866004015490509695505050505050565b8280546128ed90613848565b90600052602060002090601f01602090048101928261290f5760008555612956565b82601f1061292857805160ff1916838001178555612956565b82800160010185558215612956579182015b8281111561295557825182559160200191906001019061293a565b5b5090506129639190612af7565b5090565b82805461297390613848565b90600052602060002090601f01602090048101928261299557600085556129dc565b82601f106129ae57803560ff19168380011785556129dc565b828001600101855582156129dc579182015b828111156129db5782358255916020019190600101906129c0565b5b5090506129e99190612af7565b5090565b5080546000825590600052602060002090810190612a0b9190612af7565b50565b5080546000825590600052602060002090810190612a2c9190612af7565b50565b5080546000825590600052602060002090810190612a4d9190612b14565b50565b60405180606001604052806000815260200160008152602001600081525090565b828054612a7d90613848565b90600052602060002090601f016020900481019282612a9f5760008555612ae6565b82601f10612ab857803560ff1916838001178555612ae6565b82800160010185558215612ae6579182015b82811115612ae5578235825591602001919060010190612aca565b5b509050612af39190612af7565b5090565b5b80821115612b10576000816000905550600101612af8565b5090565b5b80821115612b345760008181612b2b9190612b38565b50600101612b15565b5090565b508054612b4490613848565b6000825580601f10612b565750612b75565b601f016020900490600052602060002090810190612b749190612af7565b5b50565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612bb157612bb0612b8c565b5b8235905067ffffffffffffffff811115612bce57612bcd612b91565b5b602083019150836001820283011115612bea57612be9612b96565b5b9250929050565b60008060208385031215612c0857612c07612b82565b5b600083013567ffffffffffffffff811115612c2657612c25612b87565b5b612c3285828601612b9b565b92509250509250929050565b60008115159050919050565b612c5381612c3e565b82525050565b6000602082019050612c6e6000830184612c4a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9f82612c74565b9050919050565b612caf81612c94565b8114612cba57600080fd5b50565b600081359050612ccc81612ca6565b92915050565b600060208284031215612ce857612ce7612b82565b5b6000612cf684828501612cbd565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d4d82612d04565b810181811067ffffffffffffffff82111715612d6c57612d6b612d15565b5b80604052505050565b6000612d7f612b78565b9050612d8b8282612d44565b919050565b600067ffffffffffffffff821115612dab57612daa612d15565b5b612db482612d04565b9050602081019050919050565b82818337600083830152505050565b6000612de3612dde84612d90565b612d75565b905082815260208101848484011115612dff57612dfe612cff565b5b612e0a848285612dc1565b509392505050565b600082601f830112612e2757612e26612b8c565b5b8135612e37848260208601612dd0565b91505092915050565b600060208284031215612e5657612e55612b82565b5b600082013567ffffffffffffffff811115612e7457612e73612b87565b5b612e8084828501612e12565b91505092915050565b60008160030b9050919050565b612e9f81612e89565b82525050565b6000819050919050565b612eb881612ea5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ef381612ea5565b82525050565b6000612f058383612eea565b60208301905092915050565b6000602082019050919050565b6000612f2982612ebe565b612f338185612ec9565b9350612f3e83612eda565b8060005b83811015612f6f578151612f568882612ef9565b9750612f6183612f11565b925050600181019050612f42565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fb181612c94565b82525050565b6000612fc38383612fa8565b60208301905092915050565b6000602082019050919050565b6000612fe782612f7c565b612ff18185612f87565b9350612ffc83612f98565b8060005b8381101561302d5781516130148882612fb7565b975061301f83612fcf565b925050600181019050613000565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130a0578082015181840152602081019050613085565b838111156130af576000848401525b50505050565b60006130c082613066565b6130ca8185613071565b93506130da818560208601613082565b6130e381612d04565b840191505092915050565b60006130fa83836130b5565b905092915050565b6000602082019050919050565b600061311a8261303a565b6131248185613045565b93508360208202850161313685613056565b8060005b85811015613172578484038952815161315385826130ee565b945061315e83613102565b925060208a0199505060018101905061313a565b50829750879550505050505092915050565b600060e08301600083015184820360008601526131a18282612f1e565b915050602083015184820360208601526131bb8282612fdc565b915050604083015184820360408601526131d5828261310f565b915050606083015184820360608601526131ef828261310f565b91505060808301516132046080860182612eea565b5060a083015161321760a0860182612eea565b5060c083015161322a60c0860182612eea565b508091505092915050565b60008160070b9050919050565b61324b81613235565b82525050565b600061012082019050613267600083018c612c4a565b613274602083018b612e96565b613281604083018a612e96565b61328e6060830189612eaf565b61329b6080830188612eaf565b6132a860a0830187612eaf565b81810360c08301526132ba8186613184565b905081810360e08301526132ce8185613184565b90506132de610100830184613242565b9a9950505050505050505050565b6132f581612c94565b82525050565b600060208201905061331060008301846132ec565b92915050565b600081519050919050565b600082825260208201905092915050565b600061333d82613316565b6133478185613321565b9350613357818560208601613082565b61336081612d04565b840191505092915050565b600060208201905081810360008301526133858184613332565b905092915050565b600060ff82169050919050565b6133a38161338d565b82525050565b60006020820190506133be600083018461339a565b92915050565b600063ffffffff82169050919050565b6133dd816133c4565b81146133e857600080fd5b50565b6000813590506133fa816133d4565b92915050565b61340981613235565b811461341457600080fd5b50565b60008135905061342681613400565b92915050565b6000806000806060858703121561344657613445612b82565b5b600085013567ffffffffffffffff81111561346457613463612b87565b5b61347087828801612b9b565b94509450506020613483878288016133eb565b925050604061349487828801613417565b91505092959194509250565b6134a981612e89565b81146134b457600080fd5b50565b6000813590506134c6816134a0565b92915050565b6000806000806000608086880312156134e8576134e7612b82565b5b600086013567ffffffffffffffff81111561350657613505612b87565b5b61351288828901612b9b565b9550955050602061352588828901613417565b9350506040613536888289016134b7565b9250506060613547888289016133eb565b9150509295509295909350565b61355d8161338d565b811461356857600080fd5b50565b60008135905061357a81613554565b92915050565b60006020828403121561359657613595612b82565b5b60006135a48482850161356b565b91505092915050565b600080fd5b6000608082840312156135c8576135c76135ad565b5b81905092915050565b6000602082840312156135e7576135e6612b82565b5b600082013567ffffffffffffffff81111561360557613604612b87565b5b613611848285016135b2565b91505092915050565b61362381612ea5565b811461362e57600080fd5b50565b6000813590506136408161361a565b92915050565b60008060008060006080868803121561366257613661612b82565b5b600086013567ffffffffffffffff8111156136805761367f612b87565b5b61368c88828901612b9b565b9550955050602061369f88828901613631565b93505060406136b088828901613631565b92505060606136c188828901613631565b9150509295509295909350565b600081905092915050565b60006136e583856136ce565b93506136f2838584612dc1565b82840190509392505050565b600061370b8284866136d9565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061375182612ea5565b915061375c83612ea5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561379157613790613717565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137e360208361379c565b91506137ee826137ad565b602082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061386057607f821691505b6020821081141561387457613873613819565b5b50919050565b7f4f6e6c792067616d6520636f6e74726f6c6c65722063616e20646f2074686973600082015250565b60006138b060208361379c565b91506138bb8261387a565b602082019050919050565b600060208201905081810360008301526138df816138a3565b9050919050565b7f506f6f6c20646f6573206e6f7420657869737400000000000000000000000000600082015250565b600061391c60138361379c565b9150613927826138e6565b602082019050919050565b6000602082019050818103600083015261394b8161390f565b9050919050565b600061395e8385613321565b935061396b838584612dc1565b61397483612d04565b840190509392505050565b600060a082019050818103600083015261399a81888a613952565b90506139a96020830187612eaf565b6139b66040830186612eaf565b6139c36060830185612eaf565b6139d06080830184613242565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a1582612ea5565b9150613a2083612ea5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5957613a58613717565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a9e82612ea5565b9150613aa983612ea5565b925082613ab957613ab8613a64565b5b828204905092915050565b60006080820190508181036000830152613adf818789613952565b9050613aee60208301866132ec565b613afb6040830185612eaf565b613b086060830184612eaf565b9695505050505050565b6000613b1d82612ea5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b5057613b4f613717565b5b600182019050919050565b6000613b6682612ea5565b9150613b7183612ea5565b925082821015613b8457613b83613717565b5b828203905092915050565b7f5468652067616d65206973206e6f742072756e6e696e672c20726f756e64732060008201527f63616e206f6e6c7920626520656e646564206174207468697320706f696e7400602082015250565b6000613beb603f8361379c565b9150613bf682613b8f565b604082019050919050565b60006020820190508181036000830152613c1a81613bde565b9050919050565b600060c0820190508181036000830152613c3c81898b613952565b9050613c4b6020830188613242565b613c586040830187612e96565b613c656060830186612eaf565b613c726080830185612eaf565b613c7f60a0830184612eaf565b98975050505050505050565b60006080820190508181036000830152613ca6818789613952565b9050613cb56020830186613242565b613cc26040830185612e96565b613ccf6060830184612e96565b9695505050505050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613d0557613d04613cd9565b5b80840192508235915067ffffffffffffffff821115613d2757613d26613cde565b5b602083019250600182023603831315613d4357613d42613ce3565b5b509250929050565b7f5468697320706f6f6c20686173206120726f756e6420696e2070726f6772657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613da760218361379c565b9150613db282613d4b565b604082019050919050565b60006020820190508181036000830152613dd681613d9a565b9050919050565b7f5468652067616d65206973206e6f742072756e6e696e67000000000000000000600082015250565b6000613e1360178361379c565b9150613e1e82613ddd565b602082019050919050565b60006020820190508181036000830152613e4281613e06565b9050919050565b7f4e6565647320746f2073656e64204d6174696320746f20747261646500000000600082015250565b6000613e7f601c8361379c565b9150613e8a82613e49565b602082019050919050565b60006020820190508181036000830152613eae81613e72565b9050919050565b7f547261646520616d6f756e742073686f756c642062652068696768657220746860008201527f616e20746865206d696e696d756d000000000000000000000000000000000000602082015250565b6000613f11602e8361379c565b9150613f1c82613eb5565b604082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f547261646520616d6f756e742073686f756c64206265206c6f7765722074686160008201527f6e20746865206d6178696d756d00000000000000000000000000000000000000602082015250565b6000613fa3602d8361379c565b9150613fae82613f47565b604082019050919050565b60006020820190508181036000830152613fd281613f96565b9050919050565b613fe281612c3e565b8114613fed57600080fd5b50565b600081359050613fff81613fd9565b92915050565b60006020828403121561401b5761401a612b82565b5b600061402984828501613ff0565b91505092915050565b7f506f6f6c2069732066756c6c2c207761697420666f72206e65787420726f756e60008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408e60218361379c565b915061409982614032565b604082019050919050565b600060208201905081810360008301526140bd81614081565b9050919050565b600080833560016020038436030381126140e1576140e0613cd9565b5b80840192508235915067ffffffffffffffff82111561410357614102613cde565b5b60208301925060018202360383131561411f5761411e613ce3565b5b509250929050565b600061413282613066565b61413c818561379c565b935061414c818560208601613082565b61415581612d04565b840191505092915050565b600061010082019050818103600083015261417c818b8d613952565b905061418b602083018a6132ec565b6141986040830189612eaf565b81810360608301526141aa8188614127565b90506141b96080830187612eaf565b81810360a08301526141cb8186614127565b905081810360c08301526141df8185614127565b90506141ee60e0830184613242565b9a9950505050505050505050565b60006020820190508181036000830152614217818486613952565b90509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061427c60268361379c565b915061428782614220565b604082019050919050565b600060208201905081810360008301526142ab8161426f565b9050919050565b600060608201905081810360008301526142cd818688613952565b90506142dc60208301856132ec565b6142e96040830184612eaf565b95945050505050565b50565b60006143026000836136ce565b915061430d826142f2565b600082019050919050565b6000614323826142f5565b9150819050919050565b7f436f756c646e27742073656e6420657468657200000000000000000000000000600082015250565b600061436360138361379c565b915061436e8261432d565b602082019050919050565b6000602082019050818103600083015261439281614356565b905091905056fea2646970667358221220b6b5079903d3ce06347fdcaae19b0ceeb8818223ec84e0fbbecd5c789b9f54bf64736f6c634300080a0033000000000000000000000000de968771e9a0c173398bbbe977fb125d34409809

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

000000000000000000000000de968771e9a0c173398bbbe977fb125d34409809

-----Decoded View---------------
Arg [0] : newGameController (address): 0xde968771e9a0c173398bbbe977fb125d34409809

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000de968771e9a0c173398bbbe977fb125d34409809


Deployed ByteCode Sourcemap

3221:9896:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10541:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5601:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3972:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10743:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3853:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3929:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3998:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2515:94;;;;;;;;;;;;;:::i;:::-;;1864:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3894:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8005:1907;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6588:877;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5735:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11388:1515;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6132:120;;;;;;;;;;;;;:::i;:::-;;6258:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5975:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2764:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3819:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10541:196;10628:4;10730:1;10688:5;10694:6;;10688:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;:31;;:38;;;;10649:5;10655:6;;10649:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;:29;;:36;;;;:77;;;;:::i;:::-;10648:83;10641:90;;10541:196;;;;:::o;5601:128::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5706:17:::1;5689:14;;:34;;;;;;;;;;;;;;;;;;5601:128:::0;:::o;3972:21::-;;;;;;;;;;;;;:::o;10743:129::-;10817:4;10865:1;10837:5;10843:6;;10837:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;;;;;;;;;;;:29;;;10830:36;;10743:129;;;;:::o;3853:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3929:38::-;;;;;;;;;;;;;:::o;5860:109::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5950:13:::1;5937:10;;:26;;;;;;;;;;;;;;;;;;5860:109:::0;:::o;3998:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2515:94::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2580:21:::1;2598:1;2580:9;:21::i;:::-;2515:94::o:0;1864:87::-;1910:7;1937:6;;;;;;;;;;;1930:13;;1864:87;:::o;3894:30::-;;;;;;;;;;;;;:::o;8005:1907::-;5049:14;;;;;;;;;;;5035:28;;:10;:28;;;5027:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8142:6:::1;;5445:4;5420:29;;:5;5426:6;;5420:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;;;;;;;;;:29;;;5412:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8157:19:::2;8179:5;8185:6;;8179:13;;;;;;;:::i;:::-;;;;;;;;;;;;;8157:35;;8237:1;8205:5;:16;;:21;;:28;;;;:33;:72;;;;8276:1;8242:5;:18;;:23;;:30;;;;:35;8205:72;8201:545;;;8288:28;8353:1:::0;8319:5:::2;:18;;:23;;:30;;;;:35;:75;;8376:5;:18;;8319:75;;;8357:5;:16;;8319:75;8288:106;;8405:15;8423:11;:28;;;8405:46;;8460:42;8471:6;;8479:11;8492:9;8460:10;:42::i;:::-;8516:98;8533:6;;8541:11;:16;;:23;;;;8566:10;8578:11;:28;;;8607:6;8516:98;;;;;;;;;;;:::i;:::-;;;;;;;;8661:11;:16;;:23;;;;8629:11;:28;;;:55;8625:99;;;8697:17;8707:6;;8697:9;:17::i;:::-;8625:99;8732:7;;;;;8201:545;8756:24;8783:5;:18;;8756:45;;8808:23;8834:5;:16;;8808:42;;8882:5;:14;;;;;;;;;;;;8863:33;;:5;:16;;;;;;;;;;;;:33;;;8859:118;;;8917:5;:16;;8907:26;;8951:5;:18;;8942:27;;8859:118;8985:24;9012:38;9034:7;9043:6;9012:21;:38::i;:::-;8985:65;;9057:13;9088:9;9073:24;;:4;:12;;;:24;:51;;9112:4;:12;;;9073:51;;;9100:9;9073:51;;;9057:67;;9131:10;9171:5;9144:7;:24;;;:32;;;;:::i;:::-;9131:45;;9190:6;9199:7;:24;;;9190:33;;9185:406;9229:2;9225:1;:6;9185:406;;;9247:16;9330:3;9309:4;:18;;;9292:7;:13;;;9286:3;9268:7;:12;;9281:1;9268:15;;;;;;;;:::i;:::-;;;;;;;;;;:21;;;;:::i;:::-;:37;;;;:::i;:::-;9267:60;;;;:::i;:::-;:66;;;;:::i;:::-;9247:87;;9343:59;9353:7;:17;;9371:1;9353:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9386:7;:12;;9399:1;9386:15;;;;;;;;:::i;:::-;;;;;;;;;;9375:8;:26;;;;:::i;:::-;9343:9;:59::i;:::-;9491:7;:17;;9509:1;9491:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9416:96;;;9434:6;;9442:7;:17;;9460:1;9442:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9464:7;:12;;9477:1;9464:15;;;;;;;;:::i;:::-;;;;;;;;;;9481:8;9416:96;;;;;;;;;;:::i;:::-;;;;;;;;9575:8;9548:7;:24;;;:35;;;;:::i;:::-;9521:7;:24;;:62;;;;9238:353;9233:3;;;;;:::i;:::-;;;;9185:406;;;;9604:83;9621:6;;9629:7;:12;;:19;;;;9650:7;:24;;;9676:2;9680:6;9604:83;;;;;;;;;;;:::i;:::-;;;;;;;;9723:2;9696:7;:24;;:29;;;;9764:7;:12;;:19;;;;9736:7;:24;;;:47;9732:175;;;9794:79;9804:10;;;;;;;;;;;9848:7;:24;;;9827:4;:18;;;9816:4;:8;;;:29;;;;:::i;:::-;:56;;;;:::i;:::-;9794:9;:79::i;:::-;9882:17;9892:6;;9882:9;:17::i;:::-;9732:175;8150:1762;;;;;;5480:1;5107::::1;;8005:1907:::0;;;;:::o;6588:877::-;5049:14;;;;;;;;;;;5035:28;;:10;:28;;;5027:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6739:6:::1;;5445:4;5420:29;;:5;5426:6;;5420:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;;;;;;;;;:29;;;5412:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6754:26:::2;6783:5;6789:6;;6783:13;;;;;;;:::i;:::-;;;;;;;;;;;;;6754:42;;6808:18;6819:6;;6808:10;:18::i;:::-;6805:655;;;6845:9;;;;;;;;;;;6837:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6957:5;6931:12;:23;;;:31;;;;;;;;;;;;;;;;;;;;7001:6;6971:12;:27;;;:36;;;;;;;;;;;;;;;;;;;;7163:6;;7027:143;;;;;;;:::i;:::-;;;;;;;;;7040:6;;7048;7056:12;:23;;;;;;;;;;;;7081:12;:25;;;7108:12;:25;;;7135:12;:26;;;7027:143;;;;;;;;;;;;:::i;:::-;;;;;;;;6805:655;;;7213:1;7188:12;:21;;;;;;;;;;;;:26;;;7184:276;;;7249:5;7225:12;:21;;;:29;;;;;;;;;;;;;;;;;;;;7345:6;;7270:82;;;;;;;:::i;:::-;;;;;;;;;7281:6;;7289;7297:12;:23;;;;;;;;;;;;7322:12;:21;;;;;;;;;;;;7270:82;;;;;;;;;;:::i;:::-;;;;;;;;7363:37;7374:6;;7382:9;7393:6;7363:10;:37::i;:::-;7184:276;;;7430:22;;;;;;;;;;;;;;7184:276;6805:655;6747:718;5107:1:::1;;6588:877:::0;;;;;:::o;5735:119::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5832:16:::1;5816:13;;:32;;;;;;;;;;;;;;;;;;5735:119:::0;:::o;11388:1515::-;11481:9;:16;;;;;;;;:::i;:::-;5181:18;5192:6;;5181:10;:18::i;:::-;5173:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5300:9:::1;;;;;;;;;;;5292:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11530:9:::2;:16;;;;;;;;:::i;:::-;5445:4;5420:29;;:5;5426:6;;5420:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;;;;;;;;;:29;;;5412:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11575:1:::3;11563:9;:13;11555:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11637:5;11643:9;:16;;;;;;;;:::i;:::-;11637:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;;11624:9;:49;;11616:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;11752:5;11758:9;:16;;;;;;;;:::i;:::-;11752:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;;11739:9;:49;;11731:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;11845:16;11874:9;:18;;;;;;;;;;:::i;:::-;11870:570;;;11999:1;11961:5;11967:9;:16;;;;;;;;:::i;:::-;11961:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:37;;;:39;;;;:::i;:::-;11911:5;11917:9;:16;;;;;;;;:::i;:::-;11911:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;:39;;:46;;;;:89;;11903:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;12057:97;12064:5;12070:9;:16;;;;;;;;:::i;:::-;12064:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;12100:9;12111;:19;;;;;;;;:::i;:::-;12132:9;:21;;;;;;;;:::i;:::-;12057:6;:97::i;:::-;12046:108;;11870:570;;;12275:1;12237:5;12243:9;:16;;;;;;;;:::i;:::-;12237:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:37;;;:39;;;;:::i;:::-;12185:5;12191:9;:16;;;;;;;;:::i;:::-;12185:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;:41;;:48;;;;:91;;12177:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;12333:99;12340:5;12346:9;:16;;;;;;;;:::i;:::-;12340:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;12378:9;12389;:19;;;;;;;;:::i;:::-;12410:9;:21;;;;;;;;:::i;:::-;12333:6;:99::i;:::-;12322:110;;11870:570;12448:20;12493:9;:19;;;;;;;;:::i;:::-;12484:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12528:25;12583:9;:21;;;;;;;;:::i;:::-;12569:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12620:20;12673:5;12679:9;:16;;;;;;;;:::i;:::-;12673:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:38;;;;;;;;;;;;12656:55;;12849:10;12732:165;;12831:9;:16;;;;;;;;:::i;:::-;12732:165;;;;;;;:::i;:::-;;;;;;;;;12744:9;:16;;;;;;;;:::i;:::-;12762:10;12774:9;12786;:18;;;;;;;;;;:::i;:::-;12785:34;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;12821:8;12861:6;12869:11;12882:14;12732:165;;;;;;;;;;;;;;:::i;:::-;;;;;;;;11548:1355;;;;5344:1:::2;;11388:1515:::0;;;:::o;6132:120::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6189:4:::1;6177:9;;:16;;;;;;;;;;;;;;;;;;6200:21;;;;;;;;;;;::::0;:16:::1;:21;;;;;;;;;;;;:::i;:::-;;6233:13;;;;;;;;;;6132:120::o:0;6258:324::-;5049:14;;;;;;;;;;;5035:28;;:10;:28;;;5027:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6426:4:::1;6402:5;6408:6;;6402:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;:28;;;;;;;;;;;;;;;;;;6466:12;6437:5;6443:6;;6437:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;:41;;;;6514:12;6485:5;6491:6;;6485:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;:41;;;;6563:13;6533:5;6539:6;;6533:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:27;;:43;;;;6258:324:::0;;;;;:::o;5975:151::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6052:5:::1;6040:9;;:17;;;;;;;;;;;;;;;;;;6083:6;;6064:16;:25;;;;;;;:::i;:::-;;6101:19;6113:6;;6101:19;;;;;;;:::i;:::-;;;;;;;;5975:151:::0;;:::o;2764:192::-;2095:12;:10;:12::i;:::-;2084:23;;:7;:5;:7::i;:::-;:23;;;2076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:1:::1;2853:22;;:8;:22;;;;2845:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2929:19;2939:8;2929:9;:19::i;:::-;2764:192:::0;:::o;3819:29::-;;;;;;;;;;;;;:::o;656:98::-;709:7;736:10;729:17;;656:98;:::o;2964:173::-;3020:16;3039:6;;;;;;;;;;;3020:25;;3065:8;3056:6;;:17;;;;;;;;;;;;;;;;;;3120:8;3089:40;;3110:8;3089:40;;;;;;;;;;;;3009:128;2964:173;:::o;7471:528::-;7592:15;7630:5;:22;;;7610:5;:10;;:17;;;;:42;;;;:::i;:::-;7592:60;;7659:13;7685:9;7675:19;;:7;:19;:41;;7709:7;7675:41;;;7697:9;7675:41;;;7659:57;;7723:10;7761:5;7736;:22;;;:30;;;;:::i;:::-;7723:43;;7780:6;7789:5;:22;;;7780:31;;7775:183;7817:2;7813:1;:6;7775:183;;;7836:44;7846:5;:15;;7862:1;7846:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7866:5;:10;;7877:1;7866:13;;;;;;;;:::i;:::-;;;;;;;;;;7836:9;:44::i;:::-;7894:56;7908:6;;7916:5;:15;;7932:1;7916:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7936:5;:10;;7947:1;7936:13;;;;;;;;:::i;:::-;;;;;;;;;;7894:56;;;;;;;;;:::i;:::-;;;;;;;;7821:4;;;;;:::i;:::-;;;;7775:183;;;;7991:2;7966:5;:22;;:27;;;;7585:414;;;7471:528;;;;:::o;10316:219::-;10391:5;10397:6;;10391:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;;10384:31;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10429:5;10435:6;;10429:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;;10422:33;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10469:5;10475:6;;10469:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;;10462:31;;;;;;;;;;;10507:5;10513:6;;10507:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;10500:29;;;;;;;;;;;10316:219;;:::o;9918:392::-;10038:19;;:::i;:::-;10066:11;10111:3;10096:6;:12;;;10080:13;;;;;;;;;;;:28;;;;;;:::i;:::-;:34;;;;:::i;:::-;10066:48;;10121:15;10161:7;:24;;;10139:7;:12;;:19;;;;:46;;;;:::i;:::-;10121:64;;10199:105;;;;;;;;10226:3;10199:105;;;;10268:3;10253:6;:12;;;:18;;;;:::i;:::-;10199:105;;;;10289:7;10199:105;;;10192:112;;;;9918:392;;;;:::o;12909:204::-;12989:9;13000:17;13029:2;13021:16;;13043:1;13053:6;13021:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12988:76;;;;13079:4;13071:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;12981:132;;12909:204;;:::o;10878:383::-;11033:7;11049:8;:13;;11068:6;11049:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11082:8;:18;;11106:10;11082:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11124:8;:16;;11146:6;;11124:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11160:8;:18;;11184:11;;11160:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11221:6;11203:8;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;11241:8;:14;;;11234:21;;10878:383;;;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;716:552;773:8;783:6;833:3;826:4;818:6;814:17;810:27;800:122;;841:79;;:::i;:::-;800:122;954:6;941:20;931:30;;984:18;976:6;973:30;970:117;;;1006:79;;:::i;:::-;970:117;1120:4;1112:6;1108:17;1096:29;;1174:3;1166:4;1158:6;1154:17;1144:8;1140:32;1137:41;1134:128;;;1181:79;;:::i;:::-;1134:128;716:552;;;;;:::o;1274:527::-;1344:6;1352;1401:2;1389:9;1380:7;1376:23;1372:32;1369:119;;;1407:79;;:::i;:::-;1369:119;1555:1;1544:9;1540:17;1527:31;1585:18;1577:6;1574:30;1571:117;;;1607:79;;:::i;:::-;1571:117;1720:64;1776:7;1767:6;1756:9;1752:22;1720:64;:::i;:::-;1702:82;;;;1498:296;1274:527;;;;;:::o;1807:90::-;1841:7;1884:5;1877:13;1870:21;1859:32;;1807:90;;;:::o;1903:109::-;1984:21;1999:5;1984:21;:::i;:::-;1979:3;1972:34;1903:109;;:::o;2018:210::-;2105:4;2143:2;2132:9;2128:18;2120:26;;2156:65;2218:1;2207:9;2203:17;2194:6;2156:65;:::i;:::-;2018:210;;;;:::o;2234:126::-;2271:7;2311:42;2304:5;2300:54;2289:65;;2234:126;;;:::o;2366:96::-;2403:7;2432:24;2450:5;2432:24;:::i;:::-;2421:35;;2366:96;;;:::o;2468:122::-;2541:24;2559:5;2541:24;:::i;:::-;2534:5;2531:35;2521:63;;2580:1;2577;2570:12;2521:63;2468:122;:::o;2596:139::-;2642:5;2680:6;2667:20;2658:29;;2696:33;2723:5;2696:33;:::i;:::-;2596:139;;;;:::o;2741:329::-;2800:6;2849:2;2837:9;2828:7;2824:23;2820:32;2817:119;;;2855:79;;:::i;:::-;2817:119;2975:1;3000:53;3045:7;3036:6;3025:9;3021:22;3000:53;:::i;:::-;2990:63;;2946:117;2741:329;;;;:::o;3076:117::-;3185:1;3182;3175:12;3199:102;3240:6;3291:2;3287:7;3282:2;3275:5;3271:14;3267:28;3257:38;;3199:102;;;:::o;3307:180::-;3355:77;3352:1;3345:88;3452:4;3449:1;3442:15;3476:4;3473:1;3466:15;3493:281;3576:27;3598:4;3576:27;:::i;:::-;3568:6;3564:40;3706:6;3694:10;3691:22;3670:18;3658:10;3655:34;3652:62;3649:88;;;3717:18;;:::i;:::-;3649:88;3757:10;3753:2;3746:22;3536:238;3493:281;;:::o;3780:129::-;3814:6;3841:20;;:::i;:::-;3831:30;;3870:33;3898:4;3890:6;3870:33;:::i;:::-;3780:129;;;:::o;3915:307::-;3976:4;4066:18;4058:6;4055:30;4052:56;;;4088:18;;:::i;:::-;4052:56;4126:29;4148:6;4126:29;:::i;:::-;4118:37;;4210:4;4204;4200:15;4192:23;;3915:307;;;:::o;4228:154::-;4312:6;4307:3;4302;4289:30;4374:1;4365:6;4360:3;4356:16;4349:27;4228:154;;;:::o;4388:410::-;4465:5;4490:65;4506:48;4547:6;4506:48;:::i;:::-;4490:65;:::i;:::-;4481:74;;4578:6;4571:5;4564:21;4616:4;4609:5;4605:16;4654:3;4645:6;4640:3;4636:16;4633:25;4630:112;;;4661:79;;:::i;:::-;4630:112;4751:41;4785:6;4780:3;4775;4751:41;:::i;:::-;4471:327;4388:410;;;;;:::o;4817:338::-;4872:5;4921:3;4914:4;4906:6;4902:17;4898:27;4888:122;;4929:79;;:::i;:::-;4888:122;5046:6;5033:20;5071:78;5145:3;5137:6;5130:4;5122:6;5118:17;5071:78;:::i;:::-;5062:87;;4878:277;4817:338;;;;:::o;5161:507::-;5229:6;5278:2;5266:9;5257:7;5253:23;5249:32;5246:119;;;5284:79;;:::i;:::-;5246:119;5432:1;5421:9;5417:17;5404:31;5462:18;5454:6;5451:30;5448:117;;;5484:79;;:::i;:::-;5448:117;5589:62;5643:7;5634:6;5623:9;5619:22;5589:62;:::i;:::-;5579:72;;5375:286;5161:507;;;;:::o;5674:90::-;5709:7;5752:5;5749:1;5738:20;5727:31;;5674:90;;;:::o;5770:112::-;5853:22;5869:5;5853:22;:::i;:::-;5848:3;5841:35;5770:112;;:::o;5888:77::-;5925:7;5954:5;5943:16;;5888:77;;;:::o;5971:118::-;6058:24;6076:5;6058:24;:::i;:::-;6053:3;6046:37;5971:118;;:::o;6095:114::-;6162:6;6196:5;6190:12;6180:22;;6095:114;;;:::o;6215:174::-;6304:11;6338:6;6333:3;6326:19;6378:4;6373:3;6369:14;6354:29;;6215:174;;;;:::o;6395:132::-;6462:4;6485:3;6477:11;;6515:4;6510:3;6506:14;6498:22;;6395:132;;;:::o;6533:108::-;6610:24;6628:5;6610:24;:::i;:::-;6605:3;6598:37;6533:108;;:::o;6647:179::-;6716:10;6737:46;6779:3;6771:6;6737:46;:::i;:::-;6815:4;6810:3;6806:14;6792:28;;6647:179;;;;:::o;6832:113::-;6902:4;6934;6929:3;6925:14;6917:22;;6832:113;;;:::o;6981:712::-;7090:3;7119:54;7167:5;7119:54;:::i;:::-;7189:76;7258:6;7253:3;7189:76;:::i;:::-;7182:83;;7289:56;7339:5;7289:56;:::i;:::-;7368:7;7399:1;7384:284;7409:6;7406:1;7403:13;7384:284;;;7485:6;7479:13;7512:63;7571:3;7556:13;7512:63;:::i;:::-;7505:70;;7598:60;7651:6;7598:60;:::i;:::-;7588:70;;7444:224;7431:1;7428;7424:9;7419:14;;7384:284;;;7388:14;7684:3;7677:10;;7095:598;;;6981:712;;;;:::o;7699:114::-;7766:6;7800:5;7794:12;7784:22;;7699:114;;;:::o;7819:174::-;7908:11;7942:6;7937:3;7930:19;7982:4;7977:3;7973:14;7958:29;;7819:174;;;;:::o;7999:132::-;8066:4;8089:3;8081:11;;8119:4;8114:3;8110:14;8102:22;;7999:132;;;:::o;8137:108::-;8214:24;8232:5;8214:24;:::i;:::-;8209:3;8202:37;8137:108;;:::o;8251:179::-;8320:10;8341:46;8383:3;8375:6;8341:46;:::i;:::-;8419:4;8414:3;8410:14;8396:28;;8251:179;;;;:::o;8436:113::-;8506:4;8538;8533:3;8529:14;8521:22;;8436:113;;;:::o;8585:712::-;8694:3;8723:54;8771:5;8723:54;:::i;:::-;8793:76;8862:6;8857:3;8793:76;:::i;:::-;8786:83;;8893:56;8943:5;8893:56;:::i;:::-;8972:7;9003:1;8988:284;9013:6;9010:1;9007:13;8988:284;;;9089:6;9083:13;9116:63;9175:3;9160:13;9116:63;:::i;:::-;9109:70;;9202:60;9255:6;9202:60;:::i;:::-;9192:70;;9048:224;9035:1;9032;9028:9;9023:14;;8988:284;;;8992:14;9288:3;9281:10;;8699:598;;;8585:712;;;;:::o;9303:124::-;9380:6;9414:5;9408:12;9398:22;;9303:124;;;:::o;9433:184::-;9532:11;9566:6;9561:3;9554:19;9606:4;9601:3;9597:14;9582:29;;9433:184;;;;:::o;9623:142::-;9700:4;9723:3;9715:11;;9753:4;9748:3;9744:14;9736:22;;9623:142;;;:::o;9771:99::-;9823:6;9857:5;9851:12;9841:22;;9771:99;;;:::o;9876:159::-;9950:11;9984:6;9979:3;9972:19;10024:4;10019:3;10015:14;10000:29;;9876:159;;;;:::o;10041:307::-;10109:1;10119:113;10133:6;10130:1;10127:13;10119:113;;;10218:1;10213:3;10209:11;10203:18;10199:1;10194:3;10190:11;10183:39;10155:2;10152:1;10148:10;10143:15;;10119:113;;;10250:6;10247:1;10244:13;10241:101;;;10330:1;10321:6;10316:3;10312:16;10305:27;10241:101;10090:258;10041:307;;;:::o;10354:344::-;10432:3;10460:39;10493:5;10460:39;:::i;:::-;10515:61;10569:6;10564:3;10515:61;:::i;:::-;10508:68;;10585:52;10630:6;10625:3;10618:4;10611:5;10607:16;10585:52;:::i;:::-;10662:29;10684:6;10662:29;:::i;:::-;10657:3;10653:39;10646:46;;10436:262;10354:344;;;;:::o;10704:196::-;10793:10;10828:66;10890:3;10882:6;10828:66;:::i;:::-;10814:80;;10704:196;;;;:::o;10906:123::-;10986:4;11018;11013:3;11009:14;11001:22;;10906:123;;;:::o;11063:971::-;11192:3;11221:64;11279:5;11221:64;:::i;:::-;11301:86;11380:6;11375:3;11301:86;:::i;:::-;11294:93;;11413:3;11458:4;11450:6;11446:17;11441:3;11437:27;11488:66;11548:5;11488:66;:::i;:::-;11577:7;11608:1;11593:396;11618:6;11615:1;11612:13;11593:396;;;11689:9;11683:4;11679:20;11674:3;11667:33;11740:6;11734:13;11768:84;11847:4;11832:13;11768:84;:::i;:::-;11760:92;;11875:70;11938:6;11875:70;:::i;:::-;11865:80;;11974:4;11969:3;11965:14;11958:21;;11653:336;11640:1;11637;11633:9;11628:14;;11593:396;;;11597:14;12005:4;11998:11;;12025:3;12018:10;;11197:837;;;;;11063:971;;;;:::o;12112:1887::-;12231:3;12267:4;12262:3;12258:14;12354:4;12347:5;12343:16;12337:23;12407:3;12401:4;12397:14;12390:4;12385:3;12381:14;12374:38;12433:103;12531:4;12517:12;12433:103;:::i;:::-;12425:111;;12282:265;12634:4;12627:5;12623:16;12617:23;12687:3;12681:4;12677:14;12670:4;12665:3;12661:14;12654:38;12713:103;12811:4;12797:12;12713:103;:::i;:::-;12705:111;;12557:270;12912:4;12905:5;12901:16;12895:23;12965:3;12959:4;12955:14;12948:4;12943:3;12939:14;12932:38;12991:123;13109:4;13095:12;12991:123;:::i;:::-;12983:131;;12837:288;13212:4;13205:5;13201:16;13195:23;13265:3;13259:4;13255:14;13248:4;13243:3;13239:14;13232:38;13291:123;13409:4;13395:12;13291:123;:::i;:::-;13283:131;;13135:290;13508:4;13501:5;13497:16;13491:23;13527:63;13584:4;13579:3;13575:14;13561:12;13527:63;:::i;:::-;13435:165;13694:4;13687:5;13683:16;13677:23;13713:63;13770:4;13765:3;13761:14;13747:12;13713:63;:::i;:::-;13610:176;13880:4;13873:5;13869:16;13863:23;13899:63;13956:4;13951:3;13947:14;13933:12;13899:63;:::i;:::-;13796:176;13989:4;13982:11;;12236:1763;12112:1887;;;;:::o;14005:90::-;14040:7;14083:5;14080:1;14069:20;14058:31;;14005:90;;;:::o;14101:112::-;14184:22;14200:5;14184:22;:::i;:::-;14179:3;14172:35;14101:112;;:::o;14219:1374::-;14618:4;14656:3;14645:9;14641:19;14633:27;;14670:65;14732:1;14721:9;14717:17;14708:6;14670:65;:::i;:::-;14745:68;14809:2;14798:9;14794:18;14785:6;14745:68;:::i;:::-;14823;14887:2;14876:9;14872:18;14863:6;14823:68;:::i;:::-;14901:72;14969:2;14958:9;14954:18;14945:6;14901:72;:::i;:::-;14983:73;15051:3;15040:9;15036:19;15027:6;14983:73;:::i;:::-;15066;15134:3;15123:9;15119:19;15110:6;15066:73;:::i;:::-;15187:9;15181:4;15177:20;15171:3;15160:9;15156:19;15149:49;15215:108;15318:4;15309:6;15215:108;:::i;:::-;15207:116;;15371:9;15365:4;15361:20;15355:3;15344:9;15340:19;15333:49;15399:108;15502:4;15493:6;15399:108;:::i;:::-;15391:116;;15517:69;15581:3;15570:9;15566:19;15557:6;15517:69;:::i;:::-;14219:1374;;;;;;;;;;;;:::o;15599:118::-;15686:24;15704:5;15686:24;:::i;:::-;15681:3;15674:37;15599:118;;:::o;15723:222::-;15816:4;15854:2;15843:9;15839:18;15831:26;;15867:71;15935:1;15924:9;15920:17;15911:6;15867:71;:::i;:::-;15723:222;;;;:::o;15951:98::-;16002:6;16036:5;16030:12;16020:22;;15951:98;;;:::o;16055:168::-;16138:11;16172:6;16167:3;16160:19;16212:4;16207:3;16203:14;16188:29;;16055:168;;;;:::o;16229:360::-;16315:3;16343:38;16375:5;16343:38;:::i;:::-;16397:70;16460:6;16455:3;16397:70;:::i;:::-;16390:77;;16476:52;16521:6;16516:3;16509:4;16502:5;16498:16;16476:52;:::i;:::-;16553:29;16575:6;16553:29;:::i;:::-;16548:3;16544:39;16537:46;;16319:270;16229:360;;;;:::o;16595:309::-;16706:4;16744:2;16733:9;16729:18;16721:26;;16793:9;16787:4;16783:20;16779:1;16768:9;16764:17;16757:47;16821:76;16892:4;16883:6;16821:76;:::i;:::-;16813:84;;16595:309;;;;:::o;16910:86::-;16945:7;16985:4;16978:5;16974:16;16963:27;;16910:86;;;:::o;17002:112::-;17085:22;17101:5;17085:22;:::i;:::-;17080:3;17073:35;17002:112;;:::o;17120:214::-;17209:4;17247:2;17236:9;17232:18;17224:26;;17260:67;17324:1;17313:9;17309:17;17300:6;17260:67;:::i;:::-;17120:214;;;;:::o;17340:93::-;17376:7;17416:10;17409:5;17405:22;17394:33;;17340:93;;;:::o;17439:120::-;17511:23;17528:5;17511:23;:::i;:::-;17504:5;17501:34;17491:62;;17549:1;17546;17539:12;17491:62;17439:120;:::o;17565:137::-;17610:5;17648:6;17635:20;17626:29;;17664:32;17690:5;17664:32;:::i;:::-;17565:137;;;;:::o;17708:118::-;17779:22;17795:5;17779:22;:::i;:::-;17772:5;17769:33;17759:61;;17816:1;17813;17806:12;17759:61;17708:118;:::o;17832:135::-;17876:5;17914:6;17901:20;17892:29;;17930:31;17955:5;17930:31;:::i;:::-;17832:135;;;;:::o;17973:811::-;18058:6;18066;18074;18082;18131:2;18119:9;18110:7;18106:23;18102:32;18099:119;;;18137:79;;:::i;:::-;18099:119;18285:1;18274:9;18270:17;18257:31;18315:18;18307:6;18304:30;18301:117;;;18337:79;;:::i;:::-;18301:117;18450:64;18506:7;18497:6;18486:9;18482:22;18450:64;:::i;:::-;18432:82;;;;18228:296;18563:2;18589:52;18633:7;18624:6;18613:9;18609:22;18589:52;:::i;:::-;18579:62;;18534:117;18690:2;18716:51;18759:7;18750:6;18739:9;18735:22;18716:51;:::i;:::-;18706:61;;18661:116;17973:811;;;;;;;:::o;18790:118::-;18861:22;18877:5;18861:22;:::i;:::-;18854:5;18851:33;18841:61;;18898:1;18895;18888:12;18841:61;18790:118;:::o;18914:135::-;18958:5;18996:6;18983:20;18974:29;;19012:31;19037:5;19012:31;:::i;:::-;18914:135;;;;:::o;19055:953::-;19147:6;19155;19163;19171;19179;19228:3;19216:9;19207:7;19203:23;19199:33;19196:120;;;19235:79;;:::i;:::-;19196:120;19383:1;19372:9;19368:17;19355:31;19413:18;19405:6;19402:30;19399:117;;;19435:79;;:::i;:::-;19399:117;19548:64;19604:7;19595:6;19584:9;19580:22;19548:64;:::i;:::-;19530:82;;;;19326:296;19661:2;19687:51;19730:7;19721:6;19710:9;19706:22;19687:51;:::i;:::-;19677:61;;19632:116;19787:2;19813:51;19856:7;19847:6;19836:9;19832:22;19813:51;:::i;:::-;19803:61;;19758:116;19913:2;19939:52;19983:7;19974:6;19963:9;19959:22;19939:52;:::i;:::-;19929:62;;19884:117;19055:953;;;;;;;;:::o;20014:118::-;20085:22;20101:5;20085:22;:::i;:::-;20078:5;20075:33;20065:61;;20122:1;20119;20112:12;20065:61;20014:118;:::o;20138:135::-;20182:5;20220:6;20207:20;20198:29;;20236:31;20261:5;20236:31;:::i;:::-;20138:135;;;;:::o;20279:325::-;20336:6;20385:2;20373:9;20364:7;20360:23;20356:32;20353:119;;;20391:79;;:::i;:::-;20353:119;20511:1;20536:51;20579:7;20570:6;20559:9;20555:22;20536:51;:::i;:::-;20526:61;;20482:115;20279:325;;;;:::o;20610:117::-;20719:1;20716;20709:12;20778:240;20859:5;20900:3;20891:6;20886:3;20882:16;20878:26;20875:113;;;20907:79;;:::i;:::-;20875:113;21006:6;20997:15;;20778:240;;;;:::o;21024:559::-;21118:6;21167:2;21155:9;21146:7;21142:23;21138:32;21135:119;;;21173:79;;:::i;:::-;21135:119;21321:1;21310:9;21306:17;21293:31;21351:18;21343:6;21340:30;21337:117;;;21373:79;;:::i;:::-;21337:117;21478:88;21558:7;21549:6;21538:9;21534:22;21478:88;:::i;:::-;21468:98;;21264:312;21024:559;;;;:::o;21589:122::-;21662:24;21680:5;21662:24;:::i;:::-;21655:5;21652:35;21642:63;;21701:1;21698;21691:12;21642:63;21589:122;:::o;21717:139::-;21763:5;21801:6;21788:20;21779:29;;21817:33;21844:5;21817:33;:::i;:::-;21717:139;;;;:::o;21862:963::-;21959:6;21967;21975;21983;21991;22040:3;22028:9;22019:7;22015:23;22011:33;22008:120;;;22047:79;;:::i;:::-;22008:120;22195:1;22184:9;22180:17;22167:31;22225:18;22217:6;22214:30;22211:117;;;22247:79;;:::i;:::-;22211:117;22360:64;22416:7;22407:6;22396:9;22392:22;22360:64;:::i;:::-;22342:82;;;;22138:296;22473:2;22499:53;22544:7;22535:6;22524:9;22520:22;22499:53;:::i;:::-;22489:63;;22444:118;22601:2;22627:53;22672:7;22663:6;22652:9;22648:22;22627:53;:::i;:::-;22617:63;;22572:118;22729:2;22755:53;22800:7;22791:6;22780:9;22776:22;22755:53;:::i;:::-;22745:63;;22700:118;21862:963;;;;;;;;:::o;22831:147::-;22932:11;22969:3;22954:18;;22831:147;;;;:::o;23006:314::-;23120:3;23141:88;23222:6;23217:3;23141:88;:::i;:::-;23134:95;;23239:43;23275:6;23270:3;23263:5;23239:43;:::i;:::-;23307:6;23302:3;23298:16;23291:23;;23006:314;;;;;:::o;23326:291::-;23466:3;23488:103;23587:3;23578:6;23570;23488:103;:::i;:::-;23481:110;;23608:3;23601:10;;23326:291;;;;;:::o;23623:180::-;23671:77;23668:1;23661:88;23768:4;23765:1;23758:15;23792:4;23789:1;23782:15;23809:305;23849:3;23868:20;23886:1;23868:20;:::i;:::-;23863:25;;23902:20;23920:1;23902:20;:::i;:::-;23897:25;;24056:1;23988:66;23984:74;23981:1;23978:81;23975:107;;;24062:18;;:::i;:::-;23975:107;24106:1;24103;24099:9;24092:16;;23809:305;;;;:::o;24120:169::-;24204:11;24238:6;24233:3;24226:19;24278:4;24273:3;24269:14;24254:29;;24120:169;;;;:::o;24295:182::-;24435:34;24431:1;24423:6;24419:14;24412:58;24295:182;:::o;24483:366::-;24625:3;24646:67;24710:2;24705:3;24646:67;:::i;:::-;24639:74;;24722:93;24811:3;24722:93;:::i;:::-;24840:2;24835:3;24831:12;24824:19;;24483:366;;;:::o;24855:419::-;25021:4;25059:2;25048:9;25044:18;25036:26;;25108:9;25102:4;25098:20;25094:1;25083:9;25079:17;25072:47;25136:131;25262:4;25136:131;:::i;:::-;25128:139;;24855:419;;;:::o;25280:180::-;25328:77;25325:1;25318:88;25425:4;25422:1;25415:15;25449:4;25446:1;25439:15;25466:320;25510:6;25547:1;25541:4;25537:12;25527:22;;25594:1;25588:4;25584:12;25615:18;25605:81;;25671:4;25663:6;25659:17;25649:27;;25605:81;25733:2;25725:6;25722:14;25702:18;25699:38;25696:84;;;25752:18;;:::i;:::-;25696:84;25517:269;25466:320;;;:::o;25792:182::-;25932:34;25928:1;25920:6;25916:14;25909:58;25792:182;:::o;25980:366::-;26122:3;26143:67;26207:2;26202:3;26143:67;:::i;:::-;26136:74;;26219:93;26308:3;26219:93;:::i;:::-;26337:2;26332:3;26328:12;26321:19;;25980:366;;;:::o;26352:419::-;26518:4;26556:2;26545:9;26541:18;26533:26;;26605:9;26599:4;26595:20;26591:1;26580:9;26576:17;26569:47;26633:131;26759:4;26633:131;:::i;:::-;26625:139;;26352:419;;;:::o;26777:169::-;26917:21;26913:1;26905:6;26901:14;26894:45;26777:169;:::o;26952:366::-;27094:3;27115:67;27179:2;27174:3;27115:67;:::i;:::-;27108:74;;27191:93;27280:3;27191:93;:::i;:::-;27309:2;27304:3;27300:12;27293:19;;26952:366;;;:::o;27324:419::-;27490:4;27528:2;27517:9;27513:18;27505:26;;27577:9;27571:4;27567:20;27563:1;27552:9;27548:17;27541:47;27605:131;27731:4;27605:131;:::i;:::-;27597:139;;27324:419;;;:::o;27771:301::-;27867:3;27888:70;27951:6;27946:3;27888:70;:::i;:::-;27881:77;;27968:43;28004:6;27999:3;27992:5;27968:43;:::i;:::-;28036:29;28058:6;28036:29;:::i;:::-;28031:3;28027:39;28020:46;;27771:301;;;;;:::o;28078:763::-;28307:4;28345:3;28334:9;28330:19;28322:27;;28395:9;28389:4;28385:20;28381:1;28370:9;28366:17;28359:47;28423:86;28504:4;28495:6;28487;28423:86;:::i;:::-;28415:94;;28519:72;28587:2;28576:9;28572:18;28563:6;28519:72;:::i;:::-;28601;28669:2;28658:9;28654:18;28645:6;28601:72;:::i;:::-;28683;28751:2;28740:9;28736:18;28727:6;28683:72;:::i;:::-;28765:69;28829:3;28818:9;28814:19;28805:6;28765:69;:::i;:::-;28078:763;;;;;;;;;:::o;28847:180::-;28895:77;28892:1;28885:88;28992:4;28989:1;28982:15;29016:4;29013:1;29006:15;29033:348;29073:7;29096:20;29114:1;29096:20;:::i;:::-;29091:25;;29130:20;29148:1;29130:20;:::i;:::-;29125:25;;29318:1;29250:66;29246:74;29243:1;29240:81;29235:1;29228:9;29221:17;29217:105;29214:131;;;29325:18;;:::i;:::-;29214:131;29373:1;29370;29366:9;29355:20;;29033:348;;;;:::o;29387:180::-;29435:77;29432:1;29425:88;29532:4;29529:1;29522:15;29556:4;29553:1;29546:15;29573:185;29613:1;29630:20;29648:1;29630:20;:::i;:::-;29625:25;;29664:20;29682:1;29664:20;:::i;:::-;29659:25;;29703:1;29693:35;;29708:18;;:::i;:::-;29693:35;29750:1;29747;29743:9;29738:14;;29573:185;;;;:::o;29764:660::-;29969:4;30007:3;29996:9;29992:19;29984:27;;30057:9;30051:4;30047:20;30043:1;30032:9;30028:17;30021:47;30085:86;30166:4;30157:6;30149;30085:86;:::i;:::-;30077:94;;30181:72;30249:2;30238:9;30234:18;30225:6;30181:72;:::i;:::-;30263;30331:2;30320:9;30316:18;30307:6;30263:72;:::i;:::-;30345;30413:2;30402:9;30398:18;30389:6;30345:72;:::i;:::-;29764:660;;;;;;;;:::o;30430:233::-;30469:3;30492:24;30510:5;30492:24;:::i;:::-;30483:33;;30538:66;30531:5;30528:77;30525:103;;;30608:18;;:::i;:::-;30525:103;30655:1;30648:5;30644:13;30637:20;;30430:233;;;:::o;30669:191::-;30709:4;30729:20;30747:1;30729:20;:::i;:::-;30724:25;;30763:20;30781:1;30763:20;:::i;:::-;30758:25;;30802:1;30799;30796:8;30793:34;;;30807:18;;:::i;:::-;30793:34;30852:1;30849;30845:9;30837:17;;30669:191;;;;:::o;30866:250::-;31006:34;31002:1;30994:6;30990:14;30983:58;31075:33;31070:2;31062:6;31058:15;31051:58;30866:250;:::o;31122:366::-;31264:3;31285:67;31349:2;31344:3;31285:67;:::i;:::-;31278:74;;31361:93;31450:3;31361:93;:::i;:::-;31479:2;31474:3;31470:12;31463:19;;31122:366;;;:::o;31494:419::-;31660:4;31698:2;31687:9;31683:18;31675:26;;31747:9;31741:4;31737:20;31733:1;31722:9;31718:17;31711:47;31775:131;31901:4;31775:131;:::i;:::-;31767:139;;31494:419;;;:::o;31919:866::-;32172:4;32210:3;32199:9;32195:19;32187:27;;32260:9;32254:4;32250:20;32246:1;32235:9;32231:17;32224:47;32288:86;32369:4;32360:6;32352;32288:86;:::i;:::-;32280:94;;32384:68;32448:2;32437:9;32433:18;32424:6;32384:68;:::i;:::-;32462;32526:2;32515:9;32511:18;32502:6;32462:68;:::i;:::-;32540:72;32608:2;32597:9;32593:18;32584:6;32540:72;:::i;:::-;32622:73;32690:3;32679:9;32675:19;32666:6;32622:73;:::i;:::-;32705;32773:3;32762:9;32758:19;32749:6;32705:73;:::i;:::-;31919:866;;;;;;;;;;:::o;32791:636::-;32984:4;33022:3;33011:9;33007:19;32999:27;;33072:9;33066:4;33062:20;33058:1;33047:9;33043:17;33036:47;33100:86;33181:4;33172:6;33164;33100:86;:::i;:::-;33092:94;;33196:68;33260:2;33249:9;33245:18;33236:6;33196:68;:::i;:::-;33274;33338:2;33327:9;33323:18;33314:6;33274:68;:::i;:::-;33352;33416:2;33405:9;33401:18;33392:6;33352:68;:::i;:::-;32791:636;;;;;;;;:::o;33433:117::-;33542:1;33539;33532:12;33556:117;33665:1;33662;33655:12;33679:117;33788:1;33785;33778:12;33802:724;33879:4;33885:6;33941:11;33928:25;34041:1;34035:4;34031:12;34020:8;34004:14;34000:29;33996:48;33976:18;33972:73;33962:168;;34049:79;;:::i;:::-;33962:168;34161:18;34151:8;34147:33;34139:41;;34213:4;34200:18;34190:28;;34241:18;34233:6;34230:30;34227:117;;;34263:79;;:::i;:::-;34227:117;34371:2;34365:4;34361:13;34353:21;;34428:4;34420:6;34416:17;34400:14;34396:38;34390:4;34386:49;34383:136;;;34438:79;;:::i;:::-;34383:136;33892:634;33802:724;;;;;:::o;34532:220::-;34672:34;34668:1;34660:6;34656:14;34649:58;34741:3;34736:2;34728:6;34724:15;34717:28;34532:220;:::o;34758:366::-;34900:3;34921:67;34985:2;34980:3;34921:67;:::i;:::-;34914:74;;34997:93;35086:3;34997:93;:::i;:::-;35115:2;35110:3;35106:12;35099:19;;34758:366;;;:::o;35130:419::-;35296:4;35334:2;35323:9;35319:18;35311:26;;35383:9;35377:4;35373:20;35369:1;35358:9;35354:17;35347:47;35411:131;35537:4;35411:131;:::i;:::-;35403:139;;35130:419;;;:::o;35555:173::-;35695:25;35691:1;35683:6;35679:14;35672:49;35555:173;:::o;35734:366::-;35876:3;35897:67;35961:2;35956:3;35897:67;:::i;:::-;35890:74;;35973:93;36062:3;35973:93;:::i;:::-;36091:2;36086:3;36082:12;36075:19;;35734:366;;;:::o;36106:419::-;36272:4;36310:2;36299:9;36295:18;36287:26;;36359:9;36353:4;36349:20;36345:1;36334:9;36330:17;36323:47;36387:131;36513:4;36387:131;:::i;:::-;36379:139;;36106:419;;;:::o;36531:178::-;36671:30;36667:1;36659:6;36655:14;36648:54;36531:178;:::o;36715:366::-;36857:3;36878:67;36942:2;36937:3;36878:67;:::i;:::-;36871:74;;36954:93;37043:3;36954:93;:::i;:::-;37072:2;37067:3;37063:12;37056:19;;36715:366;;;:::o;37087:419::-;37253:4;37291:2;37280:9;37276:18;37268:26;;37340:9;37334:4;37330:20;37326:1;37315:9;37311:17;37304:47;37368:131;37494:4;37368:131;:::i;:::-;37360:139;;37087:419;;;:::o;37512:233::-;37652:34;37648:1;37640:6;37636:14;37629:58;37721:16;37716:2;37708:6;37704:15;37697:41;37512:233;:::o;37751:366::-;37893:3;37914:67;37978:2;37973:3;37914:67;:::i;:::-;37907:74;;37990:93;38079:3;37990:93;:::i;:::-;38108:2;38103:3;38099:12;38092:19;;37751:366;;;:::o;38123:419::-;38289:4;38327:2;38316:9;38312:18;38304:26;;38376:9;38370:4;38366:20;38362:1;38351:9;38347:17;38340:47;38404:131;38530:4;38404:131;:::i;:::-;38396:139;;38123:419;;;:::o;38548:232::-;38688:34;38684:1;38676:6;38672:14;38665:58;38757:15;38752:2;38744:6;38740:15;38733:40;38548:232;:::o;38786:366::-;38928:3;38949:67;39013:2;39008:3;38949:67;:::i;:::-;38942:74;;39025:93;39114:3;39025:93;:::i;:::-;39143:2;39138:3;39134:12;39127:19;;38786:366;;;:::o;39158:419::-;39324:4;39362:2;39351:9;39347:18;39339:26;;39411:9;39405:4;39401:20;39397:1;39386:9;39382:17;39375:47;39439:131;39565:4;39439:131;:::i;:::-;39431:139;;39158:419;;;:::o;39583:116::-;39653:21;39668:5;39653:21;:::i;:::-;39646:5;39643:32;39633:60;;39689:1;39686;39679:12;39633:60;39583:116;:::o;39705:133::-;39748:5;39786:6;39773:20;39764:29;;39802:30;39826:5;39802:30;:::i;:::-;39705:133;;;;:::o;39844:323::-;39900:6;39949:2;39937:9;39928:7;39924:23;39920:32;39917:119;;;39955:79;;:::i;:::-;39917:119;40075:1;40100:50;40142:7;40133:6;40122:9;40118:22;40100:50;:::i;:::-;40090:60;;40046:114;39844:323;;;;:::o;40173:220::-;40313:34;40309:1;40301:6;40297:14;40290:58;40382:3;40377:2;40369:6;40365:15;40358:28;40173:220;:::o;40399:366::-;40541:3;40562:67;40626:2;40621:3;40562:67;:::i;:::-;40555:74;;40638:93;40727:3;40638:93;:::i;:::-;40756:2;40751:3;40747:12;40740:19;;40399:366;;;:::o;40771:419::-;40937:4;40975:2;40964:9;40960:18;40952:26;;41024:9;41018:4;41014:20;41010:1;40999:9;40995:17;40988:47;41052:131;41178:4;41052:131;:::i;:::-;41044:139;;40771:419;;;:::o;41196:725::-;41274:4;41280:6;41336:11;41323:25;41436:1;41430:4;41426:12;41415:8;41399:14;41395:29;41391:48;41371:18;41367:73;41357:168;;41444:79;;:::i;:::-;41357:168;41556:18;41546:8;41542:33;41534:41;;41608:4;41595:18;41585:28;;41636:18;41628:6;41625:30;41622:117;;;41658:79;;:::i;:::-;41622:117;41766:2;41760:4;41756:13;41748:21;;41823:4;41815:6;41811:17;41795:14;41791:38;41785:4;41781:49;41778:136;;;41833:79;;:::i;:::-;41778:136;41287:634;41196:725;;;;;:::o;41927:364::-;42015:3;42043:39;42076:5;42043:39;:::i;:::-;42098:71;42162:6;42157:3;42098:71;:::i;:::-;42091:78;;42178:52;42223:6;42218:3;42211:4;42204:5;42200:16;42178:52;:::i;:::-;42255:29;42277:6;42255:29;:::i;:::-;42250:3;42246:39;42239:46;;42019:272;41927:364;;;;:::o;42297:1369::-;42670:4;42708:3;42697:9;42693:19;42685:27;;42758:9;42752:4;42748:20;42744:1;42733:9;42729:17;42722:47;42786:86;42867:4;42858:6;42850;42786:86;:::i;:::-;42778:94;;42882:72;42950:2;42939:9;42935:18;42926:6;42882:72;:::i;:::-;42964;43032:2;43021:9;43017:18;43008:6;42964:72;:::i;:::-;43083:9;43077:4;43073:20;43068:2;43057:9;43053:18;43046:48;43111:78;43184:4;43175:6;43111:78;:::i;:::-;43103:86;;43199:73;43267:3;43256:9;43252:19;43243:6;43199:73;:::i;:::-;43320:9;43314:4;43310:20;43304:3;43293:9;43289:19;43282:49;43348:78;43421:4;43412:6;43348:78;:::i;:::-;43340:86;;43474:9;43468:4;43464:20;43458:3;43447:9;43443:19;43436:49;43502:78;43575:4;43566:6;43502:78;:::i;:::-;43494:86;;43590:69;43654:3;43643:9;43639:19;43630:6;43590:69;:::i;:::-;42297:1369;;;;;;;;;;;;:::o;43672:329::-;43793:4;43831:2;43820:9;43816:18;43808:26;;43880:9;43874:4;43870:20;43866:1;43855:9;43851:17;43844:47;43908:86;43989:4;43980:6;43972;43908:86;:::i;:::-;43900:94;;43672:329;;;;;:::o;44007:225::-;44147:34;44143:1;44135:6;44131:14;44124:58;44216:8;44211:2;44203:6;44199:15;44192:33;44007:225;:::o;44238:366::-;44380:3;44401:67;44465:2;44460:3;44401:67;:::i;:::-;44394:74;;44477:93;44566:3;44477:93;:::i;:::-;44595:2;44590:3;44586:12;44579:19;;44238:366;;;:::o;44610:419::-;44776:4;44814:2;44803:9;44799:18;44791:26;;44863:9;44857:4;44853:20;44849:1;44838:9;44834:17;44827:47;44891:131;45017:4;44891:131;:::i;:::-;44883:139;;44610:419;;;:::o;45035:549::-;45212:4;45250:2;45239:9;45235:18;45227:26;;45299:9;45293:4;45289:20;45285:1;45274:9;45270:17;45263:47;45327:86;45408:4;45399:6;45391;45327:86;:::i;:::-;45319:94;;45423:72;45491:2;45480:9;45476:18;45467:6;45423:72;:::i;:::-;45505;45573:2;45562:9;45558:18;45549:6;45505:72;:::i;:::-;45035:549;;;;;;;:::o;45590:114::-;;:::o;45710:398::-;45869:3;45890:83;45971:1;45966:3;45890:83;:::i;:::-;45883:90;;45982:93;46071:3;45982:93;:::i;:::-;46100:1;46095:3;46091:11;46084:18;;45710:398;;;:::o;46114:379::-;46298:3;46320:147;46463:3;46320:147;:::i;:::-;46313:154;;46484:3;46477:10;;46114:379;;;:::o;46499:169::-;46639:21;46635:1;46627:6;46623:14;46616:45;46499:169;:::o;46674:366::-;46816:3;46837:67;46901:2;46896:3;46837:67;:::i;:::-;46830:74;;46913:93;47002:3;46913:93;:::i;:::-;47031:2;47026:3;47022:12;47015:19;;46674:366;;;:::o;47046:419::-;47212:4;47250:2;47239:9;47235:18;47227:26;;47299:9;47293:4;47289:20;47285:1;47274:9;47270:17;47263:47;47327:131;47453:4;47327:131;:::i;:::-;47319:139;;47046:419;;;:::o

Swarm Source

ipfs://b6b5079903d3ce06347fdcaae19b0ceeb8818223ec84e0fbbecd5c789b9f54bf
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.