ETH Price: $3,264.85 (+4.84%)

Contract

0x4f4988A910f8aE9B3214149A8eA1F2E4e3Cd93CC

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy5279382025-01-30 23:02:542 secs ago1738278174IN
0x4f4988A9...4e3Cd93CC
0 ETH0.00000740.04525
Buy5279272025-01-30 23:02:4313 secs ago1738278163IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007950.04525
Buy5279192025-01-30 23:02:3521 secs ago1738278155IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000008060.04525
Buy5279182025-01-30 23:02:3422 secs ago1738278154IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007740.04525
Buy5279152025-01-30 23:02:3125 secs ago1738278151IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007740.04525
Buy5279132025-01-30 23:02:2927 secs ago1738278149IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000008060.04525
Sell5279112025-01-30 23:02:2729 secs ago1738278147IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007610.04525
Buy5279092025-01-30 23:02:2531 secs ago1738278145IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007740.04525
Buy5279082025-01-30 23:02:2432 secs ago1738278144IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000010950.04525
Buy5279042025-01-30 23:02:2036 secs ago1738278140IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007740.04525
Buy5278972025-01-30 23:02:1343 secs ago1738278133IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007960.04525
Buy5278922025-01-30 23:02:0848 secs ago1738278128IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000010660.04525
Buy5278882025-01-30 23:02:0452 secs ago1738278124IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007850.04525
Buy5278822025-01-30 23:01:5858 secs ago1738278118IN
0x4f4988A9...4e3Cd93CC
0 ETH0.00000860.04525
Buy5278792025-01-30 23:01:551 min ago1738278115IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000008510.04525
Buy5278662025-01-30 23:01:421 min ago1738278102IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000008450.04525
Buy5278562025-01-30 23:01:321 min ago1738278092IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007740.04525
Buy5278502025-01-30 23:01:261 min ago1738278086IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000010660.04525
Sell5278462025-01-30 23:01:221 min ago1738278082IN
0x4f4988A9...4e3Cd93CC
0 ETH0.00001020.04525
Buy5278422025-01-30 23:01:181 min ago1738278078IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007940.04525
Buy5278372025-01-30 23:01:131 min ago1738278073IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000010660.04525
Buy5278312025-01-30 23:01:071 min ago1738278067IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007750.04525
Buy5278252025-01-30 23:01:011 min ago1738278061IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007940.04525
Buy5278062025-01-30 23:00:422 mins ago1738278042IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000009770.04525
Buy5278042025-01-30 23:00:402 mins ago1738278040IN
0x4f4988A9...4e3Cd93CC
0 ETH0.000007850.04525
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
1968772025-01-21 11:01:089 days ago1737457268  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PredictionMarketV3

Compiler Version
v0.8.18+commit.87f61d96

ZkSolc Version
v1.5.4

Optimization Enabled:
Yes with Mode 3

Other Settings:
paris EvmVersion
File 1 of 9 : PredictionMarketV3.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

// openzeppelin imports
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";

// local imports
import "./IFantasyERC20.sol";
import "./IRealityETH_ERC20.sol";
import "./IPredictionMarketV3Manager.sol";

library CeilDiv {
  // calculates ceil(x/y)
  function ceildiv(uint256 x, uint256 y) internal pure returns (uint256) {
    if (x > 0) return ((x - 1) / y) + 1;
    return x / y;
  }
}

interface IWETH {
  function deposit() external payable;

  function transfer(address to, uint256 value) external returns (bool);

  function withdraw(uint256) external;

  function approve(address guy, uint256 wad) external returns (bool);
}

/// @title Market Contract Factory
contract PredictionMarketV3 is ReentrancyGuard {
  using SafeERC20 for IERC20;
  using CeilDiv for uint256;

  // ------ Events ------

  event MarketCreated(
    address indexed user,
    uint256 indexed marketId,
    uint256 outcomes,
    string question,
    string image,
    IERC20 token
  );

  event MarketActionTx(
    address indexed user,
    MarketAction indexed action,
    uint256 indexed marketId,
    uint256 outcomeId,
    uint256 shares,
    uint256 value,
    uint256 timestamp
  );

  event MarketOutcomeShares(uint256 indexed marketId, uint256 timestamp, uint256[] outcomeShares, uint256 liquidity);

  event MarketOutcomePrice(uint256 indexed marketId, uint256 indexed outcomeId, uint256 value, uint256 timestamp);

  event MarketLiquidity(
    uint256 indexed marketId,
    uint256 value, // total liquidity
    uint256 price, // value of one liquidity share; max: 1 (even odds situation)
    uint256 timestamp
  );

  event MarketResolved(
    address indexed user,
    uint256 indexed marketId,
    uint256 outcomeId,
    uint256 timestamp,
    bool admin
  );

  // ------ Events End ------

  uint256 public constant MAX_UINT_256 = type(uint256).max;

  uint256 public constant ONE = 10**18;

  uint256 public constant MAX_OUTCOMES = 2**5;

  uint256 public constant MAX_FEE = 5 * 10**16; // 5%

  enum MarketState {
    open,
    closed,
    resolved
  }
  enum MarketAction {
    buy,
    sell,
    addLiquidity,
    removeLiquidity,
    claimWinnings,
    claimLiquidity,
    claimFees,
    claimVoided
  }

  struct Market {
    // market details
    uint256 closesAtTimestamp;
    uint256 balance; // total stake
    uint256 liquidity; // stake held
    uint256 sharesAvailable; // shares held (all outcomes)
    mapping(address => uint256) liquidityShares;
    mapping(address => bool) liquidityClaims; // wether user has claimed liquidity earnings
    MarketState state; // resolution variables
    MarketResolution resolution; // fees
    MarketFees fees;
    // market outcomes
    uint256 outcomeCount;
    mapping(uint256 => MarketOutcome) outcomes;
    IERC20 token; // ERC20 token market will use for trading
    IPredictionMarketV3Manager manager; // manager contract
    address creator; // market creator
  }

  struct MarketFees {
    uint256 fee; // fee % taken from every transaction
    uint256 poolWeight; // internal var used to ensure pro-rate fee distribution
    mapping(address => uint256) claimed;
    address treasury; // address to send treasury fees to
    uint256 treasuryFee; // fee % taken from every transaction to a treasury address
  }

  struct MarketResolution {
    bool resolved;
    uint256 outcomeId;
    bytes32 questionId; // realitio questionId
    // realitio
    IRealityETH_ERC20 realitio;
    uint256 realitioTimeout;
  }

  struct MarketOutcome {
    uint256 marketId;
    uint256 id;
    Shares shares;
  }

  struct Shares {
    uint256 total; // number of shares
    uint256 available; // available shares
    mapping(address => uint256) holders;
    mapping(address => bool) claims; // wether user has claimed winnings
    mapping(address => bool) voidedClaims; // wether user has claimed voided market shares
  }

  struct CreateMarketDescription {
    uint256 value;
    uint256 closesAt;
    uint256 outcomes;
    IERC20 token;
    uint256[] distribution;
    string question;
    string image;
    address arbitrator;
    uint256 fee;
    uint256 treasuryFee;
    address treasury;
    IRealityETH_ERC20 realitio;
    uint256 realitioTimeout;
    IPredictionMarketV3Manager manager;
  }

  uint256[] marketIds;
  mapping(uint256 => Market) markets;
  uint256 public marketIndex;

  // weth configs
  IWETH public immutable WETH;

  // ------ Modifiers ------

  modifier isMarket(uint256 marketId) {
    require(marketId < marketIndex, "Market not found");
    _;
  }

  modifier timeTransitions(uint256 marketId) {
    if (block.timestamp > markets[marketId].closesAtTimestamp && markets[marketId].state == MarketState.open) {
      nextState(marketId);
    }
    _;
  }

  modifier atState(uint256 marketId, MarketState state) {
    require(markets[marketId].state == state, "Market in incorrect state");
    _;
  }

  modifier notAtState(uint256 marketId, MarketState state) {
    require(markets[marketId].state != state, "Market in incorrect state");
    _;
  }

  modifier transitionNext(uint256 marketId) {
    _;
    nextState(marketId);
  }

  modifier transitionLast(uint256 marketId) {
    _;
    lastState(marketId);
  }

  modifier isWETHMarket(uint256 marketId) {
    require(address(WETH) != address(0), "WETH address is address 0");
    require(address(markets[marketId].token) == address(WETH), "Market token is not WETH");
    _;
  }

  // ------ Modifiers End ------

  /// @dev protocol is immutable and has no ownership
  constructor(IWETH _WETH) {
    WETH = _WETH;
  }

  receive() external payable {
    assert(msg.sender == address(WETH)); // only accept ETH via fallback from the WETH contract
  }

  // ------ Core Functions ------

  /// @dev Creates a market, initializes the outcome shares pool and submits a question in Realitio
  function _createMarket(CreateMarketDescription memory desc) private returns (uint256) {
    uint256 marketId = marketIndex;
    marketIds.push(marketId);

    Market storage market = markets[marketId];

    require(desc.value > 0, "stake needs to be > 0");
    require(desc.closesAt > block.timestamp, "resolution before current date");
    require(desc.arbitrator != address(0), "invalid arbitrator address");
    require(desc.outcomes > 0 && desc.outcomes <= MAX_OUTCOMES, "outcome count not between 1-32");
    require(desc.fee <= MAX_FEE, "fee must be <= 5%");
    require(desc.treasuryFee <= MAX_FEE, "treasury fee must be <= 5%");
    require(address(desc.realitio) != address(0), "_realitioAddress is address 0");
    require(desc.realitioTimeout > 0, "timeout must be positive");
    require(desc.manager.isAllowedToCreateMarket(desc.token, msg.sender), "not allowed to create market");

    market.token = desc.token;
    market.closesAtTimestamp = desc.closesAt;
    market.state = MarketState.open;
    market.fees.fee = desc.fee;
    market.fees.treasuryFee = desc.treasuryFee;
    market.fees.treasury = desc.treasury;
    // setting intial value to an integer that does not map to any outcomeId
    market.resolution.outcomeId = MAX_UINT_256;
    market.outcomeCount = desc.outcomes;

    // creating question in realitio
    market.resolution.questionId = desc.realitio.askQuestionERC20(
      2,
      desc.question,
      desc.arbitrator,
      uint32(desc.realitioTimeout),
      uint32(desc.closesAt),
      0,
      0
    );
    market.resolution.realitio = desc.realitio;
    market.resolution.realitioTimeout = desc.realitioTimeout;
    market.manager = desc.manager;
    market.creator = msg.sender;

    _addLiquidity(marketId, desc.value, desc.distribution);

    // emiting initial price events
    emitMarketActionEvents(marketId);
    emit MarketCreated(msg.sender, marketId, desc.outcomes, desc.question, desc.image, desc.token);

    // incrementing market array index
    marketIndex = marketIndex + 1;

    return marketId;
  }

  function createMarket(CreateMarketDescription calldata desc) external returns (uint256) {
    uint256 marketId = _createMarket(
      CreateMarketDescription({
        value: desc.value,
        closesAt: desc.closesAt,
        outcomes: desc.outcomes,
        token: desc.token,
        distribution: desc.distribution,
        question: desc.question,
        image: desc.image,
        arbitrator: desc.arbitrator,
        fee: desc.fee,
        treasuryFee: desc.treasuryFee,
        treasury: desc.treasury,
        realitio: desc.realitio,
        realitioTimeout: desc.realitioTimeout,
        manager: desc.manager
      })
    );
    // transferring funds
    desc.token.safeTransferFrom(msg.sender, address(this), desc.value);

    return marketId;
  }

  function createMarketWithETH(CreateMarketDescription calldata desc) external payable returns (uint256) {
    require(address(desc.token) == address(WETH), "Market token is not WETH");
    require(msg.value == desc.value, "value does not match arguments");
    uint256 marketId = _createMarket(
      CreateMarketDescription({
        value: desc.value,
        closesAt: desc.closesAt,
        outcomes: desc.outcomes,
        token: desc.token,
        distribution: desc.distribution,
        question: desc.question,
        image: desc.image,
        arbitrator: desc.arbitrator,
        fee: desc.fee,
        treasuryFee: desc.treasuryFee,
        treasury: desc.treasury,
        realitio: desc.realitio,
        realitioTimeout: desc.realitioTimeout,
        manager: desc.manager
      })
    );
    // transferring funds
    IWETH(WETH).deposit{value: msg.value}();

    return marketId;
  }

  function mintAndCreateMarket(CreateMarketDescription calldata desc) external returns (uint256) {
    // mint the amount of tokens to the user
    IFantasyERC20(address(desc.token)).mint(msg.sender, desc.value);

    uint256 marketId = _createMarket(desc);
    // transferring funds
    desc.token.safeTransferFrom(msg.sender, address(this), desc.value);

    return marketId;
  }

  /// @dev Calculates the number of shares bought with "amount" balance
  function calcBuyAmount(
    uint256 amount,
    uint256 marketId,
    uint256 outcomeId
  ) public view returns (uint256) {
    uint256[] memory outcomesShares = getMarketOutcomesShares(marketId);
    uint256 fee = getMarketFee(marketId);
    uint256 amountMinusFees = amount - ((amount * fee) / ONE);
    uint256 buyTokenPoolBalance = outcomesShares[outcomeId];
    uint256 endingOutcomeBalance = buyTokenPoolBalance * ONE;
    for (uint256 i = 0; i < outcomesShares.length; ++i) {
      if (i != outcomeId) {
        uint256 outcomeShares = outcomesShares[i];
        endingOutcomeBalance = (endingOutcomeBalance * outcomeShares).ceildiv(outcomeShares + amountMinusFees);
      }
    }
    require(endingOutcomeBalance > 0, "must have non-zero balances");

    return buyTokenPoolBalance + amountMinusFees - (endingOutcomeBalance.ceildiv(ONE));
  }

  /// @dev Calculates the number of shares needed to be sold in order to receive "amount" in balance
  function calcSellAmount(
    uint256 amount,
    uint256 marketId,
    uint256 outcomeId
  ) public view returns (uint256 outcomeTokenSellAmount) {
    uint256[] memory outcomesShares = getMarketOutcomesShares(marketId);
    uint256 fee = getMarketFee(marketId);
    uint256 amountPlusFees = (amount * ONE) / (ONE - fee);
    uint256 sellTokenPoolBalance = outcomesShares[outcomeId];
    uint256 endingOutcomeBalance = sellTokenPoolBalance * ONE;
    for (uint256 i = 0; i < outcomesShares.length; ++i) {
      if (i != outcomeId) {
        uint256 outcomeShares = outcomesShares[i];
        endingOutcomeBalance = (endingOutcomeBalance * outcomeShares).ceildiv(outcomeShares - amountPlusFees);
      }
    }
    require(endingOutcomeBalance > 0, "must have non-zero balances");

    return amountPlusFees + endingOutcomeBalance.ceildiv(ONE) - sellTokenPoolBalance;
  }

  /// @dev Buy shares of a market outcome
  function _buy(
    uint256 marketId,
    uint256 outcomeId,
    uint256 minOutcomeSharesToBuy,
    uint256 value
  ) private timeTransitions(marketId) atState(marketId, MarketState.open) {
    Market storage market = markets[marketId];

    uint256 shares = calcBuyAmount(value, marketId, outcomeId);
    require(shares >= minOutcomeSharesToBuy, "minimum buy amount not reached");
    require(shares > 0, "shares amount is 0");

    // subtracting fee from transaction value
    uint256 feeAmount = (value * market.fees.fee) / ONE;
    market.fees.poolWeight = market.fees.poolWeight + feeAmount;
    uint256 valueMinusFees = value - feeAmount;

    uint256 treasuryFeeAmount = (value * market.fees.treasuryFee) / ONE;
    valueMinusFees = valueMinusFees - treasuryFeeAmount;

    MarketOutcome storage outcome = market.outcomes[outcomeId];

    // Funding market shares with received funds
    addSharesToMarket(marketId, valueMinusFees);

    require(outcome.shares.available >= shares, "shares pool balance is too low");

    transferOutcomeSharesfromPool(msg.sender, marketId, outcomeId, shares);

    emit MarketActionTx(msg.sender, MarketAction.buy, marketId, outcomeId, shares, value, block.timestamp);
    emitMarketActionEvents(marketId);

    // transfering treasury fee to treasury address
    if (treasuryFeeAmount > 0) {
      market.token.safeTransfer(market.fees.treasury, treasuryFeeAmount);
    }
  }

  /// @dev Buy shares of a market outcome
  function buy(
    uint256 marketId,
    uint256 outcomeId,
    uint256 minOutcomeSharesToBuy,
    uint256 value
  ) external nonReentrant {
    Market storage market = markets[marketId];
    market.token.safeTransferFrom(msg.sender, address(this), value);
    _buy(marketId, outcomeId, minOutcomeSharesToBuy, value);
  }

  function buyWithETH(
    uint256 marketId,
    uint256 outcomeId,
    uint256 minOutcomeSharesToBuy
  ) external payable isWETHMarket(marketId) nonReentrant {
    uint256 value = msg.value;
    // wrapping and depositing funds
    IWETH(WETH).deposit{value: value}();
    _buy(marketId, outcomeId, minOutcomeSharesToBuy, value);
  }

  /// @dev Sell shares of a market outcome
  function _sell(
    uint256 marketId,
    uint256 outcomeId,
    uint256 value,
    uint256 maxOutcomeSharesToSell
  ) private timeTransitions(marketId) atState(marketId, MarketState.open) {
    Market storage market = markets[marketId];
    MarketOutcome storage outcome = market.outcomes[outcomeId];

    uint256 shares = calcSellAmount(value, marketId, outcomeId);

    require(shares <= maxOutcomeSharesToSell, "maximum sell amount exceeded");
    require(shares > 0, "shares amount is 0");
    require(outcome.shares.holders[msg.sender] >= shares, "insufficient shares balance");

    transferOutcomeSharesToPool(msg.sender, marketId, outcomeId, shares);

    // adding fees to transaction value
    uint256 fee = getMarketFee(marketId);
    {
      uint256 feeAmount = (value * market.fees.fee) / (ONE - fee);
      market.fees.poolWeight = market.fees.poolWeight + feeAmount;
    }
    uint256 valuePlusFees = value + (value * fee) / (ONE - fee);

    require(market.balance >= valuePlusFees, "insufficient market balance");

    // Rebalancing market shares
    removeSharesFromMarket(marketId, valuePlusFees);

    emit MarketActionTx(msg.sender, MarketAction.sell, marketId, outcomeId, shares, value, block.timestamp);
    emitMarketActionEvents(marketId);

    {
      uint256 treasuryFeeAmount = (value * market.fees.treasuryFee) / (ONE - fee);
      // transfering treasury fee to treasury address
      if (treasuryFeeAmount > 0) {
        market.token.safeTransfer(market.fees.treasury, treasuryFeeAmount);
      }
    }
  }

  function sell(
    uint256 marketId,
    uint256 outcomeId,
    uint256 value,
    uint256 maxOutcomeSharesToSell
  ) external nonReentrant {
    _sell(marketId, outcomeId, value, maxOutcomeSharesToSell);
    // Transferring funds to user
    Market storage market = markets[marketId];
    market.token.safeTransfer(msg.sender, value);
  }

  function sellToETH(
    uint256 marketId,
    uint256 outcomeId,
    uint256 value,
    uint256 maxOutcomeSharesToSell
  ) external isWETHMarket(marketId) nonReentrant {
    Market storage market = markets[marketId];
    require(address(market.token) == address(WETH), "market token is not WETH");

    _sell(marketId, outcomeId, value, maxOutcomeSharesToSell);

    IWETH(WETH).withdraw(value);
    (bool sent, ) = payable(msg.sender).call{value: value}("");
    require(sent, "Failed to send Ether");
  }

  /// @dev Adds liquidity to a market - external
  function _addLiquidity(
    uint256 marketId,
    uint256 value,
    uint256[] memory distribution
  ) private timeTransitions(marketId) atState(marketId, MarketState.open) {
    Market storage market = markets[marketId];

    require(value > 0, "stake has to be greater than 0.");

    uint256 liquidityAmount;

    uint256[] memory outcomesShares = getMarketOutcomesShares(marketId);
    uint256[] memory sendBackAmounts = new uint256[](outcomesShares.length);
    uint256 poolWeight = 0;

    if (market.liquidity > 0) {
      require(distribution.length == 0, "market already funded");

      // part of the liquidity is exchanged for outcome shares if market is not balanced
      for (uint256 i = 0; i < outcomesShares.length; ++i) {
        uint256 outcomeShares = outcomesShares[i];
        if (poolWeight < outcomeShares) poolWeight = outcomeShares;
      }

      for (uint256 i = 0; i < outcomesShares.length; ++i) {
        uint256 remaining = (value * outcomesShares[i]) / poolWeight;
        sendBackAmounts[i] = value - remaining;
      }

      liquidityAmount = (value * market.liquidity) / poolWeight;

      // re-balancing fees pool
      rebalanceFeesPool(marketId, liquidityAmount, MarketAction.addLiquidity);
    } else {
      // funding market with no liquidity
      if (distribution.length > 0) {
        require(distribution.length == outcomesShares.length, "distribution length not matching");

        uint256 maxHint = 0;
        for (uint256 i = 0; i < distribution.length; ++i) {
          uint256 hint = distribution[i];
          if (maxHint < hint) maxHint = hint;
        }

        for (uint256 i = 0; i < distribution.length; ++i) {
          uint256 remaining = (value * distribution[i]) / maxHint;
          require(remaining > 0, "must hint a valid distribution");
          sendBackAmounts[i] = value - remaining;
        }
      }

      // funding market with total liquidity amount
      liquidityAmount = value;
    }

    // funding market
    market.liquidity = market.liquidity + liquidityAmount;
    market.liquidityShares[msg.sender] = market.liquidityShares[msg.sender] + liquidityAmount;

    addSharesToMarket(marketId, value);

    {
      // transform sendBackAmounts to array of amounts added
      for (uint256 i = 0; i < sendBackAmounts.length; ++i) {
        if (sendBackAmounts[i] > 0) {
          transferOutcomeSharesfromPool(msg.sender, marketId, i, sendBackAmounts[i]);
        }
      }

      // emitting events, using outcome 0 for price reference
      uint256 referencePrice = getMarketOutcomePrice(marketId, 0);

      for (uint256 i = 0; i < sendBackAmounts.length; ++i) {
        if (sendBackAmounts[i] > 0) {
          // outcome price = outcome shares / reference outcome shares * reference outcome price
          uint256 outcomePrice = (referencePrice * market.outcomes[0].shares.available) /
            market.outcomes[i].shares.available;

          emit MarketActionTx(
            msg.sender,
            MarketAction.buy,
            marketId,
            i,
            sendBackAmounts[i],
            (sendBackAmounts[i] * outcomePrice) / ONE, // price * shares
            block.timestamp
          );
        }
      }
    }

    uint256 liquidityPrice = getMarketLiquidityPrice(marketId);
    uint256 liquidityValue = (liquidityPrice * liquidityAmount) / ONE;

    emit MarketActionTx(
      msg.sender,
      MarketAction.addLiquidity,
      marketId,
      0,
      liquidityAmount,
      liquidityValue,
      block.timestamp
    );
    emit MarketLiquidity(marketId, market.liquidity, liquidityPrice, block.timestamp);
  }

  function addLiquidity(uint256 marketId, uint256 value) external {
    uint256[] memory distribution = new uint256[](0);
    _addLiquidity(marketId, value, distribution);

    Market storage market = markets[marketId];
    market.token.safeTransferFrom(msg.sender, address(this), value);
  }

  function addLiquidityWithETH(uint256 marketId) external payable isWETHMarket(marketId) {
    uint256 value = msg.value;
    uint256[] memory distribution = new uint256[](0);
    _addLiquidity(marketId, value, distribution);
    // wrapping and depositing funds
    IWETH(WETH).deposit{value: value}();
  }

  /// @dev Removes liquidity to a market - external
  function _removeLiquidity(uint256 marketId, uint256 shares)
    private
    timeTransitions(marketId)
    atState(marketId, MarketState.open)
    returns (uint256)
  {
    Market storage market = markets[marketId];

    require(market.liquidityShares[msg.sender] >= shares, "insufficient shares balance");
    // claiming any pending fees
    claimFees(marketId);

    // re-balancing fees pool
    rebalanceFeesPool(marketId, shares, MarketAction.removeLiquidity);

    uint256[] memory outcomesShares = getMarketOutcomesShares(marketId);
    uint256[] memory sendAmounts = new uint256[](outcomesShares.length);
    uint256 poolWeight = MAX_UINT_256;

    // part of the liquidity is exchanged for outcome shares if market is not balanced
    for (uint256 i = 0; i < outcomesShares.length; ++i) {
      uint256 outcomeShares = outcomesShares[i];
      if (poolWeight > outcomeShares) poolWeight = outcomeShares;
    }

    uint256 liquidityAmount = (shares * poolWeight) / market.liquidity;

    for (uint256 i = 0; i < outcomesShares.length; ++i) {
      sendAmounts[i] = (outcomesShares[i] * shares) / market.liquidity;
      sendAmounts[i] = sendAmounts[i] - liquidityAmount;
    }

    // removing liquidity from market
    removeSharesFromMarket(marketId, liquidityAmount);
    market.liquidity = market.liquidity - shares;
    // removing liquidity tokens from market creator
    market.liquidityShares[msg.sender] = market.liquidityShares[msg.sender] - shares;

    for (uint256 i = 0; i < outcomesShares.length; ++i) {
      if (sendAmounts[i] > 0) {
        transferOutcomeSharesfromPool(msg.sender, marketId, i, sendAmounts[i]);
      }
    }

    // emitting events, using outcome 0 for price reference
    uint256 referencePrice = getMarketOutcomePrice(marketId, 0);

    for (uint256 i = 0; i < outcomesShares.length; ++i) {
      if (sendAmounts[i] > 0) {
        // outcome price = outcome shares / reference outcome shares * reference outcome price
        uint256 outcomePrice = (referencePrice * market.outcomes[0].shares.available) /
          market.outcomes[i].shares.available;

        emit MarketActionTx(
          msg.sender,
          MarketAction.buy,
          marketId,
          i,
          sendAmounts[i],
          (sendAmounts[i] * outcomePrice) / ONE, // price * shares
          block.timestamp
        );
      }
    }

    emit MarketActionTx(
      msg.sender,
      MarketAction.removeLiquidity,
      marketId,
      0,
      shares,
      liquidityAmount,
      block.timestamp
    );
    emit MarketLiquidity(marketId, market.liquidity, getMarketLiquidityPrice(marketId), block.timestamp);

    return liquidityAmount;
  }

  function removeLiquidity(uint256 marketId, uint256 shares) external {
    uint256 value = _removeLiquidity(marketId, shares);
    // transferring user funds from liquidity removed
    Market storage market = markets[marketId];
    market.token.safeTransfer(msg.sender, value);
  }

  function removeLiquidityToETH(uint256 marketId, uint256 shares) external isWETHMarket(marketId) {
    uint256 value = _removeLiquidity(marketId, shares);
    // unwrapping and transferring user funds from liquidity removed
    IWETH(WETH).withdraw(value);
    (bool sent, ) = payable(msg.sender).call{value: value}("");
    require(sent, "Failed to send Ether");
  }

  /// @dev Fetches winning outcome from Realitio and resolves the market
  function resolveMarketOutcome(uint256 marketId)
    external
    timeTransitions(marketId)
    atState(marketId, MarketState.closed)
    transitionNext(marketId)
    returns (uint256)
  {
    Market storage market = markets[marketId];

    // will fail if question is not finalized
    uint256 outcomeId = uint256(market.resolution.realitio.resultFor(market.resolution.questionId));

    market.resolution.outcomeId = outcomeId;

    emit MarketResolved(msg.sender, marketId, outcomeId, block.timestamp, false);
    emitMarketActionEvents(marketId);

    return market.resolution.outcomeId;
  }

  /// @dev overrides market resolution, instead of using realitio
  function adminResolveMarketOutcome(uint256 marketId, uint256 outcomeId)
    external
    notAtState(marketId, MarketState.resolved)
    transitionLast(marketId)
    returns (uint256)
  {
    Market storage market = markets[marketId];

    require(market.manager.isAllowedToResolveMarket(market.token, msg.sender), "not allowed to resolve market");

    market.resolution.outcomeId = outcomeId;

    emit MarketResolved(msg.sender, marketId, outcomeId, block.timestamp, true);
    emitMarketActionEvents(marketId);

    return market.resolution.outcomeId;
  }

  /// @dev Allows holders of resolved outcome shares to claim earnings.
  function _claimWinnings(uint256 marketId) private atState(marketId, MarketState.resolved) returns (uint256) {
    Market storage market = markets[marketId];
    MarketOutcome storage resolvedOutcome = market.outcomes[market.resolution.outcomeId];

    require(resolvedOutcome.shares.holders[msg.sender] > 0, "user doesn't hold outcome shares");
    require(resolvedOutcome.shares.claims[msg.sender] == false, "user already claimed winnings");

    // 1 share => price = 1
    uint256 value = resolvedOutcome.shares.holders[msg.sender];

    // assuring market has enough funds
    require(market.balance >= value, "insufficient market balance");

    market.balance = market.balance - value;
    resolvedOutcome.shares.claims[msg.sender] = true;

    emit MarketActionTx(
      msg.sender,
      MarketAction.claimWinnings,
      marketId,
      market.resolution.outcomeId,
      resolvedOutcome.shares.holders[msg.sender],
      value,
      block.timestamp
    );

    return value;
  }

  function claimWinnings(uint256 marketId) external {
    uint256 value = _claimWinnings(marketId);
    // transferring user funds from winnings claimed
    Market storage market = markets[marketId];
    market.token.safeTransfer(msg.sender, value);
  }

  function claimWinningsToETH(uint256 marketId) external isWETHMarket(marketId) {
    uint256 value = _claimWinnings(marketId);
    // unwrapping and transferring user funds from winnings claimed
    IWETH(WETH).withdraw(value);
    (bool sent, ) = payable(msg.sender).call{value: value}("");
    require(sent, "Failed to send Ether");
  }

  /// @dev Allows holders of voided outcome shares to claim balance back.
  function _claimVoidedOutcomeShares(uint256 marketId, uint256 outcomeId)
    private
    atState(marketId, MarketState.resolved)
    returns (uint256)
  {
    Market storage market = markets[marketId];
    MarketOutcome storage outcome = market.outcomes[outcomeId];

    require(isMarketVoided(marketId), "market is not voided");
    require(outcome.shares.holders[msg.sender] > 0, "user doesn't hold outcome shares");
    require(outcome.shares.voidedClaims[msg.sender] == false, "user already claimed shares");

    // voided market - shares are valued at last market price
    uint256 price = getMarketOutcomePrice(marketId, outcomeId);
    uint256 value = (price * outcome.shares.holders[msg.sender]) / ONE;

    // assuring market has enough funds
    require(market.balance >= value, "insufficient market balance");

    market.balance = market.balance - value;
    outcome.shares.voidedClaims[msg.sender] = true;

    emit MarketActionTx(
      msg.sender,
      MarketAction.claimVoided,
      marketId,
      outcomeId,
      outcome.shares.holders[msg.sender],
      value,
      block.timestamp
    );

    return value;
  }

  function claimVoidedOutcomeShares(uint256 marketId, uint256 outcomeId) external {
    uint256 value = _claimVoidedOutcomeShares(marketId, outcomeId);
    // transferring user funds from voided outcome shares claimed
    Market storage market = markets[marketId];
    market.token.safeTransfer(msg.sender, value);
  }

  function claimVoidedOutcomeSharesToETH(uint256 marketId, uint256 outcomeId) external isWETHMarket(marketId) {
    uint256 value = _claimVoidedOutcomeShares(marketId, outcomeId);
    // unwrapping and transferring user funds from voided outcome shares claimed
    IWETH(WETH).withdraw(value);
    (bool sent, ) = payable(msg.sender).call{value: value}("");
    require(sent, "Failed to send Ether");
  }

  /// @dev Allows liquidity providers to claim earnings from liquidity providing.
  function _claimLiquidity(uint256 marketId) private atState(marketId, MarketState.resolved) returns (uint256) {
    Market storage market = markets[marketId];

    // claiming any pending fees
    claimFees(marketId);

    require(market.liquidityShares[msg.sender] > 0, "user doesn't hold shares");
    require(market.liquidityClaims[msg.sender] == false, "user already claimed shares");

    // value = total resolved outcome pool shares * pool share (%)
    uint256 liquidityPrice = getMarketLiquidityPrice(marketId);
    uint256 value = (liquidityPrice * market.liquidityShares[msg.sender]) / ONE;

    // assuring market has enough funds
    require(market.balance >= value, "insufficient market balance");

    market.balance = market.balance - value;
    market.liquidityClaims[msg.sender] = true;

    emit MarketActionTx(
      msg.sender,
      MarketAction.claimLiquidity,
      marketId,
      0,
      market.liquidityShares[msg.sender],
      value,
      block.timestamp
    );

    return value;
  }

  function claimLiquidity(uint256 marketId) external {
    uint256 value = _claimLiquidity(marketId);
    // transferring user funds from liquidity claimed
    Market storage market = markets[marketId];
    market.token.safeTransfer(msg.sender, value);
  }

  function claimLiquidityToETH(uint256 marketId) external isWETHMarket(marketId) {
    uint256 value = _claimLiquidity(marketId);
    // unwrapping and transferring user funds from liquidity claimed
    IWETH(WETH).withdraw(value);
    (bool sent, ) = payable(msg.sender).call{value: value}("");
    require(sent, "Failed to send Ether");
  }

  /// @dev Allows liquidity providers to claim their fees share from fees pool
  function _claimFees(uint256 marketId) private returns (uint256) {
    Market storage market = markets[marketId];

    uint256 claimableFees = getUserClaimableFees(marketId, msg.sender);

    if (claimableFees > 0) {
      market.fees.claimed[msg.sender] = market.fees.claimed[msg.sender] + claimableFees;
    }

    emit MarketActionTx(
      msg.sender,
      MarketAction.claimFees,
      marketId,
      0,
      market.liquidityShares[msg.sender],
      claimableFees,
      block.timestamp
    );

    return claimableFees;
  }

  function claimFees(uint256 marketId) public nonReentrant {
    uint256 value = _claimFees(marketId);
    // transferring user funds from fees claimed
    Market storage market = markets[marketId];
    market.token.safeTransfer(msg.sender, value);
  }

  function claimFeesToETH(uint256 marketId) public isWETHMarket(marketId) nonReentrant {
    uint256 value = _claimFees(marketId);
    // unwrapping and transferring user funds from fees claimed
    IWETH(WETH).withdraw(value);
    (bool sent, ) = payable(msg.sender).call{value: value}("");
    require(sent, "Failed to send Ether");
  }

  /// @dev Rebalances the fees pool. Needed in every AddLiquidity / RemoveLiquidity call
  function rebalanceFeesPool(
    uint256 marketId,
    uint256 liquidityShares,
    MarketAction action
  ) private {
    Market storage market = markets[marketId];

    uint256 poolWeight = (liquidityShares * market.fees.poolWeight) / market.liquidity;

    if (action == MarketAction.addLiquidity) {
      market.fees.poolWeight = market.fees.poolWeight + poolWeight;
      market.fees.claimed[msg.sender] = market.fees.claimed[msg.sender] + poolWeight;
    } else {
      market.fees.poolWeight = market.fees.poolWeight - poolWeight;
      market.fees.claimed[msg.sender] = market.fees.claimed[msg.sender] - poolWeight;
    }
  }

  /// @dev Transitions market to next state
  function nextState(uint256 marketId) private {
    Market storage market = markets[marketId];
    market.state = MarketState(uint256(market.state) + 1);
  }

  /// @dev Transitions market to last state
  function lastState(uint256 marketId) private {
    Market storage market = markets[marketId];
    market.state = MarketState.resolved;
  }

  /// @dev Emits a outcome price event for every outcome
  function emitMarketActionEvents(uint256 marketId) private {
    Market storage market = markets[marketId];
    uint256[] memory outcomeShares = new uint256[](market.outcomeCount);

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      outcomeShares[i] = market.outcomes[i].shares.available;
    }

    emit MarketOutcomeShares(marketId, block.timestamp, outcomeShares, market.liquidity);
  }

  /// @dev Adds outcome shares to shares pool
  function addSharesToMarket(uint256 marketId, uint256 shares) private {
    Market storage market = markets[marketId];

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      MarketOutcome storage outcome = market.outcomes[i];

      outcome.shares.available = outcome.shares.available + shares;
      outcome.shares.total = outcome.shares.total + shares;

      // only adding to market total shares, the available remains
      market.sharesAvailable = market.sharesAvailable + shares;
    }

    market.balance = market.balance + shares;
  }

  /// @dev Removes outcome shares from shares pool
  function removeSharesFromMarket(uint256 marketId, uint256 shares) private {
    Market storage market = markets[marketId];

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      MarketOutcome storage outcome = market.outcomes[i];

      outcome.shares.available = outcome.shares.available - shares;
      outcome.shares.total = outcome.shares.total - shares;

      // only subtracting from market total shares, the available remains
      market.sharesAvailable = market.sharesAvailable - shares;
    }

    market.balance = market.balance - shares;
  }

  /// @dev Transfer outcome shares from pool to user balance
  function transferOutcomeSharesfromPool(
    address user,
    uint256 marketId,
    uint256 outcomeId,
    uint256 shares
  ) private {
    Market storage market = markets[marketId];
    MarketOutcome storage outcome = market.outcomes[outcomeId];

    // transfering shares from shares pool to user
    outcome.shares.holders[user] = outcome.shares.holders[user] + shares;
    outcome.shares.available = outcome.shares.available - shares;
    market.sharesAvailable = market.sharesAvailable - shares;
  }

  /// @dev Transfer outcome shares from user balance back to pool
  function transferOutcomeSharesToPool(
    address user,
    uint256 marketId,
    uint256 outcomeId,
    uint256 shares
  ) private {
    Market storage market = markets[marketId];
    MarketOutcome storage outcome = market.outcomes[outcomeId];

    // adding shares back to pool
    outcome.shares.holders[user] = outcome.shares.holders[user] - shares;
    outcome.shares.available = outcome.shares.available + shares;
    market.sharesAvailable = market.sharesAvailable + shares;
  }

  // ------ Core Functions End ------

  // ------ Getters ------

  function getUserMarketShares(uint256 marketId, address user) external view returns (uint256, uint256[] memory) {
    Market storage market = markets[marketId];
    uint256[] memory outcomeShares = new uint256[](market.outcomeCount);

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      outcomeShares[i] = market.outcomes[i].shares.holders[user];
    }

    return (market.liquidityShares[user], outcomeShares);
  }

  function getUserClaimStatus(uint256 marketId, address user)
    external
    view
    returns (
      bool,
      bool,
      bool,
      bool,
      uint256
    )
  {
    Market storage market = markets[marketId];

    // market still not resolved
    if (market.state != MarketState.resolved) {
      return (false, false, false, false, getUserClaimableFees(marketId, user));
    }

    MarketOutcome storage outcome = market.outcomes[market.resolution.outcomeId];

    return (
      outcome.shares.holders[user] > 0,
      outcome.shares.claims[user],
      market.liquidityShares[user] > 0,
      market.liquidityClaims[user],
      getUserClaimableFees(marketId, user)
    );
  }

  function getUserLiquidityPoolShare(uint256 marketId, address user) external view returns (uint256) {
    Market storage market = markets[marketId];

    return (market.liquidityShares[user] * ONE) / market.liquidity;
  }

  function getUserClaimableFees(uint256 marketId, address user) public view returns (uint256) {
    Market storage market = markets[marketId];

    uint256 rawAmount = (market.fees.poolWeight * market.liquidityShares[user]) / market.liquidity;

    // No fees left to claim
    if (market.fees.claimed[user] > rawAmount) return 0;

    return rawAmount - market.fees.claimed[user];
  }

  function getMarkets() external view returns (uint256[] memory) {
    return marketIds;
  }

  function getMarketData(uint256 marketId)
    external
    view
    returns (
      MarketState,
      uint256,
      uint256,
      uint256,
      uint256,
      int256
    )
  {
    Market storage market = markets[marketId];

    return (
      market.state,
      market.closesAtTimestamp,
      market.liquidity,
      market.balance,
      market.sharesAvailable,
      getMarketResolvedOutcome(marketId)
    );
  }

  function getMarketAltData(uint256 marketId)
    external
    view
    returns (
      uint256,
      bytes32,
      uint256,
      IERC20,
      uint256,
      address,
      IRealityETH_ERC20,
      uint256,
      IPredictionMarketV3Manager
    )
  {
    Market storage market = markets[marketId];

    return (
      market.fees.fee,
      market.resolution.questionId,
      uint256(market.resolution.questionId),
      market.token,
      market.fees.treasuryFee,
      market.fees.treasury,
      market.resolution.realitio,
      market.resolution.realitioTimeout,
      market.manager
    );
  }

  function getMarketCreator(uint256 marketId) external view returns (address) {
    Market storage market = markets[marketId];

    return market.creator;
  }

  function getMarketQuestion(uint256 marketId) external view returns (bytes32) {
    Market storage market = markets[marketId];

    return (market.resolution.questionId);
  }

  function getMarketPrices(uint256 marketId) external view returns (uint256, uint256[] memory) {
    Market storage market = markets[marketId];
    uint256[] memory prices = new uint256[](market.outcomeCount);

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      prices[i] = getMarketOutcomePrice(marketId, i);
    }

    return (getMarketLiquidityPrice(marketId), prices);
  }

  function getMarketShares(uint256 marketId) external view returns (uint256, uint256[] memory) {
    Market storage market = markets[marketId];
    uint256[] memory outcomeShares = new uint256[](market.outcomeCount);

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      outcomeShares[i] = market.outcomes[i].shares.available;
    }

    return (market.liquidity, outcomeShares);
  }

  function getMarketLiquidityPrice(uint256 marketId) public view returns (uint256) {
    Market storage market = markets[marketId];

    if (market.state == MarketState.resolved && !isMarketVoided(marketId)) {
      // resolved market, outcome prices are either 0 or 1
      // final liquidity price = outcome shares / liquidity shares
      return (market.outcomes[market.resolution.outcomeId].shares.available * ONE) / market.liquidity;
    }

    // liquidity price = # outcomes / (liquidity * sum (1 / every outcome shares)
    uint256 marketSharesSum = 0;

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      MarketOutcome storage outcome = market.outcomes[i];

      marketSharesSum = marketSharesSum + (ONE * ONE) / outcome.shares.available;
    }

    return (market.outcomeCount * ONE * ONE * ONE) / market.liquidity / marketSharesSum;
  }

  function getMarketResolvedOutcome(uint256 marketId) public view returns (int256) {
    Market storage market = markets[marketId];

    // returning -1 if market still not resolved
    if (market.state != MarketState.resolved) {
      return -1;
    }

    return int256(market.resolution.outcomeId);
  }

  function isMarketVoided(uint256 marketId) public view returns (bool) {
    Market storage market = markets[marketId];

    // market still not resolved, still in valid state
    if (market.state != MarketState.resolved) {
      return false;
    }

    // resolved market id does not match any of the market ids
    return market.resolution.outcomeId >= market.outcomeCount;
  }

  function getMarketFee(uint256 marketId) public view returns (uint256) {
    Market storage market = markets[marketId];

    return market.fees.fee + market.fees.treasuryFee;
  }

  // ------ Outcome Getters ------

  function getMarketOutcomeIds(uint256 marketId) external view returns (uint256[] memory) {
    Market storage market = markets[marketId];
    uint256[] memory outcomeIds = new uint256[](market.outcomeCount);

    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      outcomeIds[i] = i;
    }

    return outcomeIds;
  }

  function getMarketOutcomePrice(uint256 marketId, uint256 outcomeId) public view returns (uint256) {
    Market storage market = markets[marketId];

    if (market.state == MarketState.resolved && !isMarketVoided(marketId)) {
      // resolved market, price is either 0 or 1
      return outcomeId == market.resolution.outcomeId ? ONE : 0;
    }

    // outcome price = 1 / (1 + sum(outcome shares / every outcome shares))
    uint256 div = ONE;
    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      if (i == outcomeId) continue;

      div = div + (market.outcomes[outcomeId].shares.available * ONE) / market.outcomes[i].shares.available;
    }

    return (ONE * ONE) / div;
  }

  function getMarketOutcomeData(uint256 marketId, uint256 outcomeId)
    external
    view
    returns (
      uint256,
      uint256,
      uint256
    )
  {
    Market storage market = markets[marketId];
    MarketOutcome storage outcome = market.outcomes[outcomeId];

    return (getMarketOutcomePrice(marketId, outcomeId), outcome.shares.available, outcome.shares.total);
  }

  function getMarketOutcomesShares(uint256 marketId) private view returns (uint256[] memory) {
    Market storage market = markets[marketId];

    uint256[] memory shares = new uint256[](market.outcomeCount);
    for (uint256 i = 0; i < market.outcomeCount; ++i) {
      shares[i] = market.outcomes[i].shares.available;
    }

    return shares;
  }
}

File 2 of 9 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

File 3 of 9 : SafeERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";
import "../extensions/draft-IERC20Permit.sol";
import "../../../utils/Address.sol";

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    function safePermit(
        IERC20Permit token,
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal {
        uint256 nonceBefore = token.nonces(owner);
        token.permit(owner, spender, value, deadline, v, r, s);
        uint256 nonceAfter = token.nonces(owner);
        require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed");
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

File 4 of 9 : IFantasyERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface IFantasyERC20 is IERC20 {
  function mint(address account, uint256 amount) external;

  function burn(address account, uint256 amount) external;

  function claimTokens() external;

  function claimAndApproveTokens() external;

  function hasUserClaimedTokens(address user) external view returns (bool);

  function pause() external;

  function unpause() external;
}

File 5 of 9 : IRealityETH_ERC20.sol
// SPDX-License-Identifier: GPL-3.0-only
// Based on https://github.com/RealityETH/reality-eth-monorepo/blob/main/packages/contracts/development/contracts/IRealityETH_ERC20.sol

pragma solidity ^0.8.18;

interface IRealityETH_ERC20 {
     event LogAnswerReveal (bytes32 indexed question_id, address indexed user, bytes32 indexed answer_hash, bytes32 answer, uint256 nonce, uint256 bond);
     event LogCancelArbitration (bytes32 indexed question_id);
     event LogClaim (bytes32 indexed question_id, address indexed user, uint256 amount);
     event LogFinalize (bytes32 indexed question_id, bytes32 indexed answer);
     event LogFundAnswerBounty (bytes32 indexed question_id, uint256 bounty_added, uint256 bounty, address indexed user);
     event LogMinimumBond (bytes32 indexed question_id, uint256 min_bond);
     event LogNewAnswer (bytes32 answer, bytes32 indexed question_id, bytes32 history_hash, address indexed user, uint256 bond, uint256 ts, bool is_commitment);
     event LogNewQuestion (bytes32 indexed question_id, address indexed user, uint256 template_id, string question, bytes32 indexed content_hash, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 created);
     event LogNewTemplate (uint256 indexed template_id, address indexed user, string question_text);
     event LogNotifyOfArbitrationRequest (bytes32 indexed question_id, address indexed user);
     event LogReopenQuestion (bytes32 indexed question_id, bytes32 indexed reopened_question_id);
     event LogSetQuestionFee (address arbitrator, uint256 amount);

     function askQuestion (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external returns (bytes32);
     function askQuestionERC20 (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 tokens) external returns (bytes32);
     function askQuestionWithMinBondERC20 (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 min_bond, uint256 tokens) external returns (bytes32);
     function assignWinnerAndSubmitAnswerByArbitrator (bytes32 question_id, bytes32 answer, address payee_if_wrong, bytes32 last_history_hash, bytes32 last_answer_or_commitment_id, address last_answerer) external;
     function cancelArbitration (bytes32 question_id) external;
     function claimMultipleAndWithdrawBalance (bytes32[] calldata question_ids, uint256[] calldata lengths, bytes32[] calldata hist_hashes, address[] calldata addrs, uint256[] calldata bonds, bytes32[] calldata answers) external;
     function claimWinnings (bytes32 question_id, bytes32[] calldata history_hashes, address[] calldata addrs, uint256[] calldata bonds, bytes32[] calldata answers) external;
     function createTemplate (string calldata content) external returns (uint256);
     function createTemplateAndAskQuestion (string calldata content, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external returns (bytes32);
     function fundAnswerBountyERC20 (bytes32 question_id, uint256 tokens) external;
     function notifyOfArbitrationRequest (bytes32 question_id, address requester, uint256 max_previous) external;
     function reopenQuestionERC20 (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 min_bond, bytes32 reopens_question_id, uint256 tokens) external returns (bytes32);
     function setQuestionFee (uint256 fee) external;
     function setToken (address _token) external;
     function submitAnswerByArbitrator (bytes32 question_id, bytes32 answer, address answerer) external;
     function submitAnswerCommitmentERC20 (bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer, uint256 tokens) external;
     function submitAnswerERC20 (bytes32 question_id, bytes32 answer, uint256 max_previous, uint256 tokens) external;
     function submitAnswerForERC20 (bytes32 question_id, bytes32 answer, uint256 max_previous, address answerer, uint256 tokens) external;
     function submitAnswerReveal (bytes32 question_id, bytes32 answer, uint256 nonce, uint256 bond) external;
     function arbitrator_question_fees (address) external view returns (uint256);
     function commitments (bytes32) external view returns (uint32 reveal_ts, bool is_revealed, bytes32 revealed_answer);
     function getArbitrator (bytes32 question_id) external view returns (address);
     function getBestAnswer (bytes32 question_id) external view returns (bytes32);
     function getBond (bytes32 question_id) external view returns (uint256);
     function getBounty (bytes32 question_id) external view returns (uint256);
     function getContentHash (bytes32 question_id) external view returns (bytes32);
     function getFinalAnswer (bytes32 question_id) external view returns (bytes32);
     function getFinalAnswerIfMatches (bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 min_timeout, uint256 min_bond) external view returns (bytes32);
     function getFinalizeTS (bytes32 question_id) external view returns (uint32);
     function getHistoryHash (bytes32 question_id) external view returns (bytes32);
     function getMinBond (bytes32 question_id) external view returns (uint256);
     function getOpeningTS (bytes32 question_id) external view returns (uint32);
     function getTimeout (bytes32 question_id) external view returns (uint32);
     function isFinalized (bytes32 question_id) external view returns (bool);
     function isPendingArbitration (bytes32 question_id) external view returns (bool);
     function isSettledTooSoon (bytes32 question_id) external view returns (bool);
     function question_claims (bytes32) external view returns (address payee, uint256 last_bond, uint256 queued_funds);
     function questions (bytes32) external view returns (bytes32 content_hash, address arbitrator, uint32 opening_ts, uint32 timeout, uint32 finalize_ts, bool is_pending_arbitration, uint256 bounty, bytes32 best_answer, bytes32 history_hash, uint256 bond, uint256 min_bond);
     function reopened_questions (bytes32) external view returns (bytes32);
     function reopener_questions (bytes32) external view returns (bool);
     function resultFor (bytes32 question_id) external view returns (bytes32);
     function resultForOnceSettled (bytes32 question_id) external view returns (bytes32);
     function template_hashes (uint256) external view returns (bytes32);
     function templates (uint256) external view returns (uint256);
}

File 6 of 9 : IPredictionMarketV3Manager.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface IPredictionMarketV3Manager {
  function isAllowedToCreateMarket(IERC20 token, address user) external view returns (bool);

  function isAllowedToResolveMarket(IERC20 token, address user) external view returns (bool);

  function isIERC20TokenSocial(IERC20 token) external view returns (bool);
}

File 7 of 9 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 8 of 9 : draft-IERC20Permit.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
 * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
 *
 * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
 * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
 * need to send a transaction, and thus is not required to hold Ether at all.
 */
interface IERC20Permit {
    /**
     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
     * given ``owner``'s signed approval.
     *
     * IMPORTANT: The same issues {IERC20-approve} has related to transaction
     * ordering also apply here.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `deadline` must be a timestamp in the future.
     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
     * over the EIP712-formatted function arguments.
     * - the signature must use ``owner``'s current nonce (see {nonces}).
     *
     * For more information on the signature format, see the
     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
     * section].
     */
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    /**
     * @dev Returns the current nonce for `owner`. This value must be
     * included whenever a signature is generated for {permit}.
     *
     * Every successful call to {permit} increases ``owner``'s nonce by one. This
     * prevents a signature from being used multiple times.
     */
    function nonces(address owner) external view returns (uint256);

    /**
     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.
     */
    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view returns (bytes32);
}

File 9 of 9 : Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

Settings
{
  "viaIR": false,
  "codegen": "yul",
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@reality.eth/contracts/=lib/reality-eth-monorepo/packages/contracts/",
    "@ensdomains/=node_modules/@ensdomains/",
    "hardhat/=node_modules/hardhat/",
    "openzeppelin-contracts-upgradeable.git/=lib/openzeppelin-contracts-upgradeable.git/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts.git/=lib/openzeppelin-contracts.git/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "reality-eth-monorepo/=lib/reality-eth-monorepo/"
  ],
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "abi"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "detectMissingLibraries": false,
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IWETH","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"enum PredictionMarketV3.MarketAction","name":"action","type":"uint8"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketActionTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomes","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":false,"internalType":"string","name":"image","type":"string"},{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"}],"name":"MarketCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketOutcomePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"outcomeShares","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"MarketOutcomeShares","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"bool","name":"admin","type":"bool"}],"name":"MarketResolved","type":"event"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_OUTCOMES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT_256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"addLiquidityWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"adminResolveMarketOutcome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"}],"name":"buyWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"calcBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"calcSellAmount","outputs":[{"internalType":"uint256","name":"outcomeTokenSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimFeesToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimLiquidityToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"claimVoidedOutcomeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"claimVoidedOutcomeSharesToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimWinningsToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"createMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"createMarketWithETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketAltData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"contract IERC20","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketData","outputs":[{"internalType":"enum PredictionMarketV3.MarketState","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketLiquidityPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"getMarketOutcomeData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketOutcomeIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"getMarketOutcomePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketResolvedOutcome","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarkets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserClaimStatus","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserClaimableFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserLiquidityPoolShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserMarketShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"isMarketVoided","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"mintAndCreateMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidityToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"resolveMarketOutcome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"}],"name":"sellToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

9c4d535b000000000000000000000000000000000000000000000000000000000000000001000eb5422483718de2cb68756b6b6834bc8258b56f8ff37a59d5ccf2bf7cc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809

Deployed Bytecode

0x000400000000000200110000000000020000000003010019000000600430027000000e0b034001970003000000310355000200000001035500000e0b0040019d0000000100200190000000930000c13d0000008002000039000000400020043f000000040030008c000000c00000413d000000000201043b000000e00220027000000e140020009c000000d70000a13d00000e150020009c0000014a0000213d00000e250020009c000003460000213d00000e2d0020009c000005eb0000213d00000e310020009c00000ca90000613d00000e320020009c00000bbd0000613d00000e330020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000a00000002001d0000000401100370000000000201043b000000a001000039000000400010043f000000800000043f000900000002001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000e00000001001d000000000101041a000f00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000f0010006c000000690000a13d0000000e010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000000690000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000400000001001d0000000a0000006b000014460000c13d000000400100043d000000440210003900000e730300004100000d230000013d0000000002000416000000000002004b00000d300000c13d0000001f0230003900000e0c02200197000000a002200039000000400020043f0000001f0430018f00000e0d05300198000000a002500039000000a40000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b000000a00000c13d000000000004004b000000b10000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c00000d300000413d000000a00100043d00000e0e0010009c00000d300000213d0000000102000039000000000020041b000000800010043f0000014000000443000001600010044300000020010000390000010000100443000001200020044300000e0f01000041000038290001042e000000000003004b00000d300000c13d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e011001970000000002000411000000000012004b000004e50000c13d0000000001000019000038290001042e00000e340020009c0000015d0000a13d00000e350020009c000001aa0000213d00000e3d0020009c000005700000213d00000e410020009c000007910000613d00000e420020009c000007500000613d00000e430020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000d00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000d0010006c000010230000c13d0000000f010000290000000e02000029382825e70000040f00000e530200004100000000002004430000000d020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000e00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000d02000029000000040020008c000001430000613d0000000e0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000d020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015990000613d0000000e0100002900000e560010009c000008420000213d0000000e01000029000000400010043f000000000100041400000bb80000013d00000e160020009c0000039d0000213d00000e1e0020009c0000060d0000213d00000e220020009c00000cb10000613d00000e230020009c00000bc40000613d00000e240020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382833f10000040f00000ca20000013d00000e440020009c000004eb0000a13d00000e450020009c000005d60000213d00000e490020009c000009e30000613d00000e4a0020009c0000090b0000613d00000e4b0020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001101100039000000000201041a00000e560020009c000008420000213d00000005042002100000003f0140003900000e5c03100197000000400100043d0000000003310019000000000013004b0000000005000039000000010500403900000e560030009c000008420000213d0000000100500190000008420000c13d000000400030043f00000000032104360000001f0540018f000000000004004b000001980000613d0000000004430019000000000600003100000002066003670000000007030019000000006806043c0000000007870436000000000047004b000001940000c13d000000000005004b000000000002004b000001a50000613d00000000040000190000000005010433000000000045004b00001be20000a13d0000000505400210000000000535001900000000004504350000000104400039000000000024004b0000019c0000413d000000400300043d000f00000003001d000000200200003900000000022304360000062f0000013d00000e360020009c000005820000213d00000e3a0020009c000008100000613d00000e3b0020009c000007570000613d00000e3c0020009c00000d300000c13d000000240030008c00000d300000413d0000000402100370000000000202043b000f00000002001d00000e560020009c00000d300000213d0000000f0230006a00000e640020009c00000d300000213d000001c40020008c00000d300000413d0000000f02000029000d00640020003d0000000d01100360000000000101043b000e00000001001d00000e0e0010009c00000d300000213d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e011001970000000e0010006b000010230000c13d0000000d04000029000000600140008a0000000202000367000000000112034f000000000101043b0000000003000416000000000013004b000011600000c13d000000000142034f000000000c01043b00000e0e00c0009c00000d300000213d0000000f0100002900000004011000390000000d030000290000002006300039000000000362034f000000000703043b000000000300003100000000041300490000001f0440008a00000e650540019700000e6508700197000000000958013f000000000058004b000000000800001900000e6508004041000000000047004b000000000a00001900000e650a00804100000e650090009c00000000080ac019000000000008004b00000d300000c13d0000000007170019000000000872034f000000000e08043b00000e5600e0009c00000d300000213d000000050fe002100000000008f30049000000200b70003900000e650780019700000e6509b00197000000000a79013f000000000079004b000000000700001900000e650700404100000000008b004b000000000800001900000e650800204100000e6500a0009c000000000708c019000000000007004b00000d300000c13d0000002006600039000000000762034f000000000707043b00000e6508700197000000000958013f000000000058004b000000000800001900000e6508004041000000000047004b000000000a00001900000e650a00804100000e650090009c00000000080ac019000000000008004b00000d300000c13d0000000007170019000000000872034f000000000808043b000d00000008001d00000e560080009c00000d300000213d0000000d0830006a000000200970003900000e650780019700000e650a900197000000000d7a013f00000000007a004b000000000700001900000e6507004041000c00000009001d000000000089004b000000000800001900000e650800204100000e6500d0009c000000000708c019000000000007004b00000d300000c13d0000002006600039000000000762034f000000000707043b00000e6508700197000000000a58013f000000000058004b000000000500001900000e6505004041000000000047004b000000000400001900000e650400804100000e6500a0009c000000000504c019000000000005004b00000d300000c13d0000000001170019000000000412034f000000000404043b00000e560040009c00000d300000213d0000000005430049000000200a10003900000e650150019700000e6507a00197000000000817013f000000000017004b000000000100001900000e650100404100000000005a004b000000000500001900000e650500204100000e650080009c000000000105c019000000000001004b00000d300000c13d0000002001600039000000000512034f000000000705043b00000e0e0070009c00000d300000213d0000006001100039000000000512034f000000000505043b00000e0e0050009c00000d300000213d0000002001100039000000000612034f000000000606043b000b00000006001d00000e0e0060009c00000d300000213d0000004006100039000000000162034f000000000101043b000a00000001001d00000e0e0010009c00000d300000213d000000400100043d000900000001001d00000e7a0010009c000008420000213d0000000908000029000001c001800039000000400010043f00000000010004160000000001180436000001800d60008a000000000dd2034f000000000d0d043b0000000000d10435000001600160008a000000000112034f000000000101043b00000060068000390000000000c60435000000400680003900000000001604350000003f01f0003900000e5c01100197000000400c00043d00000000061c00190000000000c6004b0000000001000039000000010100403900000e560060009c000008420000213d0000000100100190000008420000c13d000000400060043f0000000000ec0435000000000ebf001900000000003e004b00000d300000213d0000000000be004b0000029a0000a13d00000000060c00190000000001b2034f000000000101043b00000020066000390000000000160435000000200bb000390000000000eb004b000002930000413d000000090100002900000080011000390000000000c104350000000d010000290000001f0110003900000e8c011001970000003f0110003900000e8c01100197000000400c00043d00000000061c00190000000000c6004b0000000001000039000000010100403900000e560060009c000008420000213d0000000100100190000008420000c13d000000400060043f0000000d06000029000000000f6c04360000000c01600029000000000031004b00000d300000213d0000000c082003600000000d0100002900000e8c09100198000c001f00100193000000000d9f0019000002bd0000613d000000000608034f000000000e0f0019000000006106043c000000000e1e04360000000000de004b000002b90000c13d0000000c0000006b000002cb0000613d000000000198034f0000000c060000290000000306600210000000000e0d0433000000000e6e01cf000000000e6e022f000000000101043b0000010006600089000000000161022f00000000016101cf0000000001e1019f00000000001d04350000000d01f0002900000000000104350000000901000029000000a0011000390000000000c104350000001f0140003900000e8c011001970000003f0110003900000e8c01100197000000400900043d0000000006190019000000000096004b0000000001000039000000010100403900000e560060009c000008420000213d0000000100100190000008420000c13d000000400060043f000000000c4904360000000001a40019000000000031004b00000d300000213d000000000aa2034f00000e8c0b4001980000001f0d40018f0000000003bc0019000002ed0000613d00000000060a034f000000000e0c0019000000006106043c000000000e1e043600000000003e004b000002e90000c13d00000000000d004b000002fa0000613d0000000001ba034f0000000306d00210000000000a030433000000000a6a01cf000000000a6a022f000000000101043b0000010006600089000000000161022f00000000016101cf0000000001a1019f000000000013043500000000014c0019000000000001043500000e0e017001970000000907000029000000e0037000390000000000130435000000c00170003900000000009104350000000f060000290000010401600039000000000112034f000000000101043b000001000370003900000000001304350000012401600039000000000112034f000000000101043b0000000b0300002900000e0e033001970000016004700039000000000034043500000e0e0350019700000140047000390000000000340435000001200370003900000000001304350000018401600039000000000112034f0000000a0200002900000e0e02200197000000000101043b000001a003700039000000000023043500000180027000390000000000120435000000000107001938281c960000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e6201000041000d00000002001d000000000012043500000000010004140000000e02000029000000040020008c00001bf40000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f0000000002000416000000000002004b00001be80000c13d00000e6f011001c70000000e0200002900001bed0000013d00000e260020009c0000063a0000213d00000e2a0020009c00000cb80000613d00000e2b0020009c00000bcb0000613d00000e2c0020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d00000e0e0020009c00000d300000213d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000401043b0000001101400039000000000601041a00000e560060009c000008420000213d00000005016002100000003f0210003900000e5c02200197000000400300043d0000000002230019000d00000003001d000000000032004b0000000003000039000000010300403900000e560020009c000008420000213d0000000100300190000008420000c13d000900000004001d000000400020043f0000000d020000290000000002620436000c00000002001d0000001f0210018f000000000001004b000003880000613d0000000c04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000003840000c13d000000000002004b000b00000006001d000000000006004b0000137b0000c13d0000000e01000029000000000010043f00000009010000290000000401100039000000200010043f0000000001000019382837ef0000040f000000000101041a000000400400043d000f00000004001d000000200240003900000040030000390000000000320435000000000014043500000040024000390000000d01000029000005cb0000013d00000e170020009c0000067c0000213d00000e1b0020009c00000cc90000613d00000e1c0020009c00000c260000613d00000e1d0020009c00000d300000c13d0000000002000416000000000002004b00000d300000c13d000000240030008c00000d300000413d0000000402100370000000000202043b00000e560020009c00000d300000213d000000000423004900000e640040009c00000d300000213d000001c40040008c00000d300000413d000f00640020003d0000000f04100360000000000c04043b00000e0e00c0009c00000d300000213d000000040420003900000000054300490000000f060000290000002007600039000000000671034f000000000806043b0000001f0550008a00000e650650019700000e6509800197000000000a69013f000000000069004b000000000900001900000e6509004041000000000058004b000000000b00001900000e650b00804100000e6500a0009c00000000090bc019000000000009004b00000d300000c13d0000000008480019000000000981034f000000000e09043b00000e5600e0009c00000d300000213d000e000500e002180000000e0930006a000000200b80003900000e650890019700000e650ab00197000000000d8a013f00000000008a004b000000000800001900000e650800404100000000009b004b000000000900001900000e650900204100000e6500d0009c000000000809c019000000000008004b00000d300000c13d0000002007700039000000000871034f000000000808043b00000e6509800197000000000a69013f000000000069004b000000000900001900000e6509004041000000000058004b000000000d00001900000e650d00804100000e6500a0009c00000000090dc019000000000009004b00000d300000c13d0000000009480019000000000891034f000000000808043b000d00000008001d00000e560080009c00000d300000213d0000000d0a30006a000000200d90003900000e6509a0019700000e6508d00197000c000000980143000000000098004b000000000900001900000e6509004041000b0000000d001d0000000000ad004b000000000a00001900000e650a0020410000000c0800002900000e650080009c00000000090ac019000000000009004b00000d300000c13d0000002007700039000000000871034f000000000908043b00000e6508900197000000000a68013f000000000068004b000000000600001900000e6506004041000000000059004b000000000500001900000e650500804100000e6500a0009c000000000605c019000000000006004b00000d300000c13d0000000005490019000000000451034f000000000404043b00000e560040009c00000d300000213d0000000006430049000000200a50003900000e650560019700000e6508a00197000000000958013f000000000058004b000000000500001900000e650500404100000000006a004b000000000600001900000e650600204100000e650090009c000000000506c019000000000005004b00000d300000c13d0000002005700039000000000651034f000000000606043b00000e0e0060009c00000d300000213d0000006007500039000000000571034f000000000505043b00000e0e0050009c00000d300000213d0000002009700039000000000791034f000000000707043b00000e0e0070009c00000d300000213d0000004009900039000000000891034f000000000808043b000c00000008001d00000e0e0080009c00000d300000213d000002400d0000390000004000d0043f000001a00890008a000000000881034f000000000808043b000000800080043f000001800890008a000000000881034f000000000808043b000000a00080043f000001600890008a000000000881034f000000000808043b000000c00080043f000000e000c0043f0000000e080000290000003f0880003900000e5c0980019700000e660090009c000008420000213d000002400c9000390000004000c0043f0000024000e0043f0000000e0eb0002900000000003e004b00000d300000213d0000000000be004b000004640000a13d00000000090d00190000000008b1034f000000000808043b00000020099000390000000000890435000000200bb000390000000000eb004b0000045c0000413d000000400c00043d0000010000d0043f0000000d080000290000001f0880003900000e8c088001970000003f0880003900000e8c0880019700000000098c00190000000000c9004b000000000e000039000000010e00403900000e560090009c000008420000213d0000000100e00190000008420000c13d000000400090043f0000000d08000029000000000f8c04360000000b08800029000000000038004b00000d300000213d000b000b001003640000000d0800002900000e8c09800198000e001f00800193000a00000009001d000000000d9f0019000004850000613d0000000b0900035f000000000e0f0019000000009809043c000000000e8e04360000000000de004b000004810000c13d0000000e0000006b000004940000613d0000000a090000290000000b0890035f0000000e090000290000000309900210000000000e0d0433000000000e9e01cf000000000e9e022f000000000808043b0000010009900089000000000898022f00000000089801cf0000000008e8019f00000000008d04350000000d08f0002900000000000804350000012000c0043f0000001f0840003900000e8c088001970000003f0880003900000e8c09800197000000400800043d0000000009980019000000000089004b000000000c000039000000010c00403900000e560090009c000008420000213d0000000100c00190000008420000c13d000000400090043f000000000c4804360000000009a40019000000000039004b00000d300000213d000000000aa1034f00000e8c0b4001980000001f0d40018f0000000003bc0019000004b40000613d00000000090a034f000000000e0c0019000000009f09043c000000000efe043600000000003e004b000004b00000c13d00000000000d004b000004c10000613d0000000009ba034f000000030ad00210000000000b030433000000000bab01cf000000000bab022f000000000909043b000001000aa000890000000009a9022f0000000009a901cf0000000009b9019f000000000093043500000000034c00190000000000030435000001400080043f000001600060043f0000010403200039000000000331034f000000000303043b000001800030043f0000012403200039000000000331034f000000000303043b000001a00030043f0000018402200039000000000121034f000001c00050043f000001e00070043f000000000101043b000002000010043f0000000c01000029000002200010043f000000800100003938281c960000040f00000002020003670000000f03200360000e00000001001d000000000103043b00000e0e0010009c00000d300000213d0000000f03000029000000600330008a000000000232034f000000000402043b00000000020004110000000003000410382837110000040f000016040000013d00000e1201000041000000000010043f0000000101000039000000040010043f00000e13010000410000382a0001043000000e4c0020009c000006e50000a13d00000e4d0020009c000008730000613d00000e4e0020009c000008480000613d00000e4f0020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000d00000001001d000000000101041a000e00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000c00000001001d0000000e0010006c000005390000a13d0000000d010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000005390000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000010010008c0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000301043b0000000a01300039000000000201041a000d00000003001d0000000901300039000000000101041a000000400400043d00000e81030000410000000000340435000e00000004001d00000004034000390000000000130435000000000100041400000e0e02200197000000040020008c000013ec0000c13d0000000103000031000000200030008c00000020040000390000000004034019000014170000013d00000e3e0020009c0000081a0000613d00000e3f0020009c000007610000613d00000e400020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382834b70000040f000000000001004b0000000001000039000000010100c03900000ca20000013d00000e370020009c000008210000613d00000e380020009c0000076f0000613d00000e390020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000900000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001101100039000000000401041a00000e560040009c000008420000213d00000005014002100000003f0210003900000e5c02200197000000400300043d0000000002230019000800000003001d000000000032004b0000000003000039000000010300403900000e560020009c000008420000213d0000000100300190000008420000c13d000000400020043f0000000802000029000700000004001d0000000002420436000600000002001d0000001f0210018f000000000001004b000005be0000613d0000000604000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000005ba0000c13d000000000002004b000000070000006b000010590000c13d0000000901000029382833f10000040f000000400400043d000f00000004001d00000020024000390000004003000039000000000032043500000000001404350000004002400039000000080100002938281c4b0000040f0000000f02000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f000038290001042e00000e460020009c00000b560000613d00000e470020009c000009c90000613d00000e480020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001501100039000000000101041a00000cc50000013d00000e2e0020009c00000cd10000613d00000e2f0020009c00000c4c0000613d00000e300020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d382836200000040f0000000f01000029382831660000040f0000000f02000029000000000020043f0000000202000039000000200020043f000f00000001001d0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e0110019700000000020004110000000f03000029382836370000040f0000000101000039000000000010041b0000000001000019000038290001042e00000e1f0020009c00000ce70000613d00000e200020009c00000c860000613d00000e210020009c00000d300000c13d0000000001000416000000000001004b00000d300000c13d0000000102000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b000006280000613d000000a00400003900000e680200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000006200000413d000000600250008a000000800100003938281c720000040f000000400200043d000f00000002001d00000020010000390000000002120436000000800100003938281c4b0000040f0000000f02000029000000000121004900000e0b0010009c00000e0b01008041000000600110021000000e0b0020009c00000e0b020080410000004002200210000000000121019f000038290001042e00000e270020009c00000d270000613d00000e280020009c00000c8d0000613d00000e290020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000202041a000a00000002001d0000000102100039000000000202041a000b00000002001d0000000202100039000000000202041a000c00000002001d000000000201041a000d00000002001d0000000601100039000000000101041a000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000601200039000000000101041a000000ff0110018f000000020010008c000011430000213d0000000e01000029000000ff0110018f000011400000c13d0000000802200039000000000202041a000011410000013d00000e180020009c00000d2e0000613d00000e190020009c00000c960000613d00000e1a0020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000e0010006c000010230000c13d0000000f0100002938282e4d0000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000d00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000e02000029000000040020008c000006de0000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000e020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015c00000613d0000000d0100002900000e560010009c000008420000213d0000000d01000029000000400010043f000000000100041400000bb80000013d00000e500020009c0000082a0000613d00000e510020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000d00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000d0010006c000010230000c13d0000000f010000290000000e0200002938282cae0000040f00000e530200004100000000002004430000000d020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000e00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000d02000029000000040020008c000007490000613d0000000e0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000d020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015a60000613d0000000e0100002900000e560010009c000008420000213d0000000e01000029000000400010043f000000000100041400000bb80000013d0000000001000416000000000001004b00000d300000c13d000000010100008a000000800010043f00000e6901000041000038290001042e000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d38282bbc0000040f00000cd80000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f000000090110003900000cad0000013d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000010340000c13d000000400100043d000000440210003900000e830300004100000d490000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000e0010006c000010230000c13d000000000100041a000000020010008c00000d200000613d0000000201000039000000000010041b0000000f01000029382831660000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000d00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000e02000029000000040020008c000007f20000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000e020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000016180000613d0000000d0100002900000e560010009c000008420000213d0000000d01000029000000400010043f000e00010000003d00000000010004140000000004000411000000040040008c0000080b0000613d00000e0b0010009c00000e0b01008041000000c0011002100000000f03000029000000000003004b00000e570110c1c70000800902000039000000000204601900000000050000193828381e0000040f000e00000002001d0000000002010019000000600220027000010e0b0020019d0003000000010355382825a20000040f0000000e01000029000000010110018f382825d30000040f000006090000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d38282e4d0000040f00000cd80000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c640000040f382823eb0000040f00000ca20000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382834db0000040f00000ca20000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000401043b0000001101400039000000000601041a00000e8a0060009c00000dd10000413d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001402100039000000000202041a0000000b03100039000000000303041a0000000a04100039000000000404041a0000000f05100039000000000505041a0000001006100039000000000606041a0000001307100039000000000707041a0000000908100039000000000808041a0000000c01100039000000000101041a000000800010043f000000a00080043f000000c00080043f00000e0e01700197000000e00010043f000001000060043f00000e0e01500197000001200010043f00000e0e01400197000001400010043f000001600030043f00000e0e01200197000001800010043f00000e8201000041000038290001042e000000840030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000006402100370000000000302043b0000004402100370000000000502043b0000002402100370000000000402043b0000000401100370000000000201043b000000000100041a000000020010008c000009d90000613d000f00000005001d000800000004001d000900000003001d0000000201000039000000000010041b000a00000002001d000000000020043f000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e01100197000000000200041100000000030004100000000904000029382837110000040f0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000d00000001001d000000000101041a000e00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000700000001001d0000000e0010006c000008db0000a13d0000000d010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000008db0000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000600000001001d00000009010000290000000a020000290000000803000029382823eb0000040f0000000002010019000500000002001d0000000f0020006c000017580000813d000000400100043d000000440210003900000e8603000041000011630000013d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000f00000002001d00000e0e0020009c00000d300000213d0000000401100370000000000101043b000e00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000601200039000000000101041a000000ff0110018f000000020010008c000011430000213d000010e50000c13d0000000801200039000000000101041a000000000010043f000d00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000f01000029000000000010043f000c00000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000b00000001001d0000000c010000290000000501100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000b0000006b0000000003000039000000010300c039000c00000003001d000000010020019000000d300000613d000000000101043b000000000101041a000b00000001001d0000000d010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000a00000001001d0000000d010000290000000501100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000a0000006b0000000003000039000000010300c039000d00000003001d000000010020019000000d300000613d000000000101043b000000000101041a000a00000001001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000d01200039000000000101041a000e00000001001d0000000f01000029000000000010043f000900000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a0008000e001000bd0000000e0000006b000009a90000613d0000000e0300002900000008023000f9000000000012004b0000177b0000c13d00000009010000290000000201100039000000000101041a000e00000001001d000000000001004b00000c800000613d0000000f01000029000000000010043f00000009010000290000000e01100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000b02000029000000ff0220018f0000000a03000029000000ff003001900000000e0400002900000008034000f90000000004000039000000010400c039000000000002004b0000000002000039000000010200c039000011270000013d000000840030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000006402100370000000000502043b0000004402100370000000000302043b0000002402100370000000000402043b0000000401100370000000000201043b000000000100041a000000020010008c00000d4d0000c13d00000e6b01000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f00000e7b01000041000000c40010043f00000e87010000410000382a00010430000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000402100370000000000202043b000f00000002001d00000e560020009c00000d300000213d0000000f0230006a00000e640020009c00000d300000213d000001c40020008c00000d300000413d0000000f02000029000d00640020003d0000000d02100360000000000202043b000e00000002001d00000e0e0020009c00000d300000213d0000000d02000029000b0060002000920000000b01100360000000000101043b000c00000001001d00000e530100004100000000001004430000000e010000290000000400100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400400043d00000024014000390000000c02000029000000000021043500000e80010000410000000001140436000a00000001001d000000000100041100000e0e011001970000000402400039000000000012043500000000010004140000000e02000029000000040020008c00000a2f0000613d00000e0b0040009c00000e0b030000410000000003044019000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e76011001c7000e00000004001d3828381e0000040f0000000e040000290000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000013b40000613d00000e560040009c000008420000213d0000000f010000290000000403100039000e00000004001d000000400040043f0000000002000031000000000132004900000e640010009c00000d300000213d000001c00010008c00000d300000413d0000000e0500002900000e7a0050009c000008420000213d000001c001500039000000400010043f0000000c0100002900000000001504350000000b0600002900000020046000390000000201000367000000000441034f000000000404043b0000000a0700002900000000004704350000004004600039000000000441034f0000004005500039000000000404043b00000000004504350000000d04100360000000000404043b00000e0e0040009c00000d300000213d0000000e05000029000000600550003900000000004504350000000d040000290000002005400039000000000451034f000000000404043b00000e560040009c00000d300000213d00000000073400190000001f04700039000000000024004b000000000600001900000e650600804100000e650840019700000e6504200197000000000948013f000000000048004b000000000800001900000e650800404100000e650090009c000000000806c019000000000008004b00000d300000c13d000000000671034f000000000806043b00000e560080009c000008420000213d00000005098002100000003f0690003900000e5c0a600197000000400600043d000000000aa6001900000000006a004b000000000b000039000000010b00403900000e5600a0009c000008420000213d0000000100b00190000008420000c13d00000020077000390000004000a0043f00000000008604350000000009790019000000000029004b00000d300000213d000000000008004b00000a8a0000613d0000000008060019000000000a71034f000000000a0a043b00000020088000390000000000a804350000002007700039000000000097004b00000a830000413d0000000e07000029000000800770003900000000006704350000002006500039000000000561034f000000000505043b00000e560050009c00000d300000213d00000000093500190000001f05900039000000000025004b000000000700001900000e650700804100000e6505500197000000000845013f000000000045004b000000000500001900000e650500404100000e650080009c000000000507c019000000000005004b00000d300000c13d000000000591034f000000000705043b00000e560070009c000008420000213d0000001f0870003900000e8c088001970000003f0880003900000e8c0a800197000000400800043d000000000aa8001900000000008a004b000000000b000039000000010b00403900000e5600a0009c000008420000213d0000000100b00190000008420000c13d000000200b9000390000004000a0043f0000000009780436000000000ab7001900000000002a004b00000d300000213d000f000000b1035300000e8c0c7001980000001f0d70018f000000000ac9001900000ac20000613d0000000f0e00035f000000000f09001900000000eb0e043c000000000fbf04360000000000af004b00000abe0000c13d00000000000d004b00000acf0000613d0000000f0bc0035f000000030cd00210000000000d0a0433000000000dcd01cf000000000dcd022f000000000b0b043b000001000cc00089000000000bcb022f000000000bcb01cf000000000bdb019f0000000000ba0435000000000779001900000000000704350000000e07000029000000a00770003900000000008704350000002006600039000000000761034f000000000707043b00000e560070009c00000d300000213d00000000073700190000001f03700039000000000023004b000000000800001900000e650800804100000e6503300197000000000943013f000000000043004b000000000300001900000e650300404100000e650090009c000000000308c019000000000003004b00000d300000c13d000000000371034f000000000303043b00000e560030009c000008420000213d0000001f0430003900000e8c044001970000003f0440003900000e8c08400197000000400400043d0000000008840019000000000048004b0000000009000039000000010900403900000e560080009c000008420000213d0000000100900190000008420000c13d0000002009700039000000400080043f00000000073404360000000008930019000000000028004b00000d300000213d000000000891034f00000e8c053001980000001f0930018f000000000257001900000b090000613d000000000a08034f000000000b07001900000000ac0a043c000000000bcb043600000000002b004b00000b050000c13d000000000009004b00000b160000613d000000000558034f0000000308900210000000000902043300000000098901cf000000000989022f000000000505043b0000010008800089000000000585022f00000000058501cf000000000595019f0000000000520435000000000237001900000000000204350000000e02000029000000c00220003900000000004204350000002002600039000000000321034f000000000303043b00000e0e0030009c00000d300000213d0000000e05000029000000e00450003900000000003404350000002003200039000000000331034f000000000303043b000001000450003900000000003404350000004003200039000000000331034f000000000303043b000001200450003900000000003404350000006002200039000000000321034f000000000303043b00000e0e0030009c00000d300000213d0000000e04000029000001400440003900000000003404350000002002200039000000000321034f000000000303043b00000e0e0030009c00000d300000213d0000000e05000029000001600450003900000000003404350000002003200039000000000331034f000000000303043b00000180045000390000000000340435000f00400020003d0000000f01100360000000000301043b00000e0e0030009c00000d300000213d0000000e01000029000001a002100039000000000032043538281c960000040f000e00000001001d0000000f01000029000001400110008a0000000201100367000000000101043b00000e0e0010009c00000d300000213d000000000300041000000000020004110000000c04000029000004e30000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000e0010006c000010230000c13d0000000f0100002938282bbc0000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000d00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000e02000029000000040020008c00000bb20000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000e020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015b30000613d0000000d0100002900000e560010009c000008420000213d0000000d01000029000000400010043f00000000010004140000000004000411000000040040008c000013d30000c13d000f00010000003d000013e20000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f3828358a0000040f00000ca20000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c640000040f382824c70000040f00000ca20000013d000000640030008c00000d300000413d0000004402100370000000000202043b000d00000002001d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000c00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000c02000029000000000021004b000010230000c13d000000000100041a000000020010008c00000d200000613d0000000201000039000000000010041b00000e530100004100000000001004430000000400200443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e6201000041000b00000002001d000000000012043500000000010004140000000c02000029000000040020008c000016310000613d0000000b0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f0000000002000416000000000002004b000016250000c13d00000e6f011001c70000000c020000290000162a0000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f000e00000001001d000f00000002001d000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000000f02000029000000000020043f0000001201100039000000200010043f0000000001000019382837ef0000040f000d00000001001d0000000e010000290000000f020000293828358a0000040f0000000d030000290000000202300039000000000202041a0000000303300039000000000303041a000000400400043d0000002005400039000000000035043500000040034000390000000000230435000000000014043500000e0b0040009c00000e0b04008041000000400140021000000e67011001c7000038290001042e000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000f00000002001d00000e0e0020009c00000d300000213d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000f02000029000000000020043f000f00000001001d0000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a00000e5d012000d1000000000002004b00000c7b0000613d00000000022100d900000e5d0020009c0000177b0000c13d0000000f020000290000000202200039000000000202041a000000000002004b0000115e0000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a000104300000000001000416000000000001004b00000d300000c13d0000002001000039000000800010043f00000e6901000041000038290001042e000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382834970000040f00000ca20000013d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b00000e0e0020009c00000d300000213d0000000401100370000000000101043b3828339d0000040f000000400200043d000000000012043500000e0b0020009c00000e0b02008041000000400120021000000e58011001c7000038290001042e0000000001000416000000000001004b00000d300000c13d0000000301000039000000000101041a000000800010043f00000e6901000041000038290001042e0000000001000416000000000001004b00000d300000c13d00000e5d01000041000000800010043f00000e6901000041000038290001042e0000000001000416000000000001004b00000d300000c13d0000000001000412001100000001001d001000000000003d000080050100003900000044030000390000000004000415000000110440008a000000050440021000000e1002000041382838000000040f00000e0e01100197000000800010043f00000e6901000041000038290001042e0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f000f00000001001d38282cae0000040f00000cd80000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f000f00000001001d382825e70000040f0000000f02000029000000000020043f0000000202000039000000200020043f000f00000001001d0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e0110019700000000020004110000000f03000029382836370000040f0000000001000019000038290001042e000000840030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000006402100370000000000202043b000c00000002001d0000004402100370000000000202043b000d00000002001d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000b00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000b0010006c000010230000c13d000000000100041a000000020010008c000011bc0000c13d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f03000039000010290000013d0000000001000416000000000001004b00000d300000c13d00000e6e01000041000000800010043f00000e6901000041000038290001042e000000240030008c00000d320000813d00000000010000190000382a000104300000000401100370000000000101043b000a00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000e260000c13d000000400100043d000000440210003900000e8903000041000000000032043500000024021000390000001903000039000010290000013d000c00000005001d000e00000004001d000d00000003001d0000000201000039000000000010041b000f00000002001d000000000020043f000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000a00000001001d000000000101041a000b00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000900000001001d0000000b0010006c00000d900000a13d0000000a010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b00000d900000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000600000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000b00000001001d0000000d010000290000000f020000290000000e03000029382824c70000040f000500000001001d0000000c0010006c000017810000a13d000000400100043d000000440210003900000e7e03000041000000000032043500000024021000390000001c03000039000010290000013d00000005016002100000003f0210003900000e5c02200197000000400300043d0000000002230019000e00000003001d000000000032004b0000000003000039000000010300403900000e560020009c000008420000213d0000000100300190000008420000c13d000a00000004001d000000400020043f0000000e020000290000000002620436000d00000002001d0000001f0210018f000000000001004b00000dee0000613d0000000d04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00000dea0000c13d000000000002004b000000000006004b00000e100000613d0000000a01000029000c00120010003d0000000004000019000b00000006001d000f00000004001d000000000040043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e0200002900000000020204330000000f04000029000000000042004b00001be20000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a000000000012043500000001044000390000000b0040006c00000df50000413d0000000a010000290000000201100039000000000101041a000000400400043d000f00000004001d000000200240003900000040030000390000000000320435000000000014043500000040024000390000000e0100002938281c4b0000040f0000000f02000029000000000121004900000e0b0020009c00000e0b0200804100000e0b0010009c00000e0b0100804100000040022002100000006001100210000000000121019f000038290001042e000900000001001d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e01100197000000090010006c000010230000c13d000000400100043d00000e590010009c000008420000213d0000002002100039000700000002001d000000400020043f000800000001001d00000000000104350000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000e00000001001d000000000101041a000f00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000f0010006c00000e800000a13d0000000e010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b00000e800000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000400000001001d0000000001000416000000000001004b0000008f0000613d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001102100039000000000202041a000c00000002001d00000e560020009c000008420000213d0000000c0200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000e00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000e030000290000000c040000290000000003430436000d00000003001d0000001f0320018f000000000002004b00000ed80000613d0000000d05000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b00000ed40000c13d000000000003004b0000000c0000006b00000ef80000613d000b00120010003d0000000004000019000f00000004001d000000000040043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e0200002900000000020204330000000f04000029000000000042004b00001be20000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a000000000012043500000001044000390000000c0040006c00000edd0000413d0000000e01000029000000000201043300000e560020009c000008420000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019000c00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000c030000290000000002230436000f00000002001d0000001f0210018f000000000001004b00000f180000613d0000000f04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00000f140000c13d000000000002004b0000000801000029000000000201043300000004010000290000000201100039000300000001001d000000000101041a000000000001004b0000192c0000c13d000000000002004b0000000001000416000200000001001d000019a80000c13d0000000302000029000000000012041b0000000001000411000000000010043f00000004010000290000000401100039000e00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000d00000002001d000000020020002a0000177b0000413d0000000001000411000000000010043f0000000e01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000d030000290000000202300029000000000101043b000000000021041b0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000700000001001d0000001101100039000b00000001001d000000000101041a000000000001004b00000f8e0000613d0000000701000029000800120010003d000e00030010003d0000000002000019000d00000002001d000000000020043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000004000416000000000043001a0000177b0000413d0000000003430019000000000032041b0000000201100039000000000201041a000000000042001a0000177b0000413d00000000030004160000000002320019000000000021041b0000000e01000029000000000101041a000000000031001a0000177b0000413d000000000200041600000000012100190000000e02000029000000000012041b0000000d0200002900000001022000390000000b01000029000000000101041a000000000012004b00000f640000413d00000007010000290000000101100039000000000201041a0000000003000416000000000032001a0000177b0000413d0000000002320019000000000021041b0000000c010000290000000001010433000000000001004b00001b0c0000c13d0000000a01000029382834f80000040f000600000001001d0000000c010000290000000001010433000000000001004b00001b6c0000c13d0000000a01000029382833f10000040f000000000201001900000002012000b9000f00000002001d000000000002004b00000fab0000613d0000000f021000fa000000020020006c0000177b0000c13d00000e5d0110012a000000400300043d00000040023000390000000000120435000000200130003900000002020000290000000000210435000e00000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000201043b0000000e030000290000006001300039000d00000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000020600003900000e5f0400004100000000050004110000000a070000293828381e0000040f000000010020019000000d300000613d0000000301000029000000000101041a000000400200043d00000040032000390000000d04000029000000000043043500000020032000390000000f040000290000000000430435000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e61040000410000000a050000293828381e0000040f000000010020019000000d300000613d00000e5301000041000000000010044300000009010000290000000400100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e6201000041000f00000002001d000000000012043500000000010004140000000902000029000000040020008c0000101c0000613d0000000f0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e63011001c700008009020000390000000003000416000000090400002900000000050000193828381e0000040f0000000003010019000000600330027000010e0b0030019d0003000000010355000000010020019000001c310000613d0000000f0100002900000e560010009c000008420000213d0000000f01000029000000400010043f0000000001000019000038290001042e000000400100043d000000440210003900000e8803000041000000000032043500000024021000390000001803000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000301043b0000001401300039000000000201041a000d00000003001d0000001301300039000000000101041a000000000300041100000e0e03300197000000400b00043d0000002404b00039000000000034043500000e750300004100000000003b043500000e0e011001970000000403b000390000000000130435000000000100041400000e0e02200197000000040020008c000011670000c13d0000000104000031000000200040008c0000002004008039000011940000013d000b00000000001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c000011430000213d0000000b04000029000010920000c13d000f00000003001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000f03000029000011430000213d0000000b040000290000108c0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000010920000813d0000000801300039000000000101041a000000000041004b000000000100001900000e5d01006041000010d90000013d0000001101300039000000000201041a000000000002004b000010d50000613d000d00120030003d000f0e5d000000450000000001000019000a00000002001d0000109e0000013d0000000101100039000000000021004b000010d20000813d000000000041004b0000109b0000613d000e00000001001d000000000040043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000010b60000613d00000000011200d900000e5d0010009c0000177b0000c13d000c00000002001d0000000e01000029000000000010043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000c0200002900000c800000613d00000000011200d90000000f0010002a0000177b0000413d000f000f0010002d0000000b040000290000000a020000290000000e010000290000109b0000013d0000000f0000006b000010d60000c13d00000c800000013d000f0e5d000000450000000f0100002900000e74011001290000000b0400002900000008020000290000000002020433000000000042004b00001be20000a13d0000000502400210000000060220002900000000001204350000000104400039000b00000004001d000000070040006c0000105a0000413d000005c10000013d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000d01200039000000000101041a000e00000001001d0000000f01000029000000000010043f000d00000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000c000e001000bd0000000e0000006b0000110d0000613d0000000e030000290000000c023000f9000000000012004b0000177b0000c13d0000000d010000290000000201100039000000000101041a000e00000001001d000000000001004b00000c800000613d0000000f01000029000000000010043f0000000d010000290000000e01100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e030000290000000c033000f9000c00000000001d0000000002000019000d00000000001d0000000004000019000000000101043b000000000101041a000000000113004b0000000001004019000000010340018f000000400400043d000000600540003900000000003504350000000d03000029000000010330018f00000040054000390000000000350435000000010220018f00000020034000390000000000230435000000800240003900000000001204350000000c01000029000000010110018f000000000014043500000e0b0040009c00000e0b04008041000000400140021000000e7f011001c7000038290001042e000000010200008a000000020010008c000011490000a13d00000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400300043d000000a004300039000000000024043500000080023000390000000a04000029000000000042043500000060023000390000000b04000029000000000042043500000040023000390000000c04000029000000000042043500000020023000390000000d040000290000000000420435000000000013043500000e0b0030009c00000e0b03008041000000400130021000000e6d011001c7000038290001042e00000000012100d900000ca20000013d000000400100043d000000440210003900000e7903000041000000000032043500000024021000390000001e03000039000010290000013d00000e0b00b0009c00000e0b0300004100000000030b4019000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e76011001c7000c0000000b001d382838230000040f0000000c0b0000290000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000011830000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000117f0000c13d000000000006004b000011900000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013a80000613d0000001f01400039000000600110018f00000000020b00190000000003b10019000000000013004b0000000001000039000000010100403900000e560030009c000008420000213d0000000100100190000008420000c13d000c00000003001d000000400030043f000000200040008c00000d300000413d0000000001020433000000000001004b0000000002000039000000010200c039000000000021004b00000d300000c13d000000000001004b000015cd0000c13d0000000c03000029000000440130003900000e7802000041000000000021043500000024013000390000001d02000039000000000021043500000e6b01000041000000000013043500000004013000390000002002000039000000000021043500000e0b0030009c00000e0b03008041000000400130021000000e6c011001c70000382a000104300000000202000039000000000020041b0000000f01000029000000000010043f000000200020043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000b0010006c000013e80000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000900000001001d000000000101041a000a00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000800000001001d0000000a0010006c0000120f0000a13d00000009010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000120f0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000500000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000a00000001001d0000000d010000290000000f020000290000000e03000029382824c70000040f000400000001001d0000000c0010006c00000dca0000213d000000040000006b000017830000613d0000000001000411000000000010043f0000000a010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000000040010006c0000179c0000413d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000c00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000001000411000000000010043f000900000002001d0000000401200039000a00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a00070004001000740000177b0000413d0000000001000411000000000010043f0000000a01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000702000029000000000021041b00000009010000290000000301100039000000000201041a000000040020002a0000177b0000413d0000000402200029000000000021041b0000000c010000290000000301100039000000000201041a000000040020002a0000177b0000413d0000000402200029000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000302041a000000000013001a0000177b0000413d00000005020000290000000c02200039000000000402041a0000000d024000b90000000d0000006b000012c80000613d0000000d052000fa000000000045004b0000177b0000c13d000000000113001900000e5d0010009c0000177b0000213d00000c800000613d00030e5d001000a100000003032000fa00000005020000290000000d02200039000000000402041a000000000034001a0000177b0000413d0000000003340019000000000032041b0000000d021000b90000000d0000006b000012db0000613d0000000d032000fa000000000013004b0000177b0000c13d00000003012000fa0000000d0010002a0000177b0000413d000c000d0010002d00000005010000290000000101100039000000000101041a0000000c0010006c0000182a0000413d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000200000001001d0000001101100039000700000001001d000000000101041a000000000001004b00001c080000c13d00000002010000290000000101100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b000000400100043d00000060021000390000000803000029000000000032043500000040021000390000000d0300002900000000003204350000002002100039000000040300002900000000003204350000000e02000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000010600003900000e5f0400004100000000050004110000000f070000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f00000005010000290000001001100039000000000201041a0000000d012000b90000000d0000006b000013270000613d0000000d031000fa000000000023004b0000177b0000c13d000000030010006b000013320000213d00000003031000fa00000005020000290000001301200039000000000101041a00000e0e011001970000000f02200039000000000202041a00000e0e02200197382836370000040f00000e530100004100000000001004430000000b010000290000000400100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000f00000002001d00000004012000390000000d02000029000000000021043500000000010004140000000b02000029000000040020008c0000135e0000613d0000000f0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000b020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d0003000000010355000000010020019000001c3e0000613d0000000f0100002900000e560010009c000008420000213d0000000f01000029000000400010043f00000000010004140000000002000411000000040020008c000f00010000003d000013780000613d00000e0b0010009c00000e0b01008041000000c0011002100000000d03000029000000000003004b00000e570110c1c700000000040004110000800902000039000000000204601900000000050000193828381e0000040f000f00000002001d0000000002010019000000600220027000010e0b0020019d0003000000010355382825a20000040f0000000f010000290000080d0000013d0000000901000029000a00120010003d00008010020000390000000005000019000f00000005001d000000000050043f0000000a01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c7382838230000040f000000010020019000000d300000613d000000000101043b0000000e02000029000000000020043f0000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000d0200002900000000020204330000000f05000029000000000052004b00001be20000a13d00000005025002100000000c02200029000000000101043b000000000101041a000000000012043500000001055000390000000b0050006c00008010020000390000137f0000413d0000038c0000013d0000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013af0000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013bc0000c13d000000000005004b000013cd0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000e0b0020009c00000e0b020080410000004002200210000000000112019f0000382a0001043000000e0b0010009c00000e0b01008041000000c0011002100000000f03000029000000000003004b00000e570110c1c70000800902000039000000000204601900000000050000193828381e0000040f000f00000002001d0000000002010019000000600220027000010e0b0020019d0003000000010355382825a20000040f0000000f01000029000000010110018f382825d30000040f0000000001000019000038290001042e000000400100043d000000440210003900000e6a03000041000010260000013d0000000e0300002900000e0b0030009c00000e0b03008041000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e13011001c7382838230000040f0000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e05700029000014060000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b000014020000c13d000000000006004b000014130000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000160c0000613d0000001f01400039000000600210018f0000000e01200029000000000021004b0000000002000039000000010200403900000e560010009c000008420000213d0000000100200190000008420000c13d000000400010043f000000200030008c00000d300000413d0000000e0200002900000000040204330000000d020000290000000802200039000000000042041b00000020021000390000000c03000029000000000032043500000040021000390000000000020435000e00000004001d000000000041043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d020000390000000303000039000000000500041100000e77040000410000000f060000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f0000000f01000029382832800000040f000016040000013d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001102100039000000000202041a000c00000002001d00000e560020009c000008420000213d0000000c0200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000e00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000e030000290000000c040000290000000003430436000d00000003001d0000001f0320018f000000000002004b000014770000613d0000000d05000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b000014730000c13d000000000003004b0000000c0000006b000014970000613d000b00120010003d0000000004000019000f00000004001d000000000040043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e0200002900000000020204330000000f04000029000000000042004b00001be20000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a000000000012043500000001044000390000000c0040006c0000147c0000413d0000000e01000029000000000201043300000e560020009c000008420000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019000c00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000c030000290000000002230436000f00000002001d0000001f0210018f000000000001004b000014b70000613d0000000f04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000014b30000c13d000000000002004b000000800200043d00000004010000290000000201100039000300000001001d000000000101041a000000000001004b000018900000c13d000000000002004b0000000a010000290002000a0000002d000018a60000c13d0000000302000029000000000012041b0000000001000411000000000010043f00000004010000290000000401100039000e00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000d00000002001d000000020020002a0000177b0000413d0000000001000411000000000010043f0000000e01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000d030000290000000202300029000000000101043b000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000700000001001d0000001101100039000b00000001001d000000000101041a000000000001004b000015290000613d0000000701000029000800120010003d000e00030010003d0000000002000019000d00000002001d000000000020043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000a0030002a0000177b0000413d0000000a03300029000000000032041b0000000201100039000000000201041a0000000a0020002a0000177b0000413d0000000a02200029000000000021041b0000000e01000029000000000101041a0000000a0010002a0000177b0000413d0000000a011000290000000e02000029000000000012041b0000000d0200002900000001022000390000000b01000029000000000101041a000000000012004b000015020000413d00000007010000290000000101100039000000000201041a0000000a0020002a0000177b0000413d0000000a02200029000000000021041b0000000c010000290000000001010433000000000001004b000019480000c13d0000000901000029382834f80000040f000600000001001d0000000c010000290000000001010433000000000001004b000019c90000c13d0000000901000029382833f10000040f000000000201001900000002012000b9000f00000002001d000000000002004b000015450000613d0000000f021000fa000000020020006c0000177b0000c13d00000e5d0110012a000000400300043d00000040023000390000000000120435000000200130003900000002020000290000000000210435000e00000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000201043b0000000e030000290000006001300039000d00000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000020600003900000e5f04000041000000000500041100000009070000293828381e0000040f000000010020019000000d300000613d0000000301000029000000000101041a000000400200043d00000040032000390000000d04000029000000000043043500000020032000390000000f040000290000000000430435000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e610400004100000009050000293828381e0000040f000000010020019000000d300000613d0000000901000029000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e01100197000000000300041000000000020004110000000a04000029382837110000040f0000000001000019000038290001042e00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015a10000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015ae0000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015bb0000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015c80000c13d000013c00000013d0000000d0100002900000008011000390000000e02000029000000000021041b0000000c010000290000000001210436000d00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000c040000290000004002400039000000010300003900000000003204350000000d02000029000000000012043500000e0b0040009c00000e0b040080410000004001400210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000030300003900000e770400004100000000050004110000000f060000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f0000000f01000029000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000000601100039000000000301041a00000e8b0230019700000002022001bf000000000021041b000000400100043d0000000e02000029000000000021043500000e0b0010009c00000e0b01008041000000400110021000000e58011001c7000038290001042e0000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016130000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016200000c13d000013c00000013d00000e63011001c7000080090200003900000000030004160000000c0400002900000000050000193828381e0000040f00030000000103550000000003010019000000600330027000010e0b0030019d00000001002001900000174b0000613d0000000b0100002900000e560010009c000008420000213d0000000b01000029000000400010043f0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000b00000001001d000000000101041a000c00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000800000001001d0000000c0010006c000016750000a13d0000000b010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000016750000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000600000001001d00000000010004160000000f020000290000000e03000029382823eb0000040f0000000002010019000700000002001d0000000d0020006c000009070000413d000000070000006b000017830000613d00000006010000290000000c01100039000000000201041a0000000001000416000000000301001900000000013200a9000000000003004b000016af0000613d000000000300041600000000033100d9000000000023004b0000177b0000c13d00000e5d0110012a00000006020000290000000d02200039000000000302041a000000000013001a0000177b0000413d0000000003130019000000000032041b0000000002000416000000000112004b0000177b0000413d00000006020000290000001002200039000000000202041a000000000300041600050000003200ad000000000003004b000016c40000613d00000005033000f9000000000023004b0000177b0000c13d000000050200002900030e5d00200132000000030110006c000d00000001001d0000177b0000413d0000000e01000029000000000010043f00000006010000290000001201100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000400000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000200000001001d0000001101100039000a00000001001d000000000101041a000000000001004b000017180000613d0000000201000029000900120010003d000c00030010003d0000000002000019000b00000002001d000000000020043f0000000901000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000d0030002a0000177b0000413d0000000d03300029000000000032041b0000000201100039000000000201041a0000000d0020002a0000177b0000413d0000000d02200029000000000021041b0000000c01000029000000000101041a0000000d0010002a0000177b0000413d0000000d011000290000000c02000029000000000012041b0000000b0200002900000001022000390000000a01000029000000000101041a000000000012004b000016f10000413d00000002010000290000000101100039000000000201041a0000000d0020002a0000177b0000413d0000000d02200029000000000021041b00000004010000290000000301100039000000000101041a000000070010006c0000188c0000413d00000000010004110000000f020000290000000e030000290000000704000029382833410000040f000000400100043d0000006002100039000000080300002900000000003204350000004002100039000000000300041600000000003204350000002002100039000000070300002900000000003204350000000e02000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000f070000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f0000000501000029000018e30000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017530000c13d000013c00000013d000000050000006b000017830000613d00000006010000290000000c01100039000000000201041a00000009012000b9000000090000006b000017630000613d00000009031000fa000000000023004b0000177b0000c13d00000e5d0110012a00000006020000290000000d02200039000000000302041a000000000013001a0000177b0000413d0000000003130019000000000032041b000000090110006b0000177b0000413d00000006020000290000001002200039000000000202041a00040009002000bd000000090000006b000017770000613d000000040400002900000009034000fa000000000023004b0000177b0000c13d000000040200002900030e5d00200132000000030110006c0000182e0000813d00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a00010430000000050000006b0000178a0000c13d000000400100043d000000440210003900000e8503000041000000000032043500000024021000390000001203000039000010290000013d0000000001000411000000000010043f0000000b010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000000050010006c000017a30000813d000000400100043d000000440210003900000e7d03000041000000000032043500000024021000390000001b03000039000010290000013d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000c00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000001000411000000000010043f000a00000002001d0000000401200039000b00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a00080005001000740000177b0000413d0000000001000411000000000010043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000802000029000000000021041b0000000a010000290000000301100039000000000201041a000000050020002a0000177b0000413d0000000502200029000000000021041b0000000c010000290000000301100039000000000201041a000000050020002a0000177b0000413d0000000502200029000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000302041a000000000013001a0000177b0000413d00000006020000290000000c02200039000000000402041a0000000d024000b90000000d0000006b0000180e0000613d0000000d052000fa000000000045004b0000177b0000c13d000000000113001900000e5d0010009c0000177b0000213d00000c800000613d00040e5d001000a100000004032000fa00000006020000290000000d02200039000000000402041a000000000034001a0000177b0000413d0000000003340019000000000032041b0000000d021000b90000000d0000006b000018210000613d0000000d032000fa000000000013004b0000177b0000c13d00000004012000fa0000000d0010002a0000177b0000413d000c000d0010002d00000006010000290000000101100039000000000101041a0000000c0010006c00001a890000813d000000400100043d000000440210003900000e7c030000410000179f0000013d000d00000001001d0000000801000029000000000010043f00000006010000290000001201100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000200000001001d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000100000001001d0000001101100039000c00000001001d000000000101041a000000000001004b0000187f0000613d0000000101000029000b00120010003d000f00030010003d0000000002000019000e00000002001d000000000020043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000d04000029000000000043001a0000177b0000413d0000000003430019000000000032041b0000000201100039000000000201041a000000000042001a0000177b0000413d0000000002420019000000000021041b0000000f01000029000000000101041a000000000041001a0000177b0000413d00000000014100190000000f02000029000000000012041b0000000e0200002900000001022000390000000c01000029000000000101041a000000000012004b000018570000413d00000001010000290000000101100039000000000201041a0000000d03000029000000000032001a0000177b0000413d0000000002320019000000000021041b00000002010000290000000301100039000000000101041a000000050010006c000018bd0000813d000000400100043d000000440210003900000e8403000041000011630000013d000000000002004b000019410000c13d0000000e020000290000000003020433000000000003004b000018b70000613d000000000400001900000000020000190000000d06000029000000050540021000000000055600190000000005050433000000000052004b000000000205a0190000000104400039000000000034004b000018990000413d000000000002004b000018ee0000c13d0000000d010000290000000001010433000018b70000013d0000000e010000290000000001010433000000000012004b000019be0000c13d000000000300001900000000010000190000000504300210000000a0044000390000000004040433000000000041004b000000000104a0190000000103300039000000000023004b000018ac0000413d000000000001004b000019120000c13d000000a00100043d0000000a0300002900000000023100a900000000023200d9000000000012004b00000c800000613d0000177b0000013d00000000010004110000000a0200002900000008030000290000000504000029382833410000040f000000400100043d0000006002100039000000070300002900000000003204350000004002100039000000090300002900000000003204350000002002100039000000050300002900000000003204350000000802000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000a070000293828381e0000040f000000010020019000000d300000613d0000000a010000293828329f0000040f000000040100002900000e5d0010009c000006090000413d00000006020000290000001301200039000000000101041a00000e0e011001970000000f02200039000000000202041a00000e0e022001970000000303000029000006080000013d000000000300001900000005043002100000000d0540002900000000060504330000000a056000b90000000a075000fa000000000067004b0000177b0000c13d00000000052500d90000000a0550006b0000177b0000413d0000000c060000290000000006060433000000000036004b00001be20000a13d0000000f04400029000000000054043500000001033000390000000e040000290000000004040433000000000043004b000018ef0000413d0000000a031000b90000000a043000fa000000000014004b0000177b0000c13d00000000022300d9000200000002001d00000009010000293828322b0000040f0000000301000029000000000101041a000000020010002a0000177b0000413d0000000201100029000014c30000013d00000000020000190000000503200210000000a00430003900000000050404330000000a045000b90000000a064000fa000000000056004b0000177b0000c13d000000000041004b00001a850000213d00000000041400d90000000a0440006b0000177b0000413d0000000c050000290000000005050433000000000025004b00001be20000a13d0000000f0330002900000000004304350000000102200039000000800300043d000000000032004b000019130000413d0000000a010000290002000a0000002d000014c30000013d000000000002004b000019410000c13d0000000e020000290000000003020433000000000003004b000019bb0000613d000000000400001900000000020000190000000d06000029000000050540021000000000055600190000000005050433000000000052004b000000000205a0190000000104400039000000000034004b000019350000413d000000000002004b00001a3e0000c13d0000000d01000029000019ba0000013d000000400100043d000000440210003900000e7003000041000000000032043500000024021000390000001503000039000010290000013d0000000002000411000b0e0e0020019b0000000004000019000019530000013d000000000021041b0000000c0100002900000000010104330000000d040000290000000104400039000000000014004b000015340000813d00000005024002100000000f022000290000000002020433000e00000002001d000000000002004b000019500000613d000d00000004001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000d01000029000000000010043f000700000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000b01000029000000000010043f000600000002001d0000000401200039000800000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000500000002001d0000000e0020002a0000177b0000413d0000000b01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d00000005020000290000000e02200029000000000101043b000000000021041b00000006010000290000000301100039000000000201041a0000000e0220006c0000177b0000413d000000000021041b00000007010000290000000301100039000000000201041a0000000e0220006c0000194c0000813d0000177b0000013d0000000e010000290000000001010433000000000012004b000019be0000c13d000000000300001900000000010000190000000705000029000000050430021000000000044500190000000004040433000000000041004b000000000104a0190000000103300039000000000023004b000019af0000413d000000000001004b00001a670000c13d0000000701000029000000000101043300000000020004160000000003020019000018b80000013d000000400100043d000000440210003900000e7103000041000000000032043500000e6b02000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000102e0000013d0000000402000029000800120020003d0000000004000019000019d30000013d0000000c0100002900000000010104330000000e040000290000000104400039000000000014004b0000153b0000813d00000005024002100000000f032000290000000002030433000000000002004b000019d00000613d000b00000003001d000e00000004001d000000000000043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000d0006001000bd000000060000006b000019f00000613d0000000d0300002900000006023000fa000000000012004b0000177b0000c13d0000000e01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000000000001004b00000c800000613d0000000c0200002900000000020204330000000e0020006c00001be20000a13d0000000d011000f90000000b020000290000000002020433000b0000001200ad000d00000002001d000000000002004b00001a110000613d0000000b030000290000000d023000fa000000000012004b0000177b0000c13d000000400100043d000700000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000703000029000000600230003900000000001204350000000b0100002900000e5d0110012a0000004002300039000000000012043500000020013000390000000d0200002900000000002104350000000e01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e5e011001c70000800d02000039000000040300003900000e5f040000410000000005000411000000000600001900000009070000293828381e0000040f0000000100200190000019cd0000c13d00000d300000013d000000000300001900000005043002100000000d0540002900000000060504330000000005000416000000000705001900000000057600a900000000077500d9000000000067004b0000177b0000c13d00000000052500d90000000006000416000000000556004b0000177b0000413d0000000c060000290000000006060433000000000036004b00001be20000a13d0000000f04400029000000000054043500000001033000390000000e040000290000000004040433000000000043004b00001a3f0000413d0000000003000416000000000403001900000000034100a900000000044300d9000000000014004b0000177b0000c13d00000000022300d9000200000002001d0000000a010000293828322b0000040f0000000301000029000000000101041a000000020010002a0000177b0000413d000000020110002900000f250000013d00000000020000190000000503200210000000070430002900000000050404330000000004000416000000000604001900000000046500a900000000066400d9000000000056004b0000177b0000c13d000000000041004b00001a850000213d00000000041400d90000000005000416000000000445004b0000177b0000413d0000000c050000290000000005050433000000000025004b00001be20000a13d0000000f033000290000000000430435000000010220003900000008030000290000000003030433000000000032004b00001a680000413d0000000001000416000200000001001d00000f250000013d000000400100043d000000440210003900000e7203000041000011630000013d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000300000001001d0000001101100039000800000001001d000000000101041a000000000001004b00001ae30000c13d00000003010000290000000101100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b000000400100043d00000060021000390000000903000029000000000032043500000040021000390000000d0300002900000000003204350000002002100039000000050300002900000000003204350000000e02000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000010600003900000e5f0400004100000000050004110000000f070000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f00000006010000290000001001100039000000000201041a0000000d012000b90000000d0000006b00001acc0000613d0000000d031000fa000000000023004b0000177b0000c13d000000040010006b00001ad70000213d00000004031000fa00000006020000290000001301200039000000000101041a00000e0e011001970000000f02200039000000000202041a00000e0e02200197382836370000040f0000000f01000029000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e0110019700000000020004110000000d03000029000006080000013d0000000301000029000700120010003d000a00030010003d000b00000000001d0000000b01000029000000000010043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000c0330006c0000177b0000413d000000000032041b0000000201100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b0000000a01000029000000000101041a0000000c0110006c0000177b0000413d0000000a02000029000000000012041b0000000b02000029000b00010020003d0000000801000029000000000101041a0000000b0010006b00001ae70000413d00001a9d0000013d0000000002000411000b0e0e0020019b000e00000000001d00001b140000013d0000000e02000029000e00010020003d0000000e0010006b00000f9a0000813d0000000e0200002900000005022002100000000f022000290000000002020433000d00000002001d000000000002004b00001b100000613d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000700000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000b01000029000000000010043f000600000002001d0000000401200039000800000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000500000002001d0000000d0020002a0000177b0000413d0000000b01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d00000005020000290000000d02200029000000000101043b000000000021041b00000006010000290000000301100039000000000201041a0000000d0220006c0000177b0000413d000000000021041b00000007010000290000000301100039000000000201041a0000000d0220006c0000177b0000413d000000000021041b0000000c01000029000000000101043300001b100000013d0000000402000029000800120020003d000e00000000001d00001b740000013d0000000e02000029000e00010020003d0000000e0010006b00000fa10000813d0000000e0200002900000005022002100000000f02200029000b00000002001d0000000002020433000000000002004b00001b700000613d000000000000043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000d0006001000bd000000060000006b00001b910000613d0000000d0300002900000006023000fa000000000012004b0000177b0000c13d0000000e01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000000000001004b00000c800000613d0000000c0200002900000000020204330000000e0020006c00001be20000a13d0000000d011000f90000000b020000290000000002020433000b0000001200ad000d00000002001d000000000002004b00001bb20000613d0000000b030000290000000d023000fa000000000012004b0000177b0000c13d000000400100043d000700000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000703000029000000600230003900000000001204350000000b0100002900000e5d0110012a0000004002300039000000000012043500000020013000390000000d0200002900000000002104350000000e01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000a070000293828381e0000040f000000010020019000000d300000613d0000000c01000029000000000101043300001b700000013d000000000001042f00000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e63011001c7000080090200003900000000030004160000000e0400002900000000050000193828381e0000040f00030000000103550000000003010019000000600330027000010e0b0030019d000000010020019000001bfb0000613d0000000d0100002900000e560010009c000008420000213d0000000d02000029000000400020043f0000000f0100002900000ca30000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c030000c13d000013c00000013d0000000201000029000600120010003d000900030010003d000a00000000001d0000000a01000029000000000010043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000c0330006c0000177b0000413d000000000032041b0000000201100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b0000000901000029000000000101041a0000000c0110006c0000177b0000413d0000000902000029000000000012041b0000000a02000029000a00010020003d0000000701000029000000000101041a0000000a0010006b00001c0c0000413d000012f80000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c390000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c460000c13d000013c00000013d000000000301001900000000040304330000000001420436000000000004004b00001c570000613d00000000020000190000002003300039000000000503043300000000015104360000000102200039000000000042004b00001c510000413d000000000001042d00000e640010009c00001c620000213d000000430010008c00001c620000a13d00000002020003670000000401200370000000000101043b0000002402200370000000000202043b000000000001042d00000000010000190000382a0001043000000e640010009c00001c700000213d000000630010008c00001c700000a13d00000002030003670000000401300370000000000101043b0000002402300370000000000202043b0000004403300370000000000303043b000000000001042d00000000010000190000382a000104300000001f0220003900000e8c022001970000000001120019000000000021004b0000000002000039000000010200403900000e560010009c00001c7e0000213d000000010020019000001c7e0000c13d000000400010043f000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000000430104340000000001320436000000000003004b00001c900000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b00001c890000413d000000000231001900000000000204350000001f0230003900000e8c022001970000000001210019000000000001042d0011000000000002000600000001001d0000000102000039000000000102041a00000e8a0010009c000023180000813d0000000303000039000000000403041a0000000103100039000000000032041b00000e8d0110009a000000000041041b000e00000004001d000000000040043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b001100000001001d00000006010000290000000021010434000000000001004b000023350000613d000f00000002001d0000000001020433001000000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000400b00043d0000002402b000390000000403b00039000000000101043b000000100010006b000023390000a13d0000000605000029000000e00d50003900000000010d043300000e0e00100198000023420000613d0000004001500039000300000001001d0000000001010433000000210110008a00000e9e0010009c0000234b0000a13d000001000a50003900000000010a043300000e8f0010009c000023540000813d0000012006500039000000000106043300000e8f0010009c0000235d0000813d000001600f50003900000000010f043300000e0e00100198000023660000613d000001800e50003900000000010e0433000000000001004b0000236f0000613d0000006001500039000001a004500039000a00000004001d0000000004040433000200000001001d000000000101043300000e900500004100000000005b043500000e0e011001970000000000130435000000000100041100000e0e01100197000c00000001001d0000000000120435000000000100041400000e0e02400197000000040020008c000d0000000e001d000b0000000f001d001000000006001d00001cfe0000c13d0000000103000031000000200030008c0000002004000039000000000403401900001d310000013d00070000000a001d00080000000d001d00000e0b00b0009c00000e0b0300004100000000030b4019000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e76011001c700090000000b001d382838230000040f000000090b0000290000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001d1c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001d180000c13d000000000006004b00001d290000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000d0e0000290000000b0f000029000000080d000029000000070a000029000023ab0000613d0000001f01400039000000600110018f000000000cb1001900000000001c004b0000000002000039000000010200403900000e5600c0009c000023180000213d0000000100200190000023180000c13d0000004000c0043f000000200030008c0000230f0000413d00000000040b0433000000000004004b0000000002000039000000010200c039000000000024004b0000230f0000c13d0000002402c000390000000406c00039000000000004004b0000004404c000390000237d0000613d0000000205000029000000000505043300000e0e05500197000000110b0000290000001307b00039000000000807041a00000e9108800197000000000558019f000000000057041b0000000f05000029000000000505043300000000005b041b0000000607b00039000000000807041a00000e8b08800197000000000087041b00000000070a04330000000c08b00039000000000078041b000000100700002900000000070704330000001008b00039000000000078041b000000060a0000290000014007a00039000000000707043300000e0e077001970000000f08b00039000000000908041a00000e9109900197000000000779019f000000000078041b0000000807b00039000000010800008a000000000087041b0000001107b0003900000003080000290000000008080433000000000087041b000000a00aa00039000000000b0f043300000000080d043300000000090e043300000e920700004100010000000a001d000000000a0a043300000000007c043500000002070000390000000000760435000000e0060000390000000000620435000000e402c0003900000000a70a0434000000000072043500100000000c001d0000010406c0003900000e0b0990019700000e0e0880019700000e0e02b00197000000000007004b00001d8e0000613d000000000b000019000000000c6b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb0003900000000007b004b00001d870000413d000000000a76001900000000000a043500000e0b05500197000000100b000029000000840ab0003900000000005a04350000006405b0003900000000009504350000000000840435000000c404b000390000000000040435000000a404b0003900000000000404350000000004000414000000040020008c000000200500008a00001dd60000613d0000001f01700039000000000151016f0000000001b10049000000000161001900000e0b0010009c00000e0b01008041000000600110021000000e0b00b0009c00000e0b0300004100000000030b40190000004003300210000000000131019f00000e0b0040009c00000e0b04008041000000c003400210000000000113019f3828381e0000040f000000100b0000290000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001dc10000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001dbd0000c13d000000000006004b00001dce0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000d0e0000290000000b0f000029000023b70000613d0000001f01400039000000600110018f0000000002b10019000000000012004b0000000001000039000000010100403900000e560020009c000023180000213d0000000100100190000023180000c13d000000400020043f000000200030008c0000230f0000413d00000000010b043300000011040000290000000902400039000000000012041b00000000010f043300000e0e011001970000000a02400039000000000302041a00000e9103300197000000000113019f000000000012041b00000000010e04330000000b02400039000000000012041b0000000a01000029000000000101043300000e0e011001970000001402400039000000000302041a00000e9103300197000000000113019f000000000012041b0000001501400039000000000201041a00000e91022001970000000003000411000000000232019f000000000021041b000000060200002900000080012000390000000001010433000900000001001d0000000001020433000d00000001001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b001000000001001d000000000101041a001100000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000101043b000000110010006c00001e410000a13d00000010010000290000000601100039000000000101041a000000ff0110018f000000020010008c0000232f0000213d000000000001004b00001e410000c13d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000601100039000000000201041a000000fe002001900000232f0000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c0000232f0000213d000000000001004b0000238a0000c13d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000500000001001d0000000d0000006b000023910000613d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000001102100039000000000202041a001000000002001d00000e560020009c000023180000213d000000100200002900000005022002100000003f0320003900000e5c03300197000000400700043d0000000003370019000000000073004b0000000004000039000000010400403900000e560030009c000023180000213d0000000100400190000023180000c13d000000400030043f000000100300002900000000093704360000001f0320018f000000000002004b00001e950000613d0000000002290019000000000400003100000002044003670000000005090019000000004604043c0000000005650436000000000025004b00001e910000c13d000000000003004b000000100000006b00001eb80000613d000f00120010003d0000000003000019000b00000007001d000a00000009001d001100000003001d000000000030043f0000000f01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000b0700002900000000020704330000001103000029000000000032004b0000000a09000029000023110000a13d00000005023002100000000002920019000000000101043b0000000301100039000000000101041a00000000001204350000000103300039000000100030006c00001e9c0000413d000000000207043300000e560020009c000023180000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019001000000004001d000000000043004b0000000004000039000000010400403900000e560030009c000023180000213d0000000100400190000023180000c13d000000400030043f00000010030000290000000002230436001100000002001d0000001f0210018f000000000001004b000000090600002900001ed80000613d0000001104000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00001ed40000c13d000000000002004b0000000d08000029000000001306043400000005020000290000000202200039000400000002001d000000000202041a000000000002004b00001f580000613d000000000003004b000023980000c13d0000000001070433000000000001004b0000239f0000613d0000000003000019000000000a00001900000005043002100000000004940019000000000404043300000000004a004b000000000a04a0190000000103300039000000000013004b00001ee80000413d00000000000a004b000023a90000613d000000000100001900000005031002100000000004930019000000000504043300000000048500a900000000068400d9000000000056004b000023a30000c13d0000000004a400d9000000000448004b000023a30000413d00000010050000290000000005050433000000000015004b000023110000a13d0000001103300029000000000043043500000001011000390000000003070433000000000031004b00001ef30000413d000f0000008200ad0000000f018000f9000000000021004b000023a30000c13d000b0000000a001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f060000290007000b00600102000000000101043b0000000d02100039000000000302041a00000007043000b90000000b0060006b00001f240000213d00000007054000fa000000000035004b000023a30000c13d0000000205100039000000000505041a000000000005004b000023e50000613d00000000045400d9000000000034001a000023a30000413d0000000003340019000000000032041b0000000002000411000000000020043f0000000e01100039000b00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039000f00000004001d382838230000040f00000001002001900000230f0000613d000000000101043b000000000101041a000a00000001001d0000000f0010002a000023a30000413d0000000001000411000000000010043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f030000290000000a02300029000000000101043b000000000021041b0000000401000029000000000101041a000000070010002a000023a30000413d000000070210002900001f850000013d000000000003004b0000000002080019000700000008001d00001f850000613d0000000002070433000000000023004b000023d50000c13d00000000040000190000000002000019000000050540021000000000055100190000000005050433000000000052004b000000000205a0190000000104400039000000000034004b00001f610000413d000000000002004b000023e00000613d000000000300001900000005043002100000000005410019000000000605043300000000058600a900000000078500d9000000000067004b000023a30000c13d000000000052004b0000231e0000213d00000000052500d9000000000558004b000023a30000413d00000010060000290000000006060433000000000036004b000023110000a13d00000011044000290000000000540435000000010330003900000009040000290000000004040433000000000043004b00001f6c0000413d0000000002080019000700000008001d0000000401000029000000000021041b0000000001000411000000000010043f00000005010000290000000401100039000f00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000000000201041a000b00000002001d000000070020002a000023a30000413d0000000001000411000000000010043f0000000f01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000b030000290000000702300029000000000101043b000000000021041b0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000800000001001d0000001101100039000b00000001001d000000000101041a000000000001004b00001feb0000613d0000000801000029000a00120010003d000900030010003d0000000002000019000f00000002001d000000000020043f0000000a01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000302100039000000000302041a0000000d04000029000000000043001a0000000905000029000023a30000413d0000000003430019000000000032041b0000000201100039000000000201041a000000000042001a000023a30000413d0000000002420019000000000021041b000000000105041a000000000041001a000023a30000413d0000000001410019000000000015041b0000000f0200002900000001022000390000000b01000029000000000101041a000000000012004b00001fc40000413d00000008010000290000000101100039000000000201041a0000000d03000029000000000032001a000023a30000413d0000000002320019000000000021041b00000010010000290000000001010433000000000001004b000020560000613d0000801002000039000000000500001900001ffd0000013d0000000105500039000000000015004b000020560000813d000000050450021000000011034000290000000003030433000000000003004b00001ffa0000613d000f00000003001d000d00000005001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c7382838230000040f00000001002001900000230f0000613d000000000201043b0000000d01000029000000000010043f000a00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000201043b0000000c01000029000000000010043f000900000002001d0000000401200039000b00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000000000201041a000800000002001d0000000f0020002a000023a30000413d0000000c01000029000000000010043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f030000290000000802300029000000000101043b000000000021041b00000009010000290000000301100039000000000201041a000000000232004b000023a30000413d000000000021041b0000000a010000290000000301100039000000000201041a000000000232004b000023a30000413d000000000021041b0000001001000029000000000101043300008010020000390000000d0500002900001ffa0000013d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c0000232f0000213d0000208c0000c13d000f00000003001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000f030000290000232f0000213d000020860000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000208c0000813d0000000801300039000000000101041a000000000001004b000000000100001900000e5d01006041000020d00000013d0000001101300039000000000101041a000a00000001001d000000000001004b000020cd0000613d000c00120030003d000f0e5d000000450000000002000019000020980000013d00000001022000390000000a0020006c000020ca0000813d000000000002004b000020950000613d000d00000002001d000000000000043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000020b00000613d00000000011200d900000e5d0010009c000023a30000c13d000b00000002001d0000000d01000029000000000010043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000b02000029000023e50000613d00000000011200d90000000f0010002a000023a30000413d000f000f0010002d0000000d02000029000020950000013d0000000f0000006b000020ce0000c13d000023e50000013d000f0e5d000000450000000f0100002900000e7401100129000900000001001d00000010010000290000000001010433000000000001004b0000214c0000613d0000000502000029000d00120020003d0000000004000019000020dc0000013d0000000104400039000000000014004b0000214c0000813d000000050240021000000011032000290000000002030433000000000002004b000020d90000613d000b00000003001d000f00000004001d000000000000043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a00000009041000b9000000090000006b0000000f03000029000020f90000613d00000009024000fa000000000012004b000023a30000c13d000c00000004001d000000000030043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000f030000290000000c04000029000023e50000613d00000010020000290000000002020433000000000032004b000023110000a13d00000000011400d90000000b02000029000000000302043300000000041300a9000000000003004b0000211a0000613d00000000023400d9000000000012004b000023a30000c13d000b00000004001d000c00000003001d000000400100043d000a00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000101043b0000000a03000029000000600230003900000000001204350000000b0100002900000e5d0110012a0000004002300039000000000012043500000020013000390000000c0200002900000000002104350000000f01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000e070000293828381e0000040f00000001002001900000230f0000613d000000100100002900000000010104330000000f04000029000020d90000013d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000c00000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c0000232f0000213d0000219a0000c13d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000232f0000213d0000217b0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000219a0000813d0000000c020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b000021930000613d00000000022100d900000e5d0020009c000023a30000c13d0000000c020000290000000202200039000000000202041a000000000002004b000023e50000613d00000000042100d9000021dc0000013d0000000c010000290000001101100039000000000101041a000f00000001001d000000000001004b000023e50000613d0000000c01000029000d00120010003d00000000020000190000000003000019001100000003001d001000000002001d000000000020043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000001103000029000023e50000613d00000e7401100129000000000031001a000023a30000413d0000000003310019000000100200002900000001022000390000000f0020006c000021a40000413d0000000f0200002900000e5d012000d100000000022100d900000e5d0020009c000023a30000c13d0000000f0200002900000e74022000d1000000000001004b000021cc0000613d00000000011200d900000e5d0010009c000023a30000c13d0000000f0100002900000e93011000d1000000000002004b000021d30000613d00000000022100d900000e5d0020009c000023a30000c13d000000000003004b000023e50000613d0000000c020000290000000202200039000000000202041a000000000002004b000023e50000613d00000000012100d900000000043100d900000007014000b9000000000004004b000021e20000613d00000000024100d9000000070020006c000023a30000c13d001000000004001d00000e5d0110012a000000400300043d00000040023000390000000000120435000000200130003900000007020000290000000000210435001100000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000201043b00000011030000290000006001300039000f00000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000020600003900000e5f0400004100000000050004110000000e070000293828381e0000040f00000001002001900000230f0000613d0000000401000029000000000101041a000000400200043d00000040032000390000000f040000290000000000430435000000200320003900000010040000290000000000430435000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e61040000410000000e050000293828381e0000040f00000001002001900000230f0000613d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000b00000001001d0000001101100039000000000101041a001000000001001d00000e560010009c000023180000213d000000100100002900000005011002100000003f0210003900000e5c02200197000000400400043d0000000002240019000000000042004b0000000003000039000000010300403900000e560020009c000023180000213d0000000100300190000023180000c13d000000400020043f000f00000004001d00000010020000290000000002240436000d00000002001d0000001f0210018f000000000001004b000022590000613d0000000d04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000022550000c13d000000000002004b000000100000006b0000227a0000613d0000000b01000029000c00120010003d0000000004000019001100000004001d000000000040043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f0200002900000000020204330000001104000029000000000042004b000023110000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000100040006c0000225f0000413d0000000b010000290000000201100039000000000101041a001000000001001d000000400100043d001100000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000101043b000000110600002900000020026000390000006003000039000000000032043500000000001604350000000f050000290000000002050433000000600160003900000000002104350000008001600039000000000002004b000022a10000613d000000000300001900000010070000290000002005500039000000000405043300000000014104360000000103300039000000000023004b0000229a0000413d000022a20000013d000000100700002900000040026000390000000000720435000000000161004900000e0b0010009c00000e0b01008041000000600110021000000e0b0060009c00000e0b060080410000004002600210000000000121019f000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e57011001c70000800d02000039000000020300003900000e94040000410000000e050000293828381e0000040f00000001002001900000230f0000613d0000000601000029000000c0011000390000000002010433000000020100002900000000030104330000000101000029000000000401043300000003010000290000000005010433000000400100043d0000002006100039000000800700003900000000007604350000000000510435000000800510003900000000640404340000000000450435000000a005100039000000000004004b000022d50000613d000000000700001900000000085700190000000009760019000000000909043300000000009804350000002007700039000000000047004b000022ce0000413d00000e0e03300197000000000645001900000000000604350000001f04400039000000200900008a000000000494016f000000000645001900000000041600490000004005100039000000000045043500000000540204340000000002460436000000000004004b000022eb0000613d000000000600001900000000072600190000000008650019000000000808043300000000008704350000002006600039000000000046004b000022e40000413d00000000054200190000000000050435000000600510003900000000003504350000001f03400039000000000393016f0000000003130049000000000223001900000e0b0020009c00000e0b02008041000000600220021000000e0b0010009c00000e0b010080410000004001100210000000000112019f000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e57011001c70000800d02000039000000030300003900000e950400004100000000050004110000000e060000293828381e0000040f00000001002001900000230f0000613d0000000302000039000000000102041a000000010110003a000023a30000613d000000000012041b0000000e01000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a00010430000000000001042f00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e7203000041000000000032043500000024021000390000001e03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e9d030000410000239b0000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001e0100003900000000001204350000004401b0003900000e8e02000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001a0100003900000000001204350000004401b0003900000e9c02000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001e0100003900000000001204350000004401b0003900000e9b02000041000023770000013d00000e6b0100004100000000001b043500000020010000390000000000130435000000110100003900000000001204350000004401b0003900000e9a02000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001a0100003900000000001204350000004401b0003900000e9902000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001d0100003900000000001204350000004401b0003900000e9802000041000023770000013d00000e6b0100004100000000001b043500000020010000390000000000130435000000180100003900000000001204350000004401b0003900000e9702000041000000000021043500000e0b00b0009c00000e0b0b0080410000004001b0021000000e6c011001c70000382a0001043000000e6b0100004100000000001c0435000000200100003900000000001604350000001c01000039000000000012043500000e9601000041000000000014043500000e0b00c0009c00000e0b0c0080410000004001c0021000000e6c011001c70000382a00010430000000400100043d000000440210003900000e8303000041000000000032043500000024021000390000001903000039000023240000013d000000400100043d000000440210003900000e7303000041000000000032043500000024021000390000001f03000039000023240000013d000000400100043d000000440210003900000e7003000041000000000032043500000024021000390000001503000039000023240000013d00000000018200a900000000018100d9000000000021004b000023e50000613d00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300000000001090433000023e10000013d0000001f0530018f00000e0d06300198000000400200043d0000000004620019000023c20000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023b20000c13d000023c20000013d0000001f0530018f00000e0d06300198000000400200043d0000000004620019000023c20000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023be0000c13d000000000005004b000023cf0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000e0b0020009c00000e0b020080410000004002200210000000000121019f0000382a00010430000000400100043d000000440210003900000e7103000041000000000032043500000e6b0200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000023290000013d000000000101043300000000028100a900000000028200d9000000000012004b000023a30000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a000104300008000000000002000600000003001d000100000001001d000200000002001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000249c0000613d000000000101043b0000001102100039000000000202041a000500000002001d00000e8a0020009c000024b00000813d000000050200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000400000004001d000000000043004b0000000004000039000000010400403900000e560030009c000024b00000213d0000000100400190000024b00000c13d000000400030043f000000040300002900000005040000290000000003430436000700000003001d0000001f0320018f000000000002004b0000241f0000613d0000000705000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b0000241b0000c13d000000000003004b000000050000006b0000243f0000613d000300120010003d0000000004000019000800000004001d000000000040043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000249c0000613d000000040200002900000000020204330000000804000029000000000042004b0000249e0000a13d00000005024002100000000702200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000050040006c000024240000413d0000000201000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000249c0000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000202041a000000000012001a0000000104000029000024aa0000413d000000000212001900000000014200a9000000000004004b0000245b0000613d00000000034100d9000000000023004b000024aa0000c13d00000e5d0110012a000000000114004b000024aa0000413d00000004020000290000000003020433000000060030006c0000249e0000a13d000000060200002900000005022002100000000702200029000000000202043300000e5d052000d1000000000002004b0000246c0000613d00000000042500d900000e5d0040009c000024aa0000c13d0000000004000019000024720000013d000000000005004b00000000050000190000248d0000c13d000024a40000013d000000060040006c0000248d0000613d000000050640021000000007066000290000000006060433000000000005004b000024880000613d00000000076500a900000000055700d9000000000065004b000024aa0000c13d000000000016001a000024aa0000413d0000000005160019000000000007004b0000246e0000613d000000000005004b000024a40000613d000000010670008a00000000055600d900000001055000390000248d0000013d000000000016001a000024aa0000413d000000000016001a0000000005000019000024a40000613d0000000104400039000000000034004b000024720000413d000000000005004b000024b60000613d000000000012001a000024aa0000413d0000000001120019000000010250008a00000e5d0220012a000000000012004b000024aa0000813d00000ea0022001670000000001210019000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e9f03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300008000000000002000600000003001d000100000001001d000200000002001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000257d0000613d000000000101043b0000001102100039000000000202041a000500000002001d00000e8a0020009c0000258b0000813d000000050200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000400000004001d000000000043004b0000000004000039000000010400403900000e560030009c0000258b0000213d00000001004001900000258b0000c13d000000400030043f000000040300002900000005040000290000000003430436000700000003001d0000001f0320018f000000000002004b000024fb0000613d0000000705000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b000024f70000c13d000000000003004b000000050000006b0000251b0000613d000300120010003d0000000004000019000800000004001d000000000040043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000257d0000613d000000040200002900000000020204330000000804000029000000000042004b0000257f0000a13d00000005024002100000000702200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000050040006c000025000000413d0000000201000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000257d0000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000202041a000000000012001a000025850000413d0000000003120019000000010100002900000e5d041000d1000000000001004b000025370000613d00000000011400d900000e5d0010009c000025850000c13d00000e5d0030009c000025850000213d00000e5d0030009c0000256c0000613d00000004010000290000000002010433000000060020006c0000257f0000a13d000000060100002900000005011002100000000701100029000000000101043300000e5d051000d1000000000001004b000025490000613d00000000061500d900000e5d0060009c000025850000c13d00000e5d0330009900000000033400d90000000004000019000025540000013d000000000036004b000025850000413d00000000050000190000256c0000613d0000000104400039000000000024004b000025720000813d000000060040006c000025510000613d000000050640021000000007066000290000000006060433000000000005004b0000254d0000613d00000000076500a900000000055700d9000000000065004b000025850000c13d000000000536004b000025850000413d000000000007004b000025690000613d000000000036004b0000256c0000613d000000010670008a00000000055600d90000000105500039000025510000013d000000000036004b0000000005000019000025510000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000000000005004b000025910000613d000000010250008a00000e5d0220012a00000000022300190000000102200039000000000032004b000025850000413d000000000112004b000025850000413d000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e9f03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300000000101000032000025cc0000613d00000e8a0010009c000025cd0000813d0000001f0310003900000e8c033001970000003f0330003900000e8c04300197000000400300043d0000000004430019000000000034004b0000000005000039000000010500403900000e560040009c000025cd0000213d0000000100500190000025cd0000c13d000000400040043f000000000513043600000e8c021001980000001f0310018f00000000012500190000000304000367000025bf0000613d000000000604034f000000006706043c0000000005750436000000000015004b000025bb0000c13d000000000003004b000025cc0000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000000001004b000025d60000613d000000000001042d000000400100043d000000440210003900000ea103000041000000000032043500000024021000390000001403000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000f000000000002000a00000002001d000900000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000e00000001001d000000000101041a000f00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000101043b0000000f0010006c000026270000a13d0000000e010000290000000601100039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d000000000001004b000026270000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000601100039000000000201041a000000fe0020019000002b5e0000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d000000000001004b00002b640000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000201043b0000000001000411000000000010043f000100000002001d0000000401200039000400000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a0000000a0010006c00002b6b0000413d000000000100041a000000020010008c00002b720000613d0000000202000039000000000020041b0000000901000029000000000010043f000000200020043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000e00000001001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000201043b0000000d01200039000000000101041a000f00000001001d000000000100041100000e0e01100197000700000001001d000000000010043f000d00000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a0000000f0200002900000000032100a9000000000002004b0000269a0000613d00000000022300d9000000000012004b00002b450000c13d000f00000003001d0000000d020000290000000201200039000000000101041a000c00000001001d000000000001004b00002b510000613d0000000701000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d0000000c030000290000000f023000f9000000000101043b000000000101041a000000000112004b0000000001004019000f00000001001d000026db0000a13d0000000001000411000000000010043f0000000e010000290000000e01100039000d00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000201041a000c00000002001d0000000f0020002a00002b450000413d0000000001000411000000000010043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d0000000c030000290000000f02300029000000000101043b000000000021041b0000000001000411000000000010043f0000000e010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a000000400400043d00000040024000390000000f03000029000000000032043500000020024000390000000000120435000e00000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000101043b0000000e030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000060600003900000e5f04000041000000000500041100000009070000293828381e0000040f000000010020019000002a6b0000613d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000001301100039000000000301041a000000400200043d00000044012000390000000f040000290000000000410435000000200120003900000ea20400004100000000004104350000002404200039000000070500002900000000005404350000004404000039000000000042043500000ea30020009c00002b580000813d000000800a2000390000004000a0043f00000ea400a0009c00002b580000213d00000e0e0b300197000000c003200039000000400030043f000000200300003900000000003a0435000000a00320003900000ea5040000410000000000430435000000000302043300000000020004140000000400b0008c0000000109000039000027710000c13d00000001010000310000000002090019000000000001004b0000278a0000613d00000e560010009c00002b580000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400d00043d00000000044d00190000000000d4004b0000000005000039000000010500403900000e560040009c00002b580000213d000000010050019000002b580000c13d000000400040043f000000000c1d043600000e8c031001980000001f0410018f00000000013c00190000000305000367000027630000613d000000000605034f00000000070c0019000000006806043c0000000007870436000000000017004b0000275f0000c13d000000000004004b0000278c0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000278c0000013d00000e0b0010009c00000e0b01008041000000400110021000000e0b0030009c00000e0b030080410000006003300210000000000113019f00000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000000020b0019000f0000000a001d000e0000000b001d3828381e0000040f0000000e0b0000290000000f0a0000290000000109000039000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b000027470000c13d000000600d000039000000800c00003900000000030d0433000000000002004b00002b790000613d000000000003004b000027a80000c13d000f0000000d001d000e0000000c001d00000e530100004100000000001004430000000400b00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000002b570000613d000000000101043b000000000001004b0000000f0100002900002bab0000613d0000000003010433000000000003004b00000001090000390000000e0c000029000027b40000613d00000e640030009c00002a6b0000213d000000200030008c00002a6b0000413d00000000010c0433000000000001004b0000000002000039000000010200c039000000000021004b00002a6b0000c13d000000000001004b00002b8f0000613d000000000090041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000d02100039000000000302041a0000000a043000b90000000a0000006b000027cb0000613d0000000a054000fa000000000035004b00002b450000c13d0000000205100039000000000505041a000000000005004b00002b510000613d000f0000005400e10000000f0330006c00002b450000413d000000000032041b0000000002000411000000000020043f0000000e01100039000e00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a000f000f0010007400002b450000413d0000000001000411000000000010043f0000000e01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000f02000029000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000001102100039000000000202041a000e00000002001d00000e560020009c00002b580000213d0000000e0200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000d00000004001d000000000043004b0000000004000039000000010400403900000e560030009c00002b580000213d000000010040019000002b580000c13d000000400030043f0000000d030000290000000e0400002900000000074304360000001f0320018f000000000002004b000028250000613d0000000002270019000000000400003100000002044003670000000005070019000000004604043c0000000005650436000000000025004b000028210000c13d000000000003004b0000000e0000006b000028470000613d000c00120010003d0000000003000019000800000007001d000f00000003001d000000000030043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d0000000d0200002900000000020204330000000f03000029000000000032004b000000080700002900002b4b0000a13d00000005023002100000000002720019000000000101043b0000000301100039000000000101041a000000000012043500000001033000390000000e0030006c0000282b0000413d0000000d01000029000000000201043300000e560020009c00002b580000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019000f00000004001d000000000043004b0000000004000039000000010400403900000e560030009c00002b580000213d000000010040019000002b580000c13d000000400030043f0000000f030000290000000002230436000b00000002001d0000001f0210018f000000000001004b000028670000613d0000000b04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000028630000c13d000000000002004b0000000d010000290000000002010433000000010100008a000000000002004b000028760000613d0000000003000019000000050430021000000000047400190000000004040433000000000041004b00000000010480190000000103300039000000000023004b0000286e0000413d0000000a031000b90000000a0000006b0000287c0000613d0000000a043000fa000000000014004b00002b450000c13d00000001010000290000000201100039000200000001001d000000000101041a000000000001004b00002b510000613d000e0000001300e1000000000002004b000028a20000613d00000000020000190000000503200210000000000473001900000000050404330000000a045000b9000000000005004b0000288f0000613d00000000055400d90000000a0050006c00002b450000c13d0000000f050000290000000005050433000000000025004b00002b4b0000a13d00000000041400d90000000b0330002900000000004304350000000f050000290000000005050433000000000025004b00002b4b0000a13d0000000e0440006c00002b450000413d000000000043043500000001022000390000000d030000290000000003030433000000000032004b000028860000413d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000300000001001d0000001101100039000800000001001d000000000101041a000000000001004b000028dd0000613d0000000301000029000600120010003d000500030010003d0000000002000019000c00000002001d000000000020043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000302100039000000000302041a0000000e0330006c000000050400002900002b450000413d000000000032041b0000000201100039000000000201041a0000000e0220006c00002b450000413d000000000021041b000000000104041a0000000e0110006c00002b450000413d000000000014041b0000000c0200002900000001022000390000000801000029000000000101041a000000000012004b000028ba0000413d00000003010000290000000101100039000000000201041a0000000e0220006c00002b450000413d000000000021041b0000000201000029000000000101041a0000000a0110006c00002b450000413d0000000202000029000000000012041b0000000001000411000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a000c000a0010007400002b450000413d0000000001000411000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000c02000029000000000021041b0000000d010000290000000001010433000000000001004b000029720000613d00008010040000390000000005000019000029140000013d0000000105500039000000000015004b000029720000813d0000000f020000290000000002020433000000000052004b00002b4b0000a13d00000005025002100000000b022000290000000002020433000000000002004b000029110000613d000800000002001d000c00000005001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000000002040019382838230000040f000000010020019000002a6b0000613d000000000201043b0000000c01000029000000000010043f000500000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000201043b0000000701000029000000000010043f000400000002001d0000000401200039000600000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000201041a000300000002001d000000080020002a00002b450000413d0000000701000029000000000010043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d00000008030000290000000302300029000000000101043b000000000021041b00000004010000290000000301100039000000000201041a000000000232004b00002b450000413d000000000021041b00000005010000290000000301100039000000000201041a000000000232004b00002b450000413d000000000021041b0000000d01000029000000000101043300008010040000390000000c05000029000029110000013d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d000029a80000c13d000c00000003001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000c0300002900002b5e0000213d000029a20000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000029a80000813d0000000801300039000000000101041a000000000001004b000000000100001900000e5d01006041000029ec0000013d0000001101300039000000000101041a000500000001001d000000000001004b000029e90000613d000700120030003d000c0e5d000000450000000002000019000029b40000013d0000000102200039000000050020006c000029e60000813d000000000002004b000029b10000613d000800000002001d000000000000043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000029cc0000613d00000000011200d900000e5d0010009c00002b450000c13d000600000002001d0000000801000029000000000010043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a000000000001004b000000060200002900002b510000613d00000000011200d90000000c0010002a00002b450000413d000c000c0010002d0000000802000029000029b10000013d0000000c0000006b000029ea0000c13d00002b510000013d000c0e5d000000450000000c0100002900000e7401100129000400000001001d0000000d010000290000000001010433000000000001004b00002a6d0000613d0000000101000029000700120010003d0000000003000019000029fa0000013d00000001033000390000000d010000290000000001010433000000000013004b00002a6d0000813d0000000f010000290000000001010433000000000031004b00002b4b0000a13d00000005013002100000000b01100029000800000001001d0000000001010433000000000001004b000029f50000613d000000000000043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039000c00000003001d382838230000040f0000000c03000029000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a00000004041000b9000000040000006b00002a1b0000613d00000004024000fa000000000012004b00002b450000c13d000600000004001d000000000030043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000c03000029000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a000000000001004b00002b510000613d0000000f020000290000000002020433000000000032004b000000060200002900002b4b0000a13d00000000011200d90000000802000029000000000302043300000000041300a9000000000003004b00002a3c0000613d00000000023400d9000000000012004b00002b450000c13d000600000004001d000800000003001d000000400100043d000500000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000101043b000000050300002900000060023000390000000000120435000000060100002900000e5d0110012a000000400230003900000000001204350000002001300039000000080200002900000000002104350000000c01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f040000410000000005000411000000000600001900000009070000293828381e0000040f0000000c030000290000000100200190000029f50000c13d00000000010000190000382a00010430000000400300043d00000040013000390000000e02000029000000000021043500000020013000390000000a020000290000000000210435000f00000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000201043b0000000f030000290000006001300039000800000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000030600003900000e5f04000041000000000500041100000009070000293828381e0000040f000000010020019000002a6b0000613d0000000201000029000000000101041a000700000001001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000a00000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d00002ae90000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c00002b5e0000213d00002aca0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b00002ae90000813d0000000a020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b00002ae20000613d00000000022100d900000e5d0020009c00002b450000c13d0000000a020000290000000202200039000000000202041a000000000002004b00002b510000613d00000000012100d900002b2b0000013d0000000a010000290000001101100039000000000101041a000c00000001001d000000000001004b00002b510000613d0000000a01000029000b00120010003d00000000020000190000000003000019000f00000003001d000d00000002001d000000000020043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000f0300002900002b510000613d00000e7401100129000000000031001a0000000d0200002900002b450000413d000000000331001900000001022000390000000c0020006c00002af30000413d0000000c0200002900000e5d012000d100000000022100d900000e5d0020009c00002b450000c13d0000000c0200002900000e74022000d1000000000001004b00002b1b0000613d00000000011200d900000e5d0010009c00002b450000c13d0000000c0100002900000e93011000d1000000000002004b00002b220000613d00000000022100d900000e5d0020009c00002b450000c13d000000000003004b00002b510000613d0000000a020000290000000202200039000000000202041a000000000002004b00002b510000613d00000000012100d900000000013100d9000000400200043d000000400320003900000008040000290000000000430435000000200320003900000000001304350000000701000029000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e610400004100000009050000293828381e0000040f000000010020019000002a6b0000613d0000000e01000029000000000001042d00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000000000001042f00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e830300004100000000003204350000002402100039000000190300003900002bb10000013d000000400100043d000000440210003900000e7d03000041000000000032043500000024021000390000001b0300003900002bb10000013d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f0300003900002bb10000013d00000000010a0019000000000003004b00002ba30000c13d000000400400043d000f00000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000f02000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00c0009c00000e0b0c0080410000004002c0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300006000000000002000600000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000030010008c00002c7d0000813d000000020010008c00002c830000c13d0000000601000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000201043b0000000801200039000200000001001d000000000101041a000000000010043f000300000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000201043b0000000001000411000000000010043f000400000002001d0000000401200039000500000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000101041a000000000001004b00002c8a0000613d0000000001000411000000000010043f00000004010000290000000501100039000100000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000101041a000000ff0010019000002c950000c13d0000000501000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d00000003020000290000000102200039000000000302041a000000000101043b000000000101041a000400000001001d000000000113004b00002c9c0000413d000000000012041b0000000001000411000000000010043f0000000101000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000201041a00000e8b0220019700000001022001bf000000000021041b0000000201000029000000000101041a000300000001001d0000000501000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000101041a000200000001001d000000400100043d000500000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002cad0000613d000000000101043b0000000503000029000000600230003900000000001204350000004001300039000000040200002900000000002104350000002001300039000000020200002900000000002104350000000301000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f040000410000000005000411000000000603001900000006070000293828381e0000040f000000010020019000002c7b0000613d0000000401000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e830300004100000000003204350000002402100039000000190300003900002ca20000013d000000400100043d000000440210003900000eab03000041000000000032043500000e6b020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900002ca70000013d000000400100043d000000440210003900000eaa03000041000000000032043500000024021000390000001d0300003900002ca20000013d000000400100043d000000440210003900000e7c03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000000001042f000a000000000002000600000002001d000400000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000030010008c00002e180000813d000000020010008c00002e250000c13d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000201043b0000000601000029000000000010043f000200000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000a00000001001d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c00002e180000213d00002e1e0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b00002e1e0000413d0000000001000411000000000010043f0000000a010000290000000401100039000300000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000101041a000000000001004b00002e2c0000613d0000000001000411000000000010043f0000000a010000290000000601100039000100000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000101041a000000ff0010019000002e370000c13d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c00002e180000213d00002d590000c13d000a00000003001d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000a0300002900002e180000213d00002d530000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b00002d590000813d0000000801300039000000000101041a000000060010006c000000000100001900000e5d0100604100002da50000013d0000001101300039000000000201041a000000000002004b00002da20000613d000800120030003d000a0e5d0000004500000000030000190000000601000029000500000002001d00002d660000013d0000000103300039000000000023004b00002d9a0000813d000000000013004b00002d630000613d000900000003001d000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000301100039000000000101041a00000e5d031000d1000000000001004b000000090200002900002d7f0000613d00000000011300d900000e5d0010009c00002e120000c13d000700000003001d000000000020043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000301100039000000000101041a000000000001004b000000070200002900002d9c0000613d00000000011200d90000000a0010002a000000090300002900002e120000413d000a000a0010002d0000000601000029000000050200002900002d630000013d0000000a0000006b00002da30000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000a0e5d000000450000000a0100002900000e7401100129000a00000001001d0000000001000411000000000010043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000201041a0000000a0300002900000000013200a9000000000003004b00002dbc0000613d00000000033100d9000000000023004b00002e120000c13d000a0e5d0010013200000002010000290000000101100039000000000201041a0000000a0220006c00002e3b0000413d000000000021041b0000000001000411000000000010043f0000000101000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000201041a00000e8b0220019700000001022001bf000000000021041b0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000101041a000800000001001d000000400100043d000900000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002e4c0000613d000000000101043b00000009030000290000006002300039000000000012043500000040013000390000000a0200002900000000002104350000002001300039000000080200002900000000002104350000000601000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000070600003900000e5f04000041000000000500041100000004070000293828381e0000040f000000010020019000002e100000613d0000000a01000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000ead0300004100000000003204350000002402100039000000140300003900002e410000013d000000400100043d000000440210003900000e830300004100000000003204350000002402100039000000190300003900002e410000013d000000400100043d000000440210003900000eab03000041000000000032043500000e6b020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900002e460000013d000000400100043d000000440210003900000eac0300004100002e3e0000013d000000400100043d000000440210003900000e7c03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000000001042f0009000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000030010008c000030fc0000813d000000020010008c000031030000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000400000001001d000000000100041a000000020010008c0000310a0000613d0000000202000039000000000020041b0000000501000029000000000010043f000000200020043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000700000001001d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d0000000002000411000000000301043b0000000d01300039000000000101041a000900000001001d00000e0e01200197000800000001001d000000000010043f000600000003001d0000000401300039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000090200002900000000032100a9000000000002004b00002eaf0000613d00000000022300d9000000000012004b000030f60000c13d000900000003001d00000006020000290000000201200039000000000101041a000300000001001d000000000001004b000030ea0000613d0000000801000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000030300002900000009023000f9000000000101043b000000000101041a000000000112004b0000000001004019000900000001001d00002ef00000a13d0000000001000411000000000010043f00000007010000290000000e01100039000600000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000201041a000300000002001d000000090020002a000030f60000413d0000000001000411000000000010043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d00000003030000290000000902300029000000000101043b000000000021041b0000000001000411000000000010043f00000007010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000400400043d00000040024000390000000903000029000000000032043500000020024000390000000000120435000700000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000031020000613d000000000101043b00000007030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000060600003900000e5f04000041000000000500041100000005070000293828381e0000040f0000000100200190000030e80000613d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000001301100039000000000301041a000000400200043d000000440120003900000009040000290000000000410435000000200120003900000ea20400004100000000004104350000002404200039000000080500002900000000005404350000004404000039000000000042043500000ea30020009c000030f00000813d000000800a2000390000004000a0043f00000ea400a0009c000030f00000213d00000e0e0b300197000000c003200039000000400030043f000000200300003900000000003a0435000000a00320003900000ea5040000410000000000430435000000000302043300000000020004140000000400b0008c000000010900003900002f860000c13d00000001010000310000000002090019000000000001004b00002f9f0000613d00000e560010009c000030f00000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400d00043d00000000044d00190000000000d4004b0000000005000039000000010500403900000e560040009c000030f00000213d0000000100500190000030f00000c13d000000400040043f000000000c1d043600000e8c031001980000001f0410018f00000000013c0019000000030500036700002f780000613d000000000605034f00000000070c0019000000006806043c0000000007870436000000000017004b00002f740000c13d000000000004004b00002fa10000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500002fa10000013d00000e0b0010009c00000e0b01008041000000400110021000000e0b0030009c00000e0b030080410000006003300210000000000113019f00000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000000020b001900090000000a001d00080000000b001d3828381e0000040f000000080b000029000000090a0000290000000109000039000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b00002f5c0000c13d000000600d000039000000800c00003900000000030d0433000000000002004b000031110000613d000000000003004b00002fbd0000c13d00090000000d001d00080000000c001d00000e530100004100000000001004430000000400b00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f0000000100200190000031020000613d000000000101043b000000000001004b00000009010000290000315f0000613d0000000003010433000000000003004b0000000109000039000000080c00002900002fc90000613d00000e640030009c000030e80000213d000000200030008c000030e80000413d00000000010c0433000000000001004b0000000002000039000000010200c039000000000021004b000030e80000c13d000000000001004b000031430000613d000000000090041b0000000001000411000000000010043f00000004010000290000000401100039000200000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000000001004b000031270000613d0000000001000411000000000010043f00000004010000290000000501100039000100000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000ff001001900000312e0000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000300000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c000030fc0000213d0000303e0000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c000030fc0000213d0000301f0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000303e0000813d00000003020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b000030370000613d00000000022100d900000e5d0020009c000030f60000c13d00000003020000290000000202200039000000000202041a000000000002004b000030ea0000613d00000000012100d9000030800000013d00000003010000290000001101100039000000000101041a000700000001001d000000000001004b000030ea0000613d0000000301000029000600120010003d00000000020000190000000003000019000900000003001d000800000002001d000000000020043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000903000029000030ea0000613d00000e7401100129000000000031001a0000000802000029000030f60000413d00000000033100190000000102200039000000070020006c000030480000413d000000070200002900000e5d012000d100000000022100d900000e5d0020009c000030f60000c13d000000070200002900000e74022000d1000000000001004b000030700000613d00000000011200d900000e5d0010009c000030f60000c13d000000070100002900000e93011000d1000000000002004b000030770000613d00000000022100d900000e5d0020009c000030f60000c13d000000000003004b000030ea0000613d00000003020000290000000202200039000000000202041a000000000002004b000030ea0000613d00000000012100d900000000013100d9000900000001001d0000000001000411000000000010043f0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000201041a000000090300002900000000013200a9000000000003004b000030970000613d00000000033100d9000000000023004b000030f60000c13d00090e5d0010013200000004010000290000000101100039000000000201041a000000090220006c000031320000413d000000000021041b0000000001000411000000000010043f0000000101000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000201041a00000e8b0220019700000001022001bf000000000021041b0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000400400043d00000040024000390000000903000029000000000032043500000020024000390000000000120435000800000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000031020000613d000000000101043b00000008030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000050600003900000e5f04000041000000000500041100000005070000293828381e0000040f0000000100200190000030e80000613d0000000901000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000001042f000000400100043d000000440210003900000e8303000041000000000032043500000024021000390000001903000039000031380000013d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f03000039000031380000013d00000000010a0019000000000003004b000031570000c13d000000400400043d000900000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000902000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000440210003900000eae03000041000000000032043500000024021000390000001803000039000031380000013d000000400100043d000000440210003900000eac03000041000031350000013d000000400100043d000000440210003900000e7c03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00c0009c00000e0b0c0080410000004002c0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000031380000013d0006000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000400000001001d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d0000000002000411000000000301043b0000000d01300039000000000101041a000600000001001d00000e0e01200197000200000001001d000000000010043f000300000003001d0000000401300039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000000000101041a000000060200002900000000032100a9000000000002004b000031a00000613d00000000022300d9000000000012004b000032250000c13d000600000003001d00000003020000290000000201200039000000000101041a000100000001001d000000000001004b0000321e0000613d0000000201000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000010300002900000006023000f9000000000101043b000000000101041a000000000112004b0000000001004019000600000001001d000031e10000a13d0000000001000411000000000010043f00000004010000290000000e01100039000300000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000000000201041a000200000002001d000000060020002a000032250000413d0000000001000411000000000010043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d00000002030000290000000602300029000000000101043b000000000021041b0000000001000411000000000010043f00000004010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000000000101041a000000400400043d00000040024000390000000603000029000000000032043500000020024000390000000000120435000400000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000032240000613d000000000101043b00000004030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000060600003900000e5f04000041000000000500041100000005070000293828381e0000040f00000001002001900000321c0000613d0000000601000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000000000001042f00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300003000000000002000300000002001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000032720000613d000000000101043b0000000d02100039000000000302041a000000030500002900000000045300a9000000000005004b000032430000613d00000000055400d9000000000035004b0000327a0000c13d0000000205100039000000000505041a000000000005004b000032740000613d00000000045400d9000000000034001a0000327a0000413d0000000003340019000000000032041b0000000002000411000000000020043f0000000e01100039000200000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039000300000004001d382838230000040f0000000100200190000032720000613d000000000101043b000000000101041a000100000001001d000000030010002a0000327a0000413d0000000001000411000000000010043f0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000032720000613d00000003030000290000000102300029000000000101043b000000000021041b000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000032970000613d000000000101043b0000000601100039000000000201041a000000fe00200190000032990000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a000104300007000000000002000100000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033320000613d000000000101043b000200000001001d0000001101100039000000000101041a000600000001001d00000e8a0010009c0000333a0000813d000000060100002900000005011002100000003f0210003900000e5c02200197000000400400043d0000000002240019000000000042004b0000000003000039000000010300403900000e560020009c0000333a0000213d00000001003001900000333a0000c13d000000400020043f000500000004001d00000006020000290000000002240436000400000002001d0000001f0210018f000000000001004b000032d10000613d0000000404000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000032cd0000c13d000000000002004b000000060000006b000032f20000613d0000000201000029000300120010003d0000000004000019000700000004001d000000000040043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033320000613d000000050200002900000000020204330000000704000029000000000042004b000033340000a13d00000005024002100000000402200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000060040006c000032d70000413d00000002010000290000000201100039000000000101041a000700000001001d000000400100043d000600000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000033400000613d000000000101043b0000000606000029000000200260003900000060030000390000000000320435000000000016043500000005050000290000000002050433000000600160003900000000002104350000008001600039000000000002004b000033190000613d000000000300001900000007070000290000002005500039000000000405043300000000014104360000000103300039000000000023004b000033120000413d0000331a0000013d000000070700002900000040026000390000000000720435000000000161004900000e0b0010009c00000e0b01008041000000600110021000000e0b0060009c00000e0b060080410000004002600210000000000121019f000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e57011001c70000800d02000039000000020300003900000e940400004100000001050000293828381e0000040f0000000100200190000033320000613d000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000000001042f0006000000000002000600000004001d000500000003001d000400000001001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d000000000101043b0000000502000029000000000020043f000300000001001d0000001201100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d000000000101043b000000040200002900000e0e02200197000500000002001d000000000020043f000200000001001d0000000401100039000400000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d000000000101043b000000000201041a000100000002001d000000060020002a000033970000413d0000000501000029000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d00000006030000290000000102300029000000000101043b000000000021041b00000002010000290000000301100039000000000201041a000000000232004b000033970000413d000000000021041b00000003010000290000000301100039000000000201041a000000000232004b000033970000413d000000000021041b000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300004000000000002000400000002001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033e30000613d000000000201043b0000000d01200039000000000101041a000300000001001d000000040100002900000e0e01100197000200000001001d000000000010043f000400000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033e30000613d000000000101043b000000000101041a000000030200002900000000032100a9000000000002004b000033c80000613d00000000022300d9000000000012004b000033eb0000c13d000300000003001d00000004020000290000000201200039000000000101041a000100000001001d000000000001004b000033e50000613d0000000201000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033e30000613d000000010300002900000003023000f9000000000101043b000000000101041a000000000112004b0000000001004019000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300005000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b000100000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c0000348b0000213d000034400000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000348b0000213d000034210000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000034400000813d00000001020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b000034390000613d00000000022100d900000e5d0020009c000034910000c13d00000001020000290000000202200039000000000202041a000000000002004b000034850000613d00000000012100d9000000000001042d00000001010000290000001101100039000000000101041a000300000001001d000000000001004b000034850000613d0000000101000029000200120010003d00000000020000190000000003000019000500000003001d000400000002001d000000000020043f0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000503000029000034850000613d00000e7401100129000000000013001a0000000402000029000034910000413d00000000031300190000000102200039000000030020006c0000344a0000413d000000030200002900000e5d012000d100000000022100d900000e5d0020009c000034910000c13d000000030200002900000e74022000d1000000000001004b000034720000613d00000000011200d900000e5d0010009c000034910000c13d000000030100002900000e93011000d1000000000002004b000034790000613d00000000022100d900000e5d0020009c000034910000c13d00000001020000290000000202200039000000000202041a000000000002004b000034850000613d000000000003004b000034850000613d00000000012100d900000000013100d9000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034af0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c000034b10000213d000034ad0000c13d0000000801100039000000000101041a000000000001042d000000010100008a000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034d30000613d000000000201043b0000000601200039000000000101041a000000ff0110018f000000020010008c000034d50000213d0000000001000019000034d20000c13d0000001101200039000000000101041a0000000802200039000000000202041a000000000012004b00000000010000390000000101008039000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034f00000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000202041a000000000012001a000034f20000413d0000000001120019000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300005000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c000035840000213d0000352f0000c13d000400000003001d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000403000029000035840000213d000035290000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000352f0000813d0000000801300039000000000101041a000000000001004b000000000100001900000e5d01006041000000000001042d0000001101300039000000000101041a000100000001001d000000000001004b000035720000613d000300120030003d00050e5d0000004500000000020000190000353b0000013d0000000102200039000000010020006c0000356d0000813d000000000002004b000035380000613d000400000002001d000000000000043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000035530000613d00000000011200d900000e5d0010009c0000357e0000c13d000200000002001d0000000401000029000000000010043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000202000029000035780000613d00000000011200d9000000050010002a0000357e0000413d000500050010002d0000000402000029000035380000013d000000050000006b000035780000613d000000050100002900000e7401100129000000000001042d00050e5d00000045000000050100002900000e7401100129000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a000104300006000000000002000200000002001d000600000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c0000361a0000213d000035c20000c13d000500000003001d0000000601000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c00000005030000290000361a0000213d000035bc0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000035c20000813d0000000801300039000000000101041a000000020010006c000000000100001900000e5d01006041000000000001042d0000001101300039000000000201041a000000000002004b000036080000613d000400120030003d00060e5d0000004500000000030000190000000201000029000100000002001d000035cf0000013d0000000103300039000000000023004b000036030000813d000000000013004b000035cc0000613d000500000003001d000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000101043b0000000301100039000000000101041a00000e5d031000d1000000000001004b0000000502000029000035e80000613d00000000011300d900000e5d0010009c000036140000c13d000300000003001d000000000020043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000101043b0000000301100039000000000101041a000000000001004b00000003020000290000360e0000613d00000000011200d9000000060010002a0000000503000029000036140000413d000600060010002d00000002010000290000000102000029000035cc0000013d000000060000006b0000360e0000613d000000060100002900000e7401100129000000000001042d00060e5d00000045000000060100002900000e7401100129000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000100041a000000020010008c000036260000613d0000000201000039000000000010041b000000000001042d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300002000000000002000000400400043d00000044054000390000000000350435000000200340003900000ea205000041000000000053043500000e0e02200197000000240540003900000000002504350000004402000039000000000024043500000ea30040009c000036c50000813d0000008009400039000000400090043f00000ea40090009c000036c50000213d00000e0e0a100197000000c001400039000000400010043f00000020010000390000000000190435000000a00140003900000ea5020000410000000000210435000000000204043300000000010004140000000400a0008c000036830000c13d00000001020000390000000101000031000000000001004b0000369b0000613d00000e560010009c000036c50000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400c00043d00000000044c00190000000000c4004b0000000005000039000000010500403900000e560040009c000036c50000213d0000000100500190000036c50000c13d000000400040043f000000000b1c043600000e8c031001980000001f0410018f00000000013b00190000000305000367000036750000613d000000000605034f00000000070b0019000000006806043c0000000007870436000000000017004b000036710000c13d000000000004004b0000369d0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000369d0000013d00000e0b0030009c00000e0b03008041000000400330021000000e0b0020009c00000e0b020080410000006002200210000000000232019f00000e0b0010009c00000e0b01008041000000c001100210000000000112019f00000000020a0019000200000009001d00010000000a001d3828381e0000040f000000010a0000290000000209000029000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b000036590000c13d000000600c000039000000800b00003900000000030c0433000000000002004b000036cd0000613d000000000003004b000036b80000c13d00020000000c001d00010000000b001d00000e530100004100000000001004430000000400a00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f0000000100200190000036ff0000613d000000000101043b000000000001004b0000000201000029000037000000613d0000000003010433000000000003004b000000010b000029000036c40000613d00000e640030009c000036cb0000213d0000001f0030008c000036cb0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b000036cb0000c13d000000000001004b000036e30000613d000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000000010000190000382a000104300000000001090019000000000003004b000036f70000c13d000000400400043d000200000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000202000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00b0009c00000e0b0b0080410000004002b0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000000001042f000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300002000000000002000000400500043d0000006406500039000000000046043500000e0e0330019700000044045000390000000000340435000000200350003900000eaf04000041000000000043043500000e0e02200197000000240450003900000000002404350000006402000039000000000025043500000eb00050009c000037a20000813d000000a009500039000000400090043f00000eb10050009c000037a20000213d00000e0e0a100197000000e001500039000000400010043f00000020010000390000000000190435000000c00150003900000ea5020000410000000000210435000000000205043300000000010004140000000400a0008c000037600000c13d00000001020000390000000101000031000000000001004b000037780000613d00000e560010009c000037a20000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400c00043d00000000044c00190000000000c4004b0000000005000039000000010500403900000e560040009c000037a20000213d0000000100500190000037a20000c13d000000400040043f000000000b1c043600000e8c031001980000001f0410018f00000000013b00190000000305000367000037520000613d000000000605034f00000000070b0019000000006806043c0000000007870436000000000017004b0000374e0000c13d000000000004004b0000377a0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000377a0000013d00000e0b0030009c00000e0b03008041000000400330021000000e0b0020009c00000e0b020080410000006002200210000000000232019f00000e0b0010009c00000e0b01008041000000c001100210000000000112019f00000000020a0019000200000009001d00010000000a001d3828381e0000040f000000010a0000290000000209000029000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b000037360000c13d000000600c000039000000800b00003900000000030c0433000000000002004b000037aa0000613d000000000003004b000037950000c13d00020000000c001d00010000000b001d00000e530100004100000000001004430000000400a00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f0000000100200190000037dc0000613d000000000101043b000000000001004b0000000201000029000037dd0000613d0000000003010433000000000003004b000000010b000029000037a10000613d00000e640030009c000037a80000213d0000001f0030008c000037a80000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b000037a80000c13d000000000001004b000037c00000613d000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000000010000190000382a000104300000000001090019000000000003004b000037d40000c13d000000400400043d000200000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000202000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00b0009c00000e0b0b0080410000004002b0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000000001042f000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000000001042f000000000200041400000e0b0020009c00000e0b02008041000000c00220021000000e0b0010009c00000e0b010080410000004001100210000000000121019f00000e52011001c70000801002000039382838230000040f0000000100200190000037fe0000613d000000000101043b000000000001042d00000000010000190000382a0001043000000000050100190000000000200443000000050030008c0000380e0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000038060000413d00000e0b0030009c00000e0b030080410000006001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000eb2011001c70000000002050019382838230000040f00000001002001900000381d0000613d000000000101043b000000000001042d000000000001042f00003821002104210000000102000039000000000001042d0000000002000019000000000001042d00003826002104230000000102000039000000000001042d0000000002000019000000000001042d0000382800000432000038290001042e0000382a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000200000000000000000000000000000080000001000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000008c7adc1400000000000000000000000000000000000000000000000000000000c2ee3a0700000000000000000000000000000000000000000000000000000000ec93f0f400000000000000000000000000000000000000000000000000000000f5f1dbf800000000000000000000000000000000000000000000000000000000f5f1dbf900000000000000000000000000000000000000000000000000000000fdff808500000000000000000000000000000000000000000000000000000000feebaca000000000000000000000000000000000000000000000000000000000ec93f0f500000000000000000000000000000000000000000000000000000000efce431300000000000000000000000000000000000000000000000000000000f1da56e900000000000000000000000000000000000000000000000000000000d450dec900000000000000000000000000000000000000000000000000000000d450deca00000000000000000000000000000000000000000000000000000000dc73d16400000000000000000000000000000000000000000000000000000000ec2c901600000000000000000000000000000000000000000000000000000000c2ee3a0800000000000000000000000000000000000000000000000000000000c346a9d000000000000000000000000000000000000000000000000000000000c8f70d0100000000000000000000000000000000000000000000000000000000ad5c464700000000000000000000000000000000000000000000000000000000bc063e1900000000000000000000000000000000000000000000000000000000bc063e1a00000000000000000000000000000000000000000000000000000000bf45572100000000000000000000000000000000000000000000000000000000bfacba3d00000000000000000000000000000000000000000000000000000000ad5c464800000000000000000000000000000000000000000000000000000000b02ed3db00000000000000000000000000000000000000000000000000000000b31eb895000000000000000000000000000000000000000000000000000000009d7de6b2000000000000000000000000000000000000000000000000000000009d7de6b300000000000000000000000000000000000000000000000000000000aa22a02e00000000000000000000000000000000000000000000000000000000ac68a748000000000000000000000000000000000000000000000000000000008c7adc15000000000000000000000000000000000000000000000000000000008cd41552000000000000000000000000000000000000000000000000000000009cd441da0000000000000000000000000000000000000000000000000000000036d06c09000000000000000000000000000000000000000000000000000000005e648efe000000000000000000000000000000000000000000000000000000007ef1c3c6000000000000000000000000000000000000000000000000000000007ef1c3c7000000000000000000000000000000000000000000000000000000008056ae790000000000000000000000000000000000000000000000000000000085b91d8e000000000000000000000000000000000000000000000000000000005e648eff00000000000000000000000000000000000000000000000000000000677bd9ff000000000000000000000000000000000000000000000000000000006eec5eb900000000000000000000000000000000000000000000000000000000429c9dfe00000000000000000000000000000000000000000000000000000000429c9dff000000000000000000000000000000000000000000000000000000004397c4ce00000000000000000000000000000000000000000000000000000000441cf65e0000000000000000000000000000000000000000000000000000000036d06c0a000000000000000000000000000000000000000000000000000000003d41a26b00000000000000000000000000000000000000000000000000000000411e0b17000000000000000000000000000000000000000000000000000000002b5eda2300000000000000000000000000000000000000000000000000000000325a00a700000000000000000000000000000000000000000000000000000000325a00a8000000000000000000000000000000000000000000000000000000003620875e0000000000000000000000000000000000000000000000000000000036ad8a7a000000000000000000000000000000000000000000000000000000002b5eda24000000000000000000000000000000000000000000000000000000002c2aa24e0000000000000000000000000000000000000000000000000000000031877a38000000000000000000000000000000000000000000000000000000001281311c000000000000000000000000000000000000000000000000000000001281311d000000000000000000000000000000000000000000000000000000001d7920aa0000000000000000000000000000000000000000000000000000000028747a800000000000000000000000000000000000000000000000000000000005a7e5b7000000000000000000000000000000000000000000000000000000000d1ee13302000000000000000000000000000000000000400000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000002e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000de0b6b3a764000002000000000000000000000000000000000000800000000000000000000000009dcabe311735ed0d65f0c22c5425d1f17331f94c9d0767f59e58473cf95ada6102000000000000000000000000000000000000600000000000000000000000001eca98f266e5348ae38d5d057a4d8e451e76672f69ac6ba4b0e3b31ea9c7eb2bd0e30db00000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000040000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffdbf0000000000000000000000000000000000000060000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf600000000000000000000000000000000000000200000008000000000000000006d61726b657420746f6b656e206973206e6f742057455448000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000040000000000000000000000006d61726b657420616c72656164792066756e6465640000000000000000000000646973747269627574696f6e206c656e677468206e6f74206d61746368696e676d7573742068696e7420612076616c696420646973747269627574696f6e00007374616b652068617320746f2062652067726561746572207468616e20302e000000000000000000000000000000000000c097ce7bc90715b34b9f1000000000d1aeb5c200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000032c8457b93ca1561f798921516a9997de723415a87991bf1187b70434dc5cdea6e6f7420616c6c6f77656420746f207265736f6c7665206d61726b657400000076616c756520646f6573206e6f74206d6174636820617267756d656e74730000000000000000000000000000000000000000000000000000fffffffffffffe3f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00696e73756666696369656e74206d61726b65742062616c616e63650000000000696e73756666696369656e74207368617265732062616c616e636500000000006d6178696d756d2073656c6c20616d6f756e742065786365656465640000000000000000000000000000000000000000000000a000000000000000000000000040c10f1900000000000000000000000000000000000000000000000000000000d09cc57e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000008000000000000000004d61726b657420696e20696e636f72726563742073746174650000000000000073686172657320706f6f6c2062616c616e636520697320746f6f206c6f77000073686172657320616d6f756e74206973203000000000000000000000000000006d696e696d756d2062757920616d6f756e74206e6f742072656163686564000000000000000000000000000000000000000000640000008000000000000000004d61726b657420746f6b656e206973206e6f742057455448000000000000000057455448206164647265737320697320616464726573732030000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04ef1d2ad89edf8c4d91132028e8195cdf30bb4b5053d4f8cd260341d4805f30a7265736f6c7574696f6e206265666f72652063757272656e742064617465000000000000000000000000000000000000000000000000000000b1a2bc2ec5000125c7205900000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000d4876b9f000000000000000000000000000000000000000000000000000000000000000000000000000a70c3c40a64e6c51999090b65f67d9240000000000000b1bbae7680415a1349ae813ba7d737ca09df07db1f6ce058b3e0812ec15e888657c2e8e67a3a13bc1991cd4ba3ed6733e269f1de098668140234d41dcb145ee46e6f7420616c6c6f77656420746f20637265617465206d61726b65740000000074696d656f7574206d75737420626520706f73697469766500000000000000005f7265616c6974696f4164647265737320697320616464726573732030000000747265617375727920666565206d757374206265203c3d203525000000000000666565206d757374206265203c3d2035250000000000000000000000000000006f7574636f6d6520636f756e74206e6f74206265747765656e20312d33320000696e76616c69642061726269747261746f7220616464726573730000000000007374616b65206e6565647320746f206265203e20300000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf6d7573742068617665206e6f6e2d7a65726f2062616c616e6365730000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4661696c656420746f2073656e64204574686572000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffbf5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e0000000000000000000000000000000000000084000000000000000000000000416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000007573657220616c726561647920636c61696d65642077696e6e696e67730000007573657220646f65736e277420686f6c64206f7574636f6d65207368617265737573657220616c726561647920636c61696d65642073686172657300000000006d61726b6574206973206e6f7420766f696465640000000000000000000000007573657220646f65736e277420686f6c6420736861726573000000000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f020000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d3427f7a6721f70976906dd24b11ca8f607b630d1c70500263ca89d5b0505fe

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

0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809

-----Decoded View---------------
Arg [0] : _WETH (address): 0x3439153EB7AF838Ad19d56E1571FBD09333C2809

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809


Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

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

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