Address Details
contract

0x0e5047e1273dFaB56EB800F31da9e8A8872e14D8

Contract Name
BaseTransfers
Creator
0x074a2b–d4c25d at 0xfb8b9d–7fb12e
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
21454763
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
BaseTransfers




Optimization enabled
true
Compiler version
v0.6.0+commit.26b70077




Optimization runs
200
EVM Version
istanbul




Verified at
2022-11-05T12:08:55.820284Z

contracts/test.sol

pragma solidity ^0.6.0;

interface publicCalls {
  function GenesisDestroyAmountCount (  ) external view returns ( uint256 );
  function GenesisDestroyAmountCountSet ( uint256 _GenesisDestroyAmountCount ) external;
  function GenesisDestroyCountStake (  ) external view returns ( uint256 );
  function GenesisDestroyCountStakeSet ( uint256 _GenesisDestroyCountStake ) external;
  function GenesisDestroyed (  ) external view returns ( uint256 );
  function GenesisDestroyedSet ( uint256 _GenesisDestroyed ) external;
  function NormalAddressBuyPricePerMNE ( address ) external view returns ( uint256 );
  function NormalAddressBuyPricePerMNESet ( address _address, uint256 _NormalAddressBuyPricePerMNE ) external;
  function NormalAddressFeeCount (  ) external view returns ( uint256 );
  function NormalAddressFeeCountSet ( uint256 _NormalAddressFeeCount ) external;
  function NormalAddressSalesCount (  ) external view returns ( uint256 );
  function NormalAddressSalesCountSet ( uint256 _NormalAddressSalesCount ) external;
  function NormalAddressSalesPriceCount (  ) external view returns ( uint256 );
  function NormalAddressSalesPriceCountSet ( uint256 _NormalAddressSalesPriceCount ) external;
  function NormalBalanceImported (  ) external view returns ( uint256 );
  function NormalBalanceImportedSet ( uint256 _NormalBalanceImported ) external;
  function NormalImportedAmountCount (  ) external view returns ( uint256 );
  function NormalImportedAmountCountSet ( uint256 _NormalImportedAmountCount ) external;
  function allowAddressToDestroyGenesis ( address ) external view returns ( address );
  function allowAddressToDestroyGenesisSet ( address _address, address _allowAddressToDestroyGenesis ) external;
  function allowReceiveGenesisTransfers ( address ) external view returns ( bool );
  function allowReceiveGenesisTransfersSet ( address _address, bool _allowReceiveGenesisTransfers ) external;
  function allowed ( address, address ) external view returns ( uint256 );
  function allowedSet ( address _address, address _spender, uint256 _amount ) external;
  function amountOfGenesisToBuyStakes (  ) external view returns ( uint256 );
  function amountOfGenesisToBuyStakesSet ( address _from, uint256 _amountOfGenesisToBuyStakes ) external;
  function amountOfGenesisToTransferStakes (  ) external view returns ( uint256 );
  function amountOfGenesisToTransferStakesSet ( address _from, uint256 _amountOfGenesisToTransferStakes ) external;
  function amountOfMNEForToken (  ) external view returns ( uint256 );
  function amountOfMNEForTokenICO (  ) external view returns ( uint256 );
  function amountOfMNEForTokenICOSet ( address _from, uint256 _amountOfMNEForTokenICO ) external;
  function amountOfMNEForTokenSet ( address _from, uint256 _amountOfMNEForToken ) external;
  function amountOfMNEToBuyStakes (  ) external view returns ( uint256 );
  function amountOfMNEToBuyStakesSet ( address _from, uint256 _amountOfMNEToBuyStakes ) external;
  function amountOfMNEToTransferStakes (  ) external view returns ( uint256 );
  function amountOfMNEToTransferStakesSet ( address _from, uint256 _amountOfMNEToTransferStakes ) external;
  function availableBalance (  ) external view returns ( uint256 );
  function availableBalanceSet ( uint256 _availableBalance ) external;
  function balances ( address ) external view returns ( uint256 );
  function balancesSet ( address _address, uint256 _balances ) external;
  function buyStakeGenesisCount (  ) external view returns ( uint256 );
  function buyStakeGenesisCountSet ( uint256 _buyStakeGenesisCount ) external;
  function buyStakeMNECount (  ) external view returns ( uint256 );
  function buyStakeMNECountSet ( uint256 _buyStakeMNECount ) external;
  function ethFeeForSellerLevel1 (  ) external view returns ( uint256 );
  function ethFeeForSellerLevel1Set ( address _from, uint256 _ethFeeForSellerLevel1 ) external;
  function ethFeeForToken (  ) external view returns ( uint256 );
  function ethFeeForTokenICO (  ) external view returns ( uint256 );
  function ethFeeForTokenICOSet ( address _from, uint256 _ethFeeForTokenICO ) external;
  function ethFeeForTokenSet ( address _from, uint256 _ethFeeForToken ) external;
  function ethFeeToBuyLevel1 (  ) external view returns ( uint256 );
  function ethFeeToBuyLevel1Set ( address _from, uint256 _ethFeeToBuyLevel1 ) external;
  function ethFeeToUpgradeToLevel2 (  ) external view returns ( uint256 );
  function ethFeeToUpgradeToLevel2Set ( address _from, uint256 _ethFeeToUpgradeToLevel2 ) external;
  function ethFeeToUpgradeToLevel3 (  ) external view returns ( uint256 );
  function ethFeeToUpgradeToLevel3Set ( address _from, uint256 _ethFeeToUpgradeToLevel3 ) external;
  function ethPercentFeeGenesisExchange (  ) external view returns ( uint256 );
  function ethPercentFeeGenesisExchangeSet ( address _from, uint256 _ethPercentFeeGenesisExchange ) external;
  function ethPercentFeeNormalExchange (  ) external view returns ( uint256 );
  function ethPercentFeeNormalExchangeSet ( address _from, uint256 _ethPercentFeeNormalExchange ) external;
  function ethPercentStakeExchange (  ) external view returns ( uint256 );
  function ethPercentStakeExchangeSet ( address _from, uint256 _ethPercentStakeExchange ) external;
  function genesisAddressCount (  ) external view returns ( uint256 );
  function genesisAddressCountSet ( uint256 _genesisAddressCount ) external;
  function genesisAddressesForSaleLevel1Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel1IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel1Index ) external;
  function genesisAddressesForSaleLevel2Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel2IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel2Index ) external;
  function genesisAddressesForSaleLevel3Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel3IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel3Index ) external;
  function genesisBuyPrice ( address ) external view returns ( uint256 );
  function genesisBuyPriceSet ( address _address, uint256 _genesisBuyPrice ) external;
  function genesisCallerAddress (  ) external view returns ( address );
  function genesisCallerAddressSet ( address _genesisCallerAddress ) external;
  function genesisInitialSupply ( address ) external view returns ( uint256 );
  function genesisInitialSupplySet ( address _address, uint256 _genesisInitialSupply ) external;
  function genesisRewardPerBlock (  ) external view returns ( uint256 );
  function genesisSalesCount (  ) external view returns ( uint256 );
  function genesisSalesCountSet ( uint256 _genesisSalesCount ) external;
  function genesisSalesPriceCount (  ) external view returns ( uint256 );
  function genesisSalesPriceCountSet ( uint256 _genesisSalesPriceCount ) external;
  function genesisSupplyPerAddress (  ) external view returns ( uint256 );
  function genesisTransfersCount (  ) external view returns ( uint256 );
  function genesisTransfersCountSet ( uint256 _genesisTransfersCount ) external;
  function initialBlockCount (  ) external view returns ( uint256 );
  function initialBlockCountPerAddress ( address ) external view returns ( uint256 );
  function initialBlockCountPerAddressSet ( address _address, uint256 _initialBlockCountPerAddress ) external;
  function initialBlockCountSet ( uint256 _initialBlockCount ) external;
  function isGenesisAddress ( address ) external view returns ( uint8 );
  function isGenesisAddressForSale ( address ) external view returns ( bool );
  function isGenesisAddressForSaleSet ( address _address, bool _isGenesisAddressForSale ) external;
  function isGenesisAddressSet ( address _address, uint8 _isGenesisAddress ) external;
  function isNormalAddressForSale ( address ) external view returns ( bool );
  function isNormalAddressForSaleSet ( address _address, bool _isNormalAddressForSale ) external;
  function level2ActivationsFromLevel1Count (  ) external view returns ( uint256 );
  function level2ActivationsFromLevel1CountSet ( uint256 _level2ActivationsFromLevel1Count ) external;
  function level3ActivationsFromDevCount (  ) external view returns ( uint256 );
  function level3ActivationsFromDevCountSet ( uint256 _level3ActivationsFromDevCount ) external;
  function level3ActivationsFromLevel1Count (  ) external view returns ( uint256 );
  function level3ActivationsFromLevel1CountSet ( uint256 _level3ActivationsFromLevel1Count ) external;
  function level3ActivationsFromLevel2Count (  ) external view returns ( uint256 );
  function level3ActivationsFromLevel2CountSet ( uint256 _level3ActivationsFromLevel2Count ) external;
  function maxBlocks (  ) external view returns ( uint256 );
  function mneBurned (  ) external view returns ( uint256 );
  function mneBurnedSet ( uint256 _mneBurned ) external;
  function normalAddressesForSaleIndex ( address ) external view returns ( uint256 );
  function normalAddressesForSaleIndexSet ( address _address, uint256 _normalAddressesForSaleIndex ) external;
  function overallSupply (  ) external view returns ( uint256 );
  function overallSupplySet ( uint256 _overallSupply ) external;
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function ownerTokenService (  ) external view returns ( address );
  function setOwnerGenesis (  ) external;
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function setOwnerTokenService (  ) external;
  function setOwnerBaseTransfers (  ) external;
  function setupRunning (  ) external view returns ( bool );
  function setupRunningSet ( bool _setupRunning ) external;
  function stakeBalances ( address ) external view returns ( uint256 );
  function stakeBalancesSet ( address _address, uint256 _stakeBalances ) external;
  function stakeBuyPrice ( address ) external view returns ( uint256 );
  function stakeBuyPriceSet ( address _address, uint256 _stakeBuyPrice ) external;
  function stakeDecimals (  ) external view returns ( uint256 );
  function stakeDecimalsSet ( address _from, uint256 _stakeDecimals ) external;
  function stakeHoldersImported (  ) external view returns ( uint256 );
  function stakeHoldersImportedSet ( uint256 _stakeHoldersImported ) external;
  function stakeHoldersListIndex ( address ) external view returns ( uint256 );
  function stakeHoldersListIndexSet ( address _address, uint256 _stakeHoldersListIndex ) external;
  function stakeMneBurnCount (  ) external view returns ( uint256 );
  function stakeMneBurnCountSet ( uint256 _stakeMneBurnCount ) external;
  function stakeMneTransferBurnCount (  ) external view returns ( uint256 );
  function stakeMneTransferBurnCountSet ( uint256 _stakeMneTransferBurnCount ) external;
  function stakesForSaleIndex ( address ) external view returns ( uint256 );
  function stakesForSaleIndexSet ( address _address, uint256 _stakesForSaleIndex ) external;
  function tokenCreated ( address, uint256 ) external view returns ( address );
  function tokenCreatedSet ( address _address, address _tokenCreated ) external;
  function tokenICOCreated ( address, uint256 ) external view returns ( address );
  function tokenICOCreatedSet ( address _address, address _tokenICOCreated ) external;
  function totalMaxAvailableAmount (  ) external view returns ( uint256 );
  function totalMaxAvailableAmountSet ( uint256 _totalMaxAvailableAmount ) external;
  function totalPaidStakeHolders (  ) external view returns ( uint256 );
  function totalPaidStakeHoldersSet ( uint256 _totalPaidStakeHolders ) external;
  function transferStakeGenesisCount (  ) external view returns ( uint256 );
  function transferStakeGenesisCountSet ( uint256 _transferStakeGenesisCount ) external;
  function transferStakeMNECount (  ) external view returns ( uint256 );
  function transferStakeMNECountSet ( uint256 _transferStakeMNECount ) external;
  function fromLevel1ToNormalCount (  ) external view returns ( uint256 );
  function fromLevel1ToNormalCountSet(uint256 _fromLevel1ToNormalCount) external; 
}

interface publicArrays {
  function Level1TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountETHFeeSet ( uint256 _Level1TradeHistoryAmountETHFee ) external;
  function Level1TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountETHSet ( uint256 _Level1TradeHistoryAmountETH ) external;
  function Level1TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountMNESet ( uint256 _Level1TradeHistoryAmountMNE ) external;
  function Level1TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level1TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryBuyerSet ( address _Level1TradeHistoryBuyer ) external;
  function Level1TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryDateSet ( uint256 _Level1TradeHistoryDate ) external;
  function Level1TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level1TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level1TradeHistorySellerSet ( address _Level1TradeHistorySeller ) external;
  function Level2TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountETHFeeSet ( uint256 _Level2TradeHistoryAmountETHFee ) external;
  function Level2TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountETHSet ( uint256 _Level2TradeHistoryAmountETH ) external;
  function Level2TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountMNESet ( uint256 _Level2TradeHistoryAmountMNE ) external;
  function Level2TradeHistoryAvailableAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAvailableAmountMNELength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAvailableAmountMNESet ( uint256 _Level2TradeHistoryAvailableAmountMNE ) external;
  function Level2TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level2TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryBuyerSet ( address _Level2TradeHistoryBuyer ) external;
  function Level2TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryDateSet ( uint256 _Level2TradeHistoryDate ) external;
  function Level2TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level2TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level2TradeHistorySellerSet ( address _Level2TradeHistorySeller ) external;
  function Level3TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountETHFeeSet ( uint256 _Level3TradeHistoryAmountETHFee ) external;
  function Level3TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountETHSet ( uint256 _Level3TradeHistoryAmountETH ) external;
  function Level3TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountMNESet ( uint256 _Level3TradeHistoryAmountMNE ) external;
  function Level3TradeHistoryAvailableAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAvailableAmountMNELength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAvailableAmountMNESet ( uint256 _Level3TradeHistoryAvailableAmountMNE ) external;
  function Level3TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level3TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryBuyerSet ( address _Level3TradeHistoryBuyer ) external;
  function Level3TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryDateSet ( uint256 _Level3TradeHistoryDate ) external;
  function Level3TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level3TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level3TradeHistorySellerSet ( address _Level3TradeHistorySeller ) external;
  function MNETradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountETHFeeSet ( uint256 _MNETradeHistoryAmountETHFee ) external;
  function MNETradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountETHSet ( uint256 _MNETradeHistoryAmountETH ) external;
  function MNETradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountMNESet ( uint256 _MNETradeHistoryAmountMNE ) external;
  function MNETradeHistoryBuyer ( uint256 ) external view returns ( address );
  function MNETradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryBuyerSet ( address _MNETradeHistoryBuyer ) external;
  function MNETradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryDateLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryDateSet ( uint256 _MNETradeHistoryDate ) external;
  function MNETradeHistorySeller ( uint256 ) external view returns ( address );
  function MNETradeHistorySellerLength (  ) external view returns ( uint256 len );
  function MNETradeHistorySellerSet ( address _MNETradeHistorySeller ) external;
  function StakeTradeHistoryBuyer ( uint256 ) external view returns ( address );
  function StakeTradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryBuyerSet ( address _StakeTradeHistoryBuyer ) external;
  function StakeTradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryDateLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryDateSet ( uint256 _StakeTradeHistoryDate ) external;
  function StakeTradeHistoryETHFee ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryETHFeeLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryETHFeeSet ( uint256 _StakeTradeHistoryETHFee ) external;
  function StakeTradeHistoryETHPrice ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryETHPriceLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryETHPriceSet ( uint256 _StakeTradeHistoryETHPrice ) external;
  function StakeTradeHistoryMNEGenesisBurned ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryMNEGenesisBurnedLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryMNEGenesisBurnedSet ( uint256 _StakeTradeHistoryMNEGenesisBurned ) external;
  function StakeTradeHistorySeller ( uint256 ) external view returns ( address );
  function StakeTradeHistorySellerLength (  ) external view returns ( uint256 len );
  function StakeTradeHistorySellerSet ( address _StakeTradeHistorySeller ) external;
  function StakeTradeHistoryStakeAmount ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryStakeAmountLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryStakeAmountSet ( uint256 _StakeTradeHistoryStakeAmount ) external;
  function deleteGenesisAddressesForSaleLevel1 (  ) external;
  function deleteGenesisAddressesForSaleLevel2 (  ) external;
  function deleteGenesisAddressesForSaleLevel3 (  ) external;
  function deleteNormalAddressesForSale (  ) external;
  function deleteStakeHoldersList (  ) external;
  function deleteStakesForSale (  ) external;
  function genesisAddressesForSaleLevel1 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel1Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel1Set ( address _genesisAddressesForSaleLevel1 ) external;
  function genesisAddressesForSaleLevel1SetAt ( uint256 i, address _address ) external;
  function genesisAddressesForSaleLevel2 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel2Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel2Set ( address _genesisAddressesForSaleLevel2 ) external;
  function genesisAddressesForSaleLevel2SetAt ( uint256 i, address _address ) external;
  function genesisAddressesForSaleLevel3 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel3Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel3Set ( address _genesisAddressesForSaleLevel3 ) external;
  function genesisAddressesForSaleLevel3SetAt ( uint256 i, address _address ) external;
  function normalAddressesForSale ( uint256 ) external view returns ( address );
  function normalAddressesForSaleLength (  ) external view returns ( uint256 len );
  function normalAddressesForSaleSet ( address _normalAddressesForSale ) external;
  function normalAddressesForSaleSetAt ( uint256 i, address _address ) external;
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function setOwnerGenesis (  ) external;
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function setOwnerBaseTransfers (  ) external;
  function stakeHoldersList ( uint256 ) external view returns ( address );
  function stakeHoldersListAt ( uint256 i, address _address ) external;
  function stakeHoldersListLength (  ) external view returns ( uint256 len );
  function stakeHoldersListSet ( address _stakeHoldersList ) external;
  function stakesForSale ( uint256 ) external view returns ( address );
  function stakesForSaleLength (  ) external view returns ( uint256 len );
  function stakesForSaleSet ( address _stakesForSale ) external;
  function stakesForSaleSetAt ( uint256 i, address _address ) external;
}

interface genesisCalls {
  function AllowAddressToDestroyGenesis ( address _from, address _address ) external;
  function AllowReceiveGenesisTransfers ( address _from ) external;
  function BurnTokens ( address _from, uint256 mneToBurn ) external returns ( bool success );
  function RemoveAllowAddressToDestroyGenesis ( address _from ) external;
  function RemoveAllowReceiveGenesisTransfers ( address _from ) external;
  function RemoveGenesisAddressFromSale ( address _from ) external;
  function SetGenesisForSale ( address _from, uint256 weiPrice ) external;
  function TransferGenesis ( address _from, address _to ) external;
  function UpgradeToLevel2FromLevel1 ( address _address, uint256 weiValue ) external;
  function UpgradeToLevel3FromDev ( address _address ) external;
  function UpgradeToLevel3FromLevel1 ( address _address, uint256 weiValue ) external;
  function UpgradeToLevel3FromLevel2 ( address _address, uint256 weiValue ) external;
  function availableBalanceOf ( address _address ) external view returns ( uint256 Balance );
  function balanceOf ( address _address ) external view returns ( uint256 balance );
  function deleteAddressFromGenesisSaleList ( address _address ) external;
  function isAnyGenesisAddress ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel1 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel2 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel2Or3 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel3 ( address _address ) external view returns ( bool success );
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function setGenesisAddress ( address _from, address _address ) external;
  function setGenesisAddressArray ( address _from, address[] calldata _addressList ) external;
  function setGenesisAddressDevArray ( address _from, address[] calldata _addressList ) external;
  function setGenesisCallerAddress ( address _caller ) external returns ( bool success );
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function setOwnerBaseTransfers (  ) external;
  function stopSetup ( address _from ) external returns ( bool success );
}

contract BaseTransfers
{

address public ownerMain = 0x0000000000000000000000000000000000000000;
address public updaterAddress = 0x0000000000000000000000000000000000000000;
function setUpdater() public {if (updaterAddress == 0x0000000000000000000000000000000000000000) updaterAddress = msg.sender; else revert();}
function updaterSetOwnerMain(address _address) public {if (tx.origin == updaterAddress) ownerMain = _address; else revert();}

function setOwnerMain() public {
	if (tx.origin == updaterAddress)
		ownerMain = msg.sender;
	else
		revert();
}

modifier onlyOwner(){
    require(msg.sender == ownerMain);
     _;
}

publicCalls public pc;
publicArrays public pa;
genesisCalls public gn;
	
constructor(address _publicCallsAddress, address _publicArraysAddress, address _genesisAddress) public {
setUpdater();
pc = publicCalls(_publicCallsAddress);
pc.setOwnerBaseTransfers();
pa = publicArrays(_publicArraysAddress);
pa.setOwnerBaseTransfers();
gn = genesisCalls(_genesisAddress);
gn.setOwnerBaseTransfers();
}	
event FromLevel1ToNormalTransfer(address indexed from, address indexed to, uint256 value);
event FromLevel1ToNormalTransferFrom(address indexed sender, address indexed from, address indexed to, uint256 value);

function reloadGenesis(address _address) public
{
	if (msg.sender == updaterAddress)
	{
		gn = genesisCalls(_address);
		gn.setOwnerBaseTransfers();
	}
	else revert();
}

function reloadPublicCalls(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pc = publicCalls(_address); pc.setOwnerBaseTransfers();} else revert();}
function reloadPublicArrays(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pa = publicArrays(_address); pa.setOwnerBaseTransfers();} else revert();}

function transfer(address _from, address _to, uint256 _value) onlyOwner public { 

if (gn.isGenesisAddressLevel1(_to))
{
	if (pc.isGenesisAddressForSale(_to)) revert('pc.isGenesisAddressForSale(_to)');
	pc.isGenesisAddressSet(_to, 1);
	pc.fromLevel1ToNormalCountSet(pc.fromLevel1ToNormalCount() + 1);
	emit FromLevel1ToNormalTransfer(_from, _to, _value);
}
else if (gn.isAnyGenesisAddress(_to)) revert('gn.isAnyGenesisAddress(_to)');

if (gn.isGenesisAddressLevel1(_from) || gn.isGenesisAddressLevel2(_from)) revert('You must upgrade to Level 3 to allow transfers. Visit https://celo.minereum.com for more info');

if (pc.isNormalAddressForSale(_from)) revert('pc.isNormalAddressForSale(_from)');

if (pc.isGenesisAddressForSale(_from)) revert('pc.isGenesisAddressForSale(_from)');

if (pc.isNormalAddressForSale(_to)) revert('pc.isNormalAddressForSale(_to)');

if (pc.isGenesisAddressForSale(_to)) revert('pc.isGenesisAddressForSale(_to)');

if (pc.balances(_from) < _value) revert('pc.isGenesisAddressForSale(_to)'); 

if (pc.balances(_to) + _value < pc.balances(_to)) revert('(pc.balances(_to) + _value < pc.balances(_to))'); 

if (_value > gn.availableBalanceOf(_from)) revert('(_value > gn.availableBalanceOf(_from))');

pc.balancesSet(_from, pc.balances(_from) - _value);
pc.balancesSet(_to, pc.balances(_to) + _value); 
}

function transferFrom (
		address _sender,
        address _from,
        address _to,
        uint256 _amount
) public onlyOwner returns (bool success) {
	if (gn.isGenesisAddressLevel1(_to))
	{
		if (pc.isGenesisAddressForSale(_to)) revert('pc.isGenesisAddressForSale(_to)');
		pc.isGenesisAddressSet(_to, 1);		
		pc.fromLevel1ToNormalCountSet(pc.fromLevel1ToNormalCount() + 1);
		emit FromLevel1ToNormalTransferFrom(_sender, _from, _to, _amount);
	}	
	else if (gn.isAnyGenesisAddress(_to))
		revert('(gn.isAnyGenesisAddress(_to))');
	
	if (gn.isGenesisAddressLevel1(_from) || gn.isGenesisAddressLevel2(_from))
		revert('gn.isGenesisAddressLevel1(_from) || gn.isGenesisAddressLevel2(_from)');
	
	if (pc.isGenesisAddressForSale(_sender)) revert('pc.isGenesisAddressForSale(_sender)');
	
	if (pc.isNormalAddressForSale(_to) || pc.isNormalAddressForSale(_from))
		revert('pc.isNormalAddressForSale(_to) || pc.isNormalAddressForSale(_from)');
	
    if (gn.availableBalanceOf(_from) >= _amount
        && pc.allowed(_from,_sender) >= _amount
        && _amount > 0
        && pc.balances(_to) + _amount > pc.balances(_to)) {
        pc.balancesSet(_from, pc.balances(_from) - _amount);
        pc.allowedSet(_from, _sender, pc.allowed(_from,_sender) - _amount);
        pc.balancesSet(_to, pc.balances(_to) + _amount);        
        return true;
    } else {
		revert();
        return false;
    }
}
function getPriceLevel1() public view returns (uint256 price)
{
	uint256 feesToPayToContract = pc.ethFeeToBuyLevel1();
	uint256 feesToPayToSeller = pc.ethFeeForSellerLevel1();
	uint256 feesGeneralToPayToContract = (feesToPayToContract + feesToPayToSeller) * pc.ethPercentFeeGenesisExchange() / 100;
		
	uint256 totalToSend = feesToPayToContract + feesToPayToSeller + feesGeneralToPayToContract;
	return totalToSend;
}

function getPriceLevel2(address _add) public view returns (uint256 price)
{
	uint256 feesToPayToContract = pc.ethFeeToUpgradeToLevel3();
	uint256 feesToPayToSeller = pc.genesisBuyPrice(_add);
	uint256 feesGeneralToPayToContract = (feesToPayToContract + feesToPayToSeller) * pc.ethPercentFeeGenesisExchange() / 100;
		
	uint256 totalToSend = feesToPayToContract + feesToPayToSeller + feesGeneralToPayToContract;
	return totalToSend;
}

function getPriceLevel3(address _add) public view returns (uint256 price)
{
	uint256 feesToPayToContract = 0;
	uint256 feesToPayToSeller = pc.genesisBuyPrice(_add);
	uint256 feesGeneralToPayToContract = (feesToPayToContract + feesToPayToSeller) * pc.ethPercentFeeGenesisExchange() / 100;
	uint256 totalToSend = feesToPayToContract + feesToPayToSeller + feesGeneralToPayToContract;
	return totalToSend;
}

function getPriceNormalAddress(address _add) public view returns (uint256 price)
{
	uint256 _ETHPricePerMNE = pc.NormalAddressBuyPricePerMNE(_add) + (pc.NormalAddressBuyPricePerMNE(_add) * pc.ethPercentFeeNormalExchange() / 100);
	uint256 _totalETHPrice = _ETHPricePerMNE * gn.balanceOf(_add) / 100000000;
	return _totalETHPrice;
}

function getStakePrice(address _add) public view returns (uint256 price)
{
	uint256 feesToPayToContract = 0;
	uint256 feesToPayToSeller = pc.stakeBuyPrice(_add);
	uint256 feesGeneralToPayToContract = (feesToPayToContract + feesToPayToSeller) * pc.ethPercentStakeExchange() / 100;
    uint256 totalToSend = feesToPayToContract + feesToPayToSeller + feesGeneralToPayToContract;
	return totalToSend;
}

function getStakeMNEFeeBuy(address _add) public view returns (uint256 price)
{
	uint256 mneFee = pc.amountOfMNEToBuyStakes()*pc.stakeBalances(_add) * 100 / pc.stakeDecimals();
	if (mneFee < pc.amountOfMNEToBuyStakes())
		mneFee = pc.amountOfMNEToBuyStakes();
	return mneFee;
}

function getStakeGenesisFeeBuy(address _add) public view returns (uint256 price)
{
	uint256 genesisAddressFee = pc.amountOfGenesisToBuyStakes()*pc.stakeBalances(_add) * 100 / pc.stakeDecimals();
	if (genesisAddressFee < pc.amountOfGenesisToBuyStakes())
	genesisAddressFee = pc.amountOfGenesisToBuyStakes();
	return genesisAddressFee;
}

function getStakeMNEFeeTransfer(uint256 _value) public view returns (uint256 price)
{
	uint256 mneFee = pc.amountOfMNEToTransferStakes()*_value * 100 / pc.stakeDecimals();
	if (mneFee < pc.amountOfMNEToTransferStakes())
		mneFee = pc.amountOfMNEToTransferStakes();
	return mneFee;
}

function getStakeGenesisFeeTransfer(uint256 _value) public view returns (uint256 price)
{
	uint256 genesisAddressFee = pc.amountOfGenesisToTransferStakes()*_value * 100 / pc.stakeDecimals();
	if (genesisAddressFee < pc.amountOfGenesisToTransferStakes())
	genesisAddressFee = pc.amountOfGenesisToTransferStakes();
	return genesisAddressFee;
}

function stopSetup(address _from) public onlyOwner returns (bool success)
{
	if (_from == pc.genesisCallerAddress())
	{
		pc.setupRunningSet(false);
	}
	return true;
}

function totalSupply() public view returns (uint256 TotalSupply)
{	
	return ((pc.genesisAddressCount() * pc.genesisSupplyPerAddress()) + pc.NormalImportedAmountCount() - pc.mneBurned() - pc.GenesisDestroyAmountCount() - (pc.fromLevel1ToNormalCount() * pc.genesisSupplyPerAddress()));
}
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_publicCallsAddress","internalType":"address"},{"type":"address","name":"_publicArraysAddress","internalType":"address"},{"type":"address","name":"_genesisAddress","internalType":"address"}]},{"type":"event","name":"FromLevel1ToNormalTransfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"FromLevel1ToNormalTransferFrom","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":true},{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getPriceLevel1","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getPriceLevel2","inputs":[{"type":"address","name":"_add","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getPriceLevel3","inputs":[{"type":"address","name":"_add","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getPriceNormalAddress","inputs":[{"type":"address","name":"_add","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getStakeGenesisFeeBuy","inputs":[{"type":"address","name":"_add","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getStakeGenesisFeeTransfer","inputs":[{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getStakeMNEFeeBuy","inputs":[{"type":"address","name":"_add","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getStakeMNEFeeTransfer","inputs":[{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"price","internalType":"uint256"}],"name":"getStakePrice","inputs":[{"type":"address","name":"_add","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract genesisCalls"}],"name":"gn","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"ownerMain","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract publicArrays"}],"name":"pa","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract publicCalls"}],"name":"pc","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"reloadGenesis","inputs":[{"type":"address","name":"_address","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"reloadPublicArrays","inputs":[{"type":"address","name":"_address","internalType":"address"},{"type":"uint256","name":"code","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"reloadPublicCalls","inputs":[{"type":"address","name":"_address","internalType":"address"},{"type":"uint256","name":"code","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setOwnerMain","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setUpdater","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"stopSetup","inputs":[{"type":"address","name":"_from","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"TotalSupply","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transfer","inputs":[{"type":"address","name":"_from","internalType":"address"},{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"_sender","internalType":"address"},{"type":"address","name":"_from","internalType":"address"},{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"updaterAddress","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updaterSetOwnerMain","inputs":[{"type":"address","name":"_address","internalType":"address"}]}]
              

Contract Creation Code

0x6080604052600080546001600160a01b03199081169091556001805490911690553480156200002d57600080fd5b50604051620035b5380380620035b5833981810160405260608110156200005357600080fd5b5080516020820151604090920151909190620000776001600160e01b03620001df16565b600280546001600160a01b0319166001600160a01b03858116919091179182905560408051635ed3388560e01b815290519290911691635ed338859160048082019260009290919082900301818387803b158015620000d557600080fd5b505af1158015620000ea573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b03868116919091179182905560408051635ed3388560e01b81529051929091169350635ed33885925060048082019260009290919082900301818387803b1580156200014c57600080fd5b505af115801562000161573d6000803e3d6000fd5b5050600480546001600160a01b0319166001600160a01b038581169190911780835560408051635ed3388560e01b81529051919092169450635ed3388593508183019260009282900301818387803b158015620001bd57600080fd5b505af1158015620001d2573d6000803e3d6000fd5b505050505050506200020f565b6001546001600160a01b03166200020857600180546001600160a01b031916331790556200020d565b600080fd5b565b613396806200021f6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806373668817116100c3578063b65d9fc81161007c578063b65d9fc8146103a9578063beabacc8146103cf578063d14b3bc114610405578063e24126301461042b578063e69919ae14610433578063fdbc65301461043b57610158565b806373668817146102e65780637720505f14610312578063919e0b791461033857806393c63b9d146103405780639a7c45fd14610366578063a58bbd981461038357610158565b80632fe07d86116101155780632fe07d86146102385780633118f5431461025e5780633b8d674f14610266578063522c628f1461028c5780635f434fe4146102b857806360d46e43146102c057610158565b8063073b23901461015d5780630a63361c1461018c57806313b9f0c7146101b057806315dacbea146101ba57806318160ddd1461020a57806327d4da0e14610212575b600080fd5b61017a6004803603602081101561017357600080fd5b5035610443565b60408051918252519081900360200190f35b610194610642565b604080516001600160a01b039092168252519081900360200190f35b6101b8610651565b005b6101f6600480360360808110156101d057600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610679565b604080519115158252519081900360200190f35b61017a611256565b6101b86004803603602081101561022857600080fd5b50356001600160a01b031661157b565b61017a6004803603602081101561024e57600080fd5b50356001600160a01b03166115ad565b6101946116bb565b6101f66004803603602081101561027c57600080fd5b50356001600160a01b03166116ca565b6101b8600480360360408110156102a257600080fd5b506001600160a01b0381351690602001356117dc565b61017a611876565b61017a600480360360208110156102d657600080fd5b50356001600160a01b03166119f8565b6101b8600480360360408110156102fc57600080fd5b506001600160a01b038135169060200135611c3c565b61017a6004803603602081101561032857600080fd5b50356001600160a01b0316611cba565b610194611d84565b6101b86004803603602081101561035657600080fd5b50356001600160a01b0316611d93565b61017a6004803603602081101561037c57600080fd5b5035611e1c565b61017a6004803603602081101561039957600080fd5b50356001600160a01b0316611fe6565b61017a600480360360208110156103bf57600080fd5b50356001600160a01b031661222a565b6101b8600480360360608110156103e557600080fd5b506001600160a01b03813581169160208101359091169060400135612443565b61017a6004803603602081101561041b57600080fd5b50356001600160a01b03166130af565b6101b861317f565b6101946131a6565b6101946131b5565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b15801561049457600080fd5b505afa1580156104a8573d6000803e3d6000fd5b505050506040513d60208110156104be57600080fd5b505160025460408051631aebe08f60e01b8152905186926001600160a01b031691631aebe08f916004808301926020929190829003018186803b15801561050457600080fd5b505afa158015610518573d6000803e3d6000fd5b505050506040513d602081101561052e57600080fd5b5051026064028161053b57fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b0316631aebe08f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561058c57600080fd5b505afa1580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b0316631aebe08f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b505afa158015610621573d6000803e3d6000fd5b505050506040513d602081101561063757600080fd5b505190505b92915050565b6003546001600160a01b031681565b6001546001600160a01b031632141561015857600080546001600160a01b031916331790555b565b600080546001600160a01b0316331461069157600080fd5b600480546040805163482ad11f60e11b81526001600160a01b038781169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b1580156106e257600080fd5b505afa1580156106f6573d6000803e3d6000fd5b505050506040513d602081101561070c57600080fd5b5051156109645760025460408051631e0808f560e21b81526001600160a01b0386811660048301529151919092169163782023d4916024808301926020929190829003018186803b15801561076057600080fd5b505afa158015610774573d6000803e3d6000fd5b505050506040513d602081101561078a57600080fd5b5051156107cc576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b6002546040805163e5327c1360e01b81526001600160a01b038681166004830152600160248301529151919092169163e5327c1391604480830192600092919082900301818387803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b5050600254604080516331c1ad5360e21b815290516001600160a01b039092169350636b4d155d9250839163c706b54c91600480820192602092909190829003018186803b15801561088657600080fd5b505afa15801561089a573d6000803e3d6000fd5b505050506040513d60208110156108b057600080fd5b5051604080516001600160e01b031960e085901b1681526001909201600483015251602480830192600092919082900301818387803b1580156108f257600080fd5b505af1158015610906573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316866001600160a01b03167fc1b8e0b94beb7868a6c1abd7ce6878f519e30e80cf1acb0aec771a383b2ef8a3856040518082815260200191505060405180910390a4610a33565b600480546040805163eb0fbbad60e01b81526001600160a01b03878116948201949094529051929091169163eb0fbbad91602480820192602092909190829003018186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d60208110156109df57600080fd5b505115610a33576040805162461bcd60e51b815260206004820152601d60248201527f28676e2e6973416e7947656e6573697341646472657373285f746f2929000000604482015290519081900360640190fd5b600480546040805163482ad11f60e11b81526001600160a01b038881169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d6020811015610aae57600080fd5b505180610b34575060048054604080516314a00c3d60e11b81526001600160a01b038881169482019490945290519290911691632940187a91602480820192602092909190829003018186803b158015610b0757600080fd5b505afa158015610b1b573d6000803e3d6000fd5b505050506040513d6020811015610b3157600080fd5b50515b15610b705760405162461bcd60e51b81526004018080602001828103825260448152602001806131c56044913960600191505060405180910390fd5b60025460408051631e0808f560e21b81526001600160a01b0388811660048301529151919092169163782023d4916024808301926020929190829003018186803b158015610bbd57600080fd5b505afa158015610bd1573d6000803e3d6000fd5b505050506040513d6020811015610be757600080fd5b505115610c255760405162461bcd60e51b815260040180806020018281038252602381526020018061328c6023913960400191505060405180910390fd5b60025460408051635dd5e70160e01b81526001600160a01b03868116600483015291519190921691635dd5e701916024808301926020929190829003018186803b158015610c7257600080fd5b505afa158015610c86573d6000803e3d6000fd5b505050506040513d6020811015610c9c57600080fd5b505180610d1e575060025460408051635dd5e70160e01b81526001600160a01b03878116600483015291519190921691635dd5e701916024808301926020929190829003018186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b505050506040513d6020811015610d1b57600080fd5b50515b15610d5a5760405162461bcd60e51b81526004018080602001828103825260428152602001806132096042913960600191505060405180910390fd5b60048054604080516325d998bb60e01b81526001600160a01b038881169482019490945290518593909216916325d998bb91602480820192602092909190829003018186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d6020811015610dd657600080fd5b505110801590610e68575060025460408051635c65816560e01b81526001600160a01b0387811660048301528881166024830152915185939290921691635c65816591604480820192602092909190829003018186803b158015610e3957600080fd5b505afa158015610e4d573d6000803e3d6000fd5b505050506040513d6020811015610e6357600080fd5b505110155b8015610e745750600082115b8015610f735750600254604080516327e235e360e01b81526001600160a01b038681166004830152915191909216916327e235e3916024808301926020929190829003018186803b158015610ec857600080fd5b505afa158015610edc573d6000803e3d6000fd5b505050506040513d6020811015610ef257600080fd5b5051600254604080516327e235e360e01b81526001600160a01b0387811660048301529151869392909216916327e235e391602480820192602092909190829003018186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d6020811015610f6e57600080fd5b505101115b1561015857600254604080516327e235e360e01b81526001600160a01b038781166004830152915191909216916371273083918791869185916327e235e3916024808301926020929190829003018186803b158015610fd157600080fd5b505afa158015610fe5573d6000803e3d6000fd5b505050506040513d6020811015610ffb57600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b039094166004850152919003602483015251604480830192600092919082900301818387803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505060025460408051635c65816560e01b81526001600160a01b0389811660048301528a81166024830152915191909216935063ef350b3292508791899187918691635c65816591604480820192602092909190829003018186803b1580156110c757600080fd5b505afa1580156110db573d6000803e3d6000fd5b505050506040513d60208110156110f157600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b0395861660048201529390941660248401520360448201529051606480830192600092919082900301818387803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b5050600254604080516327e235e360e01b81526001600160a01b0388811660048301529151919092169350637127308392508691869185916327e235e3916024808301926020929190829003018186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d60208110156111e457600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50600198975050505050505050565b60025460408051630748831f60e31b815290516000926001600160a01b031691633a4418f8916004808301926020929190829003018186803b15801561129b57600080fd5b505afa1580156112af573d6000803e3d6000fd5b505050506040513d60208110156112c557600080fd5b5051600254604080516331c1ad5360e21b815290516001600160a01b039092169163c706b54c91600480820192602092909190829003018186803b15801561130c57600080fd5b505afa158015611320573d6000803e3d6000fd5b505050506040513d602081101561133657600080fd5b505160025460408051638c19011160e01b8152905193909202926001600160a01b0390911691638c190111916004808301926020929190829003018186803b15801561138157600080fd5b505afa158015611395573d6000803e3d6000fd5b505050506040513d60208110156113ab57600080fd5b50516002546040805163959af4f360e01b815290516001600160a01b039092169163959af4f391600480820192602092909190829003018186803b1580156113f257600080fd5b505afa158015611406573d6000803e3d6000fd5b505050506040513d602081101561141c57600080fd5b50516002546040805163a910a37760e01b815290516001600160a01b039092169163a910a37791600480820192602092909190829003018186803b15801561146357600080fd5b505afa158015611477573d6000803e3d6000fd5b505050506040513d602081101561148d57600080fd5b505160025460408051630748831f60e31b815290516001600160a01b0390921691633a4418f891600480820192602092909190829003018186803b1580156114d457600080fd5b505afa1580156114e8573d6000803e3d6000fd5b505050506040513d60208110156114fe57600080fd5b50516002546040805163d2d9949360e01b815290516001600160a01b039092169163d2d9949391600480820192602092909190829003018186803b15801561154557600080fd5b505afa158015611559573d6000803e3d6000fd5b505050506040513d602081101561156f57600080fd5b50510201030303905090565b6001546001600160a01b031632141561015857600080546001600160a01b0319166001600160a01b0383161790555b50565b60025460408051631809954760e01b81526001600160a01b038481166004830152915160009384938493911691631809954791602480820192602092909190829003018186803b15801561160057600080fd5b505afa158015611614573d6000803e3d6000fd5b505050506040513d602081101561162a57600080fd5b50516002546040805163d5da6b4360e01b815290519293506000926064926001600160a01b03169163d5da6b43916004808301926020929190829003018186803b15801561167757600080fd5b505afa15801561168b573d6000803e3d6000fd5b505050506040513d60208110156116a157600080fd5b505184840102816116ae57fe5b0491909201019392505050565b6004546001600160a01b031681565b600080546001600160a01b031633146116e257600080fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b15801561173057600080fd5b505afa158015611744573d6000803e3d6000fd5b505050506040513d602081101561175a57600080fd5b50516001600160a01b03838116911614156117d45760025460408051633322721b60e01b815260006004820181905291516001600160a01b0390931692633322721b9260248084019391929182900301818387803b1580156117bb57600080fd5b505af11580156117cf573d6000803e3d6000fd5b505050505b506001919050565b806104d2146117ea57600080fd5b6001546001600160a01b031633141561015857600380546001600160a01b0319166001600160a01b03848116919091179182905560408051635ed3388560e01b815290519290911691635ed338859160048082019260009290919082900301818387803b15801561185a57600080fd5b505af115801561186e573d6000803e3d6000fd5b505050505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316634d21667a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118c757600080fd5b505afa1580156118db573d6000803e3d6000fd5b505050506040513d60208110156118f157600080fd5b505160025460408051630bb836c960e41b815290519293506000926001600160a01b039092169163bb836c9091600480820192602092909190829003018186803b15801561193e57600080fd5b505afa158015611952573d6000803e3d6000fd5b505050506040513d602081101561196857600080fd5b50516002546040805163b89bae3360e01b815290519293506000926064926001600160a01b03169163b89bae33916004808301926020929190829003018186803b1580156119b557600080fd5b505afa1580156119c9573d6000803e3d6000fd5b505050506040513d60208110156119df57600080fd5b505184840102816119ec57fe5b04919092010192915050565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4957600080fd5b505afa158015611a5d573d6000803e3d6000fd5b505050506040513d6020811015611a7357600080fd5b505160025460408051633b317dab60e01b81526001600160a01b03878116600483015291519190921691633b317dab916024808301926020929190829003018186803b158015611ac257600080fd5b505afa158015611ad6573d6000803e3d6000fd5b505050506040513d6020811015611aec57600080fd5b50516002546040805163d599800160e01b815290516001600160a01b039092169163d599800191600480820192602092909190829003018186803b158015611b3357600080fd5b505afa158015611b47573d6000803e3d6000fd5b505050506040513d6020811015611b5d57600080fd5b50510260640281611b6a57fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b031663d59980016040518163ffffffff1660e01b815260040160206040518083038186803b158015611bbb57600080fd5b505afa158015611bcf573d6000803e3d6000fd5b505050506040513d6020811015611be557600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b031663d59980016040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b806104d214611c4a57600080fd5b6001546001600160a01b031633141561015857600280546001600160a01b0319166001600160a01b03848116919091179182905560408051635ed3388560e01b815290519290911691635ed338859160048082019260009290919082900301818387803b15801561185a57600080fd5b60025460408051639a4badd160e01b81526001600160a01b038481166004830152915160009384938493911691639a4badd191602480820192602092909190829003018186803b158015611d0d57600080fd5b505afa158015611d21573d6000803e3d6000fd5b505050506040513d6020811015611d3757600080fd5b50516002546040805163b89bae3360e01b815290519293506000926064926001600160a01b03169163b89bae33916004808301926020929190829003018186803b15801561167757600080fd5b6000546001600160a01b031681565b6001546001600160a01b031633141561015857600480546001600160a01b0319166001600160a01b038381169190911780835560408051635ed3388560e01b815290519190921692635ed338859280820192600092909182900301818387803b158015611dff57600080fd5b505af1158015611e13573d6000803e3d6000fd5b505050506115aa565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6d57600080fd5b505afa158015611e81573d6000803e3d6000fd5b505050506040513d6020811015611e9757600080fd5b50516002546040805163292a142560e21b8152905186926001600160a01b03169163a4a85094916004808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b50510260640281611f1457fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b031663a4a850946040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6557600080fd5b505afa158015611f79573d6000803e3d6000fd5b505050506040513d6020811015611f8f57600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b031663a4a850946040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b15801561203757600080fd5b505afa15801561204b573d6000803e3d6000fd5b505050506040513d602081101561206157600080fd5b505160025460408051633b317dab60e01b81526001600160a01b03878116600483015291519190921691633b317dab916024808301926020929190829003018186803b1580156120b057600080fd5b505afa1580156120c4573d6000803e3d6000fd5b505050506040513d60208110156120da57600080fd5b50516002546040805163028021eb60e21b815290516001600160a01b0390921691630a0087ac91600480820192602092909190829003018186803b15801561212157600080fd5b505afa158015612135573d6000803e3d6000fd5b505050506040513d602081101561214b57600080fd5b5051026064028161215857fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b0316630a0087ac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a957600080fd5b505afa1580156121bd573d6000803e3d6000fd5b505050506040513d60208110156121d357600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b0316630a0087ac6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b6000806064600260009054906101000a90046001600160a01b03166001600160a01b0316632c1991f06040518163ffffffff1660e01b815260040160206040518083038186803b15801561227d57600080fd5b505afa158015612291573d6000803e3d6000fd5b505050506040513d60208110156122a757600080fd5b505160025460408051636e334beb60e11b81526001600160a01b0388811660048301529151919092169163dc6697d6916024808301926020929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d602081101561232057600080fd5b5051028161232a57fe5b60025460408051636e334beb60e11b81526001600160a01b0388811660048301529151949093049391169163dc6697d6916024808301926020929190829003018186803b15801561237a57600080fd5b505afa15801561238e573d6000803e3d6000fd5b505050506040513d60208110156123a457600080fd5b505160048054604080516370a0823160e01b81526001600160a01b038981169482019490945290519490930194506000936305f5e1009392909116916370a08231916024808301926020929190829003018186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d602081101561242f57600080fd5b505183028161243a57fe5b04949350505050565b6000546001600160a01b0316331461245a57600080fd5b600480546040805163482ad11f60e11b81526001600160a01b038681169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b1580156124ab57600080fd5b505afa1580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b50511561271a5760025460408051631e0808f560e21b81526001600160a01b0385811660048301529151919092169163782023d4916024808301926020929190829003018186803b15801561252957600080fd5b505afa15801561253d573d6000803e3d6000fd5b505050506040513d602081101561255357600080fd5b505115612595576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b6002546040805163e5327c1360e01b81526001600160a01b038581166004830152600160248301529151919092169163e5327c1391604480830192600092919082900301818387803b1580156125ea57600080fd5b505af11580156125fe573d6000803e3d6000fd5b5050600254604080516331c1ad5360e21b815290516001600160a01b039092169350636b4d155d9250839163c706b54c91600480820192602092909190829003018186803b15801561264f57600080fd5b505afa158015612663573d6000803e3d6000fd5b505050506040513d602081101561267957600080fd5b5051604080516001600160e01b031960e085901b1681526001909201600483015251602480830192600092919082900301818387803b1580156126bb57600080fd5b505af11580156126cf573d6000803e3d6000fd5b50506040805184815290516001600160a01b038087169450871692507fb14b72e2ddd34a8bc02a49b3c11c728a1edb7f282527d89163b88fdaae00b3f99181900360200190a36127e9565b600480546040805163eb0fbbad60e01b81526001600160a01b03868116948201949094529051929091169163eb0fbbad91602480820192602092909190829003018186803b15801561276b57600080fd5b505afa15801561277f573d6000803e3d6000fd5b505050506040513d602081101561279557600080fd5b5051156127e9576040805162461bcd60e51b815260206004820152601b60248201527f676e2e6973416e7947656e6573697341646472657373285f746f290000000000604482015290519081900360640190fd5b600480546040805163482ad11f60e11b81526001600160a01b038781169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b15801561283a57600080fd5b505afa15801561284e573d6000803e3d6000fd5b505050506040513d602081101561286457600080fd5b5051806128ea575060048054604080516314a00c3d60e11b81526001600160a01b038781169482019490945290519290911691632940187a91602480820192602092909190829003018186803b1580156128bd57600080fd5b505afa1580156128d1573d6000803e3d6000fd5b505050506040513d60208110156128e757600080fd5b50515b156129265760405162461bcd60e51b815260040180806020018281038252605d8152602001806132dd605d913960600191505060405180910390fd5b60025460408051635dd5e70160e01b81526001600160a01b03868116600483015291519190921691635dd5e701916024808301926020929190829003018186803b15801561297357600080fd5b505afa158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051156129f1576040805162461bcd60e51b815260206004820181905260248201527f70632e69734e6f726d616c41646472657373466f7253616c65285f66726f6d29604482015290519081900360640190fd5b60025460408051631e0808f560e21b81526001600160a01b0386811660048301529151919092169163782023d4916024808301926020929190829003018186803b158015612a3e57600080fd5b505afa158015612a52573d6000803e3d6000fd5b505050506040513d6020811015612a6857600080fd5b505115612aa65760405162461bcd60e51b815260040180806020018281038252602181526020018061326b6021913960400191505060405180910390fd5b60025460408051635dd5e70160e01b81526001600160a01b03858116600483015291519190921691635dd5e701916024808301926020929190829003018186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d6020811015612b1d57600080fd5b505115612b71576040805162461bcd60e51b815260206004820152601e60248201527f70632e69734e6f726d616c41646472657373466f7253616c65285f746f290000604482015290519081900360640190fd5b60025460408051631e0808f560e21b81526001600160a01b0385811660048301529151919092169163782023d4916024808301926020929190829003018186803b158015612bbe57600080fd5b505afa158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b505115612c2a576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b600254604080516327e235e360e01b81526001600160a01b0386811660048301529151849392909216916327e235e391602480820192602092909190829003018186803b158015612c7a57600080fd5b505afa158015612c8e573d6000803e3d6000fd5b505050506040513d6020811015612ca457600080fd5b50511015612ce7576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b600254604080516327e235e360e01b81526001600160a01b038581166004830152915191909216916327e235e3916024808301926020929190829003018186803b158015612d3457600080fd5b505afa158015612d48573d6000803e3d6000fd5b505050506040513d6020811015612d5e57600080fd5b5051600254604080516327e235e360e01b81526001600160a01b0386811660048301529151859392909216916327e235e391602480820192602092909190829003018186803b158015612db057600080fd5b505afa158015612dc4573d6000803e3d6000fd5b505050506040513d6020811015612dda57600080fd5b5051011015612e1a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806132af602e913960400191505060405180910390fd5b60048054604080516325d998bb60e01b81526001600160a01b0387811694820194909452905192909116916325d998bb91602480820192602092909190829003018186803b158015612e6b57600080fd5b505afa158015612e7f573d6000803e3d6000fd5b505050506040513d6020811015612e9557600080fd5b5051811115612ed55760405162461bcd60e51b815260040180806020018281038252602781526020018061333a6027913960400191505060405180910390fd5b600254604080516327e235e360e01b81526001600160a01b038681166004830152915191909216916371273083918691859185916327e235e3916024808301926020929190829003018186803b158015612f2e57600080fd5b505afa158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b039094166004850152919003602483015251604480830192600092919082900301818387803b158015612fa857600080fd5b505af1158015612fbc573d6000803e3d6000fd5b5050600254604080516327e235e360e01b81526001600160a01b0387811660048301529151919092169350637127308392508591859185916327e235e3916024808301926020929190829003018186803b15801561301957600080fd5b505afa15801561302d573d6000803e3d6000fd5b505050506040513d602081101561304357600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b15801561309257600080fd5b505af11580156130a6573d6000803e3d6000fd5b50505050505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561310057600080fd5b505afa158015613114573d6000803e3d6000fd5b505050506040513d602081101561312a57600080fd5b505160025460408051639a4badd160e01b81526001600160a01b03878116600483015291519394506000939190921691639a4badd1916024808301926020929190829003018186803b158015611d0d57600080fd5b6001546001600160a01b031661015857600180546001600160a01b03191633179055610677565b6002546001600160a01b031681565b6001546001600160a01b03168156fe676e2e697347656e65736973416464726573734c6576656c31285f66726f6d29207c7c20676e2e697347656e65736973416464726573734c6576656c32285f66726f6d2970632e69734e6f726d616c41646472657373466f7253616c65285f746f29207c7c2070632e69734e6f726d616c41646472657373466f7253616c65285f66726f6d2970632e697347656e6573697341646472657373466f7253616c65285f746f290070632e697347656e6573697341646472657373466f7253616c65285f66726f6d2970632e697347656e6573697341646472657373466f7253616c65285f73656e646572292870632e62616c616e636573285f746f29202b205f76616c7565203c2070632e62616c616e636573285f746f2929596f75206d757374207570677261646520746f204c6576656c203320746f20616c6c6f77207472616e73666572732e2056697369742068747470733a2f2f63656c6f2e6d696e657265756d2e636f6d20666f72206d6f726520696e666f285f76616c7565203e20676e2e617661696c61626c6542616c616e63654f66285f66726f6d2929a264697066735822122074c4a821a793b44d4015977ce5e8f4cdc27746e87ed57acbc0f05d1a96429a7e64736f6c634300060000330000000000000000000000000e35a9caef5f24e1802c51ee935836af07d73b3300000000000000000000000012c60985421f3ea92ac4997e2cec8b1bbf33ee660000000000000000000000007d5424f6c617c486ab4437b88410357bba7d124e

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806373668817116100c3578063b65d9fc81161007c578063b65d9fc8146103a9578063beabacc8146103cf578063d14b3bc114610405578063e24126301461042b578063e69919ae14610433578063fdbc65301461043b57610158565b806373668817146102e65780637720505f14610312578063919e0b791461033857806393c63b9d146103405780639a7c45fd14610366578063a58bbd981461038357610158565b80632fe07d86116101155780632fe07d86146102385780633118f5431461025e5780633b8d674f14610266578063522c628f1461028c5780635f434fe4146102b857806360d46e43146102c057610158565b8063073b23901461015d5780630a63361c1461018c57806313b9f0c7146101b057806315dacbea146101ba57806318160ddd1461020a57806327d4da0e14610212575b600080fd5b61017a6004803603602081101561017357600080fd5b5035610443565b60408051918252519081900360200190f35b610194610642565b604080516001600160a01b039092168252519081900360200190f35b6101b8610651565b005b6101f6600480360360808110156101d057600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610679565b604080519115158252519081900360200190f35b61017a611256565b6101b86004803603602081101561022857600080fd5b50356001600160a01b031661157b565b61017a6004803603602081101561024e57600080fd5b50356001600160a01b03166115ad565b6101946116bb565b6101f66004803603602081101561027c57600080fd5b50356001600160a01b03166116ca565b6101b8600480360360408110156102a257600080fd5b506001600160a01b0381351690602001356117dc565b61017a611876565b61017a600480360360208110156102d657600080fd5b50356001600160a01b03166119f8565b6101b8600480360360408110156102fc57600080fd5b506001600160a01b038135169060200135611c3c565b61017a6004803603602081101561032857600080fd5b50356001600160a01b0316611cba565b610194611d84565b6101b86004803603602081101561035657600080fd5b50356001600160a01b0316611d93565b61017a6004803603602081101561037c57600080fd5b5035611e1c565b61017a6004803603602081101561039957600080fd5b50356001600160a01b0316611fe6565b61017a600480360360208110156103bf57600080fd5b50356001600160a01b031661222a565b6101b8600480360360608110156103e557600080fd5b506001600160a01b03813581169160208101359091169060400135612443565b61017a6004803603602081101561041b57600080fd5b50356001600160a01b03166130af565b6101b861317f565b6101946131a6565b6101946131b5565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b15801561049457600080fd5b505afa1580156104a8573d6000803e3d6000fd5b505050506040513d60208110156104be57600080fd5b505160025460408051631aebe08f60e01b8152905186926001600160a01b031691631aebe08f916004808301926020929190829003018186803b15801561050457600080fd5b505afa158015610518573d6000803e3d6000fd5b505050506040513d602081101561052e57600080fd5b5051026064028161053b57fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b0316631aebe08f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561058c57600080fd5b505afa1580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b0316631aebe08f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b505afa158015610621573d6000803e3d6000fd5b505050506040513d602081101561063757600080fd5b505190505b92915050565b6003546001600160a01b031681565b6001546001600160a01b031632141561015857600080546001600160a01b031916331790555b565b600080546001600160a01b0316331461069157600080fd5b600480546040805163482ad11f60e11b81526001600160a01b038781169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b1580156106e257600080fd5b505afa1580156106f6573d6000803e3d6000fd5b505050506040513d602081101561070c57600080fd5b5051156109645760025460408051631e0808f560e21b81526001600160a01b0386811660048301529151919092169163782023d4916024808301926020929190829003018186803b15801561076057600080fd5b505afa158015610774573d6000803e3d6000fd5b505050506040513d602081101561078a57600080fd5b5051156107cc576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b6002546040805163e5327c1360e01b81526001600160a01b038681166004830152600160248301529151919092169163e5327c1391604480830192600092919082900301818387803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b5050600254604080516331c1ad5360e21b815290516001600160a01b039092169350636b4d155d9250839163c706b54c91600480820192602092909190829003018186803b15801561088657600080fd5b505afa15801561089a573d6000803e3d6000fd5b505050506040513d60208110156108b057600080fd5b5051604080516001600160e01b031960e085901b1681526001909201600483015251602480830192600092919082900301818387803b1580156108f257600080fd5b505af1158015610906573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316866001600160a01b03167fc1b8e0b94beb7868a6c1abd7ce6878f519e30e80cf1acb0aec771a383b2ef8a3856040518082815260200191505060405180910390a4610a33565b600480546040805163eb0fbbad60e01b81526001600160a01b03878116948201949094529051929091169163eb0fbbad91602480820192602092909190829003018186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d60208110156109df57600080fd5b505115610a33576040805162461bcd60e51b815260206004820152601d60248201527f28676e2e6973416e7947656e6573697341646472657373285f746f2929000000604482015290519081900360640190fd5b600480546040805163482ad11f60e11b81526001600160a01b038881169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d6020811015610aae57600080fd5b505180610b34575060048054604080516314a00c3d60e11b81526001600160a01b038881169482019490945290519290911691632940187a91602480820192602092909190829003018186803b158015610b0757600080fd5b505afa158015610b1b573d6000803e3d6000fd5b505050506040513d6020811015610b3157600080fd5b50515b15610b705760405162461bcd60e51b81526004018080602001828103825260448152602001806131c56044913960600191505060405180910390fd5b60025460408051631e0808f560e21b81526001600160a01b0388811660048301529151919092169163782023d4916024808301926020929190829003018186803b158015610bbd57600080fd5b505afa158015610bd1573d6000803e3d6000fd5b505050506040513d6020811015610be757600080fd5b505115610c255760405162461bcd60e51b815260040180806020018281038252602381526020018061328c6023913960400191505060405180910390fd5b60025460408051635dd5e70160e01b81526001600160a01b03868116600483015291519190921691635dd5e701916024808301926020929190829003018186803b158015610c7257600080fd5b505afa158015610c86573d6000803e3d6000fd5b505050506040513d6020811015610c9c57600080fd5b505180610d1e575060025460408051635dd5e70160e01b81526001600160a01b03878116600483015291519190921691635dd5e701916024808301926020929190829003018186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b505050506040513d6020811015610d1b57600080fd5b50515b15610d5a5760405162461bcd60e51b81526004018080602001828103825260428152602001806132096042913960600191505060405180910390fd5b60048054604080516325d998bb60e01b81526001600160a01b038881169482019490945290518593909216916325d998bb91602480820192602092909190829003018186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d6020811015610dd657600080fd5b505110801590610e68575060025460408051635c65816560e01b81526001600160a01b0387811660048301528881166024830152915185939290921691635c65816591604480820192602092909190829003018186803b158015610e3957600080fd5b505afa158015610e4d573d6000803e3d6000fd5b505050506040513d6020811015610e6357600080fd5b505110155b8015610e745750600082115b8015610f735750600254604080516327e235e360e01b81526001600160a01b038681166004830152915191909216916327e235e3916024808301926020929190829003018186803b158015610ec857600080fd5b505afa158015610edc573d6000803e3d6000fd5b505050506040513d6020811015610ef257600080fd5b5051600254604080516327e235e360e01b81526001600160a01b0387811660048301529151869392909216916327e235e391602480820192602092909190829003018186803b158015610f4457600080fd5b505afa158015610f58573d6000803e3d6000fd5b505050506040513d6020811015610f6e57600080fd5b505101115b1561015857600254604080516327e235e360e01b81526001600160a01b038781166004830152915191909216916371273083918791869185916327e235e3916024808301926020929190829003018186803b158015610fd157600080fd5b505afa158015610fe5573d6000803e3d6000fd5b505050506040513d6020811015610ffb57600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b039094166004850152919003602483015251604480830192600092919082900301818387803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505060025460408051635c65816560e01b81526001600160a01b0389811660048301528a81166024830152915191909216935063ef350b3292508791899187918691635c65816591604480820192602092909190829003018186803b1580156110c757600080fd5b505afa1580156110db573d6000803e3d6000fd5b505050506040513d60208110156110f157600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b0395861660048201529390941660248401520360448201529051606480830192600092919082900301818387803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b5050600254604080516327e235e360e01b81526001600160a01b0388811660048301529151919092169350637127308392508691869185916327e235e3916024808301926020929190829003018186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d60208110156111e457600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50600198975050505050505050565b60025460408051630748831f60e31b815290516000926001600160a01b031691633a4418f8916004808301926020929190829003018186803b15801561129b57600080fd5b505afa1580156112af573d6000803e3d6000fd5b505050506040513d60208110156112c557600080fd5b5051600254604080516331c1ad5360e21b815290516001600160a01b039092169163c706b54c91600480820192602092909190829003018186803b15801561130c57600080fd5b505afa158015611320573d6000803e3d6000fd5b505050506040513d602081101561133657600080fd5b505160025460408051638c19011160e01b8152905193909202926001600160a01b0390911691638c190111916004808301926020929190829003018186803b15801561138157600080fd5b505afa158015611395573d6000803e3d6000fd5b505050506040513d60208110156113ab57600080fd5b50516002546040805163959af4f360e01b815290516001600160a01b039092169163959af4f391600480820192602092909190829003018186803b1580156113f257600080fd5b505afa158015611406573d6000803e3d6000fd5b505050506040513d602081101561141c57600080fd5b50516002546040805163a910a37760e01b815290516001600160a01b039092169163a910a37791600480820192602092909190829003018186803b15801561146357600080fd5b505afa158015611477573d6000803e3d6000fd5b505050506040513d602081101561148d57600080fd5b505160025460408051630748831f60e31b815290516001600160a01b0390921691633a4418f891600480820192602092909190829003018186803b1580156114d457600080fd5b505afa1580156114e8573d6000803e3d6000fd5b505050506040513d60208110156114fe57600080fd5b50516002546040805163d2d9949360e01b815290516001600160a01b039092169163d2d9949391600480820192602092909190829003018186803b15801561154557600080fd5b505afa158015611559573d6000803e3d6000fd5b505050506040513d602081101561156f57600080fd5b50510201030303905090565b6001546001600160a01b031632141561015857600080546001600160a01b0319166001600160a01b0383161790555b50565b60025460408051631809954760e01b81526001600160a01b038481166004830152915160009384938493911691631809954791602480820192602092909190829003018186803b15801561160057600080fd5b505afa158015611614573d6000803e3d6000fd5b505050506040513d602081101561162a57600080fd5b50516002546040805163d5da6b4360e01b815290519293506000926064926001600160a01b03169163d5da6b43916004808301926020929190829003018186803b15801561167757600080fd5b505afa15801561168b573d6000803e3d6000fd5b505050506040513d60208110156116a157600080fd5b505184840102816116ae57fe5b0491909201019392505050565b6004546001600160a01b031681565b600080546001600160a01b031633146116e257600080fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b15801561173057600080fd5b505afa158015611744573d6000803e3d6000fd5b505050506040513d602081101561175a57600080fd5b50516001600160a01b03838116911614156117d45760025460408051633322721b60e01b815260006004820181905291516001600160a01b0390931692633322721b9260248084019391929182900301818387803b1580156117bb57600080fd5b505af11580156117cf573d6000803e3d6000fd5b505050505b506001919050565b806104d2146117ea57600080fd5b6001546001600160a01b031633141561015857600380546001600160a01b0319166001600160a01b03848116919091179182905560408051635ed3388560e01b815290519290911691635ed338859160048082019260009290919082900301818387803b15801561185a57600080fd5b505af115801561186e573d6000803e3d6000fd5b505050505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316634d21667a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118c757600080fd5b505afa1580156118db573d6000803e3d6000fd5b505050506040513d60208110156118f157600080fd5b505160025460408051630bb836c960e41b815290519293506000926001600160a01b039092169163bb836c9091600480820192602092909190829003018186803b15801561193e57600080fd5b505afa158015611952573d6000803e3d6000fd5b505050506040513d602081101561196857600080fd5b50516002546040805163b89bae3360e01b815290519293506000926064926001600160a01b03169163b89bae33916004808301926020929190829003018186803b1580156119b557600080fd5b505afa1580156119c9573d6000803e3d6000fd5b505050506040513d60208110156119df57600080fd5b505184840102816119ec57fe5b04919092010192915050565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4957600080fd5b505afa158015611a5d573d6000803e3d6000fd5b505050506040513d6020811015611a7357600080fd5b505160025460408051633b317dab60e01b81526001600160a01b03878116600483015291519190921691633b317dab916024808301926020929190829003018186803b158015611ac257600080fd5b505afa158015611ad6573d6000803e3d6000fd5b505050506040513d6020811015611aec57600080fd5b50516002546040805163d599800160e01b815290516001600160a01b039092169163d599800191600480820192602092909190829003018186803b158015611b3357600080fd5b505afa158015611b47573d6000803e3d6000fd5b505050506040513d6020811015611b5d57600080fd5b50510260640281611b6a57fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b031663d59980016040518163ffffffff1660e01b815260040160206040518083038186803b158015611bbb57600080fd5b505afa158015611bcf573d6000803e3d6000fd5b505050506040513d6020811015611be557600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b031663d59980016040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b806104d214611c4a57600080fd5b6001546001600160a01b031633141561015857600280546001600160a01b0319166001600160a01b03848116919091179182905560408051635ed3388560e01b815290519290911691635ed338859160048082019260009290919082900301818387803b15801561185a57600080fd5b60025460408051639a4badd160e01b81526001600160a01b038481166004830152915160009384938493911691639a4badd191602480820192602092909190829003018186803b158015611d0d57600080fd5b505afa158015611d21573d6000803e3d6000fd5b505050506040513d6020811015611d3757600080fd5b50516002546040805163b89bae3360e01b815290519293506000926064926001600160a01b03169163b89bae33916004808301926020929190829003018186803b15801561167757600080fd5b6000546001600160a01b031681565b6001546001600160a01b031633141561015857600480546001600160a01b0319166001600160a01b038381169190911780835560408051635ed3388560e01b815290519190921692635ed338859280820192600092909182900301818387803b158015611dff57600080fd5b505af1158015611e13573d6000803e3d6000fd5b505050506115aa565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6d57600080fd5b505afa158015611e81573d6000803e3d6000fd5b505050506040513d6020811015611e9757600080fd5b50516002546040805163292a142560e21b8152905186926001600160a01b03169163a4a85094916004808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b50510260640281611f1457fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b031663a4a850946040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6557600080fd5b505afa158015611f79573d6000803e3d6000fd5b505050506040513d6020811015611f8f57600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b031663a4a850946040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b600080600260009054906101000a90046001600160a01b03166001600160a01b0316638675b2d26040518163ffffffff1660e01b815260040160206040518083038186803b15801561203757600080fd5b505afa15801561204b573d6000803e3d6000fd5b505050506040513d602081101561206157600080fd5b505160025460408051633b317dab60e01b81526001600160a01b03878116600483015291519190921691633b317dab916024808301926020929190829003018186803b1580156120b057600080fd5b505afa1580156120c4573d6000803e3d6000fd5b505050506040513d60208110156120da57600080fd5b50516002546040805163028021eb60e21b815290516001600160a01b0390921691630a0087ac91600480820192602092909190829003018186803b15801561212157600080fd5b505afa158015612135573d6000803e3d6000fd5b505050506040513d602081101561214b57600080fd5b5051026064028161215857fe5b049050600260009054906101000a90046001600160a01b03166001600160a01b0316630a0087ac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a957600080fd5b505afa1580156121bd573d6000803e3d6000fd5b505050506040513d60208110156121d357600080fd5b505181101561063c57600260009054906101000a90046001600160a01b03166001600160a01b0316630a0087ac6040518163ffffffff1660e01b815260040160206040518083038186803b15801561060d57600080fd5b6000806064600260009054906101000a90046001600160a01b03166001600160a01b0316632c1991f06040518163ffffffff1660e01b815260040160206040518083038186803b15801561227d57600080fd5b505afa158015612291573d6000803e3d6000fd5b505050506040513d60208110156122a757600080fd5b505160025460408051636e334beb60e11b81526001600160a01b0388811660048301529151919092169163dc6697d6916024808301926020929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d602081101561232057600080fd5b5051028161232a57fe5b60025460408051636e334beb60e11b81526001600160a01b0388811660048301529151949093049391169163dc6697d6916024808301926020929190829003018186803b15801561237a57600080fd5b505afa15801561238e573d6000803e3d6000fd5b505050506040513d60208110156123a457600080fd5b505160048054604080516370a0823160e01b81526001600160a01b038981169482019490945290519490930194506000936305f5e1009392909116916370a08231916024808301926020929190829003018186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d602081101561242f57600080fd5b505183028161243a57fe5b04949350505050565b6000546001600160a01b0316331461245a57600080fd5b600480546040805163482ad11f60e11b81526001600160a01b038681169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b1580156124ab57600080fd5b505afa1580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b50511561271a5760025460408051631e0808f560e21b81526001600160a01b0385811660048301529151919092169163782023d4916024808301926020929190829003018186803b15801561252957600080fd5b505afa15801561253d573d6000803e3d6000fd5b505050506040513d602081101561255357600080fd5b505115612595576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b6002546040805163e5327c1360e01b81526001600160a01b038581166004830152600160248301529151919092169163e5327c1391604480830192600092919082900301818387803b1580156125ea57600080fd5b505af11580156125fe573d6000803e3d6000fd5b5050600254604080516331c1ad5360e21b815290516001600160a01b039092169350636b4d155d9250839163c706b54c91600480820192602092909190829003018186803b15801561264f57600080fd5b505afa158015612663573d6000803e3d6000fd5b505050506040513d602081101561267957600080fd5b5051604080516001600160e01b031960e085901b1681526001909201600483015251602480830192600092919082900301818387803b1580156126bb57600080fd5b505af11580156126cf573d6000803e3d6000fd5b50506040805184815290516001600160a01b038087169450871692507fb14b72e2ddd34a8bc02a49b3c11c728a1edb7f282527d89163b88fdaae00b3f99181900360200190a36127e9565b600480546040805163eb0fbbad60e01b81526001600160a01b03868116948201949094529051929091169163eb0fbbad91602480820192602092909190829003018186803b15801561276b57600080fd5b505afa15801561277f573d6000803e3d6000fd5b505050506040513d602081101561279557600080fd5b5051156127e9576040805162461bcd60e51b815260206004820152601b60248201527f676e2e6973416e7947656e6573697341646472657373285f746f290000000000604482015290519081900360640190fd5b600480546040805163482ad11f60e11b81526001600160a01b038781169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b15801561283a57600080fd5b505afa15801561284e573d6000803e3d6000fd5b505050506040513d602081101561286457600080fd5b5051806128ea575060048054604080516314a00c3d60e11b81526001600160a01b038781169482019490945290519290911691632940187a91602480820192602092909190829003018186803b1580156128bd57600080fd5b505afa1580156128d1573d6000803e3d6000fd5b505050506040513d60208110156128e757600080fd5b50515b156129265760405162461bcd60e51b815260040180806020018281038252605d8152602001806132dd605d913960600191505060405180910390fd5b60025460408051635dd5e70160e01b81526001600160a01b03868116600483015291519190921691635dd5e701916024808301926020929190829003018186803b15801561297357600080fd5b505afa158015612987573d6000803e3d6000fd5b505050506040513d602081101561299d57600080fd5b5051156129f1576040805162461bcd60e51b815260206004820181905260248201527f70632e69734e6f726d616c41646472657373466f7253616c65285f66726f6d29604482015290519081900360640190fd5b60025460408051631e0808f560e21b81526001600160a01b0386811660048301529151919092169163782023d4916024808301926020929190829003018186803b158015612a3e57600080fd5b505afa158015612a52573d6000803e3d6000fd5b505050506040513d6020811015612a6857600080fd5b505115612aa65760405162461bcd60e51b815260040180806020018281038252602181526020018061326b6021913960400191505060405180910390fd5b60025460408051635dd5e70160e01b81526001600160a01b03858116600483015291519190921691635dd5e701916024808301926020929190829003018186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d6020811015612b1d57600080fd5b505115612b71576040805162461bcd60e51b815260206004820152601e60248201527f70632e69734e6f726d616c41646472657373466f7253616c65285f746f290000604482015290519081900360640190fd5b60025460408051631e0808f560e21b81526001600160a01b0385811660048301529151919092169163782023d4916024808301926020929190829003018186803b158015612bbe57600080fd5b505afa158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b505115612c2a576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b600254604080516327e235e360e01b81526001600160a01b0386811660048301529151849392909216916327e235e391602480820192602092909190829003018186803b158015612c7a57600080fd5b505afa158015612c8e573d6000803e3d6000fd5b505050506040513d6020811015612ca457600080fd5b50511015612ce7576040805162461bcd60e51b815260206004820152601f602482015260008051602061324b833981519152604482015290519081900360640190fd5b600254604080516327e235e360e01b81526001600160a01b038581166004830152915191909216916327e235e3916024808301926020929190829003018186803b158015612d3457600080fd5b505afa158015612d48573d6000803e3d6000fd5b505050506040513d6020811015612d5e57600080fd5b5051600254604080516327e235e360e01b81526001600160a01b0386811660048301529151859392909216916327e235e391602480820192602092909190829003018186803b158015612db057600080fd5b505afa158015612dc4573d6000803e3d6000fd5b505050506040513d6020811015612dda57600080fd5b5051011015612e1a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806132af602e913960400191505060405180910390fd5b60048054604080516325d998bb60e01b81526001600160a01b0387811694820194909452905192909116916325d998bb91602480820192602092909190829003018186803b158015612e6b57600080fd5b505afa158015612e7f573d6000803e3d6000fd5b505050506040513d6020811015612e9557600080fd5b5051811115612ed55760405162461bcd60e51b815260040180806020018281038252602781526020018061333a6027913960400191505060405180910390fd5b600254604080516327e235e360e01b81526001600160a01b038681166004830152915191909216916371273083918691859185916327e235e3916024808301926020929190829003018186803b158015612f2e57600080fd5b505afa158015612f42573d6000803e3d6000fd5b505050506040513d6020811015612f5857600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b039094166004850152919003602483015251604480830192600092919082900301818387803b158015612fa857600080fd5b505af1158015612fbc573d6000803e3d6000fd5b5050600254604080516327e235e360e01b81526001600160a01b0387811660048301529151919092169350637127308392508591859185916327e235e3916024808301926020929190829003018186803b15801561301957600080fd5b505afa15801561302d573d6000803e3d6000fd5b505050506040513d602081101561304357600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b15801561309257600080fd5b505af11580156130a6573d6000803e3d6000fd5b50505050505050565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561310057600080fd5b505afa158015613114573d6000803e3d6000fd5b505050506040513d602081101561312a57600080fd5b505160025460408051639a4badd160e01b81526001600160a01b03878116600483015291519394506000939190921691639a4badd1916024808301926020929190829003018186803b158015611d0d57600080fd5b6001546001600160a01b031661015857600180546001600160a01b03191633179055610677565b6002546001600160a01b031681565b6001546001600160a01b03168156fe676e2e697347656e65736973416464726573734c6576656c31285f66726f6d29207c7c20676e2e697347656e65736973416464726573734c6576656c32285f66726f6d2970632e69734e6f726d616c41646472657373466f7253616c65285f746f29207c7c2070632e69734e6f726d616c41646472657373466f7253616c65285f66726f6d2970632e697347656e6573697341646472657373466f7253616c65285f746f290070632e697347656e6573697341646472657373466f7253616c65285f66726f6d2970632e697347656e6573697341646472657373466f7253616c65285f73656e646572292870632e62616c616e636573285f746f29202b205f76616c7565203c2070632e62616c616e636573285f746f2929596f75206d757374207570677261646520746f204c6576656c203320746f20616c6c6f77207472616e73666572732e2056697369742068747470733a2f2f63656c6f2e6d696e657265756d2e636f6d20666f72206d6f726520696e666f285f76616c7565203e20676e2e617661696c61626c6542616c616e63654f66285f66726f6d2929a264697066735822122074c4a821a793b44d4015977ce5e8f4cdc27746e87ed57acbc0f05d1a96429a7e64736f6c63430006000033