Contract 0x6e3c9ca736ea25933031e9f32d23d6696aefe460

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x70e20c473605c0a55f7fb493efcc3db209f0e93cfc11ed28fdf09c752046c823Set Product119818532022-05-13 13:46:0687 days 3 hrs ago0x7ccd2ee72a75f7e4776f598c1be11a119fd8d191 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000497658164 ETH
0xb5ae12ba1fcaf833e78488d6cd7e7c9406d8284de59ee35e24f8346a5f22603eBoost116400322022-05-09 21:43:4690 days 19 hrs ago0x435d821ee5b346850545cb18443ca9808a9d47d0 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.025 ETH0.000350646629 ETH
0x0fec1b1fa52a4b2822a6bd37d1143138c36634becf4e522b511a76547137a5c7Purchase116399172022-05-09 21:41:2690 days 19 hrs ago0x435d821ee5b346850545cb18443ca9808a9d47d0 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.045 ETH0.000384017818 ETH
0x4569756b7470381b2b98af9d5cbdff931a43ed1bb6f00863cf4439221e1acabfSet Shipped101332772022-04-20 2:21:13110 days 15 hrs ago0x7ccd2ee72a75f7e4776f598c1be11a119fd8d191 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000269856249 ETH
0x0107e224a72ed0c09cfb736a8f7f7bf5a4c2e7e9a674483b41d6bb76bb913181Boost100545012022-04-18 22:53:35111 days 18 hrs ago0xab04c208c844e7dbce55b0e6cb740e48fe8fe6e4 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.056 ETH0.000177138482 ETH
0x9fe61d2c1c20295052df05e2795a50109578c76634a8de4bd4b2fc6b8ff71821Purchase100543832022-04-18 22:51:23111 days 18 hrs ago0xab04c208c844e7dbce55b0e6cb740e48fe8fe6e4 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.045 ETH0.000194627829 ETH
0x61d3f8e6242b39a243e8bc5f7e7ab7b5308f2e0af20bc1377e0422f8f68cc3b0Purchase98202672022-04-14 23:39:07115 days 17 hrs ago0x8b6fede39b04c23bfcc7fe74e2680139a68bdbd7 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.045 ETH0.000256988133 ETH
0x48c838ac780db9e417f70da0a8f7493b0d4eef027ee8a927c26a587c3081500aPurchase98202272022-04-14 23:37:56115 days 17 hrs ago0x8b6fede39b04c23bfcc7fe74e2680139a68bdbd7 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.045 ETH0.000256303727 ETH
0x9fd8b2616f4182f8fe98f42e75353c9bcc9659b1bb37b2be80773608f94c0658Set Shipped71118432022-02-28 15:36:01161 days 1 hr ago0x7ccd2ee72a75f7e4776f598c1be11a119fd8d191 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000244046011 ETH
0xb91576032638486677e55fcdb45a9e95ca47e4122e5a52b3df2fec7b7649e2dbUnboost68382652022-02-24 21:40:08164 days 19 hrs ago0xe46347662bda8301bdc0fb4a2987a466ae30dfbb IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000344547912 ETH
0xa32a3594c27708a22a4e4f131a53714a930438a990f29bb6091d9004d8832732Set Shipped66652072022-02-22 19:20:39166 days 22 hrs ago0x7ccd2ee72a75f7e4776f598c1be11a119fd8d191 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000900076254 ETH
0x16f28c5b8bdb2a67713fbe8f3945d426b7d9f99f67e23a5253ae6b7c9a0b77beWithdraw63580672022-02-19 3:45:57170 days 13 hrs ago0x7ccd2ee72a75f7e4776f598c1be11a119fd8d191 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000344107289 ETH
0x42ee8a1f26f0f8c647da5d02706aa2d8d94cb838273815482db7066c7fcf4ee6Boost62811022022-02-18 0:38:07171 days 16 hrs ago0xe453c89d1f94252005ecb6b50bf7fc26f518e192 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.002 ETH0.00032704992 ETH
0x3148e2551087207f5e0c3ce2572c1f16e44fc8053059b474791061737e79d9d5Purchase62795822022-02-18 0:06:16171 days 17 hrs ago0xe453c89d1f94252005ecb6b50bf7fc26f518e192 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.045 ETH0.000353934351 ETH
0xdb4c488ec1f25e5b54c5b51915e5925f675e832d781e25b011461c10c5f6605aSet Shipped62184032022-02-17 3:37:30172 days 13 hrs ago0x7ccd2ee72a75f7e4776f598c1be11a119fd8d191 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600 ETH0.000795636621 ETH
0x4ad39fc9cdabb506337a4a567dbaef76fa84ffccc17da8266ca2b83ab5e92060Boost62147802022-02-17 2:12:01172 days 15 hrs ago0x136d06cb3f84b51c25e66f8fbb3791b50a26edf6 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.012 ETH0.000290077878 ETH
0x7d17b654955755f7b753b537f147963cbcfb06db3cc71054dc881ee72ae760d6Boost62146252022-02-17 2:09:04172 days 15 hrs ago0x136d06cb3f84b51c25e66f8fbb3791b50a26edf6 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.02 ETH0.000290077878 ETH
0x04ba8aece248453e23916d55a36d753f9b97c3b89b27ac9e169376ff45f94ee6Boost62112462022-02-17 0:53:11172 days 16 hrs ago0xed24226381f5144562f0f50c69b7abbaf5a2f093 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.01 ETH0.000292205986 ETH
0x90d841091530f8321d391645cf92798457d71a33169e2527c7896dacd709d07eBoost62061242022-02-16 23:20:25172 days 18 hrs ago0x0820f4612c4f657354ee9b30008ed307a2bceea7 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.046 ETH0.000293732371 ETH
0xb226b8ddc33718c08fca6316ee044c50012d3efedab1508353efe391e14dfc44Boost61861782022-02-16 16:10:11173 days 1 hr ago0xed24226381f5144562f0f50c69b7abbaf5a2f093 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.01 ETH0.000269117907 ETH
0x0f762b0de26033b01add29080177aea0bb20b7771b648546dea802794f464c92Boost61860732022-02-16 16:06:18173 days 1 hr ago0xed24226381f5144562f0f50c69b7abbaf5a2f093 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.015 ETH0.000269117907 ETH
0x6a43e18dff3808d90f3ec545796d8c151516047de2988f43d11cd8a8228ee7e6Boost61590432022-02-16 6:19:22173 days 11 hrs ago0x136d06cb3f84b51c25e66f8fbb3791b50a26edf6 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.06 ETH0.000311862106 ETH
0xf34c50218092a6d3defa1c9d4ac68f78a9c4e42ec2f6f926e89c467c789531c3Purchase61589382022-02-16 6:17:17173 days 11 hrs ago0x136d06cb3f84b51c25e66f8fbb3791b50a26edf6 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.045 ETH0.000341761788 ETH
0x4ff80e5febe854056cadbf035b89e5f24951734daed8118b1762637e433a283bBoost61174472022-02-15 16:16:10174 days 1 hr ago0x8d3bea823f22fbfe058577ca01e9a88160e2dd3a IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.025 ETH0.00024592785 ETH
0x84829f2ed997b65ec7b93b0e623b2e54bf177594ff58c2c92f849c65251036c1Boost60832902022-02-15 4:58:26174 days 12 hrs ago0xed24226381f5144562f0f50c69b7abbaf5a2f093 IN  0x6e3c9ca736ea25933031e9f32d23d6696aefe4600.06 ETH0.00028068976 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb91576032638486677e55fcdb45a9e95ca47e4122e5a52b3df2fec7b7649e2db68382652022-02-24 21:40:08164 days 19 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xe46347662bda8301bdc0fb4a2987a466ae30dfbb0.0019 ETH
0x16f28c5b8bdb2a67713fbe8f3945d426b7d9f99f67e23a5253ae6b7c9a0b77be63580672022-02-19 3:45:57170 days 13 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x7ccd2ee72a75f7e4776f598c1be11a119fd8d1910.8 ETH
0xdb7adf3597d36bd4267196bb35525482422da60b7beddb6abdb4d22dbba6b83360767752022-02-15 2:33:43174 days 14 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x8bf6efbf66d881c23a584140e70c5c5d428c58d10.045 ETH
0xbccad6caffabe8c437c30d3edc8804c2ec7be5b7912c1ff7f683236ab934a59660753912022-02-15 1:59:43174 days 15 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x8bf6efbf66d881c23a584140e70c5c5d428c58d10.048 ETH
0x75637e87df432aa418a758987479ef6a31a957ebc23bb841fc616111142ebac859334692022-02-12 17:12:55177 days 12 mins ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xaf1c0bace177288e0ebc8956242b30ede92111bc0.026 ETH
0xf6c1585f388da245686bccdeb9232be647f246659e6920941b608e747f5ef16f59174162022-02-12 11:56:54177 days 5 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xfa31dcff7bed47232b82b50fc0ec9582b9b4fb3a0.145 ETH
0xfb317a99d7589358d211b585b9d092c506e6cbb48ffa8b82782e81bb0616705359171122022-02-12 11:49:37177 days 5 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xfa31dcff7bed47232b82b50fc0ec9582b9b4fb3a0.045 ETH
0x03bd1c36a34b9fabafff048d8c9dd741b95f127b92f71129e7362467da0060e557310472022-02-09 15:38:39180 days 1 hr ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x7ccd2ee72a75f7e4776f598c1be11a119fd8d1911.4 ETH
0x81f3648af7d79ceb5030273c9c3fc1f9b4304148279f0f00ab7259f266abbfb656666972022-02-08 21:06:28180 days 20 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x85baec1be8c448e7c7b2ffd0c97e883781c6a7020.06 ETH
0xda9fd21d2d36aef0565fda2a325d7e63c731374b97d9bd668b9921c2d0c39bd255776802022-02-07 15:53:28182 days 1 hr ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x7ccd2ee72a75f7e4776f598c1be11a119fd8d1910.9542 ETH
0xca871bf1f7ef843908fd71dff3009cbdef90820e9cd405d4147de32c00779ea155425222022-02-07 2:49:53182 days 14 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xbf5aa87878c968c9d062f51cabd04b66023c8e360.045 ETH
0x4fec9d39aa0d1dfdfdbdbb32f4934a0a42a354481efb01cf2d320237cf19b50054615042022-02-05 21:20:59183 days 20 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x7ccd2ee72a75f7e4776f598c1be11a119fd8d1913.177 ETH
0x7b6a77cf862b8266dd9fd49819813d693937dec71560e2b8d6e85c93939cb05a54597322022-02-05 20:41:13183 days 20 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xec49a8685696d46c5bd549295ca50656adb3a04d0.1 ETH
0x38f56ad5b1ee9862d5de893596776086fb6fb1aa4a3be2c28d7d57aa7478a3d254224292022-02-04 16:09:59185 days 1 hr ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xb6dd2144ab7140c32af8f2ddbe9472a32e2ecddd0.003 ETH
0xdc5e9b3c18b4a4fea629fbb2b3b28429ae63ce283ea015c9acdfc87ce68441ce54037232022-02-04 1:52:04185 days 15 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x9ecd3f09f4c6d9cf04728fc9de4feed87dfa46830.0661 ETH
0x35a98d62526030d69c7eccbf152dad086a1529c11b2cc5676d5eba06ddaafb2e54008572022-02-03 22:56:52185 days 18 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xe46347662bda8301bdc0fb4a2987a466ae30dfbb0.0019 ETH
0x386e9fcd041b757c04a284c28e5f11bb808a233a362a037f75d562658f35133554003842022-02-03 22:31:35185 days 18 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x9b241870b15fba4952114f6c6ce76773833545a40.015 ETH
0xfba66dfcaede7ef0d30fc54d376b60094149b8afcd104564d78e2c36e433684f53951372022-02-03 18:57:13185 days 22 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x9fc4001133d3825b7ce4b05bcfbe227fb3cd5fdf0.005 ETH
0xd288a97320f01ebf6e2bbe2cdd561a0456d048ac09abe283c6460d00d81d6e4553937612022-02-03 18:01:57185 days 23 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x0ee378b323239b83eddb63ff2a63a107d45947440.07 ETH
0xf28a2055bcf456639868a8355039cb40f929e1c5321313f1bd16158159905e6553861182022-02-03 13:44:28186 days 3 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x52af239d8169314c6c1ff51539158e55b65a1a990.005 ETH
0x951ebe200a08f12a6d0a7926f3bbeb04cbc48eaacecfab5411095ed550c6f76053786292022-02-03 9:26:08186 days 7 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x8e3a9866580d636eae9e7a3130751ac1c6a8a92f0.055 ETH
0xda9fd4e2d8f4cbe180794eb29eddf9a6428d57d6c67225c64e58fa31f6391bf153771392022-02-03 8:35:28186 days 8 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x57dc9beb31ee3aa8e047c14c6a41704b8d46f9760.035 ETH
0xdfae2023f7246d9943f9bb278e752c42c6980eb84395e5824a00b91ac5b0dd8653722222022-02-03 5:43:15186 days 11 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600x0b981d98e857c888e00d2c494d24dc16a12f8f3a0.055 ETH
0x42888184a974aa439aa694e9bbef43c2d29ec90bea3dad507c48281c12fbca5c53713502022-02-03 4:48:13186 days 12 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xe9e9206b598f6fc95e006684fe432f100e8761100.015 ETH
0x1239756f1253150ca6cc6a4cd398143e91eced7b8b9ccb56708c00bbfac8112853703342022-02-03 3:49:23186 days 13 hrs ago 0x6e3c9ca736ea25933031e9f32d23d6696aefe4600xd9a0994576159135dab8b7727ebb196bca8f41480.075 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vinyl

Compiler Version
v0.7.3+commit.9bfce1f6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Arbiscan on 2022-02-02
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.2;


//import "hardhat/console.sol";

abstract contract ERC20 {
  function balanceOf(address a) public view virtual returns (uint256);  
}

contract Vinyl {
  address admin_address;
  uint256 public totalEarned; //amount due to store owner
  uint256 public numOrders; //max order num
  uint256 public startOrderNum; //max order num  
  uint32 public numProducts; //max products
  bool public purchasesDisabled;

  uint256 public refund_percent; //percentage to refund when leaving the queue
  
  event ePurchased(uint256 oid);
  event eRefund(uint256 oid, uint256 amount);
  event eBoost(uint256 oid);  
  event eShipped(uint256 oid);
  
  struct ProductStruct {
    uint256 price;
    uint256 supply;
  }

  struct AccessStruct {
    ERC20 econtract;
    uint256 minRequired;
    bool enabled;
  }
    
  ProductStruct[32] public products;
  AccessStruct[16] public accessProfiles;
  
  struct OrderStruct {
    uint32 state; //0 pending, 1 in progress, 2 filled, 3 refunded
    uint32 pid; //product id    
    uint256 boostAmount; //premium staked for order queue
    uint256 paidAmount; //amount paid for order
    address owner;
  }
  
  mapping(uint256 => OrderStruct) orders;

  modifier requireAdmin() {
    require(admin_address == msg.sender,"Requires admin privileges");
    _;
  }

  modifier requireOwner(uint256 oid) {
    if (oid >= numOrders) {
      revert("Order ID out of range");
    }
    
    require(msg.sender == orders[oid].owner,"Not owner of order");
    _;
  }

  modifier requireOwnerOrAdmin(uint256 oid) {
    if (oid >= numOrders) {
      revert("Order ID out of range");
    }
    
    require(msg.sender == orders[oid].owner ||
	    admin_address == msg.sender,"Not owner or admin");
    _;
  }

  constructor() {
    //startOrderNum = 0;  //ethereum        
    startOrderNum = 10000;  //arbitrum    
    //startOrderNum = 20000;  //polygon

    numOrders = startOrderNum;
    
    admin_address = msg.sender;
    refund_percent = 100;
  }

  function numOrdersByAddress(address a) public view returns (uint32) {
    uint32 n = 0;
    for (uint256 i = startOrderNum; i<numOrders;i++) {
      if (orders[i].owner == a) {
	n++;
      }
    }
    return n;
  }
  
  function orderByAddress(address a,uint32 j) public view returns(uint256) {
    if (j >= numOrdersByAddress(a)) {
      revert("Order index out of range");
    }
    
    uint32 n = 0;
    uint256 oid = 0;
    
    for (uint256 i = startOrderNum;i<numOrders;i++) {
      if (orders[i].owner == a) {
	if (j==n) {
	  oid = i;
	  break;
	}
	n++;
      }
    }
    return oid;
  }  
  
  function orderDetails(uint256 oid) public view returns (uint32 state, uint32 pid, uint256 boostAmount, uint256 paidAmount, address owner) {
    require(oid < numOrders,"Order id not in range");
    state = orders[oid].state;
    pid = orders[oid].pid;
    boostAmount = orders[oid].boostAmount;
    paidAmount = orders[oid].paidAmount;
    owner = orders[oid].owner;

    //TODO get place in queue
  }

  /* only allow access to addresses holding a minimum
     number of ERC20 or ERC721 token */
  function check_elligible(address a) public view returns (bool) {
    bool flag = true;
    for (uint256 i = 0;i<16;i++) {
      if (!accessProfiles[i].enabled) continue;
      if (accessProfiles[i].econtract.balanceOf(a) >=
	  accessProfiles[i].minRequired) {
	return true;
      } else {
	flag = false;
      }
    }
    return flag;
  }
  
  function purchase(uint32 pid) public payable returns(uint256) {
    require(pid < numProducts, "Invalid product id");
    require(products[pid].supply > 0, "Sold Out");
    
    require(!purchasesDisabled,"Purchases disabled");
    require(msg.value>=products[pid].price, "Must send minimum value to purchase!");
    if (!check_elligible(msg.sender)) {
      revert("Not elligible.");
    }

    //i
    //send change if too much was sent
    if (msg.value > 0) {
      uint256 diff = msg.value - products[pid].price;
      if (diff > 0) {
	payable(msg.sender).transfer(diff);
      }
    }
    
    //create an order for address together with 'pid'
    orders[numOrders].paidAmount = products[pid].price;
    orders[numOrders].pid = pid;
    orders[numOrders].owner = msg.sender;

    if (msg.value > 0) {
      uint256 diff = msg.value - products[pid].price;
      if (diff > 0) {
	orders[numOrders].boostAmount = diff;
      }
    }
    
    uint256 oid = numOrders;
    numOrders++;
    products[pid].supply--;
    
    emit ePurchased(oid);
    return oid;
  }

  function refund(uint32 oid) public payable requireOwnerOrAdmin(oid) {
    require(orders[oid].state==0, "Order not in refundable state");

    //sets order state to refunded    
    orders[oid].state = 3; 

    // refund 95 percent of initial purchase price
    // as well as any premium payed for order queue
    
    uint256 amount_to_refund = orders[oid].paidAmount;
    if (msg.sender != admin_address) {
      // if admin is forcing refund, refund 100% rather than 95%
      if (refund_percent < 100) {
	amount_to_refund /= 100;
	amount_to_refund *= refund_percent;
      }
    }
    
    //keep refund_percent% cancellation fee
    totalEarned += (orders[oid].paidAmount - amount_to_refund);
//  console.log("Keeping %d",totalEarned);

//  console.log("Refunding %d",amount_to_refund);    
    amount_to_refund += orders[oid].boostAmount;

//    console.log("Refunding total: %d",amount_to_refund);

    emit eRefund(oid,amount_to_refund);
    
    payable(orders[oid].owner).transfer(amount_to_refund);
  }

  function boost(uint32 oid) public payable requireOwner(oid) {
    require(orders[oid].state==0, "Order must be in pending state");    
    //store ether in contract for order 'oid', to determine
    //place in queue
    orders[oid].boostAmount += msg.value;

    emit eBoost(oid);
  }

  function unboost(uint32 oid, uint256 amount) public payable requireOwner(oid) {
    require(orders[oid].state==0, "Order must be in pending state");
    require(amount <= orders[oid].boostAmount,"Limit exceeded");
    require(amount > 0,"Amount must be more than 0");
    
    orders[oid].boostAmount -= amount;
    payable(msg.sender).transfer(amount); //refund boosted amount

    emit eBoost(oid);    
  }

  //check what address owns orderID  
  function ownerOf(uint256 oid) public view returns(address) {
    return orders[oid].owner;
  }

  //returns all orders numbers for a particular owner;
  function ordersByOwner(address a) public view returns (uint256[] memory) {
    uint256 [] memory q;

    uint256 num;
    for (uint256 i = startOrderNum; i<numOrders;i++) {
      if (orders[i].owner != a) continue;
      num++;
    }
    q = new uint256[](num);
    
    uint256 k = 0;
    for (uint256 i = startOrderNum;i<numOrders;i++) {
      if (orders[i].owner != a) continue;      
      q[k] = i;
      k++;
    }

    return q;
  }
  
  //return sorted by boost amount queue of pending orders
  function queue() public view returns (uint256[] memory) {
    uint256 [] memory q;
    
    uint256 numPending;
    for (uint256 i = startOrderNum;i<numOrders;i++) {
      if (orders[i].state != 0) continue;
      numPending++;
    }
    q = new uint256[](numPending);
    
    uint256 k = 0;
    for (uint256 i = startOrderNum;i<numOrders;i++) {
      if (orders[i].state != 0) continue;
      q[k] = i;
      k++;
    }
    
    //sort in place based on boost value

    if (numPending > 1) {
      bool flag;    
      do {
	flag = false;
	for (uint256 i = 0;i<numPending-1;i++) {
	  if (orders[q[i]].boostAmount < orders[q[i+1]].boostAmount) {
	    uint256 tmp = q[i];
	    q[i] = q[i+1];
	    q[i+1] = tmp;
	    flag = true;
	  }
	}
      } while (flag==true);
    }
    
    return q;
  }
  
  //get order ids and staked amounts for top 2 active queue positions
  function topQueue() public view returns(uint256 oid1, uint256 oid2, uint256 amount1, uint256 amount2) {
    uint256 m1 = 0; //largest boost
    uint256 m2 = 0;    
    uint256 mi1 = 0; // largest boost index
    uint256 mi2 = 0;    

    //if only 1 order, premium paid is 0
    if (numOrders >= 2) {
      for (uint256 i = startOrderNum;i<numOrders;i++) {
	if (orders[i].state != 0) continue;
      
	if (orders[i].boostAmount > m1) {
	  m2 = m1;
	  mi2 = mi1;
	  m1 = orders[i].boostAmount;
	  mi1 = i;
	} else if (orders[i].boostAmount > m2) {
	  m2 = orders[i].boostAmount;
	  mi2 = i;
	}
      }
    }
    
    oid1 = mi1;
    oid2 = mi2;
    amount1 = m1;
    amount2 = m2;
  }

  
  function setAccessProfileEnabled(uint32 oid, bool enabled) public requireAdmin {
    require(oid < 16,"Index out of range");
    accessProfiles[oid].enabled = enabled;
  }

  function setStoreEnabled(bool enabled) public requireAdmin {
    purchasesDisabled = !enabled;
  }

  function setRefundPercent(uint256 rp) public requireAdmin {
    refund_percent = rp;
  }

  function setAccessProfile(uint32 oid, address a, uint256 minRequired, bool enabled) public requireAdmin {
    accessProfiles[oid].econtract = ERC20(a);
    accessProfiles[oid].minRequired = minRequired;
    accessProfiles[oid].enabled = enabled;
  }

  //change an order to in progress, taking payment
  function setShipped(uint32[] memory oids) public requireAdmin {
    for (uint i=0;i<oids.length;i++) {
      uint32 oid = oids[i];
      if (oid >= numOrders) continue;
      if(orders[oid].state != 0) continue;

      //add amount paid plus differential boost amount to earned stack
      totalEarned += orders[oid].paidAmount;
      totalEarned += orders[oid].boostAmount;

      orders[oid].state = 2; //finalize order
      emit eShipped(oid);
    }
  }
  
  function setNumProducts(uint32 n) public requireAdmin {
    numProducts = n;
  }

  /* sets details of a product (currently only price is stored on-chain) */
  function setProduct(uint32 pid,uint256 price,uint256 supply) public requireAdmin {
    require(pid<numProducts,"Product ID out of range");
    products[pid].price = price;
    products[pid].supply = supply;
  }

  /* Shop owner can only withdraw from the stack 'totalEarned',
     which tracks the value of orders that have gone into the 'in progress' state */
  
  function withdraw(uint256 amount) public payable requireAdmin {
    require(amount <= totalEarned,"Earned limit exceeded");
    require(amount <= address(this).balance,"Insufficient funds to withdraw");
    totalEarned -= amount;
    payable(msg.sender).transfer(amount);
  }

  //in case of screw up, allow totalEarned to be adjusted,
  // but only DOWNWARD 
  function adjustTotalEarned(uint256 t) public requireAdmin {
    require (t < totalEarned,"Can only adjust down");
    totalEarned = t;
  }
  
  /* All showopner to make deposits in case of screw up to allow
     those in queue to refund themselves */
  
  function deposit() public payable requireAdmin {
  }
  
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"}],"name":"eBoost","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"}],"name":"ePurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"eRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oid","type":"uint256"}],"name":"eShipped","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"accessProfiles","outputs":[{"internalType":"contract ERC20","name":"econtract","type":"address"},{"internalType":"uint256","name":"minRequired","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"}],"name":"adjustTotalEarned","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"}],"name":"boost","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"check_elligible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"numOrders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"numOrdersByAddress","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numProducts","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint32","name":"j","type":"uint32"}],"name":"orderByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"oid","type":"uint256"}],"name":"orderDetails","outputs":[{"internalType":"uint32","name":"state","type":"uint32"},{"internalType":"uint32","name":"pid","type":"uint32"},{"internalType":"uint256","name":"boostAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"ordersByOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"oid","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"products","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"pid","type":"uint32"}],"name":"purchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"purchasesDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"queue","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"}],"name":"refund","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"refund_percent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"},{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"minRequired","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setAccessProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setAccessProfileEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"n","type":"uint32"}],"name":"setNumProducts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"pid","type":"uint32"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"setProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rp","type":"uint256"}],"name":"setRefundPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"oids","type":"uint32[]"}],"name":"setShipped","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setStoreEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startOrderNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topQueue","outputs":[{"internalType":"uint256","name":"oid1","type":"uint256"},{"internalType":"uint256","name":"oid2","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"uint256","name":"amount2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEarned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"oid","type":"uint32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unboost","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b506127106003819055600255600080546001600160a01b031916331790556064600555611fba806100426000396000f3fe6080604052600436106101cd5760003560e01c80636dfa8d99116100f7578063c96f2c0311610095578063dacf2c0c11610064578063dacf2c0c14610745578063e10d29ee14610784578063fc8babf214610799578063ff22fb00146107bc576101cd565b8063c96f2c0314610624578063d0e30db0146106d2578063d6bb6ae7146106da578063d79eb77614610712576101cd565b8063ac964f21116100d1578063ac964f2114610563578063adb32fea14610578578063b71ce705146105c5578063c7f04e6514610601576101cd565b80636dfa8d99146104db5780637acc0b20146104f05780638112f16e14610533576101cd565b806343714aa51161016f578063516979c41161013e578063516979c4146103f65780635cdb1bd71461041f5780635f215920146104495780636352211e14610495576101cd565b806343714aa5146102f757806345d537881461037a578063472673311461038f5780634ec2518d146103bb576101cd565b8063257e4e93116101ab578063257e4e931461024a57806327d51148146102715780632e1a7d4d14610286578063425bbfa1146102a3576101cd565b806302b80690146101d25780631069a4ba146101fd5780631c48c07414610227575b600080fd5b6101fb600480360360408110156101e857600080fd5b5063ffffffff8135169060200135610823565b005b34801561020957600080fd5b506101fb6004803603602081101561022057600080fd5b5035610a80565b6101fb6004803603602081101561023d57600080fd5b503563ffffffff16610b1f565b34801561025657600080fd5b5061025f610d60565b60408051918252519081900360200190f35b34801561027d57600080fd5b5061025f610d66565b6101fb6004803603602081101561029c57600080fd5b5035610d6c565b3480156102af57600080fd5b506102cd600480360360208110156102c657600080fd5b5035610e97565b604080516001600160a01b0390941684526020840192909252151582820152519081900360600190f35b34801561030357600080fd5b5061032a6004803603602081101561031a57600080fd5b50356001600160a01b0316610ec8565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036657818101518382015260200161034e565b505050509050019250505060405180910390f35b34801561038657600080fd5b5061025f610fc9565b34801561039b57600080fd5b506101fb600480360360208110156103b257600080fd5b50351515610fcf565b3480156103c757600080fd5b506103d0611038565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561040257600080fd5b5061040b6110fa565b604080519115158252519081900360200190f35b34801561042b57600080fd5b506101fb6004803603602081101561044257600080fd5b503561110a565b34801561045557600080fd5b5061047c6004803603602081101561046c57600080fd5b50356001600160a01b031661115c565b6040805163ffffffff9092168252519081900360200190f35b3480156104a157600080fd5b506104bf600480360360208110156104b857600080fd5b50356111aa565b604080516001600160a01b039092168252519081900360200190f35b3480156104e757600080fd5b5061025f6111c8565b3480156104fc57600080fd5b5061051a6004803603602081101561051357600080fd5b50356111ce565b6040805192835260208301919091528051918290030190f35b34801561053f57600080fd5b506101fb6004803603602081101561055657600080fd5b503563ffffffff166111ed565b34801561056f57600080fd5b5061047c611256565b34801561058457600080fd5b506101fb6004803603608081101561059b57600080fd5b5063ffffffff813516906001600160a01b0360208201351690604081013590606001351515611262565b3480156105d157600080fd5b506101fb600480360360608110156105e857600080fd5b5063ffffffff813516906020810135906040013561133c565b61025f6004803603602081101561061757600080fd5b503563ffffffff16611426565b34801561063057600080fd5b506101fb6004803603602081101561064757600080fd5b810190602081018135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611746945050505050565b6101fb611866565b3480156106e657600080fd5b506101fb600480360360408110156106fd57600080fd5b5063ffffffff813516906020013515156118b5565b34801561071e57600080fd5b5061040b6004803603602081101561073557600080fd5b50356001600160a01b0316611988565b34801561075157600080fd5b5061025f6004803603604081101561076857600080fd5b5080356001600160a01b0316906020013563ffffffff16611a72565b34801561079057600080fd5b5061032a611b48565b6101fb600480360360208110156107af57600080fd5b503563ffffffff16611d29565b3480156107c857600080fd5b506107e6600480360360208110156107df57600080fd5b5035611ea2565b6040805163ffffffff96871681529490951660208501528385019290925260608301526001600160a01b0316608082015290519081900360a00190f35b8163ffffffff166002548110610878576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b031633146108db576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b31037b93232b960711b604482015290519081900360640190fd5b63ffffffff8084166000908152607660205260409020541615610945576040805162461bcd60e51b815260206004820152601e60248201527f4f72646572206d75737420626520696e2070656e64696e672073746174650000604482015290519081900360640190fd5b63ffffffff83166000908152607660205260409020600101548211156109a3576040805162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b604482015290519081900360640190fd5b600082116109f8576040805162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206d757374206265206d6f7265207468616e2030000000000000604482015290519081900360640190fd5b63ffffffff83166000908152607660205260408082206001018054859003905551339184156108fc02918591818181858888f19350505050158015610a41573d6000803e3d6000fd5b506040805163ffffffff8516815290517fa723b00228565af146e122eb0c5afe1789b66703593d98daab12f679e997eaf29181900360200190a1505050565b6000546001600160a01b03163314610acd576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6001548110610b1a576040805162461bcd60e51b815260206004820152601460248201527321b0b71037b7363c9030b2353ab9ba103237bbb760611b604482015290519081900360640190fd5b600155565b8063ffffffff166002548110610b74576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b0316331480610ba657506000546001600160a01b031633145b610bec576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b91030b236b4b760711b604482015290519081900360640190fd5b63ffffffff8083166000908152607660205260409020541615610c56576040805162461bcd60e51b815260206004820152601d60248201527f4f72646572206e6f7420696e20726566756e6461626c65207374617465000000604482015290519081900360640190fd5b63ffffffff82166000908152607660205260408120805463ffffffff19166003178155600201549054336001600160a01b0390911614610ca55760646005541015610ca5576005546064909104025b63ffffffff83166000818152607660209081526040918290206002810154600180549187900390910181550154825193845290930192820183905280517fe65fe860c9575e9dcdc5ad1279422681a384c793dd0160f01380380f5ca006bf9281900390910190a163ffffffff83166000908152607660205260408082206003015490516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610d5a573d6000803e3d6000fd5b50505050565b60055481565b60035481565b6000546001600160a01b03163314610db9576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b600154811115610e08576040805162461bcd60e51b815260206004820152601560248201527411585c9b9959081b1a5b5a5d08195e18d959591959605a1b604482015290519081900360640190fd5b47811115610e5d576040805162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e647320746f2077697468647261770000604482015290519081900360640190fd5b600180548290039055604051339082156108fc029083906000818181858888f19350505050158015610e93573d6000803e3d6000fd5b5050565b60468160108110610ea457fe5b60030201805460018201546002909201546001600160a01b03909116925060ff1683565b60608060008060035490505b600254811015610f16576000818152607660205260409020600301546001600160a01b03868116911614610f0757610f0e565b6001909101905b600101610ed4565b508067ffffffffffffffff81118015610f2e57600080fd5b50604051908082528060200260200182016040528015610f58578160200160208202803683370190505b506003549092506000905b600254811015610fbd576000818152607660205260409020600301546001600160a01b03878116911614610f9657610fb5565b80848381518110610fa357fe5b60209081029190910101526001909101905b600101610f63565b5091925050505b919050565b60025481565b6000546001600160a01b0316331461101c576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6004805464ff0000000019169115600160201b02919091179055565b60008060008060008060008060028054106110ec576003545b6002548110156110ea5760008181526076602052604090205463ffffffff161561107a576110e2565b6000818152607660205260409020600101548510156110b157600081815260766020526040902060010154949350919050816110e2565b6000818152607660205260409020600101548410156110e25760008181526076602052604090206001015493509050805b600101611051565b505b909790965091945092509050565b600454600160201b900460ff1681565b6000546001600160a01b03163314611157576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b600555565b60035460009081905b6002548110156111a3576000818152607660205260409020600301546001600160a01b038581169116141561119b576001909101905b600101611165565b5092915050565b6000908152607660205260409020600301546001600160a01b031690565b60015481565b600681602081106111db57fe5b60020201805460019091015490915082565b6000546001600160a01b0316331461123a576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b6004805463ffffffff191663ffffffff92909216919091179055565b60045463ffffffff1681565b6000546001600160a01b031633146112af576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b8260468563ffffffff16601081106112c357fe5b6003020180546001600160a01b0319166001600160a01b039290921691909117905581604663ffffffff8616601081106112f957fe5b60030201600101819055508060468563ffffffff166010811061131857fe5b6003020160020160006101000a81548160ff02191690831515021790555050505050565b6000546001600160a01b03163314611389576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60045463ffffffff908116908416106113e9576040805162461bcd60e51b815260206004820152601760248201527f50726f64756374204944206f7574206f662072616e6765000000000000000000604482015290519081900360640190fd5b8160068463ffffffff16602081106113fd57fe5b600202015580600663ffffffff85166020811061141657fe5b6002020160010181905550505050565b60045460009063ffffffff9081169083161061147e576040805162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c1c9bd91d58dd081a5960721b604482015290519081900360640190fd5b600060068363ffffffff166020811061149357fe5b6002020160010154116114d8576040805162461bcd60e51b815260206004820152600860248201526714dbdb190813dd5d60c21b604482015290519081900360640190fd5b600454600160201b900460ff161561152c576040805162461bcd60e51b8152602060048201526012602482015271141d5c98da185cd95cc8191a5cd8589b195960721b604482015290519081900360640190fd5b60068263ffffffff166020811061153f57fe5b60020201543410156115825760405162461bcd60e51b8152600401808060200182810382526024815260200180611f616024913960400191505060405180910390fd5b61158b33611988565b6115cd576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b63634b3b4b136329760911b604482015290519081900360640190fd5b341561162857600060068363ffffffff16602081106115e857fe5b600202015434039050801561162657604051339082156108fc029083906000818181858888f19350505050158015611624573d6000803e3d6000fd5b505b505b60068263ffffffff166020811061163b57fe5b60029081029190910154815460009081526076602052604080822084019290925582548152818120805463ffffffff8716600160201b0267ffffffff000000001990911617905591548252902060030180546001600160a01b0319163317905534156116df57600060068363ffffffff16602081106116b657fe5b60020201543403905080156116dd5760025460009081526076602052604090206001018190555b505b6002805460018101909155600663ffffffff8416602081106116fd57fe5b6002020160010180546000190190556040805182815290517f0db318f3927dbf033fb60267d1729c1733780bca6edb898a57da664db89cd319916020908290030190a192915050565b6000546001600160a01b03163314611793576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60005b8151811015610e935760008282815181106117ad57fe5b602002602001015190506002548163ffffffff16106117cc575061185e565b63ffffffff80821660009081526076602052604090205416156117ef575061185e565b63ffffffff81166000818152607660209081526040918290206002808201546001805490910180825581840154019055815463ffffffff1916179055815192835290517ff084fcd3b3fc9a1f44ff5d9f4933d5cff8d38400f5ec94e774caa199707e36569281900390910190a1505b600101611796565b6000546001600160a01b031633146118b3576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b565b6000546001600160a01b03163314611902576040805162461bcd60e51b81526020600482015260196024820152600080516020611f41833981519152604482015290519081900360640190fd5b60108263ffffffff1610611952576040805162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015290519081900360640190fd5b8060468363ffffffff166010811061196657fe5b6003020160020160006101000a81548160ff0219169083151502179055505050565b60006001815b60108110156111a357604681601081106119a457fe5b600302016002015460ff166119b857611a6a565b604681601081106119c557fe5b6003020160010154604682601081106119da57fe5b6003020154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611a2957600080fd5b505afa158015611a3d573d6000803e3d6000fd5b505050506040513d6020811015611a5357600080fd5b505110611a6557600192505050610fc4565b600091505b60010161198e565b6000611a7d8361115c565b63ffffffff168263ffffffff1610611adc576040805162461bcd60e51b815260206004820152601860248201527f4f7264657220696e646578206f7574206f662072616e67650000000000000000604482015290519081900360640190fd5b60035460009081905b600254811015611b3f576000818152607660205260409020600301546001600160a01b0387811691161415611b37578263ffffffff168563ffffffff161415611b3057809150611b3f565b6001909201915b600101611ae5565b50949350505050565b60608060008060035490505b600254811015611b8c5760008181526076602052604090205463ffffffff1615611b7d57611b84565b6001909101905b600101611b54565b508067ffffffffffffffff81118015611ba457600080fd5b50604051908082528060200260200182016040528015611bce578160200160208202803683370190505b506003549092506000905b600254811015611c295760008181526076602052604090205463ffffffff1615611c0257611c21565b80848381518110611c0f57fe5b60209081029190910101526001909101905b600101611bd9565b506001821115611d215760005b506000805b60018403811015611d145760766000868360010181518110611c5957fe5b602002602001015181526020019081526020016000206001015460766000878481518110611c8357fe5b60200260200101518152602001908152602001600020600101541015611d0c576000858281518110611cb157fe5b60200260200101519050858260010181518110611cca57fe5b6020026020010151868381518110611cde57fe5b60200260200101818152505080868360010181518110611cfa57fe5b60200260200101818152505060019250505b600101611c3b565b50600181151514611c3657505b509091505090565b8063ffffffff166002548110611d7e576040805162461bcd60e51b81526020600482015260156024820152744f72646572204944206f7574206f662072616e676560581b604482015290519081900360640190fd5b6000818152607660205260409020600301546001600160a01b03163314611de1576040805162461bcd60e51b81526020600482015260126024820152712737ba1037bbb732b91037b31037b93232b960711b604482015290519081900360640190fd5b63ffffffff8083166000908152607660205260409020541615611e4b576040805162461bcd60e51b815260206004820152601e60248201527f4f72646572206d75737420626520696e2070656e64696e672073746174650000604482015290519081900360640190fd5b63ffffffff8216600081815260766020908152604091829020600101805434019055815192835290517fa723b00228565af146e122eb0c5afe1789b66703593d98daab12f679e997eaf29281900390910190a15050565b60008060008060006002548610611ef8576040805162461bcd60e51b81526020600482015260156024820152744f72646572206964206e6f7420696e2072616e676560581b604482015290519081900360640190fd5b5050506000928352505060766020526040902080546001820154600283015460039093015463ffffffff80841695600160201b909404169391926001600160a01b039091169056fe52657175697265732061646d696e2070726976696c65676573000000000000004d7573742073656e64206d696e696d756d2076616c756520746f20707572636861736521a2646970667358221220a9192fa177acfc34e9e93ec0e199e86cf2c0cc05ad0d91981a82366572510d4d64736f6c63430007030033

Deployed ByteCode Sourcemap

211:11046:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6079:417;;;;;;;;;;;;;;;;-1:-1:-1;6079:417:0;;;;;;;;;:::i;:::-;;10933:141;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10933:141:0;;:::i;4733:1043::-;;;;;;;;;;;;;;;;-1:-1:-1;4733:1043:0;;;;:::i;493:29::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;361:28;;;;;;;;;;;;;:::i;10562:280::-;;;;;;;;;;;;;;;;-1:-1:-1;10562:280:0;;:::i;941:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;941:38:0;;:::i;:::-;;;;-1:-1:-1;;;;;941:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6699:457;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6699:457:0;-1:-1:-1;;;;;6699:457:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;316:24;;;;;;;;;;;;;:::i;9031:100::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:100:0;;;;:::i;8131:710::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9137:90;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9137:90:0;;:::i;2122:222::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2122:222:0;-1:-1:-1;;;;;2122:222:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;6541:96;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6541:96:0;;:::i;:::-;;;;-1:-1:-1;;;;;6541:96:0;;;;;;;;;;;;;;257:26;;;;;;;;;;;;;:::i;903:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;903:33:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10022:82;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10022:82:0;;;;:::i;412:25::-;;;;;;;;;;;;;:::i;9233:253::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9233:253:0;;;;;-1:-1:-1;;;;;9233:253:0;;;;;;;;;;;;;;;;;:::i;10187:214::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10187:214:0;;;;;;;;;;;;;;:::i;3625:1102::-;;;;;;;;;;;;;;;;-1:-1:-1;3625:1102:0;;;;:::i;9544:470::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9544:470:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9544:470:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9544:470:0;;-1:-1:-1;9544:470:0;;-1:-1:-1;;;;;9544:470:0:i;11197:53::-;;;:::i;8851:174::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8851:174:0;;;;;;;;;;;:::i;3267:350::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3267:350:0;-1:-1:-1;;;;;3267:350:0;;:::i;2352:393::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2352:393:0;;-1:-1:-1;;;;;2352:393:0;;;;;;;;:::i;7223:829::-;;;;;;;;;;;;;:::i;5782:291::-;;;;;;;;;;;;;;;;-1:-1:-1;5782:291:0;;;;:::i;2755:410::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2755:410:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2755:410:0;;;;;;;;;;;;;;;6079:417;6152:3;1411:199;;1464:9;;1457:3;:16;1453:70;;1484:31;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;;;1453:70;1557:11;;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;1557:17:0;1543:10;:31;1535:61;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;;;;6172:11:::1;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:20:::0;6164:63:::1;;;::::0;;-1:-1:-1;;;6164:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6252:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;:23:::1;;::::0;6242:33;::::1;;6234:59;;;::::0;;-1:-1:-1;;;6234:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6234:59:0;;;;;;;;;;;;;::::1;;6317:1;6308:6;:10;6300:48;;;::::0;;-1:-1:-1;;;6300:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6361:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;:23:::1;;:33:::0;;;;::::1;::::0;;6401:36;6409:10:::1;::::0;6401:36;::::1;;;::::0;6388:6;;6401:36;6361:11;6401:36;6388:6;6409:10;6401:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6475:11:0::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;6079:417:::0;;;:::o;10933:141::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;11011:11:::1;;11007:1;:15;10998:48;;;::::0;;-1:-1:-1;;;10998:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10998:48:0;;;;;;;;;;;;;::::1;;11053:11;:15:::0;10933:141::o;4733:1043::-;4796:3;1616:243;;1676:9;;1669:3;:16;1665:70;;1696:31;;;-1:-1:-1;;;1696:31:0;;;;;;;;;;;;-1:-1:-1;;;1696:31:0;;;;;;;;;;;;;;1665:70;1769:11;;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;1769:17:0;1755:10;:31;;:68;;-1:-1:-1;1796:13:0;;-1:-1:-1;;;;;1796:13:0;1813:10;1796:27;1755:68;1747:98;;;;;-1:-1:-1;;;1747:98:0;;;;;;;;;;;;-1:-1:-1;;;1747:98:0;;;;;;;;;;;;;;;4816:11:::1;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:20:::0;4808:62:::1;;;::::0;;-1:-1:-1;;;4808:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4919:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;:21;;-1:-1:-1;;4919:21:0::1;4939:1;4919:21;::::0;;5088:22:::1;;::::0;5135:13;;5121:10:::1;-1:-1:-1::0;;;;;5135:13:0;;::::1;5121:27;5117:216;;5246:3;5229:14;;:20;5225:101;;;5302:14;::::0;5275:3:::1;5255:23:::0;;::::1;5282:34;5225:101;5406:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;;;;:22:::1;::::0;::::1;::::0;5390:11:::1;:58:::0;;5406:41;;;::::1;5390:58:::0;;::::1;::::0;;-1:-1:-1;5576:23:0;5675:29;;;;;5556:43;;::::1;5675:29:::0;;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;5725:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;:17:::1;;::::0;5717:53;;-1:-1:-1;;;;;5725:17:0;;::::1;::::0;5717:53;::::1;;;::::0;5753:16;;5717:53;5725:11;5717:53;5753:16;5725:17;5717:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;1852:1;4733:1043:::0;;:::o;493:29::-;;;;:::o;361:28::-;;;;:::o;10562:280::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;10649:11:::1;;10639:6;:21;;10631:54;;;::::0;;-1:-1:-1;;;10631:54:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10631:54:0;;;;;;;;;;;;;::::1;;10710:21;10700:6;:31;;10692:73;;;::::0;;-1:-1:-1;;;10692:73:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10772:11;:21:::0;;;;::::1;::::0;;10800:36:::1;::::0;10808:10:::1;::::0;10800:36;::::1;;;::::0;10787:6;;10772:11:::1;10800:36:::0;10772:11;10800:36;10787:6;10808:10;10800:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10562:280:::0;:::o;941:38::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;941:38:0;;;;-1:-1:-1;941:38:0;;;:::o;6699:457::-;6754:16;6779:19;6807:11;6830:9;6842:13;;6830:25;;6825:114;6859:9;;6857:1;:11;6825:114;;;6887:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;6887:20:0;;;:15;;:20;6883:34;;6909:8;;6883:34;6926:5;;;;;6825:114;6869:3;;6825:114;;;;6963:3;6949:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6949:18:0;-1:-1:-1;7017:13:0;;6945:22;;-1:-1:-1;6980:9:0;;7000:134;7033:9;;7031:1;:11;7000:134;;;7061:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;7061:20:0;;;:15;;:20;7057:34;;7083:8;;7057:34;7113:1;7106;7108;7106:4;;;;;;;;;;;;;;;;;:8;7123:3;;;;;7000:134;7043:3;;7000:134;;;-1:-1:-1;7149:1:0;;-1:-1:-1;;;6699:457:0;;;;:::o;316:24::-;;;;:::o;9031:100::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9097:17:::1;:28:::0;;-1:-1:-1;;9097:28:0::1;9117:8:::0;::::1;-1:-1:-1::0;;;9097:28:0::1;::::0;;;::::1;::::0;;9031:100::o;8131:710::-;8171:12;8185;8199:15;8216;8240:10;8277;8302:11;8347;8434:1;8421:9;;:14;8417:341;;8463:13;;8446:305;8479:9;;8477:1;:11;8446:305;;;8502:9;;;;:6;:9;;;;;:15;;;:20;8498:34;;8524:8;;8498:34;8548:9;;;;:6;:9;;;;;:21;;;:26;-1:-1:-1;8544:198:0;;;8615:9;;;;:6;:9;;;;;:21;;;;8587:2;-1:-1:-1;8622:1:0;8601:3;-1:-1:-1;8622:1:0;8544:198;;;8664:9;;;;:6;:9;;;;;:21;;;:26;-1:-1:-1;8660:82:0;;;8703:9;;;;:6;:9;;;;;:21;;;;-1:-1:-1;8710:1:0;-1:-1:-1;8710:1:0;8660:82;8489:3;;8446:305;;;;8417:341;8777:3;;8794;;-1:-1:-1;8814:2:0;;-1:-1:-1;8833:2:0;-1:-1:-1;8131:710:0;-1:-1:-1;8131:710:0:o;457:29::-;;;-1:-1:-1;;;457:29:0;;;;;:::o;9137:90::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9202:14:::1;:19:::0;9137:90::o;2122:222::-;2233:13;;2182:6;;;;2216:108;2250:9;;2248:1;:11;2216:108;;;2278:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;2278:20:0;;;:15;;:20;2274:43;;;2304:3;;;;;2274:43;2260:3;;2216:108;;;-1:-1:-1;2337:1:0;2122:222;-1:-1:-1;;2122:222:0:o;6541:96::-;6591:7;6614:11;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;6614:17:0;;6541:96::o;257:26::-;;;;:::o;903:33::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;903:33:0;:::o;10022:82::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;10083:11:::1;:15:::0;;-1:-1:-1;;10083:15:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;10022:82::o;412:25::-;;;;;;:::o;9233:253::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9382:1:::1;9344:14;9359:3;9344:19;;;;;;;;;;;;:40:::0;;-1:-1:-1;;;;;;9344:40:0::1;-1:-1:-1::0;;;;;9344:40:0;;;::::1;::::0;;;::::1;::::0;;9425:11;9391:14:::1;:19;::::0;::::1;;::::0;::::1;;;;;;;;:31;;:45;;;;9473:7;9443:14;9458:3;9443:19;;;;;;;;;;;;:27;;;:37;;;;;;;;;;;;;;;;;;9233:253:::0;;;;:::o;10187:214::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;10287:11:::1;::::0;::::1;::::0;;::::1;10283:15:::0;;::::1;;10275:50;;;::::0;;-1:-1:-1;;;10275:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;10354:5;10332:8;10341:3;10332:13;;;;;;;;;;;;:27:::0;10389:6;10366:8:::1;:13;::::0;::::1;;::::0;::::1;;;;;;;;:20;;:29;;;;10187:214:::0;;;:::o;3625:1102::-;3708:11;;3678:7;;3708:11;;;;3702:17;;;;3694:48;;;;;-1:-1:-1;;;3694:48:0;;;;;;;;;;;;-1:-1:-1;;;3694:48:0;;;;;;;;;;;;;;;3780:1;3757:8;3766:3;3757:13;;;;;;;;;;;;:20;;;:24;3749:45;;;;;-1:-1:-1;;;3749:45:0;;;;;;;;;;;;-1:-1:-1;;;3749:45:0;;;;;;;;;;;;;;;3816:17;;-1:-1:-1;;;3816:17:0;;;;3815:18;3807:48;;;;;-1:-1:-1;;;3807:48:0;;;;;;;;;;;;-1:-1:-1;;;3807:48:0;;;;;;;;;;;;;;;3881:8;3890:3;3881:13;;;;;;;;;;;;:19;3870:9;:30;;3862:79;;;;-1:-1:-1;;;3862:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:27;3969:10;3953:15;:27::i;:::-;3948:75;;3991:24;;;-1:-1:-1;;;3991:24:0;;;;;;;;;;;;-1:-1:-1;;;3991:24:0;;;;;;;;;;;;;;3948:75;4084:9;:13;4080:152;;4108:12;4135:8;4144:3;4135:13;;;;;;;;;;;;:19;4123:9;:31;;-1:-1:-1;4167:8:0;;4163:62;;4181:34;;4189:10;;4181:34;;;;;4210:4;;4181:34;;;;4210:4;4189:10;4181:34;;;;;;;;;;;;;;;;;;;;;4163:62;4080:152;;4330:8;4339:3;4330:13;;;;;;;;;;;;;;;;;:19;4306:9;;4330:19;4299:17;;;:6;:17;;;;;;:28;;:50;;;;4363:9;;4356:17;;;;;:27;;;;;-1:-1:-1;;;4356:27:0;-1:-1:-1;;4356:27:0;;;;;;4397:9;;4390:17;;;;:23;;:36;;-1:-1:-1;;;;;;4390:36:0;4416:10;4390:36;;;4439:9;:13;4435:154;;4463:12;4490:8;4499:3;4490:13;;;;;;;;;;;;:19;4478:9;:31;;-1:-1:-1;4522:8:0;;4518:64;;4543:9;;4536:17;;;;:6;:17;;;;;:29;;:36;;;4518:64;4435:154;;4615:9;;;4631:11;;;;;;4649:8;:13;;;;;;;;;;;;;:20;;:22;;-1:-1:-1;;4649:22:0;;;4689:15;;;;;;;;;;;;;;;;;;4718:3;3625:1102;-1:-1:-1;;3625:1102:0:o;9544:470::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;9618:6:::1;9613:396;9629:4;:11;9627:1;:13;9613:396;;;9655:10;9668:4;9673:1;9668:7;;;;;;;;;;;;;;9655:20;;9695:9;;9688:3;:16;;;9684:30;;9706:8;;;9684:30;9726:11;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:22:::0;9723:35:::1;;9750:8;;;9723:35;9856:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;;;;:22:::1;::::0;;::::1;::::0;9841:11:::1;:37:::0;;;;::::1;::::0;;;-1:-1:-1;;;9902:23:0;9887:38:::1;::::0;;9936:21;;-1:-1:-1;;9936:21:0::1;;::::0;;9988:13;;;;;;;::::1;::::0;;;;;;;;::::1;9613:396;;9641:3;;9613:396;;11197:53:::0;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;11197:53::o;8851:174::-;1335:13;;-1:-1:-1;;;;;1335:13:0;1352:10;1335:27;1327:64;;;;;-1:-1:-1;;;1327:64:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1327:64:0;;;;;;;;;;;;;;;8951:2:::1;8945:3;:8;;;8937:38;;;::::0;;-1:-1:-1;;;8937:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;8937:38:0;;;;;;;;;;;;;::::1;;9012:7;8982:14;8997:3;8982:19;;;;;;;;;;;;:27;;;:37;;;;;;;;;;;;;;;;;;8851:174:::0;;:::o;3267:350::-;3324:4;3349;3324;3360:234;3381:2;3379:1;:4;3360:234;;;3403:14;3418:1;3403:17;;;;;;;;;;:25;;;;;3398:40;;3430:8;;3398:40;3499:14;3514:1;3499:17;;;;;;;;;;:29;;;3451:14;3466:1;3451:17;;;;;;;;;;:27;:40;;;-1:-1:-1;;;3451:40:0;;-1:-1:-1;;;;;3451:40:0;;;;;;;;;:27;;;;;:37;;:40;;;;;;;;;;;;;;:27;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3451:40:0;:77;3447:140;;3541:4;3534:11;;;;;;3447:140;3572:5;3565:12;;3447:140;3384:3;;3360:234;;2352:393;2416:7;2441:21;2460:1;2441:18;:21::i;:::-;2436:26;;:1;:26;;;2432:83;;2473:34;;;-1:-1:-1;;;2473:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2432:83;2591:13;;2527:8;;;;2574:149;2607:9;;2605:1;:11;2574:149;;;2635:9;;;;:6;:9;;;;;:15;;;-1:-1:-1;;;;;2635:20:0;;;:15;;:20;2631:85;;;2668:1;2665:4;;:1;:4;;;2661:39;;;2683:1;2677:7;;2690:5;;2661:39;2703:3;;;;;2631:85;2617:3;;2574:149;;;-1:-1:-1;2736:3:0;2352:393;-1:-1:-1;;;;2352:393:0:o;7223:829::-;7261:16;7286:19;7318:18;7348:9;7360:13;;7348:25;;7343:120;7376:9;;7374:1;:11;7343:120;;;7404:9;;;;:6;:9;;;;;:15;;;:20;7400:34;;7426:8;;7400:34;7443:12;;;;;7343:120;7386:3;;7343:120;;;;7487:10;7473:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7473:25:0;-1:-1:-1;7548:13:0;;7469:29;;-1:-1:-1;7511:9:0;;7531:128;7564:9;;7562:1;:11;7531:128;;;7592:9;;;;:6;:9;;;;;:15;;;:20;7588:34;;7614:8;;7588:34;7638:1;7631;7633;7631:4;;;;;;;;;;;;;;;;;:8;7648:3;;;;;7531:128;7574:3;;7531:128;;;;7732:1;7719:10;:14;7715:311;;;7744:9;7766:253;-1:-1:-1;7780:5:0;;7789:201;7821:1;7810:10;:12;7808:1;:14;7789:201;;;7865:6;:14;7872:1;7874;7876;7874:3;7872:6;;;;;;;;;;;;;;7865:14;;;;;;;;;;;:26;;;7838:6;:12;7845:1;7847;7845:4;;;;;;;;;;;;;;7838:12;;;;;;;;;;;:24;;;:53;7834:152;;;7901:11;7915:1;7917;7915:4;;;;;;;;;;;;;;7901:18;;7934:1;7936;7938;7936:3;7934:6;;;;;;;;;;;;;;7927:1;7929;7927:4;;;;;;;;;;;;;:13;;;;;7957:3;7948:1;7950;7952;7950:3;7948:6;;;;;;;;;;;;;:12;;;;;7975:4;7968:11;;7834:152;;7823:3;;7789:201;;;-1:-1:-1;8013:4:0;8007:10;;;;7766:253;;7715:311;;-1:-1:-1;8045:1:0;;-1:-1:-1;;7223:829:0;:::o;5782:291::-;5837:3;1411:199;;1464:9;;1457:3;:16;1453:70;;1484:31;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;-1:-1:-1;;;1484:31:0;;;;;;;;;;;;;;1453:70;1557:11;;;;:6;:11;;;;;:17;;;-1:-1:-1;;;;;1557:17:0;1543:10;:31;1535:61;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;-1:-1:-1;;;1535:61:0;;;;;;;;;;;;;;;5857:11:::1;::::0;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:17;::::1;:20:::0;5849:63:::1;;;::::0;;-1:-1:-1;;;5849:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6006:11;::::0;::::1;;::::0;;;:6:::1;:11;::::0;;;;;;;;:23:::1;;:36:::0;;6033:9:::1;6006:36;::::0;;6056:11;;;;;;;::::1;::::0;;;;;;;;::::1;5782:291:::0;;:::o;2755:410::-;2811:12;2825:10;2837:19;2858:18;2878:13;2914:9;;2908:3;:15;2900:48;;;;;-1:-1:-1;;;2900:48:0;;;;;;;;;;;;-1:-1:-1;;;2900:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;2963:11:0;;;;-1:-1:-1;;2963:6:0;:11;;;;;:17;;;3029:23;;;3072:22;;;;3109:17;;;;;2963;;;;;-1:-1:-1;;;2993:15:0;;;;;3029:23;;-1:-1:-1;;;;;3109:17:0;;;;2755:410::o

Metadata Hash

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