ETH Price: $2,069.47 (-4.34%)

Contract

0x8a98C94b8BE5F04F31BF5D5C19dd20cf675C87B6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Buy Random Egg149673652022-06-15 11:58:371380 days ago1655294317IN
0x8a98C94b...f675C87B6
0.05 ETH0.0046003666.62467779
Buy Random Egg149673402022-06-15 11:51:011380 days ago1655293861IN
0x8a98C94b...f675C87B6
0.05 ETH0.0049941672.32779238
Buy Random Egg137501572021-12-06 4:23:451571 days ago1638764625IN
0x8a98C94b...f675C87B6
0.05 ETH0.0020884869.61627038
Buy Random Egg137501512021-12-06 4:22:411571 days ago1638764561IN
0x8a98C94b...f675C87B6
0.05 ETH0.0029137372.843354
Buy Random Egg134084742021-10-13 6:33:291625 days ago1634106809IN
0x8a98C94b...f675C87B6
0.05 ETH0.0062087872.07027104
Buy Random Egg133578442021-10-05 7:55:441633 days ago1633420544IN
0x8a98C94b...f675C87B6
0.05 ETH0.0037767254.69633391
Transfer133506922021-10-04 5:15:031634 days ago1633324503IN
0x8a98C94b...f675C87B6
0 ETH0.001591573.05855225
Buy Random Egg133473202021-10-03 16:28:351635 days ago1633278515IN
0x8a98C94b...f675C87B6
0.05 ETH0.0056003465.00766057
Buy Random Egg133267922021-09-30 11:21:021638 days ago1633000862IN
0x8a98C94b...f675C87B6
0.05 ETH0.0035787551.82921732
Buy Random Egg133267902021-09-30 11:20:081638 days ago1633000808IN
0x8a98C94b...f675C87B6
0.05 ETH0.0040001146.43256881
Buy Random Egg133101052021-09-27 20:53:191641 days ago1632775999IN
0x8a98C94b...f675C87B6
0.05 ETH0.01050861121.98181546
Buy Random Egg133054712021-09-27 3:28:431641 days ago1632713323IN
0x8a98C94b...f675C87B6
0.05 ETH0.0059463186.11732227
Buy Unclaimed Eg...133054662021-09-27 3:27:271641 days ago1632713247IN
0x8a98C94b...f675C87B6
0.1 ETH0.0063047991.32090592
Buy Random Egg133052982021-09-27 2:51:371641 days ago1632711097IN
0x8a98C94b...f675C87B6
0.05 ETH0.0051315474.31739787
Buy Unclaimed Eg...133052772021-09-27 2:46:241641 days ago1632710784IN
0x8a98C94b...f675C87B6
0.1 ETH0.0040232658.26421396
Buy Random Egg133051702021-09-27 2:20:021641 days ago1632709202IN
0x8a98C94b...f675C87B6
0.05 ETH0.0044143663.93092302
Buy Unclaimed Eg...133051652021-09-27 2:18:511641 days ago1632709131IN
0x8a98C94b...f675C87B6
0.1 ETH0.0042564161.64076326
Buy Random Egg133047122021-09-27 0:40:021641 days ago1632703202IN
0x8a98C94b...f675C87B6
0.05 ETH0.0034354249.75344796
Buy Random Egg133047072021-09-27 0:38:531641 days ago1632703133IN
0x8a98C94b...f675C87B6
0.05 ETH0.0032589547.19770885
Buy Random Egg133047022021-09-27 0:38:021641 days ago1632703082IN
0x8a98C94b...f675C87B6
0.05 ETH0.0037785754.7325856
Buy Random Egg133047002021-09-27 0:37:201641 days ago1632703040IN
0x8a98C94b...f675C87B6
0.05 ETH0.0034102749.38920922
Offer Egg For Sa...133043802021-09-26 23:27:091641 days ago1632698829IN
0x8a98C94b...f675C87B6
0 ETH0.0067942457.66676994
Buy Random Egg132981862021-09-26 0:14:551642 days ago1632615295IN
0x8a98C94b...f675C87B6
0.05 ETH0.0036956953.52281758
Buy Unclaimed Eg...132981782021-09-26 0:13:151642 days ago1632615195IN
0x8a98C94b...f675C87B6
0.1 ETH0.0036031352.18913421
Buy Unclaimed Eg...132914112021-09-24 23:29:061643 days ago1632526146IN
0x8a98C94b...f675C87B6
0.1 ETH0.0039361857.00323563
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-149673652022-06-15 11:58:371380 days ago1655294317
0x8a98C94b...f675C87B6
0.05 ETH
-149673402022-06-15 11:51:011380 days ago1655293861
0x8a98C94b...f675C87B6
0.05 ETH
-137501512021-12-06 4:22:411571 days ago1638764561
0x8a98C94b...f675C87B6
0.05 ETH
-134084742021-10-13 6:33:291625 days ago1634106809
0x8a98C94b...f675C87B6
0.05 ETH
-133578442021-10-05 7:55:441633 days ago1633420544
0x8a98C94b...f675C87B6
0.05 ETH
-133473202021-10-03 16:28:351635 days ago1633278515
0x8a98C94b...f675C87B6
0.05 ETH
-133267922021-09-30 11:21:021638 days ago1633000862
0x8a98C94b...f675C87B6
0.05 ETH
-133267902021-09-30 11:20:081638 days ago1633000808
0x8a98C94b...f675C87B6
0.05 ETH
-133101052021-09-27 20:53:191641 days ago1632775999
0x8a98C94b...f675C87B6
0.05 ETH
-133054712021-09-27 3:28:431641 days ago1632713323
0x8a98C94b...f675C87B6
0.05 ETH
-133054662021-09-27 3:27:271641 days ago1632713247
0x8a98C94b...f675C87B6
0.1 ETH
-133052982021-09-27 2:51:371641 days ago1632711097
0x8a98C94b...f675C87B6
0.05 ETH
-133052772021-09-27 2:46:241641 days ago1632710784
0x8a98C94b...f675C87B6
0.1 ETH
-133051702021-09-27 2:20:021641 days ago1632709202
0x8a98C94b...f675C87B6
0.05 ETH
-133051652021-09-27 2:18:511641 days ago1632709131
0x8a98C94b...f675C87B6
0.1 ETH
-133047122021-09-27 0:40:021641 days ago1632703202
0x8a98C94b...f675C87B6
0.05 ETH
-133047072021-09-27 0:38:531641 days ago1632703133
0x8a98C94b...f675C87B6
0.05 ETH
-133047022021-09-27 0:38:021641 days ago1632703082
0x8a98C94b...f675C87B6
0.05 ETH
-133047002021-09-27 0:37:201641 days ago1632703040
0x8a98C94b...f675C87B6
0.05 ETH
-132981862021-09-26 0:14:551642 days ago1632615295
0x8a98C94b...f675C87B6
0.05 ETH
-132981782021-09-26 0:13:151642 days ago1632615195
0x8a98C94b...f675C87B6
0.1 ETH
-132914112021-09-24 23:29:061643 days ago1632526146
0x8a98C94b...f675C87B6
0.1 ETH
-132912902021-09-24 23:03:341643 days ago1632524614
0x8a98C94b...f675C87B6
0.1 ETH
-132887552021-09-24 13:28:241644 days ago1632490104
0x8a98C94b...f675C87B6
0.05 ETH
-132887402021-09-24 13:23:371644 days ago1632489817
0x8a98C94b...f675C87B6
0.1 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoEggs

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-09-06
*/

//SPDX-License-Identifier: Unlicense
pragma solidity 0.8.4;

// 10,000 unique collectible eggs with proof of ownership stored on the Ethereum blockchain
//   _   _   _   _   _   _   _   _   _   _
//  / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
// ( C | r | y | p | t | o | E | g | g | s )
//  \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
//
// Website:   https://www.cryptoeggs.com
// Discord:   https://discord.gg/63PEpwVR5J
// Telegram:  https://t.me/cryptoeggscom
// Twitter:   https://www.twitter.com/cryptoeggscom
//

contract CryptoEggs {
  // You can use this hash to verify the image file containing all the eggs
  string public imageHash =
    "a9874035a17b212660fa69a6fb7bfa7feaa03e88825410fb13124c41a6bf70cb";

  address owner;
  address private recAddress =
    address(0x96Acc8515A660Ee1d84Bf393FA871948AB35a758);

  string public standard = "CRYPTOEGGS";
  string public name;
  string public symbol;
  uint8 public decimals;
  uint256 public totalSupply;
  uint256 public totalInitialFreeEggs;

  uint256 public EggsRemainingToAssign = 0;

  // Inital Free Eggs tracker
  bool public allFreeEggsAssigned = false;
  uint256 public freeEggsRemainingToAssign = 0;

  mapping(uint256 => address) public eggIndexToAddress;

  /* This creates an array with all balances */
  mapping(address => uint256) public balanceOf;

  uint256[] assignedEggsArr;

  address[] public freeEggHolders;
  mapping(address => bool) public freeEggHolderKnown;

  struct Offer {
    bool isForSale;
    uint256 eggIndex;
    address seller;
    uint256 minValue; // in ether
    address onlySellTo; // specify to sell only to a specific person
  }

  struct Bid {
    bool hasBid;
    uint256 eggIndex;
    address bidder;
    uint256 value;
  }

  // A record of eggs that are offered for sale at a specific minimum value, and perhaps to a specific person
  mapping(uint256 => Offer) public eggsOfferedForSale;

  // A record of the highest egg bid
  mapping(uint256 => Bid) public eggBids;

  mapping(address => uint256) public pendingWithdrawals;

  event Assign(address indexed to, uint256 indexed eggIndex);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event EggTransfer(
    address indexed from,
    address indexed to,
    uint256 indexed eggIndex
  );
  event EggOffered(
    uint256 indexed eggIndex,
    uint256 minValue,
    address indexed toAddress,
    address indexed sellerAddress
  );
  event EggBidEntered(
    uint256 indexed eggIndex,
    uint256 value,
    address indexed fromAddress
  );
  event EggBidWithdrawn(
    uint256 indexed eggIndex,
    uint256 value,
    address indexed fromAddress
  );
  event EggBought(
    uint256 indexed eggIndex,
    uint256 value,
    address indexed fromAddress,
    address indexed toAddress
  );
  event EggNoLongerForSale(uint256 indexed eggIndex);

  /* Initializes contract with initial supply tokens to the creator of the contract */
  constructor() payable {
    owner = msg.sender;
    totalInitialFreeEggs = 100; // Initial of 100 free eggs
    totalSupply = 10000; // Update total supply
    EggsRemainingToAssign = totalSupply;
    freeEggsRemainingToAssign = totalInitialFreeEggs;
    name = "CRYPTOEGGS"; // Set the name for display purposes
    symbol = "CEGG"; // Set the symbol for display purposes
    decimals = 0; // Amount of decimals for display purposes
  }

  function claimRandomFreeEgg(address to, uint256 eggIndex) public {
    require(eggIndexToAddress[eggIndex] == address(0x0));
    require(!allFreeEggsAssigned);
    require(freeEggsRemainingToAssign != 0, "No more free egs left");
    require(eggIndex <= 10000);
    require(!freeEggHolderKnown[to], "Already claimed a free egg!");

    if (eggIndexToAddress[eggIndex] != to) {
      if (eggIndexToAddress[eggIndex] != address(0x0)) {
        balanceOf[eggIndexToAddress[eggIndex]]--;
      } else {
        EggsRemainingToAssign--;
        freeEggsRemainingToAssign--;
      }
      eggIndexToAddress[eggIndex] = to;
      assignedEggsArr.push(eggIndex);
      balanceOf[to]++;

      freeEggHolders.push(to);
      freeEggHolderKnown[to] = true;

      emit Assign(to, eggIndex);
    }
  }

  function getRemainingFreeEgs() public view returns (uint256) {
    return freeEggsRemainingToAssign;
  }

  function buyRandomEgg(address _to, uint256 eggIndex) public payable {
    require(eggIndexToAddress[eggIndex] == address(0x0));
    require(msg.value != 0);
    require(msg.value >= 50000000000000000);
    require(eggIndex <= 10000);

    (bool sent, bytes memory data) = payable(recAddress).call{value: msg.value}(
      ""
    );
    require(sent, "Failed to send Ether");

    if (eggIndexToAddress[eggIndex] != _to) {
      if (eggIndexToAddress[eggIndex] != address(0x0)) {
        balanceOf[eggIndexToAddress[eggIndex]]--;
      } else {
        EggsRemainingToAssign--;
      }
      eggIndexToAddress[eggIndex] = _to;
      balanceOf[_to]++;
      emit Assign(_to, eggIndex);
    }
  }

  function buyUnclaimedEgg(address _to, uint256 eggIndex) public payable {
    require(eggIndexToAddress[eggIndex] == address(0x0));
    require(msg.value != 0);
    require(msg.value >= 100000000000000000);
    require(eggIndex <= 10000);

    (bool sent, bytes memory data) = payable(recAddress).call{value: msg.value}(
      ""
    );
    require(sent, "Failed to send Ether");

    if (eggIndexToAddress[eggIndex] != _to) {
      if (eggIndexToAddress[eggIndex] != address(0x0)) {
        balanceOf[eggIndexToAddress[eggIndex]]--;
      } else {
        EggsRemainingToAssign--;
      }
      eggIndexToAddress[eggIndex] = _to;
      balanceOf[_to]++;
      emit Assign(_to, eggIndex);
    }
  }

  // Transfer ownership of an egg to another user without requiring payment
  function transferEgg(address to, uint256 eggIndex) public {
    require(eggIndexToAddress[eggIndex] == msg.sender);
    require(eggIndex <= 10000);
    if (eggsOfferedForSale[eggIndex].isForSale) {
      eggNoLongerForSale(eggIndex);
    }
    eggIndexToAddress[eggIndex] = to;
    balanceOf[msg.sender]--;
    balanceOf[to]++;
    emit Transfer(msg.sender, to, 1);
    emit EggTransfer(msg.sender, to, eggIndex);
    // Check for the case where there is a bid from the new owner and refund it.
    // Any other bid can stay in place.
    Bid storage bid = eggBids[eggIndex];
    if (bid.bidder == to) {
      // Kill bid and refund value
      pendingWithdrawals[to] += bid.value;
      eggBids[eggIndex] = Bid(false, eggIndex, address(0x0), 0);
    }
  }

  function eggNoLongerForSale(uint256 eggIndex) public {
    require(eggIndexToAddress[eggIndex] == msg.sender);
    require(eggIndex <= 10000);
    eggsOfferedForSale[eggIndex] = Offer(
      false,
      eggIndex,
      msg.sender,
      0,
      address(0x0)
    );
    emit EggNoLongerForSale(eggIndex);
  }

  function offerEggForSale(uint256 eggIndex, uint256 minSalePriceInWei) public {
    require(eggIndexToAddress[eggIndex] == msg.sender);
    require(eggIndex <= 10000);
    eggsOfferedForSale[eggIndex] = Offer(
      true,
      eggIndex,
      msg.sender,
      minSalePriceInWei,
      address(0x0)
    );
    emit EggOffered(eggIndex, minSalePriceInWei, address(0x0), msg.sender);
  }

  function offerEggForSaleToAddress(
    uint256 eggIndex,
    uint256 minSalePriceInWei,
    address toAddress
  ) public {
    require(eggIndexToAddress[eggIndex] != msg.sender);
    require(eggIndex >= 10000);
    eggsOfferedForSale[eggIndex] = Offer(
      true,
      eggIndex,
      msg.sender,
      minSalePriceInWei,
      toAddress
    );
    emit EggOffered(eggIndex, minSalePriceInWei, toAddress, msg.sender);
  }

  function buyEgg(uint256 eggIndex) public payable {
    Offer storage offer = eggsOfferedForSale[eggIndex];
    require(eggIndex <= 10000);
    require(offer.isForSale); // egg not actually for sale

    // Check this rule !!!!!!!!!!!!
    require(offer.onlySellTo == address(0x0) || offer.onlySellTo == msg.sender); // egg not supposed to be sold to this user
    require(msg.value >= offer.minValue); // Didn't send enough ETH
    require(offer.seller == eggIndexToAddress[eggIndex]); // Seller no longer owner of egg

    address seller = offer.seller;

    eggIndexToAddress[eggIndex] = msg.sender;
    balanceOf[seller]--;
    balanceOf[msg.sender]++;
    emit Transfer(seller, msg.sender, 1);

    eggNoLongerForSale(eggIndex);
    pendingWithdrawals[seller] += msg.value;
    emit EggBought(eggIndex, msg.value, seller, msg.sender);

    // Check for the case where there is a bid from the new owner and refund it.
    // Any other bid can stay in place.
    Bid storage bid = eggBids[eggIndex];
    if (bid.bidder == msg.sender) {
      // Kill bid and refund value
      pendingWithdrawals[msg.sender] += bid.value;
      eggBids[eggIndex] = Bid(false, eggIndex, address(0x0), 0);
    }
  }

  function withdraw() public {
    uint256 amount = pendingWithdrawals[msg.sender];
    uint256 fee = (amount / 100) * 3;
    uint256 amountMinusFee = amount - fee;
    // Remember to zero the pending refund before
    // sending to prevent re-entrancy attacks
    pendingWithdrawals[msg.sender] = 0;
    payable(recAddress).transfer(fee);
    payable(msg.sender).transfer(amountMinusFee);
  }

  function enterBidForEgg(uint256 eggIndex) public payable {
    require(eggIndex <= 10000);
    require(eggIndexToAddress[eggIndex] != address(0x0));
    require(eggIndexToAddress[eggIndex] != msg.sender);
    require(msg.value != 0);
    Bid storage existing = eggBids[eggIndex];
    require(msg.value >= existing.value);
    if (existing.value > 0) {
      // Refund the failing bid
      pendingWithdrawals[existing.bidder] += existing.value;
    }
    eggBids[eggIndex] = Bid(true, eggIndex, msg.sender, msg.value);
    emit EggBidEntered(eggIndex, msg.value, msg.sender);
  }

  function acceptBidForEgg(uint256 eggIndex, uint256 minPrice) public {
    require(eggIndex <= 10000);
    require(eggIndexToAddress[eggIndex] == msg.sender);
    address seller = msg.sender;
    Bid storage bid = eggBids[eggIndex];
    require(bid.value != 0);
    require(bid.value >= minPrice);

    eggIndexToAddress[eggIndex] = bid.bidder;
    balanceOf[seller]--;
    balanceOf[bid.bidder]++;
    emit Transfer(seller, bid.bidder, 1);

    eggsOfferedForSale[eggIndex] = Offer(
      false,
      eggIndex,
      bid.bidder,
      0,
      address(0x0)
    );
    uint256 amount = bid.value;
    eggBids[eggIndex] = Bid(false, eggIndex, address(0x0), 0);
    pendingWithdrawals[seller] += amount;
    emit EggBought(eggIndex, amount, seller, bid.bidder);
  }

  function withdrawBidForEgg(uint256 eggIndex) public {
    require(eggIndex <= 10000);
    require(eggIndexToAddress[eggIndex] != address(0x0));
    require(eggIndexToAddress[eggIndex] != msg.sender);
    Bid storage bid = eggBids[eggIndex];
    require(bid.bidder == msg.sender);
    emit EggBidWithdrawn(eggIndex, bid.value, msg.sender);
    uint256 amount = bid.value;
    eggBids[eggIndex] = Bid(false, eggIndex, address(0x0), 0);
    // Refund the bid money
    payable(msg.sender).transfer(amount);
  }

  function getAllClaimedEggs() public view returns (uint256[] memory) {
    return assignedEggsArr;
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"Assign","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"}],"name":"EggBidEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"}],"name":"EggBidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"EggBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"EggNoLongerForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minValue","type":"uint256"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":true,"internalType":"address","name":"sellerAddress","type":"address"}],"name":"EggOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"EggTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EggsRemainingToAssign","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"},{"internalType":"uint256","name":"minPrice","type":"uint256"}],"name":"acceptBidForEgg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allFreeEggsAssigned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"buyEgg","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"buyRandomEgg","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"buyUnclaimedEgg","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"claimRandomFreeEgg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"eggBids","outputs":[{"internalType":"bool","name":"hasBid","type":"bool"},{"internalType":"uint256","name":"eggIndex","type":"uint256"},{"internalType":"address","name":"bidder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"eggIndexToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"eggNoLongerForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"eggsOfferedForSale","outputs":[{"internalType":"bool","name":"isForSale","type":"bool"},{"internalType":"uint256","name":"eggIndex","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"address","name":"onlySellTo","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"enterBidForEgg","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"freeEggHolderKnown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"freeEggHolders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeEggsRemainingToAssign","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllClaimedEggs","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemainingFreeEgs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"imageHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"},{"internalType":"uint256","name":"minSalePriceInWei","type":"uint256"}],"name":"offerEggForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"},{"internalType":"uint256","name":"minSalePriceInWei","type":"uint256"},{"internalType":"address","name":"toAddress","type":"address"}],"name":"offerEggForSaleToAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingWithdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"standard","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInitialFreeEggs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"transferEgg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggIndex","type":"uint256"}],"name":"withdrawBidForEgg","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060600160405280604081526020016200407060409139600090805190602001906200003592919062000220565b507396acc8515a660ee1d84bf393fa871948ab35a758600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600a81526020017f43525950544f454747530000000000000000000000000000000000000000000081525060039080519060200190620000d892919062000220565b5060006009556000600a60006101000a81548160ff0219169083151502179055506000600b5533600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600881905550612710600781905550600754600981905550600854600b819055506040518060400160405280600a81526020017f43525950544f454747530000000000000000000000000000000000000000000081525060049080519060200190620001af92919062000220565b506040518060400160405280600481526020017f434547470000000000000000000000000000000000000000000000000000000081525060059080519060200190620001fd92919062000220565b506000600660006101000a81548160ff021916908360ff16021790555062000335565b8280546200022e90620002d0565b90600052602060002090601f0160209004810192826200025257600085556200029e565b82601f106200026d57805160ff19168380011785556200029e565b828001600101855582156200029e579182015b828111156200029d57825182559160200191906001019062000280565b5b509050620002ad9190620002b1565b5090565b5b80821115620002cc576000816000905550600101620002b2565b5090565b60006002820490506001821680620002e957607f821691505b602082108114156200030057620002ff62000306565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613d2b80620003456000396000f3fe6080604052600436106101d85760003560e01c8063643f3a3c11610102578063a7d755c411610095578063e4f3670a11610064578063e4f3670a1461068e578063e6c52df8146106b7578063eb89ea49146106e0578063f3f43703146106fc576101d8565b8063a7d755c4146105e4578063cb028a681461060f578063d8077f9814610638578063e25bcddd14610663576101d8565b8063766562c9116100d1578063766562c9146105255780638b8a82241461054e5780638d1831c11461058e57806395d89b41146105b9576101d8565b8063643f3a3c1461046b57806368b4c3bd146104945780637063f2de146104bd57806370a08231146104e8576101d8565b8063458b934d1161017a57806353aea0bb1161014957806353aea0bb146103be5780635a3b7e42146103da5780635b69a581146104055780635ead565214610442576101d8565b8063458b934d146102f95780634c33efa71461033a5780634d2582bd1461035657806351605d8014610393576101d8565b806328843368116101b6578063288433681461024f578063313ce5671461027a5780633ccfd60b146102a557806340fe3d36146102bc576101d8565b806306fdde03146101dd57806318160ddd1461020857806326d4854d14610233575b600080fd5b3480156101e957600080fd5b506101f2610739565b6040516101ff919061383f565b60405180910390f35b34801561021457600080fd5b5061021d6107c7565b60405161022a91906138c1565b60405180910390f35b61024d6004803603810190610248919061349a565b6107cd565b005b34801561025b57600080fd5b50610264610ba0565b60405161027191906138c1565b60405180910390f35b34801561028657600080fd5b5061028f610ba6565b60405161029c91906138dc565b60405180910390f35b3480156102b157600080fd5b506102ba610bb9565b005b3480156102c857600080fd5b506102e360048036038101906102de91906134d6565b610d24565b6040516102f09190613734565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906134d6565b610d63565b6040516103319594939291906137d1565b60405180910390f35b610354600480360381019061034f91906134d6565b610de6565b005b34801561036257600080fd5b5061037d600480360381019061037891906134d6565b61136b565b60405161038a9190613734565b60405180910390f35b34801561039f57600080fd5b506103a861139e565b6040516103b5919061383f565b60405180910390f35b6103d860048036038101906103d391906134d6565b61142c565b005b3480156103e657600080fd5b506103ef6116f4565b6040516103fc919061383f565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190613471565b611782565b6040516104399190613771565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906134ff565b6117a2565b005b34801561047757600080fd5b50610492600480360381019061048d919061353b565b6119b6565b005b3480156104a057600080fd5b506104bb60048036038101906104b691906134d6565b611bca565b005b3480156104c957600080fd5b506104d2611e9a565b6040516104df919061374f565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613471565b611ef2565b60405161051c91906138c1565b60405180910390f35b34801561053157600080fd5b5061054c600480360381019061054791906134ff565b611f0a565b005b34801561055a57600080fd5b50610575600480360381019061057091906134d6565b6124a2565b604051610585949392919061378c565b60405180910390f35b34801561059a57600080fd5b506105a36124ff565b6040516105b091906138c1565b60405180910390f35b3480156105c557600080fd5b506105ce612509565b6040516105db919061383f565b60405180910390f35b3480156105f057600080fd5b506105f9612597565b60405161060691906138c1565b60405180910390f35b34801561061b57600080fd5b506106366004803603810190610631919061349a565b61259d565b005b34801561064457600080fd5b5061064d612a64565b60405161065a9190613771565b60405180910390f35b34801561066f57600080fd5b50610678612a77565b60405161068591906138c1565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b0919061349a565b612a7d565b005b3480156106c357600080fd5b506106de60048036038101906106d991906134d6565b612e83565b005b6106fa60048036038101906106f5919061349a565b61305d565b005b34801561070857600080fd5b50610723600480360381019061071e9190613471565b61342f565b60405161073091906138c1565b60405180910390f35b6004805461074690613b30565b80601f016020809104026020016040519081016040528092919081815260200182805461077290613b30565b80156107bf5780601f10610794576101008083540402835291602001916107bf565b820191906000526020600020905b8154815290600101906020018083116107a257829003601f168201915b505050505081565b60075481565b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083957600080fd5b600034141561084757600080fd5b67016345785d8a000034101561085c57600080fd5b61271081111561086b57600080fd5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516108b49061371f565b60006040518083038185875af1925050503d80600081146108f1576040519150601f19603f3d011682016040523d82523d6000602084013e6108f6565b606091505b50915091508161093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093290613881565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9a57600073ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9557600d6000600c600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610a8b90613b06565b9190505550610aae565b60096000815480929190610aa890613b06565b91905055505b83600c600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610b5090613b62565b9190505550828473ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba60405160405180910390a35b50505050565b60095481565b600660009054906101000a900460ff1681565b6000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006003606483610c0e91906139ad565b610c1891906139de565b905060008183610c289190613a38565b90506000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610cd7573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d1e573d6000803e3d6000fd5b50505050565b600f8181548110610d3457600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000601160008381526020019081526020016000209050612710821115610e0c57600080fd5b8060000160009054906101000a900460ff16610e2757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610ed557503373ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ede57600080fd5b8060030154341015610eef57600080fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7e57600080fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905033600c600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061104990613b06565b9190505550600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061109e90613b62565b91905055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516111019190613824565b60405180910390a361111283612e83565b34601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111619190613957565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847f6d1621bf4e378db6a3b37f46c49f217c521a286c073e7ba618d1045b39375970346040516111c691906138c1565b60405180910390a460006012600085815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611365578060030154601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112909190613957565b925050819055506040518060800160405280600015158152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050505b50505050565b600c6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080546113ab90613b30565b80601f01602080910402602001604051908101604052809291908181526020018280546113d790613b30565b80156114245780601f106113f957610100808354040283529160200191611424565b820191906000526020600020905b81548152906001019060200180831161140757829003601f168201915b505050505081565b61271081111561143b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114a857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561151457600080fd5b600034141561152257600080fd5b6000601260008381526020019081526020016000209050806003015434101561154a57600080fd5b6000816003015411156115d6578060030154601360008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ce9190613957565b925050819055505b60405180608001604052806001151581526020018381526020013373ffffffffffffffffffffffffffffffffffffffff168152602001348152506012600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050503373ffffffffffffffffffffffffffffffffffffffff16827f3f4f22711c86d9a1cd524c6074ca3824eb2a3f3611d38ee147288690cbfa32fe346040516116e891906138c1565b60405180910390a35050565b6003805461170190613b30565b80601f016020809104026020016040519081016040528092919081815260200182805461172d90613b30565b801561177a5780601f1061174f5761010080835404028352916020019161177a565b820191906000526020600020905b81548152906001019060200180831161175d57829003601f168201915b505050505081565b60106020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600c600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180d57600080fd5b61271082111561181c57600080fd5b6040518060a001604052806001151581526020018381526020013373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001600073ffffffffffffffffffffffffffffffffffffffff168152506011600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16837f13f68a1cbc6500e40da9e9664df63230b85e35491d8502a631b8356d80c4e0fb846040516119aa91906138c1565b60405180910390a45050565b3373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a2257600080fd5b612710831015611a3157600080fd5b6040518060a001604052806001151581526020018481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152506011600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847f13f68a1cbc6500e40da9e9664df63230b85e35491d8502a631b8356d80c4e0fb85604051611bbd91906138c1565b60405180910390a4505050565b612710811115611bd957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c4657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cb257600080fd5b60006012600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16827f9656b5c78984fe07c333cefb2cb25b54534c255574a6506e2a042e2e574273eb8360030154604051611d7091906138c1565b60405180910390a36000816003015490506040518060800160405280600015158152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e94573d6000803e3d6000fd5b50505050565b6060600e805480602002602001604051908101604052809291908181526020018280548015611ee857602002820191906000526020600020905b815481526020019060010190808311611ed4575b5050505050905090565b600d6020528060005260406000206000915090505481565b612710821115611f1957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600c600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f8457600080fd5b60003390506000601260008581526020019081526020016000209050600081600301541415611fb257600080fd5b8281600301541015611fc357600080fd5b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061208990613b06565b9190505550600d60008260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061210290613b62565b91905055508060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516121899190613824565b60405180910390a36040518060a001604052806000151581526020018581526020018260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152506011600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506000816003015490506040518060800160405280600015158152602001868152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600087815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015590505080601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461240a9190613957565b925050819055508160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16867f6d1621bf4e378db6a3b37f46c49f217c521a286c073e7ba618d1045b393759708460405161249391906138c1565b60405180910390a45050505050565b60126020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b6000600b54905090565b6005805461251690613b30565b80601f016020809104026020016040519081016040528092919081815260200182805461254290613b30565b801561258f5780601f106125645761010080835404028352916020019161258f565b820191906000526020600020905b81548152906001019060200180831161257257829003601f168201915b505050505081565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461260957600080fd5b600a60009054906101000a900460ff161561262357600080fd5b6000600b541415612669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612660906138a1565b60405180910390fd5b61271081111561267857600080fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc90613861565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a6057600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285f57600d6000600c600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061285590613b06565b9190505550612890565b6009600081548092919061287290613b06565b9190505550600b600081548092919061288a90613b06565b91905055505b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e819080600181540180825580915050600190039060005260206000200160009091909190915055600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061295b90613b62565b9190505550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808273ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba60405160405180910390a35b5050565b600a60009054906101000a900460ff1681565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae857600080fd5b612710811115612af757600080fd5b6011600082815260200190815260200160002060000160009054906101000a900460ff1615612b2a57612b2981612e83565b5b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190612bcc90613b06565b9190505550600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190612c2190613b62565b91905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001604051612c849190613824565b60405180910390a3808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe4782a9260e28f20f6c01097a32edda3a69f4e34d48a8eb897adff09c331261360405160405180910390a460006012600083815260200190815260200160002090508273ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612e7e578060030154601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612da99190613957565b925050819055506040518060800160405280600015158152602001838152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050505b505050565b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612eee57600080fd5b612710811115612efd57600080fd5b6040518060a001604052806000151581526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152506011600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050807f5304aea8b7f10d99d6ee937575e7ca4c9b97e703c9ac18114e79c86092397c0b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130c957600080fd5b60003414156130d757600080fd5b66b1a2bc2ec500003410156130eb57600080fd5b6127108111156130fa57600080fd5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516131439061371f565b60006040518083038185875af1925050503d8060008114613180576040519150601f19603f3d011682016040523d82523d6000602084013e613185565b606091505b5091509150816131ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c190613881565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461342957600073ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461332457600d6000600c600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061331a90613b06565b919050555061333d565b6009600081548092919061333790613b06565b91905055505b83600c600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906133df90613b62565b9190505550828473ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba60405160405180910390a35b50505050565b60136020528060005260406000206000915090505481565b60008135905061345681613cc7565b92915050565b60008135905061346b81613cde565b92915050565b60006020828403121561348357600080fd5b600061349184828501613447565b91505092915050565b600080604083850312156134ad57600080fd5b60006134bb85828601613447565b92505060206134cc8582860161345c565b9150509250929050565b6000602082840312156134e857600080fd5b60006134f68482850161345c565b91505092915050565b6000806040838503121561351257600080fd5b60006135208582860161345c565b92505060206135318582860161345c565b9150509250929050565b60008060006060848603121561355057600080fd5b600061355e8682870161345c565b935050602061356f8682870161345c565b925050604061358086828701613447565b9150509250925092565b600061359683836136f2565b60208301905092915050565b6135ab81613a6c565b82525050565b60006135bc82613907565b6135c6818561392a565b93506135d1836138f7565b8060005b838110156136025781516135e9888261358a565b97506135f48361391d565b9250506001810190506135d5565b5085935050505092915050565b61361881613a7e565b82525050565b61362781613ac1565b82525050565b600061363882613912565b6136428185613946565b9350613652818560208601613ad3565b61365b81613c38565b840191505092915050565b6000613673601b83613946565b915061367e82613c49565b602082019050919050565b6000613696601483613946565b91506136a182613c72565b602082019050919050565b60006136b960008361393b565b91506136c482613c9b565b600082019050919050565b60006136dc601583613946565b91506136e782613c9e565b602082019050919050565b6136fb81613aaa565b82525050565b61370a81613aaa565b82525050565b61371981613ab4565b82525050565b600061372a826136ac565b9150819050919050565b600060208201905061374960008301846135a2565b92915050565b6000602082019050818103600083015261376981846135b1565b905092915050565b6000602082019050613786600083018461360f565b92915050565b60006080820190506137a1600083018761360f565b6137ae6020830186613701565b6137bb60408301856135a2565b6137c86060830184613701565b95945050505050565b600060a0820190506137e6600083018861360f565b6137f36020830187613701565b61380060408301866135a2565b61380d6060830185613701565b61381a60808301846135a2565b9695505050505050565b6000602082019050613839600083018461361e565b92915050565b60006020820190508181036000830152613859818461362d565b905092915050565b6000602082019050818103600083015261387a81613666565b9050919050565b6000602082019050818103600083015261389a81613689565b9050919050565b600060208201905081810360008301526138ba816136cf565b9050919050565b60006020820190506138d66000830184613701565b92915050565b60006020820190506138f16000830184613710565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061396282613aaa565b915061396d83613aaa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139a2576139a1613bab565b5b828201905092915050565b60006139b882613aaa565b91506139c383613aaa565b9250826139d3576139d2613bda565b5b828204905092915050565b60006139e982613aaa565b91506139f483613aaa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a2d57613a2c613bab565b5b828202905092915050565b6000613a4382613aaa565b9150613a4e83613aaa565b925082821015613a6157613a60613bab565b5b828203905092915050565b6000613a7782613a8a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613acc82613aaa565b9050919050565b60005b83811015613af1578082015181840152602081019050613ad6565b83811115613b00576000848401525b50505050565b6000613b1182613aaa565b91506000821415613b2557613b24613bab565b5b600182039050919050565b60006002820490506001821680613b4857607f821691505b60208210811415613b5c57613b5b613c09565b5b50919050565b6000613b6d82613aaa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ba057613b9f613bab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f416c726561647920636c61696d65642061206672656520656767210000000000600082015250565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b50565b7f4e6f206d6f7265206672656520656773206c6566740000000000000000000000600082015250565b613cd081613a6c565b8114613cdb57600080fd5b50565b613ce781613aaa565b8114613cf257600080fd5b5056fea26469706673582212201d9de02b0fe0124832554e23012b59b71e12efc9632d37fc3a9ed6c2356caceb64736f6c6343000804003361393837343033356131376232313236363066613639613666623762666137666561613033653838383235343130666231333132346334316136626637306362

Deployed Bytecode

0x6080604052600436106101d85760003560e01c8063643f3a3c11610102578063a7d755c411610095578063e4f3670a11610064578063e4f3670a1461068e578063e6c52df8146106b7578063eb89ea49146106e0578063f3f43703146106fc576101d8565b8063a7d755c4146105e4578063cb028a681461060f578063d8077f9814610638578063e25bcddd14610663576101d8565b8063766562c9116100d1578063766562c9146105255780638b8a82241461054e5780638d1831c11461058e57806395d89b41146105b9576101d8565b8063643f3a3c1461046b57806368b4c3bd146104945780637063f2de146104bd57806370a08231146104e8576101d8565b8063458b934d1161017a57806353aea0bb1161014957806353aea0bb146103be5780635a3b7e42146103da5780635b69a581146104055780635ead565214610442576101d8565b8063458b934d146102f95780634c33efa71461033a5780634d2582bd1461035657806351605d8014610393576101d8565b806328843368116101b6578063288433681461024f578063313ce5671461027a5780633ccfd60b146102a557806340fe3d36146102bc576101d8565b806306fdde03146101dd57806318160ddd1461020857806326d4854d14610233575b600080fd5b3480156101e957600080fd5b506101f2610739565b6040516101ff919061383f565b60405180910390f35b34801561021457600080fd5b5061021d6107c7565b60405161022a91906138c1565b60405180910390f35b61024d6004803603810190610248919061349a565b6107cd565b005b34801561025b57600080fd5b50610264610ba0565b60405161027191906138c1565b60405180910390f35b34801561028657600080fd5b5061028f610ba6565b60405161029c91906138dc565b60405180910390f35b3480156102b157600080fd5b506102ba610bb9565b005b3480156102c857600080fd5b506102e360048036038101906102de91906134d6565b610d24565b6040516102f09190613734565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906134d6565b610d63565b6040516103319594939291906137d1565b60405180910390f35b610354600480360381019061034f91906134d6565b610de6565b005b34801561036257600080fd5b5061037d600480360381019061037891906134d6565b61136b565b60405161038a9190613734565b60405180910390f35b34801561039f57600080fd5b506103a861139e565b6040516103b5919061383f565b60405180910390f35b6103d860048036038101906103d391906134d6565b61142c565b005b3480156103e657600080fd5b506103ef6116f4565b6040516103fc919061383f565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190613471565b611782565b6040516104399190613771565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906134ff565b6117a2565b005b34801561047757600080fd5b50610492600480360381019061048d919061353b565b6119b6565b005b3480156104a057600080fd5b506104bb60048036038101906104b691906134d6565b611bca565b005b3480156104c957600080fd5b506104d2611e9a565b6040516104df919061374f565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613471565b611ef2565b60405161051c91906138c1565b60405180910390f35b34801561053157600080fd5b5061054c600480360381019061054791906134ff565b611f0a565b005b34801561055a57600080fd5b50610575600480360381019061057091906134d6565b6124a2565b604051610585949392919061378c565b60405180910390f35b34801561059a57600080fd5b506105a36124ff565b6040516105b091906138c1565b60405180910390f35b3480156105c557600080fd5b506105ce612509565b6040516105db919061383f565b60405180910390f35b3480156105f057600080fd5b506105f9612597565b60405161060691906138c1565b60405180910390f35b34801561061b57600080fd5b506106366004803603810190610631919061349a565b61259d565b005b34801561064457600080fd5b5061064d612a64565b60405161065a9190613771565b60405180910390f35b34801561066f57600080fd5b50610678612a77565b60405161068591906138c1565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b0919061349a565b612a7d565b005b3480156106c357600080fd5b506106de60048036038101906106d991906134d6565b612e83565b005b6106fa60048036038101906106f5919061349a565b61305d565b005b34801561070857600080fd5b50610723600480360381019061071e9190613471565b61342f565b60405161073091906138c1565b60405180910390f35b6004805461074690613b30565b80601f016020809104026020016040519081016040528092919081815260200182805461077290613b30565b80156107bf5780601f10610794576101008083540402835291602001916107bf565b820191906000526020600020905b8154815290600101906020018083116107a257829003601f168201915b505050505081565b60075481565b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083957600080fd5b600034141561084757600080fd5b67016345785d8a000034101561085c57600080fd5b61271081111561086b57600080fd5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516108b49061371f565b60006040518083038185875af1925050503d80600081146108f1576040519150601f19603f3d011682016040523d82523d6000602084013e6108f6565b606091505b50915091508161093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093290613881565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9a57600073ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9557600d6000600c600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610a8b90613b06565b9190505550610aae565b60096000815480929190610aa890613b06565b91905055505b83600c600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610b5090613b62565b9190505550828473ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba60405160405180910390a35b50505050565b60095481565b600660009054906101000a900460ff1681565b6000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006003606483610c0e91906139ad565b610c1891906139de565b905060008183610c289190613a38565b90506000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610cd7573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d1e573d6000803e3d6000fd5b50505050565b600f8181548110610d3457600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000601160008381526020019081526020016000209050612710821115610e0c57600080fd5b8060000160009054906101000a900460ff16610e2757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610ed557503373ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ede57600080fd5b8060030154341015610eef57600080fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7e57600080fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905033600c600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061104990613b06565b9190505550600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061109e90613b62565b91905055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516111019190613824565b60405180910390a361111283612e83565b34601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111619190613957565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847f6d1621bf4e378db6a3b37f46c49f217c521a286c073e7ba618d1045b39375970346040516111c691906138c1565b60405180910390a460006012600085815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611365578060030154601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112909190613957565b925050819055506040518060800160405280600015158152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050505b50505050565b600c6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080546113ab90613b30565b80601f01602080910402602001604051908101604052809291908181526020018280546113d790613b30565b80156114245780601f106113f957610100808354040283529160200191611424565b820191906000526020600020905b81548152906001019060200180831161140757829003601f168201915b505050505081565b61271081111561143b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114a857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561151457600080fd5b600034141561152257600080fd5b6000601260008381526020019081526020016000209050806003015434101561154a57600080fd5b6000816003015411156115d6578060030154601360008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ce9190613957565b925050819055505b60405180608001604052806001151581526020018381526020013373ffffffffffffffffffffffffffffffffffffffff168152602001348152506012600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050503373ffffffffffffffffffffffffffffffffffffffff16827f3f4f22711c86d9a1cd524c6074ca3824eb2a3f3611d38ee147288690cbfa32fe346040516116e891906138c1565b60405180910390a35050565b6003805461170190613b30565b80601f016020809104026020016040519081016040528092919081815260200182805461172d90613b30565b801561177a5780601f1061174f5761010080835404028352916020019161177a565b820191906000526020600020905b81548152906001019060200180831161175d57829003601f168201915b505050505081565b60106020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600c600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180d57600080fd5b61271082111561181c57600080fd5b6040518060a001604052806001151581526020018381526020013373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001600073ffffffffffffffffffffffffffffffffffffffff168152506011600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16837f13f68a1cbc6500e40da9e9664df63230b85e35491d8502a631b8356d80c4e0fb846040516119aa91906138c1565b60405180910390a45050565b3373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a2257600080fd5b612710831015611a3157600080fd5b6040518060a001604052806001151581526020018481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152506011600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847f13f68a1cbc6500e40da9e9664df63230b85e35491d8502a631b8356d80c4e0fb85604051611bbd91906138c1565b60405180910390a4505050565b612710811115611bd957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c4657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cb257600080fd5b60006012600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16827f9656b5c78984fe07c333cefb2cb25b54534c255574a6506e2a042e2e574273eb8360030154604051611d7091906138c1565b60405180910390a36000816003015490506040518060800160405280600015158152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e94573d6000803e3d6000fd5b50505050565b6060600e805480602002602001604051908101604052809291908181526020018280548015611ee857602002820191906000526020600020905b815481526020019060010190808311611ed4575b5050505050905090565b600d6020528060005260406000206000915090505481565b612710821115611f1957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600c600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f8457600080fd5b60003390506000601260008581526020019081526020016000209050600081600301541415611fb257600080fd5b8281600301541015611fc357600080fd5b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061208990613b06565b9190505550600d60008260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061210290613b62565b91905055508060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516121899190613824565b60405180910390a36040518060a001604052806000151581526020018581526020018260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152506011600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506000816003015490506040518060800160405280600015158152602001868152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600087815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015590505080601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461240a9190613957565b925050819055508160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16867f6d1621bf4e378db6a3b37f46c49f217c521a286c073e7ba618d1045b393759708460405161249391906138c1565b60405180910390a45050505050565b60126020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b6000600b54905090565b6005805461251690613b30565b80601f016020809104026020016040519081016040528092919081815260200182805461254290613b30565b801561258f5780601f106125645761010080835404028352916020019161258f565b820191906000526020600020905b81548152906001019060200180831161257257829003601f168201915b505050505081565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461260957600080fd5b600a60009054906101000a900460ff161561262357600080fd5b6000600b541415612669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612660906138a1565b60405180910390fd5b61271081111561267857600080fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc90613861565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a6057600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285f57600d6000600c600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061285590613b06565b9190505550612890565b6009600081548092919061287290613b06565b9190505550600b600081548092919061288a90613b06565b91905055505b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e819080600181540180825580915050600190039060005260206000200160009091909190915055600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061295b90613b62565b9190505550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808273ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba60405160405180910390a35b5050565b600a60009054906101000a900460ff1681565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae857600080fd5b612710811115612af757600080fd5b6011600082815260200190815260200160002060000160009054906101000a900460ff1615612b2a57612b2981612e83565b5b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190612bcc90613b06565b9190505550600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190612c2190613b62565b91905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001604051612c849190613824565b60405180910390a3808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe4782a9260e28f20f6c01097a32edda3a69f4e34d48a8eb897adff09c331261360405160405180910390a460006012600083815260200190815260200160002090508273ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612e7e578060030154601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612da99190613957565b925050819055506040518060800160405280600015158152602001838152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506012600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050505b505050565b3373ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612eee57600080fd5b612710811115612efd57600080fd5b6040518060a001604052806000151581526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152506011600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050807f5304aea8b7f10d99d6ee937575e7ca4c9b97e703c9ac18114e79c86092397c0b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130c957600080fd5b60003414156130d757600080fd5b66b1a2bc2ec500003410156130eb57600080fd5b6127108111156130fa57600080fd5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516131439061371f565b60006040518083038185875af1925050503d8060008114613180576040519150601f19603f3d011682016040523d82523d6000602084013e613185565b606091505b5091509150816131ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c190613881565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461342957600073ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461332457600d6000600c600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061331a90613b06565b919050555061333d565b6009600081548092919061333790613b06565b91905055505b83600c600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906133df90613b62565b9190505550828473ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba60405160405180910390a35b50505050565b60136020528060005260406000206000915090505481565b60008135905061345681613cc7565b92915050565b60008135905061346b81613cde565b92915050565b60006020828403121561348357600080fd5b600061349184828501613447565b91505092915050565b600080604083850312156134ad57600080fd5b60006134bb85828601613447565b92505060206134cc8582860161345c565b9150509250929050565b6000602082840312156134e857600080fd5b60006134f68482850161345c565b91505092915050565b6000806040838503121561351257600080fd5b60006135208582860161345c565b92505060206135318582860161345c565b9150509250929050565b60008060006060848603121561355057600080fd5b600061355e8682870161345c565b935050602061356f8682870161345c565b925050604061358086828701613447565b9150509250925092565b600061359683836136f2565b60208301905092915050565b6135ab81613a6c565b82525050565b60006135bc82613907565b6135c6818561392a565b93506135d1836138f7565b8060005b838110156136025781516135e9888261358a565b97506135f48361391d565b9250506001810190506135d5565b5085935050505092915050565b61361881613a7e565b82525050565b61362781613ac1565b82525050565b600061363882613912565b6136428185613946565b9350613652818560208601613ad3565b61365b81613c38565b840191505092915050565b6000613673601b83613946565b915061367e82613c49565b602082019050919050565b6000613696601483613946565b91506136a182613c72565b602082019050919050565b60006136b960008361393b565b91506136c482613c9b565b600082019050919050565b60006136dc601583613946565b91506136e782613c9e565b602082019050919050565b6136fb81613aaa565b82525050565b61370a81613aaa565b82525050565b61371981613ab4565b82525050565b600061372a826136ac565b9150819050919050565b600060208201905061374960008301846135a2565b92915050565b6000602082019050818103600083015261376981846135b1565b905092915050565b6000602082019050613786600083018461360f565b92915050565b60006080820190506137a1600083018761360f565b6137ae6020830186613701565b6137bb60408301856135a2565b6137c86060830184613701565b95945050505050565b600060a0820190506137e6600083018861360f565b6137f36020830187613701565b61380060408301866135a2565b61380d6060830185613701565b61381a60808301846135a2565b9695505050505050565b6000602082019050613839600083018461361e565b92915050565b60006020820190508181036000830152613859818461362d565b905092915050565b6000602082019050818103600083015261387a81613666565b9050919050565b6000602082019050818103600083015261389a81613689565b9050919050565b600060208201905081810360008301526138ba816136cf565b9050919050565b60006020820190506138d66000830184613701565b92915050565b60006020820190506138f16000830184613710565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061396282613aaa565b915061396d83613aaa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139a2576139a1613bab565b5b828201905092915050565b60006139b882613aaa565b91506139c383613aaa565b9250826139d3576139d2613bda565b5b828204905092915050565b60006139e982613aaa565b91506139f483613aaa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a2d57613a2c613bab565b5b828202905092915050565b6000613a4382613aaa565b9150613a4e83613aaa565b925082821015613a6157613a60613bab565b5b828203905092915050565b6000613a7782613a8a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613acc82613aaa565b9050919050565b60005b83811015613af1578082015181840152602081019050613ad6565b83811115613b00576000848401525b50505050565b6000613b1182613aaa565b91506000821415613b2557613b24613bab565b5b600182039050919050565b60006002820490506001821680613b4857607f821691505b60208210811415613b5c57613b5b613c09565b5b50919050565b6000613b6d82613aaa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ba057613b9f613bab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f416c726561647920636c61696d65642061206672656520656767210000000000600082015250565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b50565b7f4e6f206d6f7265206672656520656773206c6566740000000000000000000000600082015250565b613cd081613a6c565b8114613cdb57600080fd5b50565b613ce781613aaa565b8114613cf257600080fd5b5056fea26469706673582212201d9de02b0fe0124832554e23012b59b71e12efc9632d37fc3a9ed6c2356caceb64736f6c63430008040033

Deployed Bytecode Sourcemap

529:11005:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;961:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5120:718;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1034:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;935:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9107:400;;;;;;;;;;;;;:::i;:::-;;1398:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1902:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;7874:1227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1207:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;631:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9513:592;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;845:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1434:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7028:396;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7430:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10904:518;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11428:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1315:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10111:787;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1998:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4288:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;910:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;992:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3469:813;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1112:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1156:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5921:775;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6702:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4400:714;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2043:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;887:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;961:26::-;;;;:::o;5120:718::-;5245:3;5206:43;;:17;:27;5224:8;5206:27;;;;;;;;;;;;;;;;;;;;;:43;;;5198:52;;;;;;5278:1;5265:9;:14;;5257:23;;;;;;5308:18;5295:9;:31;;5287:40;;;;;;5354:5;5342:8;:17;;5334:26;;;;;;5370:9;5381:17;5410:10;;;;;;;;;;;5402:24;;5434:9;5402:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5369:93;;;;5477:4;5469:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;5550:3;5519:34;;:17;:27;5537:8;5519:27;;;;;;;;;;;;;;;;;;;;;:34;;;5515:318;;5607:3;5568:43;;:17;:27;5586:8;5568:27;;;;;;;;;;;;;;;;;;;;;:43;;;5564:160;;5624:9;:38;5634:17;:27;5652:8;5634:27;;;;;;;;;;;;;;;;;;;;;5624:38;;;;;;;;;;;;;;;;:40;;;;;;;;;:::i;:::-;;;;;;5564:160;;;5691:21;;:23;;;;;;;;;:::i;:::-;;;;;;5564:160;5762:3;5732:17;:27;5750:8;5732:27;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;5774:9;:14;5784:3;5774:14;;;;;;;;;;;;;;;;:16;;;;;;;;;:::i;:::-;;;;;;5816:8;5811:3;5804:21;;;;;;;;;;;;5515:318;5120:718;;;;:::o;1034:40::-;;;;:::o;935:21::-;;;;;;;;;;;;;:::o;9107:400::-;9141:14;9158:18;:30;9177:10;9158:30;;;;;;;;;;;;;;;;9141:47;;9195:11;9226:1;9219:3;9210:6;:12;;;;:::i;:::-;9209:18;;;;:::i;:::-;9195:32;;9234:22;9268:3;9259:6;:12;;;;:::i;:::-;9234:37;;9409:1;9376:18;:30;9395:10;9376:30;;;;;;;;;;;;;;;:34;;;;9425:10;;;;;;;;;;;9417:28;;:33;9446:3;9417:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9465:10;9457:28;;:44;9486:14;9457:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:400;;;:::o;1398:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1902:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7874:1227::-;7930:19;7952:18;:28;7971:8;7952:28;;;;;;;;;;;7930:50;;8007:5;7995:8;:17;;7987:26;;;;;;8028:5;:15;;;;;;;;;;;;8020:24;;;;;;8155:3;8127:32;;:5;:16;;;;;;;;;;;;:32;;;:66;;;;8183:10;8163:30;;:5;:16;;;;;;;;;;;;:30;;;8127:66;8119:75;;;;;;8266:5;:14;;;8253:9;:27;;8245:36;;;;;;8338:17;:27;8356:8;8338:27;;;;;;;;;;;;;;;;;;;;;8322:43;;:5;:12;;;;;;;;;;;;:43;;;8314:52;;;;;;8408:14;8425:5;:12;;;;;;;;;;;;8408:29;;8476:10;8446:17;:27;8464:8;8446:27;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;8493:9;:17;8503:6;8493:17;;;;;;;;;;;;;;;;:19;;;;;;;;;:::i;:::-;;;;;;8519:9;:21;8529:10;8519:21;;;;;;;;;;;;;;;;:23;;;;;;;;;:::i;:::-;;;;;;8571:10;8554:31;;8563:6;8554:31;;;8583:1;8554:31;;;;;;:::i;:::-;;;;;;;;8594:28;8613:8;8594:18;:28::i;:::-;8659:9;8629:18;:26;8648:6;8629:26;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;8719:10;8680:50;;8711:6;8680:50;;8690:8;8680:50;8700:9;8680:50;;;;;;:::i;:::-;;;;;;;;8862:15;8880:7;:17;8888:8;8880:17;;;;;;;;;;;8862:35;;8922:10;8908:24;;:3;:10;;;;;;;;;;;;:24;;;8904:192;;;9013:3;:9;;;8979:18;:30;8998:10;8979:30;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;9051:37;;;;;;;;9055:5;9051:37;;;;;;9062:8;9051:37;;;;9080:3;9051:37;;;;;;9086:1;9051:37;;;9031:7;:17;9039:8;9031:17;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:192;7874:1227;;;;:::o;1207:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;631:97::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9513:592::-;9597:5;9585:8;:17;;9577:26;;;;;;9657:3;9618:43;;:17;:27;9636:8;9618:27;;;;;;;;;;;;;;;;;;;;;:43;;;;9610:52;;;;;;9708:10;9677:41;;:17;:27;9695:8;9677:27;;;;;;;;;;;;;;;;;;;;;:41;;;;9669:50;;;;;;9747:1;9734:9;:14;;9726:23;;;;;;9756:20;9779:7;:17;9787:8;9779:17;;;;;;;;;;;9756:40;;9824:8;:14;;;9811:9;:27;;9803:36;;;;;;9867:1;9850:8;:14;;;:18;9846:127;;;9951:8;:14;;;9912:18;:35;9931:8;:15;;;;;;;;;;;;9912:35;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;9846:127;9999:42;;;;;;;;10003:4;9999:42;;;;;;10009:8;9999:42;;;;10019:10;9999:42;;;;;;10031:9;9999:42;;;9979:7;:17;9987:8;9979:17;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10088:10;10053:46;;10067:8;10053:46;10077:9;10053:46;;;;;;:::i;:::-;;;;;;;;9513:592;;:::o;845:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1434:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;7028:396::-;7151:10;7120:41;;:17;:27;7138:8;7120:27;;;;;;;;;;;;;;;;;;;;;:41;;;7112:50;;;;;;7189:5;7177:8;:17;;7169:26;;;;;;7233:108;;;;;;;;7247:4;7233:108;;;;;;7260:8;7233:108;;;;7277:10;7233:108;;;;;;7296:17;7233:108;;;;7330:3;7233:108;;;;;7202:18;:28;7221:8;7202:28;;;;;;;;;;;:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7407:10;7353:65;;7401:3;7353:65;;7364:8;7353:65;7374:17;7353:65;;;;;;:::i;:::-;;;;;;;;7028:396;;:::o;7430:438::-;7601:10;7570:41;;:17;:27;7588:8;7570:27;;;;;;;;;;;;;;;;;;;;;:41;;;;7562:50;;;;;;7639:5;7627:8;:17;;7619:26;;;;;;7683:105;;;;;;;;7697:4;7683:105;;;;;;7710:8;7683:105;;;;7727:10;7683:105;;;;;;7746:17;7683:105;;;;7772:9;7683:105;;;;;7652:18;:28;7671:8;7652:28;;;;;;;;;;;:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7851:10;7800:62;;7840:9;7800:62;;7811:8;7800:62;7821:17;7800:62;;;;;;:::i;:::-;;;;;;;;7430:438;;;:::o;10904:518::-;10983:5;10971:8;:17;;10963:26;;;;;;11043:3;11004:43;;:17;:27;11022:8;11004:27;;;;;;;;;;;;;;;;;;;;;:43;;;;10996:52;;;;;;11094:10;11063:41;;:17;:27;11081:8;11063:27;;;;;;;;;;;;;;;;;;;;;:41;;;;11055:50;;;;;;11112:15;11130:7;:17;11138:8;11130:17;;;;;;;;;;;11112:35;;11176:10;11162:24;;:3;:10;;;;;;;;;;;;:24;;;11154:33;;;;;;11236:10;11199:48;;11215:8;11199:48;11225:3;:9;;;11199:48;;;;;;:::i;:::-;;;;;;;;11254:14;11271:3;:9;;;11254:26;;11307:37;;;;;;;;11311:5;11307:37;;;;;;11318:8;11307:37;;;;11336:3;11307:37;;;;;;11342:1;11307:37;;;11287:7;:17;11295:8;11287:17;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11388:10;11380:28;;:36;11409:6;11380:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10904:518;;;:::o;11428:103::-;11478:16;11510:15;11503:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11428:103;:::o;1315:44::-;;;;;;;;;;;;;;;;;:::o;10111:787::-;10206:5;10194:8;:17;;10186:26;;;;;;10258:10;10227:41;;:17;:27;10245:8;10227:27;;;;;;;;;;;;;;;;;;;;;:41;;;10219:50;;;;;;10276:14;10293:10;10276:27;;10310:15;10328:7;:17;10336:8;10328:17;;;;;;;;;;;10310:35;;10373:1;10360:3;:9;;;:14;;10352:23;;;;;;10403:8;10390:3;:9;;;:21;;10382:30;;;;;;10451:3;:10;;;;;;;;;;;;10421:17;:27;10439:8;10421:27;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10468:9;:17;10478:6;10468:17;;;;;;;;;;;;;;;;:19;;;;;;;;;:::i;:::-;;;;;;10494:9;:21;10504:3;:10;;;;;;;;;;;;10494:21;;;;;;;;;;;;;;;;:23;;;;;;;;;:::i;:::-;;;;;;10546:3;:10;;;;;;;;;;;;10529:31;;10538:6;10529:31;;;10558:1;10529:31;;;;;;:::i;:::-;;;;;;;;10600:93;;;;;;;;10614:5;10600:93;;;;;;10628:8;10600:93;;;;10645:3;:10;;;;;;;;;;;;10600:93;;;;;;10664:1;10600:93;;;;10682:3;10600:93;;;;;10569:18;:28;10588:8;10569:28;;;;;;;;;;;:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10700:14;10717:3;:9;;;10700:26;;10753:37;;;;;;;;10757:5;10753:37;;;;;;10764:8;10753:37;;;;10782:3;10753:37;;;;;;10788:1;10753:37;;;10733:7;:17;10741:8;10733:17;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10827:6;10797:18;:26;10816:6;10797:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10881:3;:10;;;;;;;;;;;;10845:47;;10873:6;10845:47;;10855:8;10845:47;10865:6;10845:47;;;;;;:::i;:::-;;;;;;;;10111:787;;;;;:::o;1998:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4288:106::-;4340:7;4363:25;;4356:32;;4288:106;:::o;910:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;992:35::-;;;;:::o;3469:813::-;3588:3;3549:43;;:17;:27;3567:8;3549:27;;;;;;;;;;;;;;;;;;;;;:43;;;3541:52;;;;;;3609:19;;;;;;;;;;;3608:20;3600:29;;;;;;3673:1;3644:25;;:30;;3636:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3727:5;3715:8;:17;;3707:26;;;;;;3749:18;:22;3768:2;3749:22;;;;;;;;;;;;;;;;;;;;;;;;;3748:23;3740:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;3847:2;3816:33;;:17;:27;3834:8;3816:27;;;;;;;;;;;;;;;;;;;;;:33;;;3812:465;;3903:3;3864:43;;:17;:27;3882:8;3864:27;;;;;;;;;;;;;;;;;;;;;:43;;;3860:198;;3920:9;:38;3930:17;:27;3948:8;3930:27;;;;;;;;;;;;;;;;;;;;;3920:38;;;;;;;;;;;;;;;;:40;;;;;;;;;:::i;:::-;;;;;;3860:198;;;3987:21;;:23;;;;;;;;;:::i;:::-;;;;;;4021:25;;:27;;;;;;;;;:::i;:::-;;;;;;3860:198;4096:2;4066:17;:27;4084:8;4066:27;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;4107:15;4128:8;4107:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4146:9;:13;4156:2;4146:13;;;;;;;;;;;;;;;;:15;;;;;;;;;:::i;:::-;;;;;;4172:14;4192:2;4172:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4229:4;4204:18;:22;4223:2;4204:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4260:8;4256:2;4249:20;;;;;;;;;;;;3812:465;3469:813;;:::o;1112:39::-;;;;;;;;;;;;;:::o;1156:44::-;;;;:::o;5921:775::-;6025:10;5994:41;;:17;:27;6012:8;5994:27;;;;;;;;;;;;;;;;;;;;;:41;;;5986:50;;;;;;6063:5;6051:8;:17;;6043:26;;;;;;6080:18;:28;6099:8;6080:28;;;;;;;;;;;:38;;;;;;;;;;;;6076:89;;;6129:28;6148:8;6129:18;:28::i;:::-;6076:89;6201:2;6171:17;:27;6189:8;6171:27;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6210:9;:21;6220:10;6210:21;;;;;;;;;;;;;;;;:23;;;;;;;;;:::i;:::-;;;;;;6240:9;:13;6250:2;6240:13;;;;;;;;;;;;;;;;:15;;;;;;;;;:::i;:::-;;;;;;6288:2;6267:27;;6276:10;6267:27;;;6292:1;6267:27;;;;;;:::i;:::-;;;;;;;;6334:8;6330:2;6306:37;;6318:10;6306:37;;;;;;;;;;;;6473:15;6491:7;:17;6499:8;6491:17;;;;;;;;;;;6473:35;;6533:2;6519:16;;:3;:10;;;;;;;;;;;;:16;;;6515:176;;;6608:3;:9;;;6582:18;:22;6601:2;6582:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;6646:37;;;;;;;;6650:5;6646:37;;;;;;6657:8;6646:37;;;;6675:3;6646:37;;;;;;6681:1;6646:37;;;6626:7;:17;6634:8;6626:17;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6515:176;5921:775;;;:::o;6702:320::-;6801:10;6770:41;;:17;:27;6788:8;6770:27;;;;;;;;;;;;;;;;;;;;;:41;;;6762:50;;;;;;6839:5;6827:8;:17;;6819:26;;;;;;6883:93;;;;;;;;6897:5;6883:93;;;;;;6911:8;6883:93;;;;6928:10;6883:93;;;;;;6947:1;6883:93;;;;6965:3;6883:93;;;;;6852:18;:28;6871:8;6852:28;;;;;;;;;;;:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7007:8;6988:28;;;;;;;;;;6702:320;:::o;4400:714::-;4522:3;4483:43;;:17;:27;4501:8;4483:27;;;;;;;;;;;;;;;;;;;;;:43;;;4475:52;;;;;;4555:1;4542:9;:14;;4534:23;;;;;;4585:17;4572:9;:30;;4564:39;;;;;;4630:5;4618:8;:17;;4610:26;;;;;;4646:9;4657:17;4686:10;;;;;;;;;;;4678:24;;4710:9;4678:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4645:93;;;;4753:4;4745:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;4826:3;4795:34;;:17;:27;4813:8;4795:27;;;;;;;;;;;;;;;;;;;;;:34;;;4791:318;;4883:3;4844:43;;:17;:27;4862:8;4844:27;;;;;;;;;;;;;;;;;;;;;:43;;;4840:160;;4900:9;:38;4910:17;:27;4928:8;4910:27;;;;;;;;;;;;;;;;;;;;;4900:38;;;;;;;;;;;;;;;;:40;;;;;;;;;:::i;:::-;;;;;;4840:160;;;4967:21;;:23;;;;;;;;;:::i;:::-;;;;;;4840:160;5038:3;5008:17;:27;5026:8;5008:27;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;5050:9;:14;5060:3;5050:14;;;;;;;;;;;;;;;;:16;;;;;;;;;:::i;:::-;;;;;;5092:8;5087:3;5080:21;;;;;;;;;;;;4791:318;4400:714;;;;:::o;2043:53::-;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;633:6;641;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:262::-;1037:6;1086:2;1074:9;1065:7;1061:23;1057:32;1054:2;;;1102:1;1099;1092:12;1054:2;1145:1;1170:53;1215:7;1206:6;1195:9;1191:22;1170:53;:::i;:::-;1160:63;;1116:117;1044:196;;;;:::o;1246:407::-;1314:6;1322;1371:2;1359:9;1350:7;1346:23;1342:32;1339:2;;;1387:1;1384;1377:12;1339:2;1430:1;1455:53;1500:7;1491:6;1480:9;1476:22;1455:53;:::i;:::-;1445:63;;1401:117;1557:2;1583:53;1628:7;1619:6;1608:9;1604:22;1583:53;:::i;:::-;1573:63;;1528:118;1329:324;;;;;:::o;1659:552::-;1736:6;1744;1752;1801:2;1789:9;1780:7;1776:23;1772:32;1769:2;;;1817:1;1814;1807:12;1769:2;1860:1;1885:53;1930:7;1921:6;1910:9;1906:22;1885:53;:::i;:::-;1875:63;;1831:117;1987:2;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1958:118;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1759:452;;;;;:::o;2217:179::-;2286:10;2307:46;2349:3;2341:6;2307:46;:::i;:::-;2385:4;2380:3;2376:14;2362:28;;2297:99;;;;:::o;2402:118::-;2489:24;2507:5;2489:24;:::i;:::-;2484:3;2477:37;2467:53;;:::o;2556:732::-;2675:3;2704:54;2752:5;2704:54;:::i;:::-;2774:86;2853:6;2848:3;2774:86;:::i;:::-;2767:93;;2884:56;2934:5;2884:56;:::i;:::-;2963:7;2994:1;2979:284;3004:6;3001:1;2998:13;2979:284;;;3080:6;3074:13;3107:63;3166:3;3151:13;3107:63;:::i;:::-;3100:70;;3193:60;3246:6;3193:60;:::i;:::-;3183:70;;3039:224;3026:1;3023;3019:9;3014:14;;2979:284;;;2983:14;3279:3;3272:10;;2680:608;;;;;;;:::o;3294:109::-;3375:21;3390:5;3375:21;:::i;:::-;3370:3;3363:34;3353:50;;:::o;3409:147::-;3504:45;3543:5;3504:45;:::i;:::-;3499:3;3492:58;3482:74;;:::o;3562:364::-;3650:3;3678:39;3711:5;3678:39;:::i;:::-;3733:71;3797:6;3792:3;3733:71;:::i;:::-;3726:78;;3813:52;3858:6;3853:3;3846:4;3839:5;3835:16;3813:52;:::i;:::-;3890:29;3912:6;3890:29;:::i;:::-;3885:3;3881:39;3874:46;;3654:272;;;;;:::o;3932:366::-;4074:3;4095:67;4159:2;4154:3;4095:67;:::i;:::-;4088:74;;4171:93;4260:3;4171:93;:::i;:::-;4289:2;4284:3;4280:12;4273:19;;4078:220;;;:::o;4304:366::-;4446:3;4467:67;4531:2;4526:3;4467:67;:::i;:::-;4460:74;;4543:93;4632:3;4543:93;:::i;:::-;4661:2;4656:3;4652:12;4645:19;;4450:220;;;:::o;4676:398::-;4835:3;4856:83;4937:1;4932:3;4856:83;:::i;:::-;4849:90;;4948:93;5037:3;4948:93;:::i;:::-;5066:1;5061:3;5057:11;5050:18;;4839:235;;;:::o;5080:366::-;5222:3;5243:67;5307:2;5302:3;5243:67;:::i;:::-;5236:74;;5319:93;5408:3;5319:93;:::i;:::-;5437:2;5432:3;5428:12;5421:19;;5226:220;;;:::o;5452:108::-;5529:24;5547:5;5529:24;:::i;:::-;5524:3;5517:37;5507:53;;:::o;5566:118::-;5653:24;5671:5;5653:24;:::i;:::-;5648:3;5641:37;5631:53;;:::o;5690:112::-;5773:22;5789:5;5773:22;:::i;:::-;5768:3;5761:35;5751:51;;:::o;5808:379::-;5992:3;6014:147;6157:3;6014:147;:::i;:::-;6007:154;;6178:3;6171:10;;5996:191;;;:::o;6193:222::-;6286:4;6324:2;6313:9;6309:18;6301:26;;6337:71;6405:1;6394:9;6390:17;6381:6;6337:71;:::i;:::-;6291:124;;;;:::o;6421:373::-;6564:4;6602:2;6591:9;6587:18;6579:26;;6651:9;6645:4;6641:20;6637:1;6626:9;6622:17;6615:47;6679:108;6782:4;6773:6;6679:108;:::i;:::-;6671:116;;6569:225;;;;:::o;6800:210::-;6887:4;6925:2;6914:9;6910:18;6902:26;;6938:65;7000:1;6989:9;6985:17;6976:6;6938:65;:::i;:::-;6892:118;;;;:::o;7016:541::-;7187:4;7225:3;7214:9;7210:19;7202:27;;7239:65;7301:1;7290:9;7286:17;7277:6;7239:65;:::i;:::-;7314:72;7382:2;7371:9;7367:18;7358:6;7314:72;:::i;:::-;7396;7464:2;7453:9;7449:18;7440:6;7396:72;:::i;:::-;7478;7546:2;7535:9;7531:18;7522:6;7478:72;:::i;:::-;7192:365;;;;;;;:::o;7563:652::-;7762:4;7800:3;7789:9;7785:19;7777:27;;7814:65;7876:1;7865:9;7861:17;7852:6;7814:65;:::i;:::-;7889:72;7957:2;7946:9;7942:18;7933:6;7889:72;:::i;:::-;7971;8039:2;8028:9;8024:18;8015:6;7971:72;:::i;:::-;8053;8121:2;8110:9;8106:18;8097:6;8053:72;:::i;:::-;8135:73;8203:3;8192:9;8188:19;8179:6;8135:73;:::i;:::-;7767:448;;;;;;;;:::o;8221:238::-;8322:4;8360:2;8349:9;8345:18;8337:26;;8373:79;8449:1;8438:9;8434:17;8425:6;8373:79;:::i;:::-;8327:132;;;;:::o;8465:313::-;8578:4;8616:2;8605:9;8601:18;8593:26;;8665:9;8659:4;8655:20;8651:1;8640:9;8636:17;8629:47;8693:78;8766:4;8757:6;8693:78;:::i;:::-;8685:86;;8583:195;;;;:::o;8784:419::-;8950:4;8988:2;8977:9;8973:18;8965:26;;9037:9;9031:4;9027:20;9023:1;9012:9;9008:17;9001:47;9065:131;9191:4;9065:131;:::i;:::-;9057:139;;8955:248;;;:::o;9209:419::-;9375:4;9413:2;9402:9;9398:18;9390:26;;9462:9;9456:4;9452:20;9448:1;9437:9;9433:17;9426:47;9490:131;9616:4;9490:131;:::i;:::-;9482:139;;9380:248;;;:::o;9634:419::-;9800:4;9838:2;9827:9;9823:18;9815:26;;9887:9;9881:4;9877:20;9873:1;9862:9;9858:17;9851:47;9915:131;10041:4;9915:131;:::i;:::-;9907:139;;9805:248;;;:::o;10059:222::-;10152:4;10190:2;10179:9;10175:18;10167:26;;10203:71;10271:1;10260:9;10256:17;10247:6;10203:71;:::i;:::-;10157:124;;;;:::o;10287:214::-;10376:4;10414:2;10403:9;10399:18;10391:26;;10427:67;10491:1;10480:9;10476:17;10467:6;10427:67;:::i;:::-;10381:120;;;;:::o;10507:132::-;10574:4;10597:3;10589:11;;10627:4;10622:3;10618:14;10610:22;;10579:60;;;:::o;10645:114::-;10712:6;10746:5;10740:12;10730:22;;10719:40;;;:::o;10765:99::-;10817:6;10851:5;10845:12;10835:22;;10824:40;;;:::o;10870:113::-;10940:4;10972;10967:3;10963:14;10955:22;;10945:38;;;:::o;10989:184::-;11088:11;11122:6;11117:3;11110:19;11162:4;11157:3;11153:14;11138:29;;11100:73;;;;:::o;11179:147::-;11280:11;11317:3;11302:18;;11292:34;;;;:::o;11332:169::-;11416:11;11450:6;11445:3;11438:19;11490:4;11485:3;11481:14;11466:29;;11428:73;;;;:::o;11507:305::-;11547:3;11566:20;11584:1;11566:20;:::i;:::-;11561:25;;11600:20;11618:1;11600:20;:::i;:::-;11595:25;;11754:1;11686:66;11682:74;11679:1;11676:81;11673:2;;;11760:18;;:::i;:::-;11673:2;11804:1;11801;11797:9;11790:16;;11551:261;;;;:::o;11818:185::-;11858:1;11875:20;11893:1;11875:20;:::i;:::-;11870:25;;11909:20;11927:1;11909:20;:::i;:::-;11904:25;;11948:1;11938:2;;11953:18;;:::i;:::-;11938:2;11995:1;11992;11988:9;11983:14;;11860:143;;;;:::o;12009:348::-;12049:7;12072:20;12090:1;12072:20;:::i;:::-;12067:25;;12106:20;12124:1;12106:20;:::i;:::-;12101:25;;12294:1;12226:66;12222:74;12219:1;12216:81;12211:1;12204:9;12197:17;12193:105;12190:2;;;12301:18;;:::i;:::-;12190:2;12349:1;12346;12342:9;12331:20;;12057:300;;;;:::o;12363:191::-;12403:4;12423:20;12441:1;12423:20;:::i;:::-;12418:25;;12457:20;12475:1;12457:20;:::i;:::-;12452:25;;12496:1;12493;12490:8;12487:2;;;12501:18;;:::i;:::-;12487:2;12546:1;12543;12539:9;12531:17;;12408:146;;;;:::o;12560:96::-;12597:7;12626:24;12644:5;12626:24;:::i;:::-;12615:35;;12605:51;;;:::o;12662:90::-;12696:7;12739:5;12732:13;12725:21;12714:32;;12704:48;;;:::o;12758:126::-;12795:7;12835:42;12828:5;12824:54;12813:65;;12803:81;;;:::o;12890:77::-;12927:7;12956:5;12945:16;;12935:32;;;:::o;12973:86::-;13008:7;13048:4;13041:5;13037:16;13026:27;;13016:43;;;:::o;13065:121::-;13123:9;13156:24;13174:5;13156:24;:::i;:::-;13143:37;;13133:53;;;:::o;13192:307::-;13260:1;13270:113;13284:6;13281:1;13278:13;13270:113;;;13369:1;13364:3;13360:11;13354:18;13350:1;13345:3;13341:11;13334:39;13306:2;13303:1;13299:10;13294:15;;13270:113;;;13401:6;13398:1;13395:13;13392:2;;;13481:1;13472:6;13467:3;13463:16;13456:27;13392:2;13241:258;;;;:::o;13505:171::-;13544:3;13567:24;13585:5;13567:24;:::i;:::-;13558:33;;13613:4;13606:5;13603:15;13600:2;;;13621:18;;:::i;:::-;13600:2;13668:1;13661:5;13657:13;13650:20;;13548:128;;;:::o;13682:320::-;13726:6;13763:1;13757:4;13753:12;13743:22;;13810:1;13804:4;13800:12;13831:18;13821:2;;13887:4;13879:6;13875:17;13865:27;;13821:2;13949;13941:6;13938:14;13918:18;13915:38;13912:2;;;13968:18;;:::i;:::-;13912:2;13733:269;;;;:::o;14008:233::-;14047:3;14070:24;14088:5;14070:24;:::i;:::-;14061:33;;14116:66;14109:5;14106:77;14103:2;;;14186:18;;:::i;:::-;14103:2;14233:1;14226:5;14222:13;14215:20;;14051:190;;;:::o;14247:180::-;14295:77;14292:1;14285:88;14392:4;14389:1;14382:15;14416:4;14413:1;14406:15;14433:180;14481:77;14478:1;14471:88;14578:4;14575:1;14568:15;14602:4;14599:1;14592:15;14619:180;14667:77;14664:1;14657:88;14764:4;14761:1;14754:15;14788:4;14785:1;14778:15;14805:102;14846:6;14897:2;14893:7;14888:2;14881:5;14877:14;14873:28;14863:38;;14853:54;;;:::o;14913:177::-;15053:29;15049:1;15041:6;15037:14;15030:53;15019:71;:::o;15096:170::-;15236:22;15232:1;15224:6;15220:14;15213:46;15202:64;:::o;15272:114::-;15378:8;:::o;15392:171::-;15532:23;15528:1;15520:6;15516:14;15509:47;15498:65;:::o;15569:122::-;15642:24;15660:5;15642:24;:::i;:::-;15635:5;15632:35;15622:2;;15681:1;15678;15671:12;15622:2;15612:79;:::o;15697:122::-;15770:24;15788:5;15770:24;:::i;:::-;15763:5;15760:35;15750:2;;15809:1;15806;15799:12;15750:2;15740:79;:::o

Swarm Source

ipfs://1d9de02b0fe0124832554e23012b59b71e12efc9632d37fc3a9ed6c2356caceb

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.