ETH Price: $3,420.03 (+3.76%)

Contract

0x2F73b6567B866302e132273f67661fB89b5a66F2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Poke212492592024-11-23 8:31:234 hrs ago1732350683IN
0x2F73b656...89b5a66F2
0 ETH0.0017613212.57964196
Poke212426492024-11-22 10:23:2326 hrs ago1732271003IN
0x2F73b656...89b5a66F2
0 ETH0.0015744511.24405076
Poke212408802024-11-22 4:27:2332 hrs ago1732249643IN
0x2F73b656...89b5a66F2
0 ETH0.0017094912.21154239
Poke212374232024-11-21 16:53:3544 hrs ago1732208015IN
0x2F73b656...89b5a66F2
0 ETH0.002698719.27620468
Poke212360292024-11-21 12:13:232 days ago1732191203IN
0x2F73b656...89b5a66F2
0 ETH0.0039958628.53415524
Poke212337462024-11-21 4:33:232 days ago1732163603IN
0x2F73b656...89b5a66F2
0 ETH0.0021071715.05359402
Poke212307012024-11-20 18:21:232 days ago1732126883IN
0x2F73b656...89b5a66F2
0 ETH0.0026981319.27543348
Poke212278312024-11-20 8:43:233 days ago1732092203IN
0x2F73b656...89b5a66F2
0 ETH0.001193328.52220254
Poke212206462024-11-19 8:41:234 days ago1732005683IN
0x2F73b656...89b5a66F2
0 ETH0.001230548.78797218
Poke212167302024-11-18 19:35:234 days ago1731958523IN
0x2F73b656...89b5a66F2
0 ETH0.0028088520.06296696
Poke212157322024-11-18 16:15:234 days ago1731946523IN
0x2F73b656...89b5a66F2
0 ETH0.0036090625.7764913
Poke212122822024-11-18 4:42:355 days ago1731904955IN
0x2F73b656...89b5a66F2
0 ETH0.0014485110.34638295
Poke212051002024-11-17 4:40:356 days ago1731818435IN
0x2F73b656...89b5a66F2
0 ETH0.001394619.96051845
Poke212043842024-11-17 2:16:356 days ago1731809795IN
0x2F73b656...89b5a66F2
0 ETH0.002097114.98420989
Poke211961452024-11-15 22:42:357 days ago1731710555IN
0x2F73b656...89b5a66F2
0 ETH0.002820820.15180317
Poke211937402024-11-15 14:38:357 days ago1731681515IN
0x2F73b656...89b5a66F2
0 ETH0.0037373326.70402219
Poke211930192024-11-15 12:12:478 days ago1731672767IN
0x2F73b656...89b5a66F2
0 ETH0.0021908915.65035576
Poke211892552024-11-14 23:36:358 days ago1731627395IN
0x2F73b656...89b5a66F2
0 ETH0.0035105325.07707072
Poke211866902024-11-14 15:00:358 days ago1731596435IN
0x2F73b656...89b5a66F2
0 ETH0.0050824536.302728
Poke211817972024-11-13 22:36:359 days ago1731537395IN
0x2F73b656...89b5a66F2
0 ETH0.0053076937.91483453
Poke211814292024-11-13 21:22:359 days ago1731532955IN
0x2F73b656...89b5a66F2
0 ETH0.0109051577.88618634
Poke211794092024-11-13 14:36:359 days ago1731508595IN
0x2F73b656...89b5a66F2
0 ETH0.0133808295.57592921
Poke211790912024-11-13 13:32:359 days ago1731504755IN
0x2F73b656...89b5a66F2
0 ETH0.0080698957.64624854
Poke211768302024-11-13 5:58:3510 days ago1731477515IN
0x2F73b656...89b5a66F2
0 ETH0.0023933717.09382722
Poke211764022024-11-13 4:32:3510 days ago1731472355IN
0x2F73b656...89b5a66F2
0 ETH0.0036751426.24613462
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MedianWSTETHUSD

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
No with 200 runs

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

// Copyright (C) 2017-2020 Maker Ecosystem Growth Holdings, INC.

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity >=0.5.10;

contract LibNote {
  event LogNote(
    bytes4   indexed sig,
    address  indexed usr,
    bytes32  indexed arg1,
    bytes32  indexed arg2,
    bytes data
  ) anonymous;

  modifier note {
    _;
    assembly {
    // log an 'anonymous' event with a constant 6 words of calldata
    // and four indexed topics: selector, caller, arg1 and arg2
      let mark := msize()                         // end of memory ensures zero
      mstore(0x40, add(mark, 288))                // update free memory pointer
      mstore(mark, 0x20)                          // bytes type data offset
      mstore(add(mark, 0x20), 224)                // bytes size (padded)
      calldatacopy(add(mark, 0x40), 0, 224)       // bytes payload
      log4(
      mark, 288, // calldata
      shl(224, shr(224, calldataload(0))), // msg.sig
      caller(), // msg.sender
      calldataload(4), // arg1
      calldataload(36)                        // arg2
      )
    }
  }
}

contract MedianWSTETHUSD is LibNote {
  mapping(address => uint) public wards;

  function rely(address usr) external note auth {wards[usr] = 1;}

  function deny(address usr) external note auth {wards[usr] = 0;}
  modifier auth {
    require(wards[msg.sender] == 1, "Median/not-authorized");
    _;
  }

  uint128        val;
  uint32  public age;
  bytes32 public constant wat = "WSTETHUSD";
  uint256 public bar = 1;

  // Authorized oracles, set by an auth
  mapping(address => uint256) public orcl;

  // Permitted contracts, set by an auth
  mapping(address => uint256) public bud;

  // Mapping for at most 256 oracles
  mapping(uint8 => address) public slot;

  modifier toll {
    require(bud[msg.sender] == 1, "Median/contract-not-whitelisted");
    _;
  }

  event LogMedianPrice(uint256 val, uint256 age);

  //Set type of Oracle
  constructor() public {
    wards[msg.sender] = 1;
  }

  function read() external view toll returns (uint256) {
    require(val > 0, "Median/invalid-price-feed");
    return val;
  }

  function peek() external view toll returns (uint256, bool) {
    return (val, val > 0);
  }

  function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
    return ecrecover(
      keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))),
      v, r, s
    );
  }

  function poke(
    uint256[] calldata val_, uint256[] calldata age_,
    uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) external
  {
    require(val_.length == bar, "Median/bar-too-low");

    uint256 bloom = 0;
    uint256 last = 0;
    uint256 zzz = age;

    for (uint i = 0; i < val_.length; i++) {
      // Validate the values were signed by an authorized oracle
      address signer = recover(val_[i], age_[i], v[i], r[i], s[i]);
      // Check that signer is an oracle
      require(orcl[signer] == 1, "Median/invalid-oracle");
      // Price feed age greater than last medianizer age
      require(age_[i] > zzz, "Median/stale-message");
      // Check for ordered values
      require(val_[i] >= last, "Median/messages-not-in-order");
      last = val_[i];
      // Bloom filter for signer uniqueness
      uint8 sl = uint8(uint256(signer) >> 152);
      require((bloom >> sl) % 2 == 0, "Median/oracle-already-signed");
      bloom += uint256(2) ** sl;
    }

    val = uint128(val_[val_.length >> 1]);
    age = uint32(block.timestamp);

    emit LogMedianPrice(val, age);
  }

  function lift(address[] calldata a) external note auth {
    for (uint i = 0; i < a.length; i++) {
      require(a[i] != address(0), "Median/no-oracle-0");
      uint8 s = uint8(uint256(a[i]) >> 152);
      require(slot[s] == address(0), "Median/signer-already-exists");
      orcl[a[i]] = 1;
      slot[s] = a[i];
    }
  }

  function drop(address[] calldata a) external note auth {
    for (uint i = 0; i < a.length; i++) {
      orcl[a[i]] = 0;
      slot[uint8(uint256(a[i]) >> 152)] = address(0);
    }
  }

  function setBar(uint256 bar_) external note auth {
    require(bar_ > 0, "Median/quorum-is-zero");
    require(bar_ % 2 != 0, "Median/quorum-not-odd-number");
    bar = bar_;
  }

  function kiss(address a) external note auth {
    require(a != address(0), "Median/no-contract-0");
    bud[a] = 1;
  }

  function kiss(address[] calldata a) external note auth {
    for (uint i = 0; i < a.length; i++) {
      require(a[i] != address(0), "Median/no-contract-0");
      bud[a[i]] = 1;
    }
  }

  function diss(address a) external note auth {
    bud[a] = 0;
  }

  function diss(address[] calldata a) external note auth {
    for (uint i = 0; i < a.length; i++) {
      bud[a[i]] = 0;
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"val","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"age","type":"uint256"}],"name":"LogMedianPrice","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"constant":true,"inputs":[],"name":"age","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bud","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"drop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"lift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"orcl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"val_","type":"uint256[]"},{"internalType":"uint256[]","name":"age_","type":"uint256[]"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"poke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"read","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"bar_","type":"uint256"}],"name":"setBar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"slot","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]

6080604052600160025534801561001557600080fd5b5060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b5806100696000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146106c45780639c52a7f11461073d578063bf353dbb14610781578063f29c29c4146107d9578063febb0f7e1461081d57610121565b806365c4ce7a1461038557806365fae35e146103c957806389bbb8b21461040d5780638d0e5a9a146105da5780638ef5eaf01461064b57610121565b806346d4577d116100f457806346d4577d1461024f5780634ca29923146102c85780634fce7a2a146102e657806357de26a41461033e57806359e02dd71461035c57610121565b8063020b2e32146101265780631b25b65f1461017e578063262a9dff146101f7578063352d3fba14610221575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083b565b6040518082815260200191505060405180910390f35b6101f56004803603602081101561019457600080fd5b81019080803590602001906401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460208302840111640100000000831117156101e557600080fd5b9091929391929390505050610853565b005b6101ff610a95565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b61024d6004803603602081101561023757600080fd5b8101908080359060200190929190505050610aab565b005b6102c66004803603602081101561026557600080fd5b810190808035906020019064010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9091929391929390505050610c93565b005b6102d0610e0a565b6040518082815260200191505060405180910390f35b610328600480360360208110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610346610e46565b6040518082815260200191505060405180910390f35b610364610fd9565b60405180838152602001821515151581526020019250505060405180910390f35b6103c76004803603602081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611101565b005b61040b600480360360208110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611230565b005b6105d8600480360360a081101561042357600080fd5b810190808035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390803590602001906401000000008111156104ea57600080fd5b8201836020820111156104fc57600080fd5b8035906020019184602083028401116401000000008311171561051e57600080fd5b90919293919293908035906020019064010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184602083028401116401000000008311171561057357600080fd5b90919293919293908035906020019064010000000081111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111640100000000831117156105c857600080fd5b909192939192939050505061135e565b005b610609600480360360208110156105f057600080fd5b81019080803560ff169060200190929190505050611820565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c26004803603602081101561066157600080fd5b810190808035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460208302840111640100000000831117156106b257600080fd5b9091929391929390505050611853565b005b61073b600480360360208110156106da57600080fd5b81019080803590602001906401000000008111156106f757600080fd5b82018360208201111561070957600080fd5b8035906020019184602083028401116401000000008311171561072b57600080fd5b9091929391929390505050611a65565b005b61077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4a565b005b6107c36004803603602081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f78565b6040518082815260200191505060405180910390f35b61081b600480360360208110156107ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f90565b005b610825612162565b6040518082815260200191505060405180910390f35b60036020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610a5d57600073ffffffffffffffffffffffffffffffffffffffff1683838381811061093c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008585858181106109f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061090d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600160109054906101000a900463ffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008111610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f71756f72756d2d69732d7a65726f000000000000000000000081525060200191505060405180910390fd5b600060028281610be157fe5b061415610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d6265720000000081525060200191505060405180910390fd5b806002819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610dd257600060046000858585818110610d6a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610d4d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b7f575354455448555344000000000000000000000000000000000000000000000081565b60046020528060005260406000206000915090505481565b60006001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b6000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d656469616e2f696e76616c69642d70726963652d666565640000000000000081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905090565b6000806001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611816fffffffffffffffffffffffffffffffff169150915091509091565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b6002548a8a9050146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6261722d746f6f2d6c6f77000000000000000000000000000081525060200191505060405180910390fd5b600080905060008090506000600160109054906101000a900463ffffffff1663ffffffff16905060008090505b8d8d905081101561171657600061147c8f8f8481811061142157fe5b905060200201358e8e8581811061143457fe5b905060200201358d8d8681811061144757fe5b9050602002013560ff168c8c8781811061145d57fe5b905060200201358b8b8881811061147057fe5b90506020020135612168565b90506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f696e76616c69642d6f7261636c65000000000000000000000081525060200191505060405180910390fd5b828d8d8481811061154057fe5b90506020020135116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f7374616c652d6d65737361676500000000000000000000000081525060200191505060405180910390fd5b838f8f848181106115c757fe5b905060200201351015611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6d657373616765732d6e6f742d696e2d6f726465720000000081525060200191505060405180910390fd5b8e8e8381811061164e57fe5b905060200201359350600060988273ffffffffffffffffffffffffffffffffffffffff16901c9050600060028260ff1688901c8161168857fe5b06146116fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6f7261636c652d616c72656164792d7369676e65640000000081525060200191505060405180910390fd5b8060ff1660020a8601955050508080600101915050611405565b508c8c60018f8f9050901c81811061172a57fe5b90506020020135600160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600160106101000a81548163ffffffff021916908363ffffffff1602179055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600160009054906101000a90046fffffffffffffffffffffffffffffffff16600160109054906101000a900463ffffffff1660405180836fffffffffffffffffffffffffffffffff1681526020018263ffffffff1681526020019250505060405180910390a150505050505050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611a2d5760006003600085858581811061192a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060056000609886868681811061199957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505061190d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611e1257600073ffffffffffffffffffffffffffffffffffffffff16838383818110611b4e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6e6f2d6f7261636c652d30000000000000000000000000000081525060200191505060405180910390fd5b60006098848484818110611c0557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c9050600073ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f7369676e65722d616c72656164792d6578697374730000000081525060200191505060405180910390fd5b600160036000868686818110611d2957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838383818110611d9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050611b1f565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612044576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60025481565b6000600186867f57535445544855534400000000000000000000000000000000000000000000006040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561226b573d6000803e3d6000fd5b5050506020604051035190509594505050505056fea265627a7a723158203508048e6edab0e32554aa515ee8f7dfb0e98553e409782b64891970382aa9ec64736f6c634300050c0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146106c45780639c52a7f11461073d578063bf353dbb14610781578063f29c29c4146107d9578063febb0f7e1461081d57610121565b806365c4ce7a1461038557806365fae35e146103c957806389bbb8b21461040d5780638d0e5a9a146105da5780638ef5eaf01461064b57610121565b806346d4577d116100f457806346d4577d1461024f5780634ca29923146102c85780634fce7a2a146102e657806357de26a41461033e57806359e02dd71461035c57610121565b8063020b2e32146101265780631b25b65f1461017e578063262a9dff146101f7578063352d3fba14610221575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083b565b6040518082815260200191505060405180910390f35b6101f56004803603602081101561019457600080fd5b81019080803590602001906401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460208302840111640100000000831117156101e557600080fd5b9091929391929390505050610853565b005b6101ff610a95565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b61024d6004803603602081101561023757600080fd5b8101908080359060200190929190505050610aab565b005b6102c66004803603602081101561026557600080fd5b810190808035906020019064010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9091929391929390505050610c93565b005b6102d0610e0a565b6040518082815260200191505060405180910390f35b610328600480360360208110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610346610e46565b6040518082815260200191505060405180910390f35b610364610fd9565b60405180838152602001821515151581526020019250505060405180910390f35b6103c76004803603602081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611101565b005b61040b600480360360208110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611230565b005b6105d8600480360360a081101561042357600080fd5b810190808035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390803590602001906401000000008111156104ea57600080fd5b8201836020820111156104fc57600080fd5b8035906020019184602083028401116401000000008311171561051e57600080fd5b90919293919293908035906020019064010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184602083028401116401000000008311171561057357600080fd5b90919293919293908035906020019064010000000081111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111640100000000831117156105c857600080fd5b909192939192939050505061135e565b005b610609600480360360208110156105f057600080fd5b81019080803560ff169060200190929190505050611820565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c26004803603602081101561066157600080fd5b810190808035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460208302840111640100000000831117156106b257600080fd5b9091929391929390505050611853565b005b61073b600480360360208110156106da57600080fd5b81019080803590602001906401000000008111156106f757600080fd5b82018360208201111561070957600080fd5b8035906020019184602083028401116401000000008311171561072b57600080fd5b9091929391929390505050611a65565b005b61077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4a565b005b6107c36004803603602081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f78565b6040518082815260200191505060405180910390f35b61081b600480360360208110156107ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f90565b005b610825612162565b6040518082815260200191505060405180910390f35b60036020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610a5d57600073ffffffffffffffffffffffffffffffffffffffff1683838381811061093c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008585858181106109f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061090d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600160109054906101000a900463ffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008111610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f71756f72756d2d69732d7a65726f000000000000000000000081525060200191505060405180910390fd5b600060028281610be157fe5b061415610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d6265720000000081525060200191505060405180910390fd5b806002819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610dd257600060046000858585818110610d6a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610d4d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b7f575354455448555344000000000000000000000000000000000000000000000081565b60046020528060005260406000206000915090505481565b60006001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b6000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d656469616e2f696e76616c69642d70726963652d666565640000000000000081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905090565b6000806001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611816fffffffffffffffffffffffffffffffff169150915091509091565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b6002548a8a9050146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6261722d746f6f2d6c6f77000000000000000000000000000081525060200191505060405180910390fd5b600080905060008090506000600160109054906101000a900463ffffffff1663ffffffff16905060008090505b8d8d905081101561171657600061147c8f8f8481811061142157fe5b905060200201358e8e8581811061143457fe5b905060200201358d8d8681811061144757fe5b9050602002013560ff168c8c8781811061145d57fe5b905060200201358b8b8881811061147057fe5b90506020020135612168565b90506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f696e76616c69642d6f7261636c65000000000000000000000081525060200191505060405180910390fd5b828d8d8481811061154057fe5b90506020020135116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f7374616c652d6d65737361676500000000000000000000000081525060200191505060405180910390fd5b838f8f848181106115c757fe5b905060200201351015611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6d657373616765732d6e6f742d696e2d6f726465720000000081525060200191505060405180910390fd5b8e8e8381811061164e57fe5b905060200201359350600060988273ffffffffffffffffffffffffffffffffffffffff16901c9050600060028260ff1688901c8161168857fe5b06146116fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6f7261636c652d616c72656164792d7369676e65640000000081525060200191505060405180910390fd5b8060ff1660020a8601955050508080600101915050611405565b508c8c60018f8f9050901c81811061172a57fe5b90506020020135600160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600160106101000a81548163ffffffff021916908363ffffffff1602179055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600160009054906101000a90046fffffffffffffffffffffffffffffffff16600160109054906101000a900463ffffffff1660405180836fffffffffffffffffffffffffffffffff1681526020018263ffffffff1681526020019250505060405180910390a150505050505050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611a2d5760006003600085858581811061192a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060056000609886868681811061199957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505061190d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611e1257600073ffffffffffffffffffffffffffffffffffffffff16838383818110611b4e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6e6f2d6f7261636c652d30000000000000000000000000000081525060200191505060405180910390fd5b60006098848484818110611c0557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c9050600073ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f7369676e65722d616c72656164792d6578697374730000000081525060200191505060405180910390fd5b600160036000868686818110611d2957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838383818110611d9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050611b1f565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612044576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60025481565b6000600186867f57535445544855534400000000000000000000000000000000000000000000006040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561226b573d6000803e3d6000fd5b5050506020604051035190509594505050505056fea265627a7a723158203508048e6edab0e32554aa515ee8f7dfb0e98553e409782b64891970382aa9ec64736f6c634300050c0032

Deployed Bytecode Sourcemap

1761:3851:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1761:3851:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2241:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5204:193;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5204:193:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5204:193:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5204:193:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5204:193:0;;;;;;;;;;;;:::i;:::-;;2102:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4888:182;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4888:182:0;;;;;;;;;;;;;;;;;:::i;:::-;;5476:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5476:133:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5476:133:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5476:133:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5476:133:0;;;;;;;;;;;;:::i;:::-;;2125:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2329:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2329:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2699:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2833:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5403:67;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5403:67:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1846:63;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1846:63:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3216:1133;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3216:1133:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3216:1133:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3216:1133:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3216:1133:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3216:1133:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3216:1133:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3216:1133:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3216:1133:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3216:1133:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3216:1133:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3216:1133:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3216:1133:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3216:1133:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3216:1133:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3216:1133:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3216:1133:0;;;;;;;;;;;;:::i;:::-;;2412:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2412:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4693:189;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4693:189:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4693:189:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4693:189:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4693:189:0;;;;;;;;;;;;:::i;:::-;;4355:332;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4355:332:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4355:332:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4355:332:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4355:332:0;;;;;;;;;;;;:::i;:::-;;1915:63;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1915:63:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1802:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1802:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5076:122;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5076:122:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2171:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2241:39;;;;;;;;;;;;;;;;;:::o;5204:193::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:6;5280:1;5271:10;;5266:126;5287:1;;:8;;5283:1;:12;5266:126;;;5335:1;5319:18;;:1;;5321;5319:4;;;;;;;;;;;;;;;:18;;;;5311:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5383:1;5371:3;:9;5375:1;;5377;5375:4;;;;;;;;;;;;;;;5371:9;;;;;;;;;;;;;;;:13;;;;5297:3;;;;;;;5266:126;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;;:::o;2102:18::-;;;;;;;;;;;;;:::o;4888:182::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4959:1;4952:4;:8;4944:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5013:1;5008;5001:4;:8;;;;;;:13;;4993:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:4;5054:3;:10;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;:::o;5476:133::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5543:6;5552:1;5543:10;;5538:66;5559:1;;:8;;5555:1;:12;5538:66;;;5595:1;5583:3;:9;5587:1;;5589;5587:4;;;;;;;;;;;;;;;5583:9;;;;;;;;;;;;;;;:13;;;;5569:3;;;;;;;5538:66;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;;:::o;2125:41::-;;;:::o;2329:38::-;;;;;;;;;;;;;;;;;:::o;2699:128::-;2743:7;2504:1;2485:3;:15;2489:10;2485:15;;;;;;;;;;;;;;;;:20;2477:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2773:1;2767:3;;;;;;;;;;;:7;;;2759:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2818:3;;;;;;;;;;;2811:10;;;;2699:128;:::o;2833:93::-;2877:7;2886:4;2504:1;2485:3;:15;2489:10;2485:15;;;;;;;;;;;;;;;;:20;2477:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2907:3;;;;;;;;;;;2918:1;2912:3;;;;;;;;;;;:7;;;2899:21;;;;;;;;;2833:93;;:::o;5403:67::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5463:1;5454:3;:6;5458:1;5454:6;;;;;;;;;;;;;;;:10;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;:::o;1846:63::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:1;1893:5;:10;1899:3;1893:10;;;;;;;;;;;;;;;:14;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;:::o;3216:1133::-;3397:3;;3382:4;;:11;;:18;3374:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13;3448:1;3432:17;;3456:12;3471:1;3456:16;;3479:11;3493:3;;;;;;;;;;;3479:17;;;;3510:6;3519:1;3510:10;;3505:719;3526:4;;:11;;3522:1;:15;3505:719;;;3619:14;3636:43;3644:4;;3649:1;3644:7;;;;;;;;;;;;;3653:4;;3658:1;3653:7;;;;;;;;;;;;;3662:1;;3664;3662:4;;;;;;;;;;;;;;;3668:1;;3670;3668:4;;;;;;;;;;;;;3674:1;;3676;3674:4;;;;;;;;;;;;;3636:7;:43::i;:::-;3619:60;;3753:1;3737:4;:12;3742:6;3737:12;;;;;;;;;;;;;;;;:17;3729:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3865:3;3855:4;;3860:1;3855:7;;;;;;;;;;;;;:13;3847:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3956:4;3945;;3950:1;3945:7;;;;;;;;;;;;;:15;;3937:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4009:4;;4014:1;4009:7;;;;;;;;;;;;;4002:14;;4070:8;4106:3;4095:6;4087:15;;:22;;4070:40;;4148:1;4143;4137:2;4128:11;;:5;:11;;4127:17;;;;;;:22;4119:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4214:2;4200:16;;4208:1;4200:16;4191:25;;;;3505:719;;3539:3;;;;;;;3505:719;;;;4246:4;;4266:1;4251:4;;:11;;:16;;4246:22;;;;;;;;;;;;;4232:3;;:37;;;;;;;;;;;;;;;;;;4289:15;4276:3;;:29;;;;;;;;;;;;;;;;;;4319:24;4334:3;;;;;;;;;;;4339;;;;;;;;;;;4319:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;3216:1133;;;;;;;;;;;;;:::o;2412:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;4693:189::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4760:6;4769:1;4760:10;;4755:122;4776:1;;:8;;4772:1;:12;4755:122;;;4813:1;4800:4;:10;4805:1;;4807;4805:4;;;;;;;;;;;;;;;4800:10;;;;;;;;;;;;;;;:14;;;;4867:1;4823:4;:33;4851:3;4842:1;;4844;4842:4;;;;;;;;;;;;;;;4834:13;;:20;;4823:33;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;4786:3;;;;;;;4755:122;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;;:::o;4355:332::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4422:6;4431:1;4422:10;;4417:265;4438:1;;:8;;4434:1;:12;4417:265;;;4486:1;4470:18;;:1;;4472;4470:4;;;;;;;;;;;;;;;:18;;;;4462:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4520:7;4553:3;4544:1;;4546;4544:4;;;;;;;;;;;;;;;4536:13;;:20;;4520:37;;4593:1;4574:21;;:4;:7;4579:1;4574:7;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4566:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:1;4637:4;:10;4642:1;;4644;4642:4;;;;;;;;;;;;;;;4637:10;;;;;;;;;;;;;;;:14;;;;4670:1;;4672;4670:4;;;;;;;;;;;;;;;4660;:7;4665:1;4660:7;;;;;;;;;;;;;;;;:14;;;;;;;;;;;;;;;;;;4417:265;4448:3;;;;;;;4417:265;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;;:::o;1915:63::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:1;1962:5;:10;1968:3;1962:10;;;;;;;;;;;;;;;:14;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;:::o;1802:37::-;;;;;;;;;;;;;;;;;:::o;5076:122::-;2032:1;2011:5;:17;2017:10;2011:17;;;;;;;;;;;;;;;;:22;2003:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5148:1;5135:15;;:1;:15;;;;5127:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5191:1;5182:3;:6;5186:1;5182:6;;;;;;;;;;;;;;;:10;;;;1156:7;1248:3;1242:4;1238:14;1232:4;1225:28;1319:4;1313;1306:18;1407:3;1400:4;1394;1390:15;1383:28;1490:3;1487:1;1480:4;1474;1470:15;1457:37;1699:2;1686:16;1667:1;1654:15;1623:8;1599:1;1586:15;1581:3;1577:25;1572:3;1568:35;1544:3;1538:4;1525:217;1001:748;;:::o;2171:22::-;;;;:::o;2932:278::-;3031:7;3054:150;3162:4;3168;3174:3;3145:33;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3145:33:0;;;3135:44;;;;;;3082:98;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3082:98:0;;;3072:109;;;;;;3190:1;3193;3196;3054:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3054:150:0;;;;;;;;3047:157;;2932:278;;;;;;;:::o

Swarm Source

bzzr://3508048e6edab0e32554aa515ee8f7dfb0e98553e409782b64891970382aa9ec

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.