ETH Price: $3,288.88 (-0.72%)
Gas: 5 Gwei

Contract

0x76ca81C40CeA079D3cfBA0540229Fb3DF33620b7
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mining Token84052712019-08-23 7:47:401803 days ago1566546460IN
0x76ca81C4...DF33620b7
0 ETH0.000150325
Mining Token83877642019-08-20 14:30:261806 days ago1566311426IN
0x76ca81C4...DF33620b7
0 ETH0.000030061
Set Mining Diffi...83858742019-08-20 7:19:551806 days ago1566285595IN
0x76ca81C4...DF33620b7
0 ETH0.0005716619.9
Update ETH Price83858212019-08-20 7:07:221806 days ago1566284842IN
0x76ca81C4...DF33620b7
0 ETH0.0005803819.9
Ai Set Token G283858132019-08-20 7:05:211806 days ago1566284721IN
0x76ca81C4...DF33620b7
0 ETH0.0005864220
Ai Set Token G283857752019-08-20 6:58:131806 days ago1566284293IN
0x76ca81C4...DF33620b7
0 ETH0.0005851420
Set DA Banking T...83857702019-08-20 6:57:081806 days ago1566284228IN
0x76ca81C4...DF33620b7
0 ETH0.0005833620
Set Max Join Pac...83856492019-08-20 6:30:091806 days ago1566282609IN
0x76ca81C4...DF33620b7
0 ETH0.0005899420
Set DA Banking T...83854672019-08-20 5:47:541806 days ago1566280074IN
0x76ca81C4...DF33620b7
0 ETH0.0003383411.6
Join Package Via...83852262019-08-20 4:56:521806 days ago1566277012IN
0x76ca81C4...DF33620b7
0 ETH0.0110829820
Set Max Join Pac...83852032019-08-20 4:50:281806 days ago1566276628IN
0x76ca81C4...DF33620b7
0 ETH0.0008868330
Mining Token83845032019-08-20 2:11:051806 days ago1566267065IN
0x76ca81C4...DF33620b7
0 ETH0.000148435.5
Mining Token83842432019-08-20 1:15:001806 days ago1566263700IN
0x76ca81C4...DF33620b7
0 ETH0.000134945
Mining Token83842262019-08-20 1:12:161806 days ago1566263536IN
0x76ca81C4...DF33620b7
0 ETH0.000134945
Mining Token83842122019-08-20 1:09:531806 days ago1566263393IN
0x76ca81C4...DF33620b7
0 ETH0.000107954
Mining Token83841772019-08-20 1:02:541806 days ago1566262974IN
0x76ca81C4...DF33620b7
0 ETH0.000107954
Mining Token83841742019-08-20 1:01:541806 days ago1566262914IN
0x76ca81C4...DF33620b7
0 ETH0.000107954
Mining Token83841722019-08-20 1:01:451806 days ago1566262905IN
0x76ca81C4...DF33620b7
0 ETH0.000107954
Set Mining Diffi...83818682019-08-19 16:26:301807 days ago1566231990IN
0x76ca81C4...DF33620b7
0 ETH0.000232888
Join Package Via...83817592019-08-19 16:01:011807 days ago1566230461IN
0x76ca81C4...DF33620b7
2.489173 ETH0.0127716810.5
Register83817512019-08-19 15:59:011807 days ago1566230341IN
0x76ca81C4...DF33620b7
0 ETH0.0036723610.5
Mining Token83817012019-08-19 15:46:441807 days ago1566229604IN
0x76ca81C4...DF33620b7
0 ETH0.00072310.5
Mining Token83816542019-08-19 15:36:291807 days ago1566228989IN
0x76ca81C4...DF33620b7
0 ETH0.000103281.5
Mining Token83816342019-08-19 15:33:471807 days ago1566228827IN
0x76ca81C4...DF33620b7
0 ETH0.000275434
Mining Token83816332019-08-19 15:33:361807 days ago1566228816IN
0x76ca81C4...DF33620b7
0 ETH0.000275434
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
83857622019-08-20 6:54:341806 days ago1566284074
0x76ca81C4...DF33620b7
6,177.69024165 ETH
83817592019-08-19 16:01:011807 days ago1566230461
0x76ca81C4...DF33620b7
0.2489173 ETH
83815782019-08-19 15:20:421807 days ago1566228042
0x76ca81C4...DF33620b7
0.0997656 ETH
83812032019-08-19 13:54:421807 days ago1566222882
0x76ca81C4...DF33620b7
1.9858016 ETH
83811142019-08-19 13:36:261807 days ago1566221786
0x76ca81C4...DF33620b7
0.4975372 ETH
83810132019-08-19 13:13:241807 days ago1566220404
0x76ca81C4...DF33620b7
0.1001302 ETH
83806772019-08-19 12:00:251807 days ago1566216025
0x76ca81C4...DF33620b7
1.9851117 ETH
83806422019-08-19 11:54:081807 days ago1566215648
0x76ca81C4...DF33620b7
2.4742677 ETH
83806132019-08-19 11:48:541807 days ago1566215334
0x76ca81C4...DF33620b7
2.477578 ETH
83805942019-08-19 11:43:591807 days ago1566215039
0x76ca81C4...DF33620b7
2.4799128 ETH
83805812019-08-19 11:40:101807 days ago1566214810
0x76ca81C4...DF33620b7
2.4795438 ETH
83805192019-08-19 11:25:161807 days ago1566213916
0x76ca81C4...DF33620b7
0.3968254 ETH
83805082019-08-19 11:23:311807 days ago1566213811
0x76ca81C4...DF33620b7
0.3965108 ETH
83803742019-08-19 10:55:211807 days ago1566212121
0x76ca81C4...DF33620b7
0.0515625 ETH
83800642019-08-19 9:44:191807 days ago1566207859
0x76ca81C4...DF33620b7
0.2999101 ETH
83800172019-08-19 9:32:361807 days ago1566207156
0x76ca81C4...DF33620b7
0.1994715 ETH
83793792019-08-19 7:08:451807 days ago1566198525
0x76ca81C4...DF33620b7
0.0515625 ETH
83793502019-08-19 7:02:251807 days ago1566198145
0x76ca81C4...DF33620b7
0.4359327 ETH
83793252019-08-19 6:56:021807 days ago1566197762
0x76ca81C4...DF33620b7
0.1084301 ETH
83793202019-08-19 6:54:291807 days ago1566197669
0x76ca81C4...DF33620b7
0.207125 ETH
83791512019-08-19 6:16:591807 days ago1566195419
0x76ca81C4...DF33620b7
0.0109375 ETH
83786572019-08-19 4:23:001807 days ago1566188580
0x76ca81C4...DF33620b7
0.0515625 ETH
83781542019-08-19 2:24:301807 days ago1566181470
0x76ca81C4...DF33620b7
0.03325 ETH
83780402019-08-19 1:58:461807 days ago1566179926
0x76ca81C4...DF33620b7
0.0984375 ETH
83755392019-08-18 16:53:121808 days ago1566147192
0x76ca81C4...DF33620b7
0.1013223 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReserveFund

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-06-24
*/

pragma solidity 0.4.25;

contract Auth {

  address internal mainAdmin;
  address internal contractAdmin;

  event OwnershipTransferred(address indexed _previousOwner, address indexed _newOwner);

  constructor(
    address _mainAdmin,
    address _contractAdmin
  )
  internal
  {
    mainAdmin = _mainAdmin;
    contractAdmin = _contractAdmin;
  }

  modifier onlyAdmin() {
    require(isMainAdmin() || isContractAdmin(), "onlyAdmin");
    _;
  }

  modifier onlyMainAdmin() {
    require(isMainAdmin(), "onlyMainAdmin");
    _;
  }

  modifier onlyContractAdmin() {
    require(isContractAdmin(), "onlyContractAdmin");
    _;
  }

  function transferOwnership(address _newOwner) onlyContractAdmin internal {
    require(_newOwner != address(0x0));
    contractAdmin = _newOwner;
    emit OwnershipTransferred(msg.sender, _newOwner);
  }

  function isMainAdmin() public view returns (bool) {
    return msg.sender == mainAdmin;
  }

  function isContractAdmin() public view returns (bool) {
    return msg.sender == contractAdmin;
  }
}

library Math {
  function abs(int number) internal pure returns (uint) {
    if (number < 0) {
      return uint(number * -1);
    }
    return uint(number);
  }
}

library StringUtil {
  struct slice {
    uint _length;
    uint _pointer;
  }

  function validateUserName(string memory _username)
  internal
  pure
  returns (bool)
  {
    uint8 len = uint8(bytes(_username).length);
    if ((len < 4) || (len > 18)) return false;

    // only contain A-Z 0-9
    for (uint8 i = 0; i < len; i++) {
      if (
        (uint8(bytes(_username)[i]) < 48) ||
        (uint8(bytes(_username)[i]) > 57 && uint8(bytes(_username)[i]) < 65) ||
        (uint8(bytes(_username)[i]) > 90)
      ) return false;
    }
    // First char != '0'
    return uint8(bytes(_username)[0]) != 48;
  }
}

interface IWallet {

  function bonusForAdminWhenUserBuyPackageViaDollar(uint _amount, address _admin) external;

  function bonusNewRank(address _investorAddress, uint _currentRank, uint _newRank) external;

  function mineToken(address _from, uint _amount) external;

  function deposit(address _to, uint _deposited, uint8 _source, uint _sourceAmount) external;

  function getInvestorLastDeposited(address _investor) external view returns (uint);

  function getUserWallet(address _investor) external view returns (uint, uint[], uint, uint, uint, uint, uint);

  function getProfitBalance(address _investor) external view returns (uint);

  function increaseETHWithdrew(uint _amount) external;

  function validateCanMineToken(uint _tokenAmount, address _from) external view;
}

interface ICitizen {

  function addF1DepositedToInviter(address _invitee, uint _amount) external;

  function addNetworkDepositedToInviter(address _inviter, uint _amount, uint _source, uint _sourceAmount) external;

  function checkInvestorsInTheSameReferralTree(address _inviter, address _invitee) external view returns (bool);

  function getF1Deposited(address _investor) external view returns (uint);

  function getId(address _investor) external view returns (uint);

  function getInvestorCount() external view returns (uint);

  function getInviter(address _investor) external view returns (address);

  function getDirectlyInvitee(address _investor) external view returns (address[]);

  function getDirectlyInviteeHaveJoinedPackage(address _investor) external view returns (address[]);

  function getNetworkDeposited(address _investor) external view returns (uint);

  function getRank(address _investor) external view returns (uint);

  function getRankBonus(uint _index) external view returns (uint);

  function getUserAddresses(uint _index) external view returns (address);

  function getSubscribers(address _investor) external view returns (uint);

  function increaseInviterF1HaveJoinedPackage(address _invitee) external;

  function isCitizen(address _user) view external returns (bool);

  function register(address _user, string _userName, address _inviter) external returns (uint);

  function showInvestorInfo(address _investorAddress) external view returns (uint, string memory, address, address[], uint, uint, uint, uint);
}

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
contract IERC20 {
    function transfer(address to, uint256 value) public returns (bool);

    function approve(address spender, uint256 value) public returns (bool);

    function transferFrom(address from, address to, uint256 value) public returns (bool);

    function balanceOf(address who) public view returns (uint256);

    function allowance(address owner, address spender) public view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ReserveFund is Auth {
  using StringUtil for *;
  using Math for int;

  enum Lock {
    UNLOCKED,
    PROFIT,
    MINING_TOKEN,
    BOTH
  }

  mapping(address => Lock) public lockedAccounts;
  uint private miningDifficulty = 200000; // $200
  uint private transferDifficulty = 1000; // $1
  uint private aiTokenG3; // 1 ETH = aiTokenG3 DAB
  uint public aiTokenG2; // in mili-dollar (1/1000 dollar)
  uint public minJoinPackage = 200000; // $200
  uint public maxJoinPackage = 5000000; // $5k
  uint public currentETHPrice;
  bool public enableJoinPackageViaEther = true;

  ICitizen private citizen;
  IWallet private wallet;
  IERC20 public dabToken;

  event AccountsLocked(address[] addresses, uint8 lockingType);
  event AITokenG2Set(uint rate);
  event AITokenG3Set(uint rate);
  event ETHPriceSet(uint ethPrice);
  event EnableJoinPackageViaEtherSwitched(bool enabled);
  event EtherPriceUpdated(uint currentETHPrice);
  event MinJoinPackageSet(uint minJoinPackage);
  event MaxJoinPackageSet(uint maxJoinPackage);
  event MiningDifficultySet(uint rate);
  event TransferDifficultySet(uint value);
  event PackageJoinedViaEther(address buyer, address receiver, uint amount);
  event PackageJoinedViaToken(address buyer, address receiver, uint amount);
  event PackageJoinedViaDollar(address buyer, address receiver, uint amount);
  event Registered(uint id, string userName, address userAddress, address inviter);
  event TokenMined(address buyer, uint amount, uint walletAmount);
  event TokenSwapped(address seller, uint amount, uint ethAmount);

  constructor (
    address _citizen,
    address _wallet,
    address _mainAdmin,
    uint _currentETHPrice
  )
  Auth(_mainAdmin, msg.sender)
  public
  {
    citizen = ICitizen(_citizen);
    wallet = IWallet(_wallet);
    currentETHPrice = _currentETHPrice;
  }

  // ADMINS FUNCTIONS

  function setDABankingToken(address _dabToken) onlyAdmin public {
    dabToken = IERC20(_dabToken);
  }

  function updateETHPrice(uint _currentETHPrice) onlyAdmin public {
    require(_currentETHPrice > 0, "Must be > 0");
    require(_currentETHPrice != currentETHPrice, "Must be new value");
    currentETHPrice = _currentETHPrice;
    emit ETHPriceSet(currentETHPrice);
  }

  function updateContractAdmin(address _newAddress) onlyAdmin public {
    transferOwnership(_newAddress);
  }

  function setMinJoinPackage(uint _minJoinPackage) onlyAdmin public {
    require(_minJoinPackage > 0, "Must be > 0");
    require(_minJoinPackage < maxJoinPackage, "Must be < maxJoinPackage");
    require(_minJoinPackage != minJoinPackage, "Must be new value");
    minJoinPackage = _minJoinPackage;
    emit MinJoinPackageSet(minJoinPackage);
  }

  function setMaxJoinPackage(uint _maxJoinPackage) onlyAdmin public {
    require(_maxJoinPackage > minJoinPackage, "Must be > minJoinPackage");
    require(_maxJoinPackage != maxJoinPackage, "Must be new value");
    maxJoinPackage = _maxJoinPackage;
    emit MaxJoinPackageSet(maxJoinPackage);
  }

  function setEnableJoinPackageViaEther(bool _enableJoinPackageViaEther) onlyAdmin public {
    require(_enableJoinPackageViaEther != enableJoinPackageViaEther, "Must be new value");
    enableJoinPackageViaEther = _enableJoinPackageViaEther;
    emit EnableJoinPackageViaEtherSwitched(enableJoinPackageViaEther);
  }

  function aiSetTokenG2(uint _rate) onlyAdmin public {
    require(_rate > 0, "aiTokenG2 must be > 0");
    require(_rate != aiTokenG2, "aiTokenG2 must be new value");
    aiTokenG2 = _rate;
    emit AITokenG2Set(aiTokenG2);
  }

  function aiSetTokenG3(uint _rate) onlyAdmin public {
    require(_rate > 0, "aiTokenG3 must be > 0");
    require(_rate != aiTokenG3, "aiTokenG3 must be new value");
    aiTokenG3 = _rate;
    emit AITokenG3Set(aiTokenG3);
  }

  function setMiningDifficulty(uint _miningDifficulty) onlyAdmin public {
    require(_miningDifficulty > 0, "miningDifficulty must be > 0");
    require(_miningDifficulty != miningDifficulty, "miningDifficulty must be new value");
    miningDifficulty = _miningDifficulty;
    emit MiningDifficultySet(miningDifficulty);
  }

  function setTransferDifficulty(uint _transferDifficulty) onlyAdmin public {
    require(_transferDifficulty > 0, "MinimumBuy must be > 0");
    require(_transferDifficulty != transferDifficulty, "transferDifficulty must be new value");
    transferDifficulty = _transferDifficulty;
    emit TransferDifficultySet(transferDifficulty);
  }

  function lockAccounts(address[] _addresses, uint8 _type) onlyAdmin public {
    require(_addresses.length > 0, "Address cannot be empty");
    require(_addresses.length <= 256, "Maximum users per action is 256");
    require(_type >= 0 && _type <= 3, "Type is invalid");
    for (uint8 i = 0; i < _addresses.length; i++) {
      require(_addresses[i] != msg.sender, "You cannot lock yourself");
      lockedAccounts[_addresses[i]] = Lock(_type);
    }
    emit AccountsLocked(_addresses, _type);
  }

  // PUBLIC FUNCTIONS

  function () public payable {}

  function getAITokenG3() view public returns (uint) {
    return aiTokenG3;
  }

  function getMiningDifficulty() view public returns (uint) {
    return miningDifficulty;
  }

  function getTransferDifficulty() view public returns (uint) {
    return transferDifficulty;
  }

  function getLockedStatus(address _investor) view public returns (uint8) {
    return uint8(lockedAccounts[_investor]);
  }

  function register(string memory _userName, address _inviter) public {
    require(citizen.isCitizen(_inviter), "Inviter did not registered.");
    require(_inviter != msg.sender, "Cannot referral yourself");
    uint id = citizen.register(msg.sender, _userName, _inviter);
    emit Registered(id, _userName, msg.sender, _inviter);
  }

  function showMe() public view returns (uint, string memory, address, address[], uint, uint, uint, uint) {
    return citizen.showInvestorInfo(msg.sender);
  }

  function joinPackageViaEther(uint _rate, address _to) payable public {
    require(enableJoinPackageViaEther, "Can not buy via Ether now");
    validateJoinPackage(msg.sender, _to);
    require(_rate > 0, "Rate must be > 0");
    validateAmount(_to, (msg.value * _rate) / (10 ** 18));
    bool rateHigherUnder3Percents = (int(currentETHPrice - _rate).abs() * 100 / _rate) <= uint(3);
    bool rateLowerUnder5Percents = (int(_rate - currentETHPrice).abs() * 100 / currentETHPrice) <= uint(5);
    bool validRate = rateHigherUnder3Percents && rateLowerUnder5Percents;
    require(validRate, "Invalid rate, please check again!");
    doJoinViaEther(msg.sender, _to, msg.value, _rate);
  }

  function joinPackageViaDollar(uint _amount, address _to) public {
    validateJoinPackage(msg.sender, _to);
    validateAmount(_to, _amount);
    validateProfitBalance(msg.sender, _amount);
    wallet.deposit(_to, _amount, 2, _amount);
    wallet.bonusForAdminWhenUserBuyPackageViaDollar(_amount / 10, mainAdmin);
    emit PackageJoinedViaDollar(msg.sender, _to, _amount);
  }

  function joinPackageViaToken(uint _amount, address _to) public {
    validateJoinPackage(msg.sender, _to);
    validateAmount(_to, _amount);
    uint tokenAmount = (_amount / aiTokenG2) * (10 ** 18);
    require(dabToken.allowance(msg.sender, address(this)) >= tokenAmount, "You must call approve() first");
    uint userOldBalance = dabToken.balanceOf(msg.sender);
    require(userOldBalance >= tokenAmount, "You have not enough tokens");
    require(dabToken.transferFrom(msg.sender, address(this), tokenAmount), "Transfer token failed");
    require(dabToken.transfer(mainAdmin, tokenAmount / 10), "Transfer token to admin failed");
    wallet.deposit(_to, _amount, 1, tokenAmount);
    emit PackageJoinedViaToken(msg.sender, _to, _amount);
  }

  function miningToken(uint _tokenAmount) public {
    require(aiTokenG2 > 0, "Invalid aiTokenG2, please contact admin");
    require(citizen.isCitizen(msg.sender), "Please register first");
    validateLockingMiningToken(msg.sender);
    require(_tokenAmount > miningDifficulty, "Amount must be > miningDifficulty");
    uint fiatAmount = (_tokenAmount * aiTokenG2) / (10 ** 18);
    validateProfitBalance(msg.sender, fiatAmount);
    wallet.validateCanMineToken(fiatAmount, msg.sender);

    wallet.mineToken(msg.sender, fiatAmount);
    uint userOldBalance = dabToken.balanceOf(msg.sender);
    require(dabToken.transfer(msg.sender, _tokenAmount), "Transfer token to user failed");
    require(dabToken.balanceOf(msg.sender) == userOldBalance + _tokenAmount, "User token changed invalid");
    emit TokenMined(msg.sender, _tokenAmount, fiatAmount);
  }

  function swapToken(uint _amount) public {
    require(_amount > 0, "Invalid amount to swap");
    require(dabToken.balanceOf(msg.sender) >= _amount, "You have not enough balance");
    uint etherAmount = getEtherAmountFromToken(_amount);
    require(address(this).balance >= etherAmount, "The contract have not enough balance");
    require(dabToken.allowance(msg.sender, address(this)) >= _amount, "You must call approve() first");
    require(dabToken.transferFrom(msg.sender, address(this), _amount), "Transfer token failed");
    msg.sender.transfer(etherAmount);
    wallet.increaseETHWithdrew(etherAmount);
    emit TokenSwapped(msg.sender, _amount, etherAmount);
  }

  function getCurrentEthPrice() public view returns (uint) {
    return currentETHPrice;
  }

  // PRIVATE FUNCTIONS

  function getEtherAmountFromToken(uint _amount) private view returns (uint) {
    require(aiTokenG3 > 0, "Invalid aiTokenG3, please contact admin");
    return _amount / aiTokenG3;
  }

  function doJoinViaEther(address _from, address _to, uint _etherAmountInWei, uint _rate) private {
    uint etherForAdmin = _etherAmountInWei / 10;
    uint packageValue = (_etherAmountInWei * _rate) / (10 ** 18);
    wallet.deposit(_to, packageValue, 0, _etherAmountInWei);
    mainAdmin.transfer(etherForAdmin);
    emit PackageJoinedViaEther(_from, _to, packageValue);
  }

  function validateAmount(address _user, uint _packageValue) private view {
    require(_packageValue > 0, "Amount must be > 0");
    require(_packageValue <= maxJoinPackage, "Can not join with amount that greater max join package");
    uint lastBuy = wallet.getInvestorLastDeposited(_user);
    if (lastBuy == 0) {
      require(_packageValue >= minJoinPackage, "Minimum for first join is $200");
    } else {
      require(_packageValue >= lastBuy, "Can not join with amount that lower than your last join");
    }
  }

  function validateJoinPackage(address _from, address _to) private view {
    require(citizen.isCitizen(_from), "Please register first");
    require(citizen.isCitizen(_to), "You can only buy for an exists member");
    if (_from != _to) {
      require(citizen.checkInvestorsInTheSameReferralTree(_from, _to), "This user isn't in your referral tree");
    }
    require(currentETHPrice > 0, "Invalid currentETHPrice, please contact admin!");
  }

  function validateLockingMiningToken(address _from) private view {
    bool canBuy = lockedAccounts[_from] != Lock.MINING_TOKEN && lockedAccounts[_from] != Lock.BOTH;
    require(canBuy, "Your account get locked from mining token");
  }

  function validateProfitBalance(address _user, uint _amount) private view {
    uint profitBalance = wallet.getProfitBalance(_user);
    require(profitBalance >= _amount, "You have not enough balance");
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"updateContractAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_miningDifficulty","type":"uint256"}],"name":"setMiningDifficulty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMainAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDifficulty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userName","type":"string"},{"name":"_inviter","type":"address"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAITokenG3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"enableJoinPackageViaEther","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAmount","type":"uint256"}],"name":"miningToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"swapToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTransferDifficulty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dabToken","type":"address"}],"name":"setDABankingToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_transferDifficulty","type":"uint256"}],"name":"setTransferDifficulty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaDollar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_enableJoinPackageViaEther","type":"bool"}],"name":"setEnableJoinPackageViaEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dabToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentEthPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentETHPrice","type":"uint256"}],"name":"updateETHPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxJoinPackage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"showMe","outputs":[{"name":"","type":"uint256"},{"name":"","type":"string"},{"name":"","type":"address"},{"name":"","type":"address[]"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"aiSetTokenG3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minJoinPackage","type":"uint256"}],"name":"setMinJoinPackage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_type","type":"uint8"}],"name":"lockAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxJoinPackage","type":"uint256"}],"name":"setMaxJoinPackage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minJoinPackage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"aiTokenG2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isContractAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"aiSetTokenG2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentETHPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedAccounts","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_investor","type":"address"}],"name":"getLockedStatus","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_citizen","type":"address"},{"name":"_wallet","type":"address"},{"name":"_mainAdmin","type":"address"},{"name":"_currentETHPrice","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addresses","type":"address[]"},{"indexed":false,"name":"lockingType","type":"uint8"}],"name":"AccountsLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rate","type":"uint256"}],"name":"AITokenG2Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rate","type":"uint256"}],"name":"AITokenG3Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethPrice","type":"uint256"}],"name":"ETHPriceSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"enabled","type":"bool"}],"name":"EnableJoinPackageViaEtherSwitched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currentETHPrice","type":"uint256"}],"name":"EtherPriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minJoinPackage","type":"uint256"}],"name":"MinJoinPackageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"maxJoinPackage","type":"uint256"}],"name":"MaxJoinPackageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rate","type":"uint256"}],"name":"MiningDifficultySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"TransferDifficultySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaDollar","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"userName","type":"string"},{"indexed":false,"name":"userAddress","type":"address"},{"indexed":false,"name":"inviter","type":"address"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"walletAmount","type":"uint256"}],"name":"TokenMined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"TokenSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_previousOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405262030d4060038190556103e8600455600755624c4b40600855600a805460ff1916600117905534801561003657600080fd5b506040516080806137ec833981016040908152815160208301519183015160609093015160008054600160a060020a03958616600160a060020a03199182161790915560018054821633179055600a80549386166101000261010060a860020a031990941693909317909255600b80549490931693909116929092179055600955613726806100c66000396000f30060806040526004361061017c5763ffffffff60e060020a60003504166302e65b8a811461017e5780630a4cb9391461019f5780631168222b146101b757806317da485f146101e05780631e59c5291461020757806325b679471461026b57806334aed065146102805780633bef6e1e1461029557806348f79607146102b95780634bbf3a7a146102d157806350a4947b146102e957806351dc8b0d146102fe57806358e4bdeb1461031f57806359450ff514610337578063621b46e51461034e57806369cf6b2c1461037257806387a462ae1461038c5780639125009d146103bd578063924bb1d0146103d25780639cb5c7b9146103ea578063a34cc936146103ff578063b27ee41014610509578063b7a400d314610521578063bae2fb1314610539578063bb0ea95a14610593578063bca3583d146105ab578063cf99ad4a146105c0578063d3184e80146105d5578063d31e1ff5146105ea578063e9a158a614610602578063ebd0d82014610617578063ed153dc51461065c575b005b34801561018a57600080fd5b5061017c600160a060020a0360043516610693565b3480156101ab57600080fd5b5061017c6004356106f9565b3480156101c357600080fd5b506101cc610866565b604080519115158252519081900360200190f35b3480156101ec57600080fd5b506101f5610877565b60408051918252519081900360200190f35b34801561021357600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261017c94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061087d92505050565b34801561027757600080fd5b506101f5610b91565b34801561028c57600080fd5b506101cc610b97565b3480156102a157600080fd5b5061017c600435600160a060020a0360243516610ba0565b3480156102c557600080fd5b5061017c600435611062565b3480156102dd57600080fd5b5061017c6004356115ee565b3480156102f557600080fd5b506101f5611a74565b34801561030a57600080fd5b5061017c600160a060020a0360043516611a7a565b34801561032b57600080fd5b5061017c600435611b03565b61017c600435600160a060020a0360243516611c6f565b34801561035a57600080fd5b5061017c600435600160a060020a0360243516611e2a565b34801561037e57600080fd5b5061017c6004351515611fb0565b34801561039857600080fd5b506103a16120a5565b60408051600160a060020a039092168252519081900360200190f35b3480156103c957600080fd5b506101f56120b4565b3480156103de57600080fd5b5061017c6004356120ba565b3480156103f657600080fd5b506101f56121ef565b34801561040b57600080fd5b506104146121f5565b604051808981526020018060200188600160a060020a0316600160a060020a031681526020018060200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019080838360005b8381101561048b578181015183820152602001610473565b50505050905090810190601f1680156104b85780820380516001836020036101000a031916815260200191505b508381038252885181528851602091820191808b01910280838360005b838110156104ed5781810151838201526020016104d5565b505050509050019a505050505050505050505060405180910390f35b34801561051557600080fd5b5061017c6004356123a1565b34801561052d57600080fd5b5061017c6004356124e8565b34801561054557600080fd5b506040805160206004803580820135838102808601850190965280855261017c953695939460249493850192918291850190849080828437509497505050923560ff16935061267692505050565b34801561059f57600080fd5b5061017c60043561296f565b3480156105b757600080fd5b506101f5612aa5565b3480156105cc57600080fd5b506101f5612aab565b3480156105e157600080fd5b506101cc612ab1565b3480156105f657600080fd5b5061017c600435612ac2565b34801561060e57600080fd5b506101f5612c09565b34801561062357600080fd5b50610638600160a060020a0360043516612c0f565b6040518082600381111561064857fe5b60ff16815260200191505060405180910390f35b34801561066857600080fd5b5061067d600160a060020a0360043516612c24565b6040805160ff9092168252519081900360200190f35b61069b610866565b806106a957506106a9612ab1565b15156106ed576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6106f681612c53565b50565b610701610866565b8061070f575061070f612ab1565b1515610753576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b600081116107ab576040805160e560020a62461bcd02815260206004820152601c60248201527f6d696e696e67446966666963756c7479206d757374206265203e203000000000604482015290519081900360640190fd5b60035481141561082b576040805160e560020a62461bcd02815260206004820152602260248201527f6d696e696e67446966666963756c7479206d757374206265206e65772076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60038190556040805182815290517fc804b872dd5bd76fe759786fc915ef19c21e73e434f957897f682d670412a81e9181900360200190a150565b600054600160a060020a0316331490565b60035490565b600a546040805160e060020a63f3caad03028152600160a060020a038481166004830152915160009361010090049092169163f3caad039160248082019260209290919082900301818787803b1580156108d657600080fd5b505af11580156108ea573d6000803e3d6000fd5b505050506040513d602081101561090057600080fd5b50511515610958576040805160e560020a62461bcd02815260206004820152601b60248201527f496e766974657220646964206e6f7420726567697374657265642e0000000000604482015290519081900360640190fd5b600160a060020a0382163314156109b9576040805160e560020a62461bcd02815260206004820152601860248201527f43616e6e6f7420726566657272616c20796f757273656c660000000000000000604482015290519081900360640190fd5b600a546040517f97294e580000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a038681166044850152606060248501908152885160648601528851610100909604909116946397294e5894899389939092909160840190602086019080838360005b83811015610a4b578181015183820152602001610a33565b50505050905090810190601f168015610a785780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610a9957600080fd5b505af1158015610aad573d6000803e3d6000fd5b505050506040513d6020811015610ac357600080fd5b50516040805182815233918101829052600160a060020a03851660608201526080602082810182815288519284019290925287519495507f6cddf760a0682a65b93ab75a1c92afba3c310bdab72fe56a81949110dc6ac8619486948994909389939192909160a08401919087019080838360005b83811015610b4f578181015183820152602001610b37565b50505050905090810190601f168015610b7c5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050565b60055490565b600a5460ff1681565b600080610bad3384612d1f565b610bb783856130ae565b60065484811515610bc457fe5b600c54604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905193909204670de0b6b3a76400000294508492600160a060020a039091169163dd62ed3e9160448083019260209291908290030181600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b505050506040513d6020811015610c6b57600080fd5b50511015610cc3576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b600c546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d6020811015610d3d57600080fd5b5051905081811015610d99576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b600c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610e0c57600080fd5b505af1158015610e20573d6000803e3d6000fd5b505050506040513d6020811015610e3657600080fd5b50511515610e8e576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b600c54600054600160a060020a039182169163a9059cbb9116600a85046040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610efd57600080fd5b505af1158015610f11573d6000803e3d6000fd5b505050506040513d6020811015610f2757600080fd5b50511515610f7f576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657220746f6b656e20746f2061646d696e206661696c65640000604482015290519081900360640190fd5b600b54604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820188905260016044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b158015610ffb57600080fd5b505af115801561100f573d6000803e3d6000fd5b505060408051338152600160a060020a038716602082015280820188905290517f6a26ed261f93dd650629e9362d6ed42670d1ea1f869fbdbd077eb1b310a242369350908190036060019150a150505050565b60008060006006541115156110e7576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c6964206169546f6b656e47322c20706c6561736520636f6e74616360448201527f742061646d696e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600a546040805160e060020a63f3caad030281523360048201529051610100909204600160a060020a03169163f3caad03916024808201926020929091908290030181600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b505050506040513d602081101561116557600080fd5b505115156111bd576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6111c633613306565b6003548311611245576040805160e560020a62461bcd02815260206004820152602160248201527f416d6f756e74206d757374206265203e206d696e696e67446966666963756c7460448201527f7900000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654670de0b6b3a764000090840204915061126133836133e5565b600b54604080517f3296c7d6000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a0390921691633296c7d69160448082019260009290919082900301818387803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b5050600b54604080517f23e85bfb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a0390921693506323e85bfb925060448082019260009290919082900301818387803b15801561135157600080fd5b505af1158015611365573d6000803e3d6000fd5b5050600c546040805160e060020a6370a082310281523360048201529051600160a060020a0390921693506370a0823192506024808201926020929091908290030181600087803b1580156113b957600080fd5b505af11580156113cd573d6000803e3d6000fd5b505050506040513d60208110156113e357600080fd5b5051600c54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561145557600080fd5b505af1158015611469573d6000803e3d6000fd5b505050506040513d602081101561147f57600080fd5b505115156114d7576040805160e560020a62461bcd02815260206004820152601d60248201527f5472616e7366657220746f6b656e20746f2075736572206661696c6564000000604482015290519081900360640190fd5b600c546040805160e060020a6370a08231028152336004820152905183860192600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561152857600080fd5b505af115801561153c573d6000803e3d6000fd5b505050506040513d602081101561155257600080fd5b5051146115a9576040805160e560020a62461bcd02815260206004820152601a60248201527f5573657220746f6b656e206368616e67656420696e76616c6964000000000000604482015290519081900360640190fd5b604080513381526020810185905280820184905290517f7fb08210da114cf38e2518a9feafd477ad944ed7eb08ce5bc794ce918f3409c39181900360600190a1505050565b6000808211611647576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420616d6f756e7420746f207377617000000000000000000000604482015290519081900360640190fd5b600c546040805160e060020a6370a0823102815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b505050506040513d60208110156116c057600080fd5b50511015611718576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b611721826134d6565b905030318111156117a1576040805160e560020a62461bcd028152602060048201526024808201527f54686520636f6e74726163742068617665206e6f7420656e6f7567682062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600c54604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b15801561180c57600080fd5b505af1158015611820573d6000803e3d6000fd5b505050506040513d602081101561183657600080fd5b5051101561188e576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b600c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561190157600080fd5b505af1158015611915573d6000803e3d6000fd5b505050506040513d602081101561192b57600080fd5b50511515611983576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f193505050501580156119b0573d6000803e3d6000fd5b50600b54604080517fc61d04a1000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163c61d04a19160248082019260009290919082900301818387803b158015611a1757600080fd5b505af1158015611a2b573d6000803e3d6000fd5b5050604080513381526020810186905280820185905290517fd5a1cd88ddd329cc1ddf861a21708efa9ef3136b88e1420c21f91ef6f95ad0249350908190036060019150a15050565b60045490565b611a82610866565b80611a905750611a90612ab1565b1515611ad4576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611b0b610866565b80611b195750611b19612ab1565b1515611b5d576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b60008111611bb5576040805160e560020a62461bcd02815260206004820152601660248201527f4d696e696d756d427579206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600454811415611c34576040805160e560020a62461bcd028152602060048201526024808201527f7472616e73666572446966666963756c7479206d757374206265206e6577207660448201527f616c756500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60048190556040805182815290517f741043be2f72a75deedbedc540854fc311e7466fd47a155c39f3fb22dc0353d99181900360200190a150565b600a546000908190819060ff161515611cd2576040805160e560020a62461bcd02815260206004820152601960248201527f43616e206e6f742062757920766961204574686572206e6f7700000000000000604482015290519081900360640190fd5b611cdc3385612d1f565b60008511611d34576040805160e560020a62461bcd02815260206004820152601060248201527f52617465206d757374206265203e203000000000000000000000000000000000604482015290519081900360640190fd5b611d4a84670de0b6b3a7640000348802046130ae565b600385611d5a876009540361356d565b606402811515611d6657fe5b04111592506005600954611d7d600954880361356d565b606402811515611d8957fe5b0411159150828015611d985750815b9050801515611e17576040805160e560020a62461bcd02815260206004820152602160248201527f496e76616c696420726174652c20706c6561736520636865636b20616761696e60448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611e2333853488613587565b5050505050565b611e343382612d1f565b611e3e81836130ae565b611e4833836133e5565b600b54604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301526024820186905260026044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b158015611ec457600080fd5b505af1158015611ed8573d6000803e3d6000fd5b5050600b5460008054604080517f5e5205fe000000000000000000000000000000000000000000000000000000008152600a89046004820152600160a060020a0392831660248201529051919093169450635e5205fe935060448084019382900301818387803b158015611f4b57600080fd5b505af1158015611f5f573d6000803e3d6000fd5b505060408051338152600160a060020a038516602082015280820186905290517f7b2f4de0cb94d605245e79183c85ba07e8c449476a547bbd4fe9904e790c93709350908190036060019150a15050565b611fb8610866565b80611fc65750611fc6612ab1565b151561200a576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b600a5460ff1615158115151415612059576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b600a805460ff191682151517908190556040805160ff90921615158252517f3a8c20227c3a1c9a24b3da37d5e1b2c111f9d1b476c219cad9febe092cee4c25916020908290030190a150565b600c54600160a060020a031681565b60095490565b6120c2610866565b806120d057506120d0612ab1565b1515612114576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6000811161216c576040805160e560020a62461bcd02815260206004820152600b60248201527f4d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b6009548114156121b4576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b60098190556040805182815290517f37dcffad3b06af912e7fda69320a919573d0c99e0ba3ae2ae8e5be21be88d9fb9181900360200190a150565b60085481565b6000606060006060600080600080600a60019054906101000a9004600160a060020a0316600160a060020a03166372fbc851336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561227357600080fd5b505af1158015612287573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101008110156122b157600080fd5b8151602083018051919392830192916401000000008111156122d257600080fd5b820160208101848111156122e557600080fd5b81516401000000008111828201871017156122ff57600080fd5b5050602082015160409092018051919492939164010000000081111561232457600080fd5b8201602081018481111561233757600080fd5b815185602082028301116401000000008211171561235457600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050975097509750975097509750975097509091929394959697565b6123a9610866565b806123b757506123b7612ab1565b15156123fb576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b60008111612453576040805160e560020a62461bcd02815260206004820152601560248201527f6169546f6b656e4733206d757374206265203e20300000000000000000000000604482015290519081900360640190fd5b6005548114156124ad576040805160e560020a62461bcd02815260206004820152601b60248201527f6169546f6b656e4733206d757374206265206e65772076616c75650000000000604482015290519081900360640190fd5b60058190556040805182815290517fd3d81cad3cdf5cf5bc2d3bdd083728dca5f3049f3ec44298b0248c8217a561999181900360200190a150565b6124f0610866565b806124fe57506124fe612ab1565b1515612542576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6000811161259a576040805160e560020a62461bcd02815260206004820152600b60248201527f4d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b60085481106125f3576040805160e560020a62461bcd02815260206004820152601860248201527f4d757374206265203c206d61784a6f696e5061636b6167650000000000000000604482015290519081900360640190fd5b60075481141561263b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b60078190556040805182815290517fdbecd9aa4d7a32d8b26e95c265a7edff020bfd6e09c914833f5f7208270237369181900360200190a150565b6000612680610866565b8061268e575061268e612ab1565b15156126d2576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b825160001061272b576040805160e560020a62461bcd02815260206004820152601760248201527f416464726573732063616e6e6f7420626520656d707479000000000000000000604482015290519081900360640190fd5b82516101001015612786576040805160e560020a62461bcd02815260206004820152601f60248201527f4d6178696d756d2075736572732070657220616374696f6e2069732032353600604482015290519081900360640190fd5b60008260ff161015801561279e575060038260ff1611155b15156127f4576040805160e560020a62461bcd02815260206004820152600f60248201527f5479706520697320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b5060005b82518160ff1610156128e75782513390849060ff841690811061281757fe5b60209081029091010151600160a060020a03161415612880576040805160e560020a62461bcd02815260206004820152601860248201527f596f752063616e6e6f74206c6f636b20796f757273656c660000000000000000604482015290519081900360640190fd5b8160ff16600381111561288f57fe5b60026000858460ff168151811015156128a457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020805460ff191660018360038111156128da57fe5b02179055506001016127f8565b7fa4c25a558ef9057d52f5288f1a06611914cbed6bab5e47ab7ef302ba37ccdf2d838360405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561295657818101518382015260200161293e565b50505050905001935050505060405180910390a1505050565b612977610866565b806129855750612985612ab1565b15156129c9576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6007548111612a22576040805160e560020a62461bcd02815260206004820152601860248201527f4d757374206265203e206d696e4a6f696e5061636b6167650000000000000000604482015290519081900360640190fd5b600854811415612a6a576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b60088190556040805182815290517f12b9aff014569f32de919545171daec25b5e27ba47fba531f23351b0142be0579181900360200190a150565b60075481565b60065481565b600154600160a060020a0316331490565b612aca610866565b80612ad85750612ad8612ab1565b1515612b1c576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b60008111612b74576040805160e560020a62461bcd02815260206004820152601560248201527f6169546f6b656e4732206d757374206265203e20300000000000000000000000604482015290519081900360640190fd5b600654811415612bce576040805160e560020a62461bcd02815260206004820152601b60248201527f6169546f6b656e4732206d757374206265206e65772076616c75650000000000604482015290519081900360640190fd5b60068190556040805182815290517fe68a407f4fb9369152f192537dafac2e63a2e5e54014b93eec900db34a67ab0d9181900360200190a150565b60095481565b60026020526000908152604090205460ff1681565b600160a060020a03811660009081526002602052604081205460ff166003811115612c4b57fe5b90505b919050565b612c5b612ab1565b1515612cb1576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515612cc657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600a546040805160e060020a63f3caad03028152600160a060020a03858116600483015291516101009093049091169163f3caad03916024808201926020929091908290030181600087803b158015612d7757600080fd5b505af1158015612d8b573d6000803e3d6000fd5b505050506040513d6020811015612da157600080fd5b50511515612df9576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b600a546040805160e060020a63f3caad03028152600160a060020a03848116600483015291516101009093049091169163f3caad03916024808201926020929091908290030181600087803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b505050506040513d6020811015612e7b57600080fd5b50511515612ef9576040805160e560020a62461bcd02815260206004820152602560248201527f596f752063616e206f6e6c792062757920666f7220616e20657869737473206d60448201527f656d626572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038281169082161461302a57600a54604080517fda9c9ba7000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015291516101009093049091169163da9c9ba7916044808201926020929091908290030181600087803b158015612f8257600080fd5b505af1158015612f96573d6000803e3d6000fd5b505050506040513d6020811015612fac57600080fd5b5051151561302a576040805160e560020a62461bcd02815260206004820152602560248201527f5468697320757365722069736e277420696e20796f757220726566657272616c60448201527f2074726565000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6009546000106130aa576040805160e560020a62461bcd02815260206004820152602e60248201527f496e76616c69642063757272656e7445544850726963652c20706c656173652060448201527f636f6e746163742061646d696e21000000000000000000000000000000000000606482015290519081900360840190fd5b5050565b6000808211613107576040805160e560020a62461bcd02815260206004820152601260248201527f416d6f756e74206d757374206265203e20300000000000000000000000000000604482015290519081900360640190fd5b600854821115613187576040805160e560020a62461bcd02815260206004820152603660248201527f43616e206e6f74206a6f696e207769746820616d6f756e74207468617420677260448201527f6561746572206d6178206a6f696e207061636b61676500000000000000000000606482015290519081900360840190fd5b600b54604080517f9042bb1e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691639042bb1e9160248083019260209291908290030181600087803b1580156131ef57600080fd5b505af1158015613203573d6000803e3d6000fd5b505050506040513d602081101561321957600080fd5b505190508015156132835760075482101561327e576040805160e560020a62461bcd02815260206004820152601e60248201527f4d696e696d756d20666f72206669727374206a6f696e20697320243230300000604482015290519081900360640190fd5b613301565b80821015613301576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f74206a6f696e207769746820616d6f756e742074686174206c6f60448201527f776572207468616e20796f7572206c617374206a6f696e000000000000000000606482015290519081900360840190fd5b505050565b60006002600160a060020a03831660009081526002602052604090205460ff16600381111561333157fe5b1415801561336657506003600160a060020a03831660009081526002602052604090205460ff16600381111561336357fe5b14155b90508015156130aa576040805160e560020a62461bcd02815260206004820152602960248201527f596f7572206163636f756e7420676574206c6f636b65642066726f6d206d696e60448201527f696e6720746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600b54604080517fbb1937c0000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151600093929092169163bb1937c09160248082019260209290919082900301818787803b15801561345057600080fd5b505af1158015613464573d6000803e3d6000fd5b505050506040513d602081101561347a57600080fd5b5051905081811015613301576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b600080600554111515613559576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c6964206169546f6b656e47332c20706c6561736520636f6e74616360448201527f742061646d696e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005548281151561356657fe5b0492915050565b6000808212156135835781600019029050612c4e565b5090565b600b54604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152670de0b6b3a76400008587020460248301819052600060448401819052606484018890529351600a8804959194929091169263f1f89e9292608480830193919282900301818387803b15801561361657600080fd5b505af115801561362a573d6000803e3d6000fd5b505060008054604051600160a060020a03909116935085156108fc0292508591818181858888f19350505050158015613667573d6000803e3d6000fd5b5060408051600160a060020a0380891682528716602082015280820183905290517f2ced4e9f0876fb793bc9670927e9d22151fe5f129df989c2d4946ef5a59a97db9181900360600190a150505050505056006f6e6c7941646d696e00000000000000000000000000000000000000000000004d757374206265206e65772076616c7565000000000000000000000000000000a165627a7a72305820cb864849166ddc4457943785ef746e8019d745b439e18f7757ec3b61c7e9c1220029000000000000000000000000d4051a078383d3fc279603c1273360ac980cb39400000000000000000000000043187dd7709aec49f4870213390624bf365e119b000000000000000000000000a06cd23aa37c39095d8cfe3a0fd2654331e6312300000000000000000000000000000000000000000000000000000002540be400

Deployed Bytecode

0x60806040526004361061017c5763ffffffff60e060020a60003504166302e65b8a811461017e5780630a4cb9391461019f5780631168222b146101b757806317da485f146101e05780631e59c5291461020757806325b679471461026b57806334aed065146102805780633bef6e1e1461029557806348f79607146102b95780634bbf3a7a146102d157806350a4947b146102e957806351dc8b0d146102fe57806358e4bdeb1461031f57806359450ff514610337578063621b46e51461034e57806369cf6b2c1461037257806387a462ae1461038c5780639125009d146103bd578063924bb1d0146103d25780639cb5c7b9146103ea578063a34cc936146103ff578063b27ee41014610509578063b7a400d314610521578063bae2fb1314610539578063bb0ea95a14610593578063bca3583d146105ab578063cf99ad4a146105c0578063d3184e80146105d5578063d31e1ff5146105ea578063e9a158a614610602578063ebd0d82014610617578063ed153dc51461065c575b005b34801561018a57600080fd5b5061017c600160a060020a0360043516610693565b3480156101ab57600080fd5b5061017c6004356106f9565b3480156101c357600080fd5b506101cc610866565b604080519115158252519081900360200190f35b3480156101ec57600080fd5b506101f5610877565b60408051918252519081900360200190f35b34801561021357600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261017c94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061087d92505050565b34801561027757600080fd5b506101f5610b91565b34801561028c57600080fd5b506101cc610b97565b3480156102a157600080fd5b5061017c600435600160a060020a0360243516610ba0565b3480156102c557600080fd5b5061017c600435611062565b3480156102dd57600080fd5b5061017c6004356115ee565b3480156102f557600080fd5b506101f5611a74565b34801561030a57600080fd5b5061017c600160a060020a0360043516611a7a565b34801561032b57600080fd5b5061017c600435611b03565b61017c600435600160a060020a0360243516611c6f565b34801561035a57600080fd5b5061017c600435600160a060020a0360243516611e2a565b34801561037e57600080fd5b5061017c6004351515611fb0565b34801561039857600080fd5b506103a16120a5565b60408051600160a060020a039092168252519081900360200190f35b3480156103c957600080fd5b506101f56120b4565b3480156103de57600080fd5b5061017c6004356120ba565b3480156103f657600080fd5b506101f56121ef565b34801561040b57600080fd5b506104146121f5565b604051808981526020018060200188600160a060020a0316600160a060020a031681526020018060200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019080838360005b8381101561048b578181015183820152602001610473565b50505050905090810190601f1680156104b85780820380516001836020036101000a031916815260200191505b508381038252885181528851602091820191808b01910280838360005b838110156104ed5781810151838201526020016104d5565b505050509050019a505050505050505050505060405180910390f35b34801561051557600080fd5b5061017c6004356123a1565b34801561052d57600080fd5b5061017c6004356124e8565b34801561054557600080fd5b506040805160206004803580820135838102808601850190965280855261017c953695939460249493850192918291850190849080828437509497505050923560ff16935061267692505050565b34801561059f57600080fd5b5061017c60043561296f565b3480156105b757600080fd5b506101f5612aa5565b3480156105cc57600080fd5b506101f5612aab565b3480156105e157600080fd5b506101cc612ab1565b3480156105f657600080fd5b5061017c600435612ac2565b34801561060e57600080fd5b506101f5612c09565b34801561062357600080fd5b50610638600160a060020a0360043516612c0f565b6040518082600381111561064857fe5b60ff16815260200191505060405180910390f35b34801561066857600080fd5b5061067d600160a060020a0360043516612c24565b6040805160ff9092168252519081900360200190f35b61069b610866565b806106a957506106a9612ab1565b15156106ed576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6106f681612c53565b50565b610701610866565b8061070f575061070f612ab1565b1515610753576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b600081116107ab576040805160e560020a62461bcd02815260206004820152601c60248201527f6d696e696e67446966666963756c7479206d757374206265203e203000000000604482015290519081900360640190fd5b60035481141561082b576040805160e560020a62461bcd02815260206004820152602260248201527f6d696e696e67446966666963756c7479206d757374206265206e65772076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60038190556040805182815290517fc804b872dd5bd76fe759786fc915ef19c21e73e434f957897f682d670412a81e9181900360200190a150565b600054600160a060020a0316331490565b60035490565b600a546040805160e060020a63f3caad03028152600160a060020a038481166004830152915160009361010090049092169163f3caad039160248082019260209290919082900301818787803b1580156108d657600080fd5b505af11580156108ea573d6000803e3d6000fd5b505050506040513d602081101561090057600080fd5b50511515610958576040805160e560020a62461bcd02815260206004820152601b60248201527f496e766974657220646964206e6f7420726567697374657265642e0000000000604482015290519081900360640190fd5b600160a060020a0382163314156109b9576040805160e560020a62461bcd02815260206004820152601860248201527f43616e6e6f7420726566657272616c20796f757273656c660000000000000000604482015290519081900360640190fd5b600a546040517f97294e580000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a038681166044850152606060248501908152885160648601528851610100909604909116946397294e5894899389939092909160840190602086019080838360005b83811015610a4b578181015183820152602001610a33565b50505050905090810190601f168015610a785780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610a9957600080fd5b505af1158015610aad573d6000803e3d6000fd5b505050506040513d6020811015610ac357600080fd5b50516040805182815233918101829052600160a060020a03851660608201526080602082810182815288519284019290925287519495507f6cddf760a0682a65b93ab75a1c92afba3c310bdab72fe56a81949110dc6ac8619486948994909389939192909160a08401919087019080838360005b83811015610b4f578181015183820152602001610b37565b50505050905090810190601f168015610b7c5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050565b60055490565b600a5460ff1681565b600080610bad3384612d1f565b610bb783856130ae565b60065484811515610bc457fe5b600c54604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905193909204670de0b6b3a76400000294508492600160a060020a039091169163dd62ed3e9160448083019260209291908290030181600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b505050506040513d6020811015610c6b57600080fd5b50511015610cc3576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b600c546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d6020811015610d3d57600080fd5b5051905081811015610d99576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b600c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610e0c57600080fd5b505af1158015610e20573d6000803e3d6000fd5b505050506040513d6020811015610e3657600080fd5b50511515610e8e576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b600c54600054600160a060020a039182169163a9059cbb9116600a85046040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610efd57600080fd5b505af1158015610f11573d6000803e3d6000fd5b505050506040513d6020811015610f2757600080fd5b50511515610f7f576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657220746f6b656e20746f2061646d696e206661696c65640000604482015290519081900360640190fd5b600b54604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820188905260016044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b158015610ffb57600080fd5b505af115801561100f573d6000803e3d6000fd5b505060408051338152600160a060020a038716602082015280820188905290517f6a26ed261f93dd650629e9362d6ed42670d1ea1f869fbdbd077eb1b310a242369350908190036060019150a150505050565b60008060006006541115156110e7576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c6964206169546f6b656e47322c20706c6561736520636f6e74616360448201527f742061646d696e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600a546040805160e060020a63f3caad030281523360048201529051610100909204600160a060020a03169163f3caad03916024808201926020929091908290030181600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b505050506040513d602081101561116557600080fd5b505115156111bd576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6111c633613306565b6003548311611245576040805160e560020a62461bcd02815260206004820152602160248201527f416d6f756e74206d757374206265203e206d696e696e67446966666963756c7460448201527f7900000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654670de0b6b3a764000090840204915061126133836133e5565b600b54604080517f3296c7d6000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a0390921691633296c7d69160448082019260009290919082900301818387803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b5050600b54604080517f23e85bfb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a0390921693506323e85bfb925060448082019260009290919082900301818387803b15801561135157600080fd5b505af1158015611365573d6000803e3d6000fd5b5050600c546040805160e060020a6370a082310281523360048201529051600160a060020a0390921693506370a0823192506024808201926020929091908290030181600087803b1580156113b957600080fd5b505af11580156113cd573d6000803e3d6000fd5b505050506040513d60208110156113e357600080fd5b5051600c54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b15801561145557600080fd5b505af1158015611469573d6000803e3d6000fd5b505050506040513d602081101561147f57600080fd5b505115156114d7576040805160e560020a62461bcd02815260206004820152601d60248201527f5472616e7366657220746f6b656e20746f2075736572206661696c6564000000604482015290519081900360640190fd5b600c546040805160e060020a6370a08231028152336004820152905183860192600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561152857600080fd5b505af115801561153c573d6000803e3d6000fd5b505050506040513d602081101561155257600080fd5b5051146115a9576040805160e560020a62461bcd02815260206004820152601a60248201527f5573657220746f6b656e206368616e67656420696e76616c6964000000000000604482015290519081900360640190fd5b604080513381526020810185905280820184905290517f7fb08210da114cf38e2518a9feafd477ad944ed7eb08ce5bc794ce918f3409c39181900360600190a1505050565b6000808211611647576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420616d6f756e7420746f207377617000000000000000000000604482015290519081900360640190fd5b600c546040805160e060020a6370a0823102815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b505050506040513d60208110156116c057600080fd5b50511015611718576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b611721826134d6565b905030318111156117a1576040805160e560020a62461bcd028152602060048201526024808201527f54686520636f6e74726163742068617665206e6f7420656e6f7567682062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600c54604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b15801561180c57600080fd5b505af1158015611820573d6000803e3d6000fd5b505050506040513d602081101561183657600080fd5b5051101561188e576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b600c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561190157600080fd5b505af1158015611915573d6000803e3d6000fd5b505050506040513d602081101561192b57600080fd5b50511515611983576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f193505050501580156119b0573d6000803e3d6000fd5b50600b54604080517fc61d04a1000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163c61d04a19160248082019260009290919082900301818387803b158015611a1757600080fd5b505af1158015611a2b573d6000803e3d6000fd5b5050604080513381526020810186905280820185905290517fd5a1cd88ddd329cc1ddf861a21708efa9ef3136b88e1420c21f91ef6f95ad0249350908190036060019150a15050565b60045490565b611a82610866565b80611a905750611a90612ab1565b1515611ad4576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611b0b610866565b80611b195750611b19612ab1565b1515611b5d576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b60008111611bb5576040805160e560020a62461bcd02815260206004820152601660248201527f4d696e696d756d427579206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600454811415611c34576040805160e560020a62461bcd028152602060048201526024808201527f7472616e73666572446966666963756c7479206d757374206265206e6577207660448201527f616c756500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60048190556040805182815290517f741043be2f72a75deedbedc540854fc311e7466fd47a155c39f3fb22dc0353d99181900360200190a150565b600a546000908190819060ff161515611cd2576040805160e560020a62461bcd02815260206004820152601960248201527f43616e206e6f742062757920766961204574686572206e6f7700000000000000604482015290519081900360640190fd5b611cdc3385612d1f565b60008511611d34576040805160e560020a62461bcd02815260206004820152601060248201527f52617465206d757374206265203e203000000000000000000000000000000000604482015290519081900360640190fd5b611d4a84670de0b6b3a7640000348802046130ae565b600385611d5a876009540361356d565b606402811515611d6657fe5b04111592506005600954611d7d600954880361356d565b606402811515611d8957fe5b0411159150828015611d985750815b9050801515611e17576040805160e560020a62461bcd02815260206004820152602160248201527f496e76616c696420726174652c20706c6561736520636865636b20616761696e60448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611e2333853488613587565b5050505050565b611e343382612d1f565b611e3e81836130ae565b611e4833836133e5565b600b54604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301526024820186905260026044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b158015611ec457600080fd5b505af1158015611ed8573d6000803e3d6000fd5b5050600b5460008054604080517f5e5205fe000000000000000000000000000000000000000000000000000000008152600a89046004820152600160a060020a0392831660248201529051919093169450635e5205fe935060448084019382900301818387803b158015611f4b57600080fd5b505af1158015611f5f573d6000803e3d6000fd5b505060408051338152600160a060020a038516602082015280820186905290517f7b2f4de0cb94d605245e79183c85ba07e8c449476a547bbd4fe9904e790c93709350908190036060019150a15050565b611fb8610866565b80611fc65750611fc6612ab1565b151561200a576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b600a5460ff1615158115151415612059576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b600a805460ff191682151517908190556040805160ff90921615158252517f3a8c20227c3a1c9a24b3da37d5e1b2c111f9d1b476c219cad9febe092cee4c25916020908290030190a150565b600c54600160a060020a031681565b60095490565b6120c2610866565b806120d057506120d0612ab1565b1515612114576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6000811161216c576040805160e560020a62461bcd02815260206004820152600b60248201527f4d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b6009548114156121b4576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b60098190556040805182815290517f37dcffad3b06af912e7fda69320a919573d0c99e0ba3ae2ae8e5be21be88d9fb9181900360200190a150565b60085481565b6000606060006060600080600080600a60019054906101000a9004600160a060020a0316600160a060020a03166372fbc851336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561227357600080fd5b505af1158015612287573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101008110156122b157600080fd5b8151602083018051919392830192916401000000008111156122d257600080fd5b820160208101848111156122e557600080fd5b81516401000000008111828201871017156122ff57600080fd5b5050602082015160409092018051919492939164010000000081111561232457600080fd5b8201602081018481111561233757600080fd5b815185602082028301116401000000008211171561235457600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050975097509750975097509750975097509091929394959697565b6123a9610866565b806123b757506123b7612ab1565b15156123fb576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b60008111612453576040805160e560020a62461bcd02815260206004820152601560248201527f6169546f6b656e4733206d757374206265203e20300000000000000000000000604482015290519081900360640190fd5b6005548114156124ad576040805160e560020a62461bcd02815260206004820152601b60248201527f6169546f6b656e4733206d757374206265206e65772076616c75650000000000604482015290519081900360640190fd5b60058190556040805182815290517fd3d81cad3cdf5cf5bc2d3bdd083728dca5f3049f3ec44298b0248c8217a561999181900360200190a150565b6124f0610866565b806124fe57506124fe612ab1565b1515612542576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6000811161259a576040805160e560020a62461bcd02815260206004820152600b60248201527f4d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b60085481106125f3576040805160e560020a62461bcd02815260206004820152601860248201527f4d757374206265203c206d61784a6f696e5061636b6167650000000000000000604482015290519081900360640190fd5b60075481141561263b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b60078190556040805182815290517fdbecd9aa4d7a32d8b26e95c265a7edff020bfd6e09c914833f5f7208270237369181900360200190a150565b6000612680610866565b8061268e575061268e612ab1565b15156126d2576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b825160001061272b576040805160e560020a62461bcd02815260206004820152601760248201527f416464726573732063616e6e6f7420626520656d707479000000000000000000604482015290519081900360640190fd5b82516101001015612786576040805160e560020a62461bcd02815260206004820152601f60248201527f4d6178696d756d2075736572732070657220616374696f6e2069732032353600604482015290519081900360640190fd5b60008260ff161015801561279e575060038260ff1611155b15156127f4576040805160e560020a62461bcd02815260206004820152600f60248201527f5479706520697320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b5060005b82518160ff1610156128e75782513390849060ff841690811061281757fe5b60209081029091010151600160a060020a03161415612880576040805160e560020a62461bcd02815260206004820152601860248201527f596f752063616e6e6f74206c6f636b20796f757273656c660000000000000000604482015290519081900360640190fd5b8160ff16600381111561288f57fe5b60026000858460ff168151811015156128a457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020805460ff191660018360038111156128da57fe5b02179055506001016127f8565b7fa4c25a558ef9057d52f5288f1a06611914cbed6bab5e47ab7ef302ba37ccdf2d838360405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561295657818101518382015260200161293e565b50505050905001935050505060405180910390a1505050565b612977610866565b806129855750612985612ab1565b15156129c9576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b6007548111612a22576040805160e560020a62461bcd02815260206004820152601860248201527f4d757374206265203e206d696e4a6f696e5061636b6167650000000000000000604482015290519081900360640190fd5b600854811415612a6a576040805160e560020a62461bcd02815260206004820152601160248201526000805160206136db833981519152604482015290519081900360640190fd5b60088190556040805182815290517f12b9aff014569f32de919545171daec25b5e27ba47fba531f23351b0142be0579181900360200190a150565b60075481565b60065481565b600154600160a060020a0316331490565b612aca610866565b80612ad85750612ad8612ab1565b1515612b1c576040805160e560020a62461bcd02815260206004820152600960248201526000805160206136bb833981519152604482015290519081900360640190fd5b60008111612b74576040805160e560020a62461bcd02815260206004820152601560248201527f6169546f6b656e4732206d757374206265203e20300000000000000000000000604482015290519081900360640190fd5b600654811415612bce576040805160e560020a62461bcd02815260206004820152601b60248201527f6169546f6b656e4732206d757374206265206e65772076616c75650000000000604482015290519081900360640190fd5b60068190556040805182815290517fe68a407f4fb9369152f192537dafac2e63a2e5e54014b93eec900db34a67ab0d9181900360200190a150565b60095481565b60026020526000908152604090205460ff1681565b600160a060020a03811660009081526002602052604081205460ff166003811115612c4b57fe5b90505b919050565b612c5b612ab1565b1515612cb1576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515612cc657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600a546040805160e060020a63f3caad03028152600160a060020a03858116600483015291516101009093049091169163f3caad03916024808201926020929091908290030181600087803b158015612d7757600080fd5b505af1158015612d8b573d6000803e3d6000fd5b505050506040513d6020811015612da157600080fd5b50511515612df9576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b600a546040805160e060020a63f3caad03028152600160a060020a03848116600483015291516101009093049091169163f3caad03916024808201926020929091908290030181600087803b158015612e5157600080fd5b505af1158015612e65573d6000803e3d6000fd5b505050506040513d6020811015612e7b57600080fd5b50511515612ef9576040805160e560020a62461bcd02815260206004820152602560248201527f596f752063616e206f6e6c792062757920666f7220616e20657869737473206d60448201527f656d626572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038281169082161461302a57600a54604080517fda9c9ba7000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015291516101009093049091169163da9c9ba7916044808201926020929091908290030181600087803b158015612f8257600080fd5b505af1158015612f96573d6000803e3d6000fd5b505050506040513d6020811015612fac57600080fd5b5051151561302a576040805160e560020a62461bcd02815260206004820152602560248201527f5468697320757365722069736e277420696e20796f757220726566657272616c60448201527f2074726565000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6009546000106130aa576040805160e560020a62461bcd02815260206004820152602e60248201527f496e76616c69642063757272656e7445544850726963652c20706c656173652060448201527f636f6e746163742061646d696e21000000000000000000000000000000000000606482015290519081900360840190fd5b5050565b6000808211613107576040805160e560020a62461bcd02815260206004820152601260248201527f416d6f756e74206d757374206265203e20300000000000000000000000000000604482015290519081900360640190fd5b600854821115613187576040805160e560020a62461bcd02815260206004820152603660248201527f43616e206e6f74206a6f696e207769746820616d6f756e74207468617420677260448201527f6561746572206d6178206a6f696e207061636b61676500000000000000000000606482015290519081900360840190fd5b600b54604080517f9042bb1e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691639042bb1e9160248083019260209291908290030181600087803b1580156131ef57600080fd5b505af1158015613203573d6000803e3d6000fd5b505050506040513d602081101561321957600080fd5b505190508015156132835760075482101561327e576040805160e560020a62461bcd02815260206004820152601e60248201527f4d696e696d756d20666f72206669727374206a6f696e20697320243230300000604482015290519081900360640190fd5b613301565b80821015613301576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f74206a6f696e207769746820616d6f756e742074686174206c6f60448201527f776572207468616e20796f7572206c617374206a6f696e000000000000000000606482015290519081900360840190fd5b505050565b60006002600160a060020a03831660009081526002602052604090205460ff16600381111561333157fe5b1415801561336657506003600160a060020a03831660009081526002602052604090205460ff16600381111561336357fe5b14155b90508015156130aa576040805160e560020a62461bcd02815260206004820152602960248201527f596f7572206163636f756e7420676574206c6f636b65642066726f6d206d696e60448201527f696e6720746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600b54604080517fbb1937c0000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151600093929092169163bb1937c09160248082019260209290919082900301818787803b15801561345057600080fd5b505af1158015613464573d6000803e3d6000fd5b505050506040513d602081101561347a57600080fd5b5051905081811015613301576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b600080600554111515613559576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c6964206169546f6b656e47332c20706c6561736520636f6e74616360448201527f742061646d696e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005548281151561356657fe5b0492915050565b6000808212156135835781600019029050612c4e565b5090565b600b54604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152670de0b6b3a76400008587020460248301819052600060448401819052606484018890529351600a8804959194929091169263f1f89e9292608480830193919282900301818387803b15801561361657600080fd5b505af115801561362a573d6000803e3d6000fd5b505060008054604051600160a060020a03909116935085156108fc0292508591818181858888f19350505050158015613667573d6000803e3d6000fd5b5060408051600160a060020a0380891682528716602082015280820183905290517f2ced4e9f0876fb793bc9670927e9d22151fe5f129df989c2d4946ef5a59a97db9181900360600190a150505050505056006f6e6c7941646d696e00000000000000000000000000000000000000000000004d757374206265206e65772076616c7565000000000000000000000000000000a165627a7a72305820cb864849166ddc4457943785ef746e8019d745b439e18f7757ec3b61c7e9c1220029

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

000000000000000000000000d4051a078383d3fc279603c1273360ac980cb39400000000000000000000000043187dd7709aec49f4870213390624bf365e119b000000000000000000000000a06cd23aa37c39095d8cfe3a0fd2654331e6312300000000000000000000000000000000000000000000000000000002540be400

-----Decoded View---------------
Arg [0] : _citizen (address): 0xd4051A078383d3fc279603c1273360Ac980CB394
Arg [1] : _wallet (address): 0x43187dD7709AeC49f4870213390624bf365E119B
Arg [2] : _mainAdmin (address): 0xa06Cd23aA37C39095D8CFe3A0fd2654331e63123
Arg [3] : _currentETHPrice (uint256): 10000000000

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000d4051a078383d3fc279603c1273360ac980cb394
Arg [1] : 00000000000000000000000043187dd7709aec49f4870213390624bf365e119b
Arg [2] : 000000000000000000000000a06cd23aa37c39095d8cfe3a0fd2654331e63123
Arg [3] : 00000000000000000000000000000000000000000000000000000002540be400


Deployed Bytecode Sourcemap

4983:11639:0:-;;;;;;;;;-1:-1:-1;;;4983:11639:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7290:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7290:110:0;-1:-1:-1;;;;;7290:110:0;;;;;8871:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8871:328:0;;;;;883:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:93:0;;;;;;;;;;;;;;;;;;;;;;10213:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10213:94:0;;;;;;;;;;;;;;;;;;;;10547:339;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10547:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10547:339:0;;-1:-1:-1;;;10547:339:0;;-1:-1:-1;;;;;10547:339:0;;-1:-1:-1;10547:339:0;;-1:-1:-1;;;10547:339:0;10127:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10127:80:0;;;;5539:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5539:44:0;;;;12148:758;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12148:758:0;;;-1:-1:-1;;;;;12148:758:0;;;;;12912:867;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12912:867:0;;;;;13785:683;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13785:683:0;;;;;10313:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10313:98:0;;;;6900:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6900:104:0;-1:-1:-1;;;;;6900:104:0;;;;;9205:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9205:342:0;;;;;11058:695;;;;-1:-1:-1;;;;;11058:695:0;;;;;11759:383;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11759:383:0;;;-1:-1:-1;;;;;11759:383:0;;;;;8072:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8072:319:0;;;;;;;5646:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5646:22:0;;;;;;;;-1:-1:-1;;;;;5646:22:0;;;;;;;;;;;;;;14474:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14474:92:0;;;;7010:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7010:274:0;;;;;5459:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5459:36:0;;;;10892:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10892:160:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10892:160:0;-1:-1:-1;;;;;10892:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10892:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10892:160:0;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10892:160:0;;;;;;;;;;;;;;;;;;;;;;;;;8634:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8634:231:0;;;;;7406:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7406:352:0;;;;;9553:508;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9553:508:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9553:508:0;;-1:-1:-1;;;9553:508:0;;;;;-1:-1:-1;9553:508:0;;-1:-1:-1;;;9553:508:0;7764:302;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7764:302:0;;;;;5411:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5411:35:0;;;;5351:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5351:21:0;;;;982:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;982:101:0;;;;8397:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8397:231:0;;;;;5507:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5507:27:0;;;;5148:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5148:46:0;-1:-1:-1;;;;;5148:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10417:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10417:124:0;-1:-1:-1;;;;;10417:124:0;;;;;;;;;;;;;;;;;;;;;;;;7290:110;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;7364:30;7382:11;7364:17;:30::i;:::-;7290:110;:::o;8871:328::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;8976:1;8956:21;;8948:62;;;;;-1:-1:-1;;;;;8948:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9046:16;;9025:37;;;9017:84;;;;;-1:-1:-1;;;;;9017:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9108:16;:36;;;9156:37;;;;;;;;;;;;;;;;;8871:328;:::o;883:93::-;927:4;961:9;-1:-1:-1;;;;;961:9:0;947:10;:23;;883:93::o;10213:94::-;10285:16;;10213:94;:::o;10547:339::-;10630:7;;:27;;;-1:-1:-1;;;;;10630:27:0;;-1:-1:-1;;;;;10630:27:0;;;;;;;;;-1:-1:-1;;10630:7:0;;;;;;;:17;;:27;;;;;;;;;;;;;;;-1:-1:-1;10630:7:0;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;10630:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10630:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10630:27:0;10622:67;;;;;;;-1:-1:-1;;;;;10622:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10704:22:0;;10716:10;10704:22;;10696:59;;;;;-1:-1:-1;;;;;10696:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10772:7;;:49;;;;;10789:10;10772:49;;;;;;-1:-1:-1;;;;;10772:49:0;;;;;;;;;;;;;;;;;;;;;;:7;;;;;;;;:16;;:49;;;;;;;;;;;-1:-1:-1;10772:49:0;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10772:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10772:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10772:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10772:49:0;10833:47;;;;;;10859:10;10833:47;;;;;;-1:-1:-1;;;;;10833:47:0;;;;;;;10772:49;10833:47;;;;;;;;;;;;;;;;;10772:49;;-1:-1:-1;10833:47:0;;10772:49;;10848:9;;10859:10;;10871:8;;10833:47;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10833:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10547:339;;;:::o;10127:80::-;10192:9;;10127:80;:::o;5539:44::-;;;;;;:::o;12148:758::-;12296:16;12465:19;12218:36;12238:10;12250:3;12218:19;:36::i;:::-;12261:28;12276:3;12281:7;12261:14;:28::i;:::-;12326:9;;12316:7;:19;;;;;;;12364:8;;:45;;;;;;12383:10;12364:45;;;;12403:4;12364:45;;;;;;12316:19;;;;12340:8;12315:34;;-1:-1:-1;12315:34:0;;-1:-1:-1;;;;;12364:8:0;;;;:18;;:45;;;;;;;;;;;;;;-1:-1:-1;12364:8:0;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;12364:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12364:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12364:45:0;:60;;12356:102;;;;;-1:-1:-1;;;;;12356:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12487:8;;:30;;;-1:-1:-1;;;;;12487:30:0;;12506:10;12487:30;;;;;;-1:-1:-1;;;;;12487:8:0;;;;:18;;:30;;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;12487:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12487:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12487:30:0;;-1:-1:-1;12532:29:0;;;;12524:68;;;;;-1:-1:-1;;;;;12524:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12607:8;;:61;;;;;;12629:10;12607:61;;;;12649:4;12607:61;;;;;;;;;;;;-1:-1:-1;;;;;12607:8:0;;;;:21;;:61;;;;;;;;;;;;;;;:8;;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;12607:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12607:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12607:61:0;12599:95;;;;;;;-1:-1:-1;;;;;12599:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12709:8;;;12727:9;-1:-1:-1;;;;;12709:8:0;;;;:17;;12727:9;12752:2;12738:11;:16;12709:46;;;;;-1:-1:-1;;;12709:46:0;;;;;;;-1:-1:-1;;;;;12709:46:0;-1:-1:-1;;;;;12709:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12709:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12709:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12709:46:0;12701:89;;;;;;;-1:-1:-1;;;;;12701:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12797:6;;:44;;;;;;-1:-1:-1;;;;;12797:44:0;;;;;;;;;;;;;:6;:44;;;;;;;;;;;;:6;;;;;:14;;:44;;;;;:6;;:44;;;;;;;:6;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;12797:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12853:47:0;;;12875:10;12853:47;;-1:-1:-1;;;;;12853:47:0;;;;;;;;;;;;;;;;-1:-1:-1;12853:47:0;;;;;;;-1:-1:-1;12853:47:0;12148:758;;;;:::o;12912:867::-;13237:15;13460:19;12986:1;12974:9;;:13;12966:65;;;;;;;-1:-1:-1;;;;;12966:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13046:7;;:29;;;-1:-1:-1;;;;;13046:29:0;;13064:10;13046:29;;;;;;:7;;;;-1:-1:-1;;;;;13046:7:0;;:17;;:29;;;;;;;;;;;;;;;-1:-1:-1;13046:7:0;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13046:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13046:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13046:29:0;13038:63;;;;;;;-1:-1:-1;;;;;13038:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13108:38;13135:10;13108:26;:38::i;:::-;13176:16;;13161:31;;13153:77;;;;;-1:-1:-1;;;;;13153:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13271:9;;13285:8;;13256:24;;13255:39;13237:57;;13301:45;13323:10;13335;13301:21;:45::i;:::-;13353:6;;:51;;;;;;;;;;;;13393:10;13353:51;;;;;;-1:-1:-1;;;;;13353:6:0;;;;:27;;:51;;;;;:6;;:51;;;;;;;;:6;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;13353:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13413:6:0;;:40;;;;;;13430:10;13413:40;;;;;;;;;;;;-1:-1:-1;;;;;13413:6:0;;;;-1:-1:-1;13413:16:0;;-1:-1:-1;13413:40:0;;;;;:6;;:40;;;;;;;;:6;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;13413:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13482:8:0;;:30;;;-1:-1:-1;;;;;13482:30:0;;13501:10;13482:30;;;;;;-1:-1:-1;;;;;13482:8:0;;;;-1:-1:-1;13482:18:0;;-1:-1:-1;13482:30:0;;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13482:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13482:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13482:30:0;13527:8;;:43;;;;;;13545:10;13527:43;;;;;;;;;;;;13482:30;;-1:-1:-1;;;;;;13527:8:0;;;;:17;;:43;;;;;13482:30;;13527:43;;;;;;;;:8;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;13527:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13527:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13527:43:0;13519:85;;;;;;;-1:-1:-1;;;;;13519:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13619:8;;:30;;;-1:-1:-1;;;;;13619:30:0;;13638:10;13619:30;;;;;;13653:29;;;;-1:-1:-1;;;;;13619:8:0;;:18;;:30;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13619:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13619:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13619:30:0;:63;13611:102;;;;;-1:-1:-1;;;;;13611:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13725:48;;;13736:10;13725:48;;;;;;;;;;;;;;;;;;;;;;;;;12912:867;;;:::o;13785:683::-;13973:16;13840:11;;;13832:46;;;;;-1:-1:-1;;;;;13832:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13893:8;;:30;;;-1:-1:-1;;;;;13893:30:0;;13912:10;13893:30;;;;;;13927:7;;-1:-1:-1;;;;;13893:8:0;;:18;;:30;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13893:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13893:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13893:30:0;:41;;13885:81;;;;;-1:-1:-1;;;;;13885:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13992:32;14016:7;13992:23;:32::i;:::-;13973:51;-1:-1:-1;14047:4:0;14039:21;:36;-1:-1:-1;14039:36:0;14031:85;;;;;-1:-1:-1;;;;;14031:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14131:8;;:45;;;;;;14150:10;14131:45;;;;14170:4;14131:45;;;;;;14180:7;;-1:-1:-1;;;;;14131:8:0;;:18;;:45;;;;;;;;;;;;;;:8;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;14131:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14131:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14131:45:0;:56;;14123:98;;;;;-1:-1:-1;;;;;14123:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14236:8;;:57;;;;;;14258:10;14236:57;;;;14278:4;14236:57;;;;;;;;;;;;-1:-1:-1;;;;;14236:8:0;;;;:21;;:57;;;;;;;;;;;;;;;:8;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;14236:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14236:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14236:57:0;14228:91;;;;;;;-1:-1:-1;;;;;14228:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14326:32;;:10;;:32;;;;;14346:11;;14326:32;;;;14346:11;14326:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14365:6:0;;:39;;;;;;;;;;;;;;-1:-1:-1;;;;;14365:6:0;;;;:26;;:39;;;;;:6;;:39;;;;;;;;:6;;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;14365:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14416:46:0;;;14429:10;14416:46;;;;;;;;;;;;;;;;;;-1:-1:-1;14416:46:0;;;;;;;-1:-1:-1;14416:46:0;13785:683;;:::o;10313:98::-;10387:18;;10313:98;:::o;6900:104::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;6970:8;:28;;-1:-1:-1;;6970:28:0;-1:-1:-1;;;;;6970:28:0;;;;;;;;;;6900:104::o;9205:342::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;9316:1;9294:23;;9286:58;;;;;-1:-1:-1;;;;;9286:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:18;;9359:41;;;9351:90;;;;;-1:-1:-1;;;;;9351:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9448:18;:40;;;9500:41;;;;;;;;;;;;;;;;;9205:342;:::o;11058:695::-;11142:25;;11352:29;;;;;;11142:25;;11134:63;;;;;;;-1:-1:-1;;;;;11134:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11204:36;11224:10;11236:3;11204:19;:36::i;:::-;11263:1;11255:9;;11247:38;;;;;-1:-1:-1;;;;;11247:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11292:53;11307:3;11335:8;11313:9;:17;;11312:32;11292:14;:53::i;:::-;11443:1;11428:5;11385:34;11407:5;11389:15;;:23;11385:32;:34::i;:::-;11422:3;11385:40;:48;;;;;;;;11384:61;;11352:93;;11552:1;11527:15;;11484:34;11496:15;;11488:5;:23;11484:32;:34::i;:::-;11521:3;11484:40;:58;;;;;;;;11483:71;;11452:102;;11578:24;:51;;;;;11606:23;11578:51;11561:68;;11644:9;11636:55;;;;;;;-1:-1:-1;;;;;11636:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11698:49;11713:10;11725:3;11730:9;11741:5;11698:14;:49::i;:::-;11058:695;;;;;:::o;11759:383::-;11830:36;11850:10;11862:3;11830:19;:36::i;:::-;11873:28;11888:3;11893:7;11873:14;:28::i;:::-;11908:42;11930:10;11942:7;11908:21;:42::i;:::-;11957:6;;:40;;;;;;-1:-1:-1;;;;;11957:40:0;;;;;;;;;;;;;11986:1;11957:40;;;;;;;;;;;;:6;;;;;:14;;:40;;;;;:6;;:40;;;;;;;:6;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;11957:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12004:6:0;;12066:9;;;12004:72;;;;;;12062:2;12052:12;;12004:72;;;;-1:-1:-1;;;;;12066:9:0;;;12004:72;;;;;;:6;;;;;-1:-1:-1;12004:47:0;;-1:-1:-1;12004:72:0;;;;;;;;;;12066:9;12004:6;:72;;;5:2:-1;;;;30:1;27;20:12;5:2;12004:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12088:48:0;;;12111:10;12088:48;;-1:-1:-1;;;;;12088:48:0;;;;;;;;;;;;;;;;-1:-1:-1;12088:48:0;;;;;;;-1:-1:-1;12088:48:0;11759:383;;:::o;8072:319::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;8205:25;;;;8175:55;;;;;;;8167:85;;;;;-1:-1:-1;;;;;8167:85:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8167:85:0;;;;;;;;;;;;;;;8259:25;:54;;-1:-1:-1;;8259:54:0;;;;;;;;;8325:60;;;8259:54;8359:25;;;8325:60;;;;;;;;;;;;;;;8072:319;:::o;5646:22::-;;;-1:-1:-1;;;;;5646:22:0;;:::o;14474:92::-;14545:15;;14474:92;:::o;7010:274::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;7108:1;7089:20;;7081:44;;;;;-1:-1:-1;;;;;7081:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7160:15;;7140:35;;;7132:65;;;;;-1:-1:-1;;;;;7132:65:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7132:65:0;;;;;;;;;;;;;;;7204:15;:34;;;7250:28;;;;;;;;;;;;;;;;;7010:274;:::o;5459:36::-;;;;:::o;10892:160::-;10931:4;10937:6;10952:7;10961:9;10972:4;10978;10984;10990;11010:7;;;;;;;;;-1:-1:-1;;;;;11010:7:0;-1:-1:-1;;;;;11010:24:0;;11035:10;11010:36;;;;;-1:-1:-1;;;11010:36:0;;;;;;;-1:-1:-1;;;;;11010:36:0;-1:-1:-1;;;;;11010:36:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11010:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11010:36:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11010:36:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;11010:36:0;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;11010:36:0;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;11010:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11003:43;;;;;;;;;;;;;;;;10892:160;;;;;;;;:::o;8634:231::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;8708:1;8700:9;;8692:43;;;;;-1:-1:-1;;;;;8692:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8759:9;;8750:18;;;8742:58;;;;;-1:-1:-1;;;;;8742:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8807:9;:17;;;8836:23;;;;;;;;;;;;;;;;;8634:231;:::o;7406:352::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;7505:1;7487:19;;7479:43;;;;;-1:-1:-1;;;;;7479:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7555:14;;7537:32;;7529:69;;;;;-1:-1:-1;;;;;7529:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7632:14;;7613:33;;;7605:63;;;;;-1:-1:-1;;;;;7605:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7605:63:0;;;;;;;;;;;;;;;7675:14;:32;;;7719:33;;;;;;;;;;;;;;;;;7406:352;:::o;9553:508::-;9837:7;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;9642:17;;9662:1;-1:-1:-1;9634:57:0;;;;;-1:-1:-1;;;;;9634:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9706:17;;9727:3;-1:-1:-1;9706:24:0;9698:68;;;;;-1:-1:-1;;;;;9698:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9790:1;9781:5;:10;;;;:24;;;;;9804:1;9795:5;:10;;;;9781:24;9773:52;;;;;;;-1:-1:-1;;;;;9773:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9847:1:0;9832:179;9854:10;:17;9850:1;:21;;;9832:179;;;9895:13;;9912:10;;9895;;:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:27:0;;;9887:64;;;;;-1:-1:-1;;;;;9887:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9997:5;9992:11;;;;;;;;;;9960:14;:29;9975:10;9986:1;9975:13;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9960:29:0;;;;;;;;;;;-1:-1:-1;9960:29:0;:43;;-1:-1:-1;;9960:43:0;;;;;;;;;;;;;;;-1:-1:-1;9873:3:0;;9832:179;;;10022:33;10037:10;10049:5;10022:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10022:33:0;;;;;;;;;;;;;;;;;;9553:508;;;:::o;7764:302::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;7863:14;;7845:32;;7837:69;;;;;-1:-1:-1;;;;;7837:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7940:14;;7921:33;;;7913:63;;;;;-1:-1:-1;;;;;7913:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7913:63:0;;;;;;;;;;;;;;;7983:14;:32;;;8027:33;;;;;;;;;;;;;;;;;7764:302;:::o;5411:35::-;;;;:::o;5351:21::-;;;;:::o;982:101::-;1064:13;;-1:-1:-1;;;;;1064:13:0;1050:10;:27;;982:101::o;8397:231::-;408:13;:11;:13::i;:::-;:34;;;;425:17;:15;:17::i;:::-;400:56;;;;;;;-1:-1:-1;;;;;400:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;400:56:0;;;;;;;;;;;;;;;8471:1;8463:9;;8455:43;;;;;-1:-1:-1;;;;;8455:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8522:9;;8513:18;;;8505:58;;;;;-1:-1:-1;;;;;8505:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8570:9;:17;;;8599:23;;;;;;;;;;;;;;;;;8397:231;:::o;5507:27::-;;;;:::o;5148:46::-;;;;;;;;;;;;;;;:::o;10417:124::-;-1:-1:-1;;;;;10509:25:0;;10482:5;10509:25;;;:14;:25;;;;;;;;10503:32;;;;;;;;10496:39;;10417:124;;;;:::o;670:207::-;611:17;:15;:17::i;:::-;603:47;;;;;;;-1:-1:-1;;;;;603:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;758:25:0;;;;750:34;;;;;;791:13;:25;;-1:-1:-1;;791:25:0;-1:-1:-1;;;;;791:25:0;;;;;;;;828:43;;849:10;;828:43;;-1:-1:-1;;828:43:0;670:207;:::o;15710:451::-;15795:7;;:24;;;-1:-1:-1;;;;;15795:24:0;;-1:-1:-1;;;;;15795:24:0;;;;;;;;;:7;;;;;;;;:17;;:24;;;;;;;;;;;;;;;-1:-1:-1;15795:7:0;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;15795:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15795:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15795:24:0;15787:58;;;;;;;-1:-1:-1;;;;;15787:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15860:7;;:22;;;-1:-1:-1;;;;;15860:22:0;;-1:-1:-1;;;;;15860:22:0;;;;;;;;;:7;;;;;;;;:17;;:22;;;;;;;;;;;;;;;-1:-1:-1;15860:7:0;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;15860:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15860:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15860:22:0;15852:72;;;;;;;-1:-1:-1;;;;;15852:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15935:12:0;;;;;;;15931:140;;15966:7;;:55;;;;;;-1:-1:-1;;;;;15966:55:0;;;;;;;;;;;;;;;;:7;;;;;;;;:43;;:55;;;;;;;;;;;;;;;-1:-1:-1;15966:7:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;15966:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15966:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15966:55:0;15958:105;;;;;;;-1:-1:-1;;;;;15958:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16085:15;;16103:1;-1:-1:-1;16077:78:0;;;;;-1:-1:-1;;;;;16077:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15710:451;;:::o;15176:528::-;15415:12;15263:17;;;15255:48;;;;;-1:-1:-1;;;;;15255:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15335:14;;15318:31;;;15310:98;;;;;-1:-1:-1;;;;;15310:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15430:6;;:38;;;;;;-1:-1:-1;;;;;15430:38:0;;;;;;;;;:6;;;;;:31;;:38;;;;;;;;;;;;;;:6;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;15430:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15430:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15430:38:0;;-1:-1:-1;15479:12:0;;15475:224;;;15527:14;;15510:31;;;15502:74;;;;;-1:-1:-1;;;;;15502:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15475:224;;;15607:24;;;;15599:92;;;;;-1:-1:-1;;;;;15599:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15176:528;;;:::o;16167:238::-;16238:11;16277:17;-1:-1:-1;;;;;16252:21:0;;;;;;:14;:21;;;;;;;;:42;;;;;;;;;;:80;;;;-1:-1:-1;16323:9:0;-1:-1:-1;;;;;16298:21:0;;;;;;:14;:21;;;;;;;;:34;;;;;;;;;;16252:80;16238:94;;16347:6;16339:60;;;;;;;-1:-1:-1;;;;;16339:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16411:208;16512:6;;:30;;;;;;-1:-1:-1;;;;;16512:30:0;;;;;;;;;16491:18;;16512:6;;;;;:23;;:30;;;;;;;;;;;;;;;16491:18;16512:6;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16512:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16512:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16512:30:0;;-1:-1:-1;16557:24:0;;;;16549:64;;;;;-1:-1:-1;;;;;16549:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14598:186;14667:4;14700:1;14688:9;;:13;14680:65;;;;;;;-1:-1:-1;;;;;14680:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14769:9;;14759:7;:19;;;;;;;;;14598:186;-1:-1:-1;;14598:186:0:o;1108:149::-;1156:4;1182:1;1173:6;:10;1169:57;;;1206:6;-1:-1:-1;;1206:11:0;1194:24;;;;1169:57;-1:-1:-1;1244:6:0;1108:149::o;14790:380::-;15010:6;;:55;;;;;;-1:-1:-1;;;;;15010:55:0;;;;;;;14994:8;14964:25;;;14963:40;15010:55;;;;;;14893:18;15010:55;;;;;;;;;;;;;;14934:2;14914:22;;;14963:40;;15010:6;;;;;:14;;:55;;;;;14893:18;;15010:55;;;;;14893:18;15010:6;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;15010:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15072:9:0;;;:33;;-1:-1:-1;;;;;15072:9:0;;;;-1:-1:-1;15072:33:0;;;;;-1:-1:-1;15091:13:0;;15072:33;:9;:33;15091:13;15072:9;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;15117:47:0;;;-1:-1:-1;;;;;15117:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14790:380;;;;;;:::o

Swarm Source

bzzr://cb864849166ddc4457943785ef746e8019d745b439e18f7757ec3b61c7e9c122

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  ]
[ 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.