Contract 0x316a98fb07bf6aaa95b2b27a79a76b499d372379

Contract Overview

Balance:
0.0002437 MATIC
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x7767e26327bd7f7bca70430844ef1f0c76621a42f745d77d9edbbe15d34fde37Trigger315829642023-01-31 0:35:2624 secs ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000192312501 2.500000016
0xaf0b2eb86386037c6bbf53cc54478b14390e74a2fe5b13e345d5e6fd536aaaa7Make Trade315829622023-01-31 0:35:1832 secs ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001067 MATIC0.004646178 18
0xec7b6122a9a8756a7322a0c4edb8e695d9602bf8890f9cb935876d8c426641eeMake Trade315829622023-01-31 0:35:1832 secs ago0x856d5a1f3d7769bebf46473354f1acf6fc172ea8 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.000137 MATIC0.006185178 18
0x72c6167a4e8a5aa128a05a5a164f6cfa5f6a4d726034ae370be23da912383da9Trigger315829612023-01-31 0:35:1436 secs ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253625 2.500000016
0x2bd84425096a64402622a494be84f0808949dc5b4518d570111e2ea14386f7c3Trigger315829602023-01-31 0:35:1040 secs ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000439892502 2.500000016
0x5e39fb7b226872ee0dea3a5068ef9e6da1225751c44dca638ebb310b52df29c4Make Trade315829602023-01-31 0:35:1040 secs ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001146 MATIC0.000501102 18
0xdacae39c874e6e62d87cdfda15932a81d6af5e5198a0eb53bd699b8a5134a9beMake Trade315829602023-01-31 0:35:1040 secs ago0x856d5a1f3d7769bebf46473354f1acf6fc172ea8 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001628 MATIC0.000501102 18
0x561f1aa392673288c46ef7e80b1a11fecd9db7cb7c2179f9411be22b16110309Trigger315829582023-01-31 0:35:0050 secs ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253625 2.500000016
0xeb8ccead6f9d470deb64aab2a9eb4d147a09ca44c5a5ec34a105838580dfafdeTrigger315829572023-01-31 0:34:5654 secs ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000192312501 2.500000016
0x37420bf9a459d546e995e64ee1ac5010e4d404ac3da6f6e44b2f03c088adba91Trigger315829532023-01-31 0:34:401 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253325 2.500000016
0xa1a9b2a4fe4c0c61e1bbee56285bad768ed154c80ecc745f0706ff06bdc8b1caTrigger315829522023-01-31 0:34:361 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253625 2.500000016
0x65eed847029d6342a035619bbdae90eaeb5789b50d2307b0d1f6c7f1cfb392f0Trigger315829502023-01-31 0:34:281 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000192312501 2.500000016
0xc1cbb9e47beaf2e58b20dc7f313768ab242dc2aea9eff943c64ce7feebd992e0Trigger315829492023-01-31 0:34:241 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000192312501 2.500000016
0x7e61290c546d8429220bbc1e87dfd15e1974fe1d00ea0a6db7bc4f945aadf797Make Trade315829472023-01-31 0:34:161 min ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001089 MATIC0.004646178 18
0x8051650e10a3bed271a15f8c63376ff720b8e1f81ed48a88738122cec23c20bbMake Trade315829472023-01-31 0:34:161 min ago0x856d5a1f3d7769bebf46473354f1acf6fc172ea8 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001513 MATIC0.006185178 18
0x32b6f2a3df3c7b249aee96b945c17f76dee282f3785250ffd6899112c7859e80Trigger315829462023-01-31 0:34:121 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253625 2.500000016
0x087f380ba3b3c847790a9d92bbd9f6a2063ee07c5f71b363b6cbdd03ebfa60b4Trigger315829452023-01-31 0:34:081 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000439650002 2.500000016
0xd28b3dc8d4bfeca5eff460112e5637bf0402294ef9aa65cc7ea64f3c5b9ee27bMake Trade315829452023-01-31 0:34:081 min ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001183 MATIC0.000501534 18
0x6c67e224d23ffebca3edca5c8c00dbcea647c6ec1010283dac115148e6de7b06Make Trade315829452023-01-31 0:34:081 min ago0x856d5a1f3d7769bebf46473354f1acf6fc172ea8 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001474 MATIC0.000501534 18
0x59346161283910a262abbbbcfca812ebdb8cf8e25c4eb27e682bcfb1e6e27fc1Trigger315829402023-01-31 0:33:521 min ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000192312501 2.500000016
0xb3b23c26c68d982088011c27af475362ae6bdfa472a3ca56b3b635e770e16fd2Trigger315829332023-01-31 0:33:382 mins ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253325 2.500000016
0x042d22d041328668c32195d163cfd9a2de51a6a628804a803e3061c32c67f3deTrigger315829312023-01-31 0:33:342 mins ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.0001253625 2.500000016
0x3df08bbe5241b9fad8219105aa2d1467d60cf03237f7288eb66de9d95a890924Trigger315829272023-01-31 0:33:242 mins ago0xe419d1916a656fd0bb098b92d2226bf91a658312 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790 MATIC0.000192282501 2.500000016
0xebc7288090bf3d54fb18d73432005e369d459312790a95593ccbb6af17c9d745Make Trade315829252023-01-31 0:33:162 mins ago0x856d5a1f3d7769bebf46473354f1acf6fc172ea8 IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001131 MATIC0.004645746 18
0xb67d7d878d2db06aa74a94fbc21734e6feb80580d5313276c7fb857d2c40b0a6Make Trade315829252023-01-31 0:33:162 mins ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0x316a98fb07bf6aaa95b2b27a79a76b499d3723790.0001612 MATIC0.006184746 18
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x2bd84425096a64402622a494be84f0808949dc5b4518d570111e2ea14386f7c3315829602023-01-31 0:35:1040 secs ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.0001089 MATIC
0x2bd84425096a64402622a494be84f0808949dc5b4518d570111e2ea14386f7c3315829602023-01-31 0:35:1040 secs ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.0001513 MATIC
0x087f380ba3b3c847790a9d92bbd9f6a2063ee07c5f71b363b6cbdd03ebfa60b4315829452023-01-31 0:34:081 min ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.0001131 MATIC
0x087f380ba3b3c847790a9d92bbd9f6a2063ee07c5f71b363b6cbdd03ebfa60b4315829452023-01-31 0:34:081 min ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.0001612 MATIC
0x5f672ffb395a7e75db6acb3957563ae7c9007860bbea049a222acd1ebd4c0199315829232023-01-31 0:33:082 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.0000249795 MATIC
0x5f672ffb395a7e75db6acb3957563ae7c9007860bbea049a222acd1ebd4c0199315829232023-01-31 0:33:082 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.0002161505 MATIC
0x5f672ffb395a7e75db6acb3957563ae7c9007860bbea049a222acd1ebd4c0199315829232023-01-31 0:33:082 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.00033047 MATIC
0x268df7879599331b87beac653cc1c3c3ee289a52fd461cf206e7fe14ae1d3a2d315829082023-01-31 0:32:063 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.000011886 MATIC
0x268df7879599331b87beac653cc1c3c3ee289a52fd461cf206e7fe14ae1d3a2d315829082023-01-31 0:32:063 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.000321114 MATIC
0x08b2f7412b3ca8c011db05d130fe23572a3fdd81a177cd35cd06da6e56c46910315828942023-01-31 0:31:084 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.00000940498 MATIC
0x08b2f7412b3ca8c011db05d130fe23572a3fdd81a177cd35cd06da6e56c46910315828942023-01-31 0:31:084 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.00023135794 MATIC
0x08b2f7412b3ca8c011db05d130fe23572a3fdd81a177cd35cd06da6e56c46910315828942023-01-31 0:31:084 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.00020253708 MATIC
0x245a1e201ddce474ce36f2722167673e6a55339234643ca06da7733e144e9cfe315828782023-01-31 0:30:045 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.000011473 MATIC
0x245a1e201ddce474ce36f2722167673e6a55339234643ca06da7733e144e9cfe315828782023-01-31 0:30:045 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.000318227 MATIC
0xf290ad5f050cae4b416d8b6653479dba2e5e4e3c2515cbeb6383b84d734df327315828572023-01-31 0:29:086 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.00001350264 MATIC
0xf290ad5f050cae4b416d8b6653479dba2e5e4e3c2515cbeb6383b84d734df327315828572023-01-31 0:29:086 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.0002524928 MATIC
0xf290ad5f050cae4b416d8b6653479dba2e5e4e3c2515cbeb6383b84d734df327315828572023-01-31 0:29:086 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.0002245062 MATIC
0xf290ad5f050cae4b416d8b6653479dba2e5e4e3c2515cbeb6383b84d734df327315828572023-01-31 0:29:086 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.00014869836 MATIC
0x11510894d079b04184009e507647cc1f6dff239bc269739911bf667850329e7d315828422023-01-31 0:28:067 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.00001149057 MATIC
0x11510894d079b04184009e507647cc1f6dff239bc269739911bf667850329e7d315828422023-01-31 0:28:067 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.00023651149 MATIC
0x11510894d079b04184009e507647cc1f6dff239bc269739911bf667850329e7d315828422023-01-31 0:28:067 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.00017369794 MATIC
0xf289a3a129364fb9803b66f563418abc039cae890ace36f2ba328b4cf9a7a79b315828232023-01-31 0:27:048 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.00002195024 MATIC
0xf289a3a129364fb9803b66f563418abc039cae890ace36f2ba328b4cf9a7a79b315828232023-01-31 0:27:048 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x856d5a1f3d7769bebf46473354f1acf6fc172ea80.00034282864 MATIC
0xf289a3a129364fb9803b66f563418abc039cae890ace36f2ba328b4cf9a7a79b315828232023-01-31 0:27:048 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790x98a3c37c321bd61d26d6a0953cdbcbac08591ffa0.00021512112 MATIC
0xc11b16b85bdd19ea817972bb81795a1766881b16d6c3a358cdbdcdc3f55478d4315828052023-01-31 0:26:069 mins ago 0x316a98fb07bf6aaa95b2b27a79a76b499d3723790xe419d1916a656fd0bb098b92d2226bf91a6583120.000012929 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-01-24
*/

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

60806040526005600360006101000a81548160ff021916908360ff16021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006e57600080fd5b506040516200464338038062004643833981810160405281019062000094919062000232565b620000b4620000a8620000fc60201b60201c565b6200010460201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000264565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fa82620001cd565b9050919050565b6200020c81620001ed565b81146200021857600080fd5b50565b6000815190506200022c8162000201565b92915050565b6000602082840312156200024b576200024a620001c8565b5b60006200025b848285016200021b565b91505092915050565b6143cf80620002746000396000f3fe60806040526004361061011f5760003560e01c8063a001ecdd116100a0578063d65ab5f211610064578063d65ab5f2146103ba578063e4709969146103d1578063eab79b7d146103fa578063f2fde38b14610423578063f68256a81461044c5761011f565b8063a001ecdd146102f8578063a7c3324d14610323578063a9b99af51461034c578063d4c770cf14610375578063d52947bc1461039e5761011f565b806341275358116100e75780634127535814610237578063595dc897146102625780636518a0a91461028b578063715018a6146102b65780638da5cb5b146102cd5761011f565b80630c2f915e146101245780631d0d625b146101615780632014e5d11461018a57806330efabd4146101b55780633fafac92146101f2575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612bf1565b610477565b6040516101589190612c59565b60405180910390f35b34801561016d57600080fd5b5061018860048036038101906101839190612cd2565b6104e1565b005b34801561019657600080fd5b5061019f6105a1565b6040516101ac9190612c59565b60405180910390f35b3480156101c157600080fd5b506101dc60048036038101906101d79190612bf1565b6105b4565b6040516101e99190612c59565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612e40565b6105f4565b60405161022e99989796959493929190613251565b60405180910390f35b34801561024357600080fd5b5061024c610c0c565b60405161025991906132fb565b60405180910390f35b34801561026e57600080fd5b5061028960048036038101906102849190612cd2565b610c32565b005b34801561029757600080fd5b506102a0610cf2565b6040516102ad919061336b565b60405180910390f35b3480156102c257600080fd5b506102cb610d80565b005b3480156102d957600080fd5b506102e2610e08565b6040516102ef91906132fb565b60405180910390f35b34801561030457600080fd5b5061030d610e31565b60405161031a91906133a9565b60405180910390f35b34801561032f57600080fd5b5061034a6004803603810190610345919061342c565b610e44565b005b34801561035857600080fd5b50610373600480360381019061036e91906134cc565b6113ae565b005b34801561038157600080fd5b5061039c60048036038101906103979190613580565b611714565b005b6103b860048036038101906103b391906135d1565b6117ae565b005b3480156103c657600080fd5b506103cf611e64565b005b3480156103dd57600080fd5b506103f860048036038101906103f39190613646565b611f4f565b005b34801561040657600080fd5b50610421600480360381019061041c9190612bf1565b61209a565b005b34801561042f57600080fd5b5061044a60048036038101906104459190612cd2565b612180565b005b34801561045857600080fd5b50610461612278565b60405161046e91906132fb565b60405180910390f35b6000806002848460405161048c9291906136fe565b9081526020016040518091039020600b0160000180549050600285856040516104b69291906136fe565b9081526020016040518091039020600401600001805490506104d89190613746565b11905092915050565b6104e961229e565b73ffffffffffffffffffffffffffffffffffffffff16610507610e08565b73ffffffffffffffffffffffffffffffffffffffff161461055d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610554906137f9565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360159054906101000a900460ff1681565b600080600284846040516105c99291906136fe565b908152602001604051809103902060000160019054906101000a900460030b60030b14905092915050565b6002818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460030b908060000160059054906101000a900460030b90806001015490806002015490806003015490806004016040518060e0016040529081600082018054806020026020016040519081016040528092919081815260200182805480156106c757602002820191906000526020600020905b8154815260200190600101908083116106b3575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561075557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161070b575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b8282101561082f5783829060005260206000200180546107a290613848565b80601f01602080910402602001604051908101604052809291908181526020018280546107ce90613848565b801561081b5780601f106107f05761010080835404028352916020019161081b565b820191906000526020600020905b8154815290600101906020018083116107fe57829003601f168201915b505050505081526020019060010190610783565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561090857838290600052602060002001805461087b90613848565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790613848565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b50505050508152602001906001019061085c565b50505050815260200160048201548152602001600582015481526020016006820154815250509080600b016040518060e00160405290816000820180548060200260200160405190810160405280929190818152602001828054801561098d57602002820191906000526020600020905b815481526020019060010190808311610979575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610a1b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116109d1575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610af5578382906000526020600020018054610a6890613848565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9490613848565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b505050505081526020019060010190610a49565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610bce578382906000526020600020018054610b4190613848565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6d90613848565b8015610bba5780601f10610b8f57610100808354040283529160200191610bba565b820191906000526020600020905b815481529060010190602001808311610b9d57829003601f168201915b505050505081526020019060010190610b22565b5050505081526020016004820154815260200160058201548152602001600682015481525050908060120160009054906101000a900460070b905089565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c3a61229e565b73ffffffffffffffffffffffffffffffffffffffff16610c58610e08565b73ffffffffffffffffffffffffffffffffffffffff1614610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca5906137f9565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60048054610cff90613848565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b90613848565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b505050505081565b610d8861229e565b73ffffffffffffffffffffffffffffffffffffffff16610da6610e08565b73ffffffffffffffffffffffffffffffffffffffff1614610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df3906137f9565b60405180910390fd5b610e0660006122a6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb906138c6565b60405180910390fd5b83836001151560028383604051610eec9291906136fe565b908152602001604051809103902060000160009054906101000a900460ff16151514610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490613932565b60405180910390fd5b600060028787604051610f619291906136fe565b90815260200160405180910390209050600081600401600001805490501480610f945750600081600b0160000180549050145b156110435760008082600b016000018054905014610fb55781600b01610fba565b816004015b9050600081600501549050610fd18989848a61236a565b7fd86802201c3bf5d79ef71027c49cdfdee99fa298848917618ba148d098f15f74898984600001805490508486600501548b6040516110159695949392919061397f565b60405180910390a181600001805490508260050154141561103b5761103a89896124f7565b5b5050506113a6565b600081600b01905060008260040190508260000160059054906101000a900460030b60030b8360000160019054906101000a900460030b60030b12156110905782600401915082600b0190505b600061109c8383612663565b905060008863ffffffff168260400151116110bb5781604001516110c3565b8863ffffffff165b905060008185600501546110d79190613746565b90506000856005015490505b818110156112dd57600060648560200151886004015460648a6000018681548110611111576111106139db565b5b90600052602060002001546111269190613a0a565b6111309190613a93565b61113a9190613a0a565b6111449190613a93565b90506111bb87600101838154811061115f5761115e6139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168860000184815481106111a05761119f6139db565b5b9060005260206000200154836111b69190613746565b6126ec565b8660010182815481106111d1576111d06139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f60126990c62860b34a33a079082f6792fa0193def7ed581b626414399f9dae9c8f8f8a600101868154811061124b5761124a6139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b600001878154811061128c5761128b6139db565b5b9060005260206000200154866040516112a9959493929190613ac4565b60405180910390a28087600601546112c19190613746565b87600601819055505080806112d590613b12565b9150506110e3565b507fd86802201c3bf5d79ef71027c49cdfdee99fa298848917618ba148d098f15f748c8c87600001805490508860050154858e6040516113229695949392919061397f565b60405180910390a180856005018190555084600001805490508560050154141561139f57611394600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168660060154856020015186600001516113859190613746565b61138f9190613b5b565b6126ec565b61139e8c8c6124f7565b5b5050505050505b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906138c6565b60405180910390fd5b848460011515600283836040516114569291906136fe565b908152602001604051809103902060000160009054906101000a900460ff161515146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613932565b60405180910390fd5b6000600288886040516114cb9291906136fe565b908152602001604051809103902090506114e588886105b4565b1561160a57600360159054906101000a900460ff16611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613c01565b60405180910390fd5b848160000160016101000a81548163ffffffff021916908360030b63ffffffff160217905550858160120160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550878760405161159d9291906136fe565b60405180910390207f977f157300bb4d69d09b3e083fb55a17a0c02f978e5b220c08173c63de9665aa8989898560000160019054906101000a900460030b8660010154876002015488600301546040516115fd9796959493929190613c21565b60405180910390a261170a565b60008160000160059054906101000a900460030b60030b14156116d757848160000160056101000a81548163ffffffff021916908360030b63ffffffff160217905550878760405161165d9291906136fe565b60405180910390207fe097bf610f5827ffcdd36eb07b790e6ee02dd498f911ab45664208cfad9323b08989898560000160019054906101000a900460030b8660000160059054906101000a900460030b6040516116be959493929190613c8b565b60405180910390a26116d288888689610e44565b611709565b6040517fd56be5db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5050505050505050565b61171c61229e565b73ffffffffffffffffffffffffffffffffffffffff1661173a610e08565b73ffffffffffffffffffffffffffffffffffffffff1614611790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611787906137f9565b60405180910390fd5b80600360006101000a81548160ff021916908360ff16021790555050565b8080600001906117be9190613ce8565b6117c882826105b4565b611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90613dbd565b60405180910390fd5b600360159054906101000a900460ff16611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90613e29565b60405180910390fd5b8280600001906118669190613ce8565b600115156002838360405161187c9291906136fe565b908152602001604051809103902060000160009054906101000a900460ff161515146118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d490613932565b60405180910390fd5b60003411611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613e95565b60405180910390fd5b60028580600001906119329190613ce8565b6040516119409291906136fe565b908152602001604051809103902060010154341015611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613f27565b60405180910390fd5b60028580600001906119a69190613ce8565b6040516119b49291906136fe565b908152602001604051809103902060020154341115611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90613fb9565b60405180910390fd5b6000856060016020810190611a1d9190614005565b15611b3a5760016002878060000190611a369190613ce8565b604051611a449291906136fe565b908152602001604051809103902060030154611a609190613b5b565b6002878060000190611a729190613ce8565b604051611a809291906136fe565b9081526020016040518091039020600401600001805490501115611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906140a4565b60405180910390fd5b611b336002878060000190611aee9190613ce8565b604051611afc9291906136fe565b908152602001604051809103902060040134888060200190611b1e91906140c4565b8a8060400190611b2e91906140c4565b6127a3565b9050611c4e565b60016002878060000190611b4e9190613ce8565b604051611b5c9291906136fe565b908152602001604051809103902060030154611b789190613b5b565b6002878060000190611b8a9190613ce8565b604051611b989291906136fe565b9081526020016040518091039020600b01600001805490501115611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be8906140a4565b60405180910390fd5b611c4b6002878060000190611c069190613ce8565b604051611c149291906136fe565b9081526020016040518091039020600b0134888060200190611c3691906140c4565b8a8060400190611c4691906140c4565b6127a3565b90505b6060868060200190611c6091906140c4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506060878060400190611cb791906140c4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060006002898060000190611d109190613ce8565b604051611d1e9291906136fe565b908152602001604051809103902060120160009054906101000a900460070b90503373ffffffffffffffffffffffffffffffffffffffff16898060000190611d669190613ce8565b604051611d749291906136fe565b60405180910390207ff291bb36c3b51271e4642a86feed650b5c8c1ceb8305facdd13577c05264526a8b8060000190611dad9190613ce8565b33348f6060016020810190611dc29190614005565b611e01576040518060400160405280600481526020017f444f574e00000000000000000000000000000000000000000000000000000000815250611e38565b6040518060400160405280600281526020017f55500000000000000000000000000000000000000000000000000000000000008152505b8b8b8b8b604051611e5199989796959493929190614160565b60405180910390a3505050505050505050565b611e6c61229e565b73ffffffffffffffffffffffffffffffffffffffff16611e8a610e08565b73ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed7906137f9565b60405180910390fd5b6001600360156101000a81548160ff0219169083151502179055506040518060200160405280600081525060049080519060200190611f209291906128e1565b507f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e33560405160405180910390a1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd6906138c6565b60405180910390fd5b600160028686604051611ff39291906136fe565b908152602001604051809103902060000160006101000a81548160ff021916908315150217905550826002868660405161202e9291906136fe565b90815260200160405180910390206001018190555081600286866040516120569291906136fe565b908152602001604051809103902060020181905550806002868660405161207e9291906136fe565b9081526020016040518091039020600301819055505050505050565b6120a261229e565b73ffffffffffffffffffffffffffffffffffffffff166120c0610e08565b73ffffffffffffffffffffffffffffffffffffffff1614612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906137f9565b60405180910390fd5b6000600360156101000a81548160ff021916908315150217905550818160049190612142929190612967565b507fbbed56c796999ec9481de9169e54d6f193c57a335189c8b82053d80e263fdbd682826040516121749291906141fc565b60405180910390a15050565b61218861229e565b73ffffffffffffffffffffffffffffffffffffffff166121a6610e08565b73ffffffffffffffffffffffffffffffffffffffff16146121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f3906137f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561226c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226390614292565b60405180910390fd5b612275816122a6565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000826005015483600001805490506123839190613b5b565b905060008263ffffffff16821161239a57816123a2565b8263ffffffff165b905060008185600501546123b69190613746565b90506000856005015490505b818110156124e4576124348660010182815481106123e3576123e26139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876000018381548110612424576124236139db565b5b90600052602060002001546126ec565b7f0ef369ab00174499e32a26cfe220b3dd58fad9d231e8319504ce52fa0801e0b4888888600101848154811061246d5761246c6139db565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168960000185815481106124ae576124ad6139db565b5b90600052602060002001546040516124c994939291906142b2565b60405180910390a180806124dc90613b12565b9150506123c2565b5080856005018190555050505050505050565b600282826040516125099291906136fe565b90815260200160405180910390206004016000808201600061252b91906129ed565b60018201600061253b9190612a0e565b60028201600061254b9190612a2f565b60038201600061255b9190612a2f565b6004820160009055600582016000905560068201600090555050600282826040516125879291906136fe565b9081526020016040518091039020600b01600080820160006125a991906129ed565b6001820160006125b99190612a0e565b6002820160006125c99190612a2f565b6003820160006125d99190612a2f565b6004820160009055600582016000905560068201600090555050600282826040516126059291906136fe565b908152602001604051809103902060000160016101000a81549063ffffffff02191690556002828260405161263b9291906136fe565b908152602001604051809103902060000160056101000a81549063ffffffff02191690555050565b61266b612a50565b600060648360040154600360009054906101000a900460ff1660ff166126919190613a0a565b61269b9190613a93565b90506000846005015485600001805490506126b69190613b5b565b905060405180606001604052808381526020018386600401546126d99190613b5b565b8152602001828152509250505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1660008460405161271590614318565b600060405180830381858888f193505050503d8060008114612753576040519150601f19603f3d011682016040523d82523d6000602084013e612758565b606091505b50915091508161279d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279490614379565b60405180910390fd5b50505050565b60008660000186908060018154018082558091505060019003906000526020600020016000909190919091505586600101339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600201858590918060018154018082558091505060019003906000526020600020016000909192909192909192909192509190612874929190612a71565b50866003018383909180600181540180825580915050600190039060005260206000200160009091929091929091929091925091906128b4929190612a71565b50858760040160008282546128c99190613746565b92505081905550866004015490509695505050505050565b8280546128ed90613848565b90600052602060002090601f01602090048101928261290f5760008555612956565b82601f1061292857805160ff1916838001178555612956565b82800160010185558215612956579182015b8281111561295557825182559160200191906001019061293a565b5b5090506129639190612af7565b5090565b82805461297390613848565b90600052602060002090601f01602090048101928261299557600085556129dc565b82601f106129ae57803560ff19168380011785556129dc565b828001600101855582156129dc579182015b828111156129db5782358255916020019190600101906129c0565b5b5090506129e99190612af7565b5090565b5080546000825590600052602060002090810190612a0b9190612af7565b50565b5080546000825590600052602060002090810190612a2c9190612af7565b50565b5080546000825590600052602060002090810190612a4d9190612b14565b50565b60405180606001604052806000815260200160008152602001600081525090565b828054612a7d90613848565b90600052602060002090601f016020900481019282612a9f5760008555612ae6565b82601f10612ab857803560ff1916838001178555612ae6565b82800160010185558215612ae6579182015b82811115612ae5578235825591602001919060010190612aca565b5b509050612af39190612af7565b5090565b5b80821115612b10576000816000905550600101612af8565b5090565b5b80821115612b345760008181612b2b9190612b38565b50600101612b15565b5090565b508054612b4490613848565b6000825580601f10612b565750612b75565b601f016020900490600052602060002090810190612b749190612af7565b5b50565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612bb157612bb0612b8c565b5b8235905067ffffffffffffffff811115612bce57612bcd612b91565b5b602083019150836001820283011115612bea57612be9612b96565b5b9250929050565b60008060208385031215612c0857612c07612b82565b5b600083013567ffffffffffffffff811115612c2657612c25612b87565b5b612c3285828601612b9b565b92509250509250929050565b60008115159050919050565b612c5381612c3e565b82525050565b6000602082019050612c6e6000830184612c4a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9f82612c74565b9050919050565b612caf81612c94565b8114612cba57600080fd5b50565b600081359050612ccc81612ca6565b92915050565b600060208284031215612ce857612ce7612b82565b5b6000612cf684828501612cbd565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d4d82612d04565b810181811067ffffffffffffffff82111715612d6c57612d6b612d15565b5b80604052505050565b6000612d7f612b78565b9050612d8b8282612d44565b919050565b600067ffffffffffffffff821115612dab57612daa612d15565b5b612db482612d04565b9050602081019050919050565b82818337600083830152505050565b6000612de3612dde84612d90565b612d75565b905082815260208101848484011115612dff57612dfe612cff565b5b612e0a848285612dc1565b509392505050565b600082601f830112612e2757612e26612b8c565b5b8135612e37848260208601612dd0565b91505092915050565b600060208284031215612e5657612e55612b82565b5b600082013567ffffffffffffffff811115612e7457612e73612b87565b5b612e8084828501612e12565b91505092915050565b60008160030b9050919050565b612e9f81612e89565b82525050565b6000819050919050565b612eb881612ea5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ef381612ea5565b82525050565b6000612f058383612eea565b60208301905092915050565b6000602082019050919050565b6000612f2982612ebe565b612f338185612ec9565b9350612f3e83612eda565b8060005b83811015612f6f578151612f568882612ef9565b9750612f6183612f11565b925050600181019050612f42565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fb181612c94565b82525050565b6000612fc38383612fa8565b60208301905092915050565b6000602082019050919050565b6000612fe782612f7c565b612ff18185612f87565b9350612ffc83612f98565b8060005b8381101561302d5781516130148882612fb7565b975061301f83612fcf565b925050600181019050613000565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130a0578082015181840152602081019050613085565b838111156130af576000848401525b50505050565b60006130c082613066565b6130ca8185613071565b93506130da818560208601613082565b6130e381612d04565b840191505092915050565b60006130fa83836130b5565b905092915050565b6000602082019050919050565b600061311a8261303a565b6131248185613045565b93508360208202850161313685613056565b8060005b85811015613172578484038952815161315385826130ee565b945061315e83613102565b925060208a0199505060018101905061313a565b50829750879550505050505092915050565b600060e08301600083015184820360008601526131a18282612f1e565b915050602083015184820360208601526131bb8282612fdc565b915050604083015184820360408601526131d5828261310f565b915050606083015184820360608601526131ef828261310f565b91505060808301516132046080860182612eea565b5060a083015161321760a0860182612eea565b5060c083015161322a60c0860182612eea565b508091505092915050565b60008160070b9050919050565b61324b81613235565b82525050565b600061012082019050613267600083018c612c4a565b613274602083018b612e96565b613281604083018a612e96565b61328e6060830189612eaf565b61329b6080830188612eaf565b6132a860a0830187612eaf565b81810360c08301526132ba8186613184565b905081810360e08301526132ce8185613184565b90506132de610100830184613242565b9a9950505050505050505050565b6132f581612c94565b82525050565b600060208201905061331060008301846132ec565b92915050565b600081519050919050565b600082825260208201905092915050565b600061333d82613316565b6133478185613321565b9350613357818560208601613082565b61336081612d04565b840191505092915050565b600060208201905081810360008301526133858184613332565b905092915050565b600060ff82169050919050565b6133a38161338d565b82525050565b60006020820190506133be600083018461339a565b92915050565b600063ffffffff82169050919050565b6133dd816133c4565b81146133e857600080fd5b50565b6000813590506133fa816133d4565b92915050565b61340981613235565b811461341457600080fd5b50565b60008135905061342681613400565b92915050565b6000806000806060858703121561344657613445612b82565b5b600085013567ffffffffffffffff81111561346457613463612b87565b5b61347087828801612b9b565b94509450506020613483878288016133eb565b925050604061349487828801613417565b91505092959194509250565b6134a981612e89565b81146134b457600080fd5b50565b6000813590506134c6816134a0565b92915050565b6000806000806000608086880312156134e8576134e7612b82565b5b600086013567ffffffffffffffff81111561350657613505612b87565b5b61351288828901612b9b565b9550955050602061352588828901613417565b9350506040613536888289016134b7565b9250506060613547888289016133eb565b9150509295509295909350565b61355d8161338d565b811461356857600080fd5b50565b60008135905061357a81613554565b92915050565b60006020828403121561359657613595612b82565b5b60006135a48482850161356b565b91505092915050565b600080fd5b6000608082840312156135c8576135c76135ad565b5b81905092915050565b6000602082840312156135e7576135e6612b82565b5b600082013567ffffffffffffffff81111561360557613604612b87565b5b613611848285016135b2565b91505092915050565b61362381612ea5565b811461362e57600080fd5b50565b6000813590506136408161361a565b92915050565b60008060008060006080868803121561366257613661612b82565b5b600086013567ffffffffffffffff8111156136805761367f612b87565b5b61368c88828901612b9b565b9550955050602061369f88828901613631565b93505060406136b088828901613631565b92505060606136c188828901613631565b9150509295509295909350565b600081905092915050565b60006136e583856136ce565b93506136f2838584612dc1565b82840190509392505050565b600061370b8284866136d9565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061375182612ea5565b915061375c83612ea5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561379157613790613717565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137e360208361379c565b91506137ee826137ad565b602082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061386057607f821691505b6020821081141561387457613873613819565b5b50919050565b7f4f6e6c792067616d6520636f6e74726f6c6c65722063616e20646f2074686973600082015250565b60006138b060208361379c565b91506138bb8261387a565b602082019050919050565b600060208201905081810360008301526138df816138a3565b9050919050565b7f506f6f6c20646f6573206e6f7420657869737400000000000000000000000000600082015250565b600061391c60138361379c565b9150613927826138e6565b602082019050919050565b6000602082019050818103600083015261394b8161390f565b9050919050565b600061395e8385613321565b935061396b838584612dc1565b61397483612d04565b840190509392505050565b600060a082019050818103600083015261399a81888a613952565b90506139a96020830187612eaf565b6139b66040830186612eaf565b6139c36060830185612eaf565b6139d06080830184613242565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a1582612ea5565b9150613a2083612ea5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5957613a58613717565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a9e82612ea5565b9150613aa983612ea5565b925082613ab957613ab8613a64565b5b828204905092915050565b60006080820190508181036000830152613adf818789613952565b9050613aee60208301866132ec565b613afb6040830185612eaf565b613b086060830184612eaf565b9695505050505050565b6000613b1d82612ea5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b5057613b4f613717565b5b600182019050919050565b6000613b6682612ea5565b9150613b7183612ea5565b925082821015613b8457613b83613717565b5b828203905092915050565b7f5468652067616d65206973206e6f742072756e6e696e672c20726f756e64732060008201527f63616e206f6e6c7920626520656e646564206174207468697320706f696e7400602082015250565b6000613beb603f8361379c565b9150613bf682613b8f565b604082019050919050565b60006020820190508181036000830152613c1a81613bde565b9050919050565b600060c0820190508181036000830152613c3c81898b613952565b9050613c4b6020830188613242565b613c586040830187612e96565b613c656060830186612eaf565b613c726080830185612eaf565b613c7f60a0830184612eaf565b98975050505050505050565b60006080820190508181036000830152613ca6818789613952565b9050613cb56020830186613242565b613cc26040830185612e96565b613ccf6060830184612e96565b9695505050505050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613d0557613d04613cd9565b5b80840192508235915067ffffffffffffffff821115613d2757613d26613cde565b5b602083019250600182023603831315613d4357613d42613ce3565b5b509250929050565b7f5468697320706f6f6c20686173206120726f756e6420696e2070726f6772657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613da760218361379c565b9150613db282613d4b565b604082019050919050565b60006020820190508181036000830152613dd681613d9a565b9050919050565b7f5468652067616d65206973206e6f742072756e6e696e67000000000000000000600082015250565b6000613e1360178361379c565b9150613e1e82613ddd565b602082019050919050565b60006020820190508181036000830152613e4281613e06565b9050919050565b7f4e6565647320746f2073656e64204d6174696320746f20747261646500000000600082015250565b6000613e7f601c8361379c565b9150613e8a82613e49565b602082019050919050565b60006020820190508181036000830152613eae81613e72565b9050919050565b7f547261646520616d6f756e742073686f756c642062652068696768657220746860008201527f616e20746865206d696e696d756d000000000000000000000000000000000000602082015250565b6000613f11602e8361379c565b9150613f1c82613eb5565b604082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f547261646520616d6f756e742073686f756c64206265206c6f7765722074686160008201527f6e20746865206d6178696d756d00000000000000000000000000000000000000602082015250565b6000613fa3602d8361379c565b9150613fae82613f47565b604082019050919050565b60006020820190508181036000830152613fd281613f96565b9050919050565b613fe281612c3e565b8114613fed57600080fd5b50565b600081359050613fff81613fd9565b92915050565b60006020828403121561401b5761401a612b82565b5b600061402984828501613ff0565b91505092915050565b7f506f6f6c2069732066756c6c2c207761697420666f72206e65787420726f756e60008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408e60218361379c565b915061409982614032565b604082019050919050565b600060208201905081810360008301526140bd81614081565b9050919050565b600080833560016020038436030381126140e1576140e0613cd9565b5b80840192508235915067ffffffffffffffff82111561410357614102613cde565b5b60208301925060018202360383131561411f5761411e613ce3565b5b509250929050565b600061413282613066565b61413c818561379c565b935061414c818560208601613082565b61415581612d04565b840191505092915050565b600061010082019050818103600083015261417c818b8d613952565b905061418b602083018a6132ec565b6141986040830189612eaf565b81810360608301526141aa8188614127565b90506141b96080830187612eaf565b81810360a08301526141cb8186614127565b905081810360c08301526141df8185614127565b90506141ee60e0830184613242565b9a9950505050505050505050565b60006020820190508181036000830152614217818486613952565b90509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061427c60268361379c565b915061428782614220565b604082019050919050565b600060208201905081810360008301526142ab8161426f565b9050919050565b600060608201905081810360008301526142cd818688613952565b90506142dc60208301856132ec565b6142e96040830184612eaf565b95945050505050565b50565b60006143026000836136ce565b915061430d826142f2565b600082019050919050565b6000614323826142f5565b9150819050919050565b7f436f756c646e27742073656e6420657468657200000000000000000000000000600082015250565b600061436360138361379c565b915061436e8261432d565b602082019050919050565b6000602082019050818103600083015261439281614356565b905091905056fea2646970667358221220b6b5079903d3ce06347fdcaae19b0ceeb8818223ec84e0fbbecd5c789b9f54bf64736f6c634300080a0033000000000000000000000000e419d1916a656fd0bb098b92d2226bf91a658312

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

000000000000000000000000e419d1916a656fd0bb098b92d2226bf91a658312

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

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


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