ETH Price: $2,522.42 (-0.71%)

Token

Minereum (MNE)
 

Overview

Max Total Supply

38,329,603,001.72238289 MNE

Holders

1,199,275 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
32,000 MNE

Value
$0.00
0x8c050db902ea51f3263e260b7b9de23864950dc3
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Self-mining smart contract.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Minereum

Compiler Version
v0.6.1+commit.e6f7d5a4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-06
*/

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 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;
}

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 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 setGenesisCallerAddress ( address _caller ) external returns ( bool success );
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function BurnGenesisAddresses ( address _from, address[] calldata _genesisAddressesToBurn ) external;
}

interface normalAddress {
  function BuyNormalAddress ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function RemoveNormalAddressFromSale ( address _address ) external;
  function setBalanceNormalAddress ( address _from, address _address, uint256 balance ) external;
  function SetNormalAddressForSale ( address _from, uint256 weiPricePerMNE ) external;
  function setOwnerMain (  ) external;
  function ownerMain (  ) external view returns ( address );
}

interface stakes {
  function RemoveStakeFromSale ( address _from ) external;
  function SetStakeForSale ( address _from, uint256 priceInWei ) external;
  function StakeTransferGenesis ( address _from, address _to, uint256 _value, address[] calldata _genesisAddressesToBurn ) external;
  function StakeTransferMNE ( address _from, address _to, uint256 _value ) external returns ( uint256 _mneToBurn );
  function ownerMain (  ) external view returns ( address );
  function setBalanceStakes ( address _from, address _address, uint256 balance ) external;
  function setOwnerMain (  ) external;
}

interface stakeBuys {
  function BuyStakeGenesis ( address _from, address _address, address[] calldata _genesisAddressesToBurn, uint256 _msgvalue ) external returns ( uint256 _feesToPayToSeller );
  function BuyStakeMNE ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, uint256 _feesToPayToSeller );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface genesisBuys {
  function BuyGenesisLevel1FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function BuyGenesisLevel2FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function BuyGenesisLevel3FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface tokenService {
  function CreateToken ( address _from, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, address _contract );
  function CreateTokenICO ( address _from, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, address _contract );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface baseTransfers {
	function setOwnerMain (  ) external;
	function transfer ( address _from, address _to, uint256 _value ) external;
	function transferFrom ( address _sender, address _from, address _to, uint256 _amount ) external returns ( bool success );
	function stopSetup ( address _from ) external returns ( bool success );
	function totalSupply (  ) external view returns ( uint256 TotalSupply );
}

interface mneStaking {
	function startStaking(address _sender, uint256 _amountToStake, address[] calldata _addressList, uint256[] calldata uintList) external;
}

interface luckyDraw {
	function BuyTickets(address _sender, uint256[] calldata _max) payable external returns ( uint256 );
}

interface externalService {
	function externalFunction(address _sender, address[] calldata _addressList, uint256[] calldata _uintList) payable external returns ( uint256 );
}

interface externalReceiver {
	function externalFunction(address _sender, uint256 _mneAmount, address[] calldata _addressList, uint256[] calldata _uintList) payable external;
}

contract Minereum { 
string public name; 
string public symbol; 
uint8 public decimals; 

event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
event LogStakeHolderSends(address indexed to, uint balance, uint amountToSend);
event LogFailedStakeHolderSends(address indexed to, uint balance, uint amountToSend);
event TokenCreation(address indexed from, address contractAdd);
event TokenCreationICO(address indexed from, address  contractAdd);
event StakeTransfer(address indexed from, address indexed to, uint256 value);

publicCalls public pc;
publicArrays public pa;
genesisCalls public gn;
normalAddress public na;
stakes public st;
stakeBuys public stb;
genesisBuys public gnb;
tokenService public tks;
baseTransfers public bst;
mneStaking public mneStk;
luckyDraw public lkd;
externalService public extS1;
externalReceiver public extR1;

address public updaterAddress = 0x0000000000000000000000000000000000000000;
function setUpdater() public {if (updaterAddress == 0x0000000000000000000000000000000000000000) updaterAddress = msg.sender; else revert();}
address public payoutOwner = 0x0000000000000000000000000000000000000000;
bool public payoutBlocked = false;
address payable public secondaryPayoutAddress = 0x0000000000000000000000000000000000000000;

constructor(address _publicCallsAddress, address _publicArraysAddress, address _genesisCallsAddress, address _normalAddressAddress,
 address _stakesAddress, address _stakesBuysAddress,address _genesisBuysAddress, address _tokenServiceAddress, address _baseTransfersAddress) public {
name = "Minereum"; 
symbol = "MNE"; 
decimals = 8; 
setUpdater();
pc = publicCalls(_publicCallsAddress);
pc.setOwnerMain();
pa = publicArrays(_publicArraysAddress);
pa.setOwnerMain();
gn = genesisCalls(_genesisCallsAddress);
gn.setOwnerMain();
na = normalAddress(_normalAddressAddress);
na.setOwnerMain();
st = stakes(_stakesAddress);
st.setOwnerMain();
stb = stakeBuys(_stakesBuysAddress);
stb.setOwnerMain();
gnb = genesisBuys(_genesisBuysAddress);
gnb.setOwnerMain();
tks = tokenService(_tokenServiceAddress);
tks.setOwnerMain();
bst = baseTransfers(_baseTransfersAddress);
bst.setOwnerMain();
}

function reloadGenesis(address _address) public { if (msg.sender == updaterAddress)	{gn = genesisCalls(_address); gn.setOwnerMain(); } else revert();}
function reloadNormalAddress(address _address) public { if (msg.sender == updaterAddress)	{na = normalAddress(_address); na.setOwnerMain(); } else revert();}
function reloadStakes(address _address) public { if (msg.sender == updaterAddress)	{st = stakes(_address); st.setOwnerMain(); } else revert();}
function reloadStakeBuys(address _address) public { if (msg.sender == updaterAddress)	{stb = stakeBuys(_address); stb.setOwnerMain(); } else revert();}
function reloadGenesisBuys(address _address) public { if (msg.sender == updaterAddress)	{gnb = genesisBuys(_address); gnb.setOwnerMain(); } else revert();}
function reloadTokenService(address _address) public { if (msg.sender == updaterAddress)	{tks = tokenService(_address); tks.setOwnerMain(); } else revert();}
function reloadBaseTransfers(address _address) public { if (msg.sender == updaterAddress)	{bst = baseTransfers(_address); bst.setOwnerMain(); } else revert();}
function reloadPublicCalls(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pc = publicCalls(_address); pc.setOwnerMain();} else revert();}
function reloadPublicArrays(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pa = publicArrays(_address); pa.setOwnerMain();} else revert();}
function loadMNEStaking(address _address) public { if (msg.sender == updaterAddress)	{mneStk = mneStaking(_address); } else revert();}
function loadLuckyDraw(address _address) public { if (msg.sender == updaterAddress)	{lkd = luckyDraw(_address); } else revert();}

function externalService1(address _address) public { if (msg.sender == updaterAddress)	{extS1 = externalService(_address); } else revert();}
function externalReceiver1(address _address) public { if (msg.sender == updaterAddress)	{extR1 = externalReceiver(_address); } else revert();}


function setPayoutOwner() public
{
	if(payoutOwner == 0x0000000000000000000000000000000000000000)
		payoutOwner = msg.sender;
	else
		revert();
}

function setSecondaryPayoutAddress(address payable _address) public
{
	if(msg.sender == payoutOwner)
		secondaryPayoutAddress = _address;
	else
		revert();
}

function SetBlockPayouts(bool toBlock) public
{
	if(msg.sender == payoutOwner)
	{
		payoutBlocked = toBlock;
	}
}


function currentEthBlock() public view returns (uint256 blockNumber) 
{
	return block.number;
}

function currentBlock() public view returns (uint256 blockNumber)
{
	return block.number - pc.initialBlockCount();
}

function availableBalanceOf(address _address) public view returns (uint256 Balance)
{
	return gn.availableBalanceOf(_address);
}

function totalSupply() public view returns (uint256 TotalSupply)
{	
	return bst.totalSupply();
}

function transfer(address _to, uint256 _value)  public { 
if (_to == address(this)) revert('if (_to == address(this))');
bst.transfer(msg.sender, _to, _value);
emit Transfer(msg.sender, _to, _value); 
}

function transferFrom(
        address _from,
        address _to,
        uint256 _amount
) public returns (bool success) {
		bool result = bst.transferFrom(msg.sender, _from, _to, _amount);
        if (result) emit Transfer(_from, _to, _amount);
        return result;    
}

function approve(address _spender, uint256 _amount) public returns (bool success) {
    pc.allowedSet(msg.sender,_spender, _amount);
    emit Approval(msg.sender, _spender, _amount);
    return true;
}

function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
    return pc.allowed(_owner,_spender);
}

function balanceOf(address _address) public view returns (uint256 balance) {
	return gn.balanceOf(_address);
}

function stakeBalanceOf(address _address) public view returns (uint256 balance) {
	return pc.stakeBalances(_address);
}

function TransferGenesis(address _to) public {
	emit Transfer(msg.sender, _to, balanceOf(msg.sender));	
	if (_to == address(this)) revert('if (_to == address(this))');	
	gn.TransferGenesis(msg.sender, _to);	
}

function SetGenesisForSale(uint256 weiPrice) public {	
	gn.SetGenesisForSale(msg.sender, weiPrice);
}

function AllowReceiveGenesisTransfers() public { 
	gn.AllowReceiveGenesisTransfers(msg.sender);
}

function RemoveAllowReceiveGenesisTransfers() public { 
	gn.RemoveAllowReceiveGenesisTransfers(msg.sender);
}

function RemoveGenesisAddressFromSale() public { 
	gn.RemoveGenesisAddressFromSale(msg.sender);
}

function AllowAddressToDestroyGenesis(address _address) public  { 
	gn.AllowAddressToDestroyGenesis(msg.sender, _address);
}

function RemoveAllowAddressToDestroyGenesis() public { 
	gn.RemoveAllowAddressToDestroyGenesis(msg.sender);
}

function UpgradeToLevel2FromLevel1() public payable {
	gn.UpgradeToLevel2FromLevel1(msg.sender, msg.value);
}

function UpgradeToLevel3FromLevel1() public payable {
	gn.UpgradeToLevel3FromLevel1(msg.sender, msg.value);
}

function UpgradeToLevel3FromLevel2() public payable {
	gn.UpgradeToLevel3FromLevel2(msg.sender, msg.value);
}

function UpgradeToLevel3FromDev() public {
	gn.UpgradeToLevel3FromDev(msg.sender);
}

function UpgradeOthersToLevel2FromLevel1(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != (pc.ethFeeToUpgradeToLevel2()*count)) revert('(msg.value != pc.ethFeeToUpgradeToLevel2()*count)');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel2FromLevel1(_addresses[i], pc.ethFeeToUpgradeToLevel2());
		i++;
	}
}

function UpgradeOthersToLevel3FromLevel1(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != ((pc.ethFeeToUpgradeToLevel2() + pc.ethFeeToUpgradeToLevel3())*count)) revert('(weiValue != ((msg.value + pc.ethFeeToUpgradeToLevel3())*count))');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromLevel1(_addresses[i], (pc.ethFeeToUpgradeToLevel2() + pc.ethFeeToUpgradeToLevel3()));
		i++;
	}
}

function UpgradeOthersToLevel3FromLevel2(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != (pc.ethFeeToUpgradeToLevel3()*count)) revert('(msg.value != (pc.ethFeeToUpgradeToLevel3()*count))');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromLevel2(_addresses[i], pc.ethFeeToUpgradeToLevel3());
		i++;
	}
}

function UpgradeOthersToLevel3FromDev(address[] memory _addresses) public {
	uint count = _addresses.length;	
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromDev(_addresses[i]);
		i++;
	}
}

function BuyGenesisAddress(address payable _address) public payable
{
	if (gn.isGenesisAddressLevel1(_address))
		BuyGenesisLevel1FromNormal(_address);
	else if (gn.isGenesisAddressLevel2(_address))
		BuyGenesisLevel2FromNormal(_address);
	else if (gn.isGenesisAddressLevel3(_address))
		BuyGenesisLevel3FromNormal(_address);
	else
		revert('Address not for sale');
}

function SetNormalAddressForSale(uint256 weiPricePerMNE) public {	
	na.SetNormalAddressForSale(msg.sender, weiPricePerMNE);
}

function RemoveNormalAddressFromSale() public
{
	na.RemoveNormalAddressFromSale(msg.sender);
}

function BuyNormalAddress(address payable _address) public payable{
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = na.BuyNormalAddress(msg.sender, address(_address), msg.value);				
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');		
}

function setBalanceNormalAddress(address _address, uint256 _balance) public
{
	na.setBalanceNormalAddress(msg.sender, _address, _balance);
	emit Transfer(address(this), _address, _balance); 
}

function ContractTransferAllFundsOut() public
{
	//in case of hack, funds can be transfered out to another addresses and transferred to the stake holders from there
	if (payoutBlocked)
		if(!secondaryPayoutAddress.send(address(this).balance)) revert();
}

function PayoutStakeHolders() public {
	require(msg.sender == tx.origin); //For security reasons this line is to prevent smart contract calls
	if (payoutBlocked) revert('Payouts Blocked'); //In case of hack, payouts can be blocked
	uint contractBalance = address(this).balance;
	if (!(contractBalance > 0)) revert('(!(contractBalance > 0))');
	uint i;
	uint max;
	
	i = 0;
	max = pa.stakeHoldersListLength();

	while (i < max)
	{
		address payable add = payable(pa.stakeHoldersList(i));
		uint balance = pc.stakeBalances(add);
		uint amountToSend = contractBalance * balance / pc.stakeDecimals();
		if (amountToSend > 0)
		{
			if (!add.send(amountToSend))
				emit LogFailedStakeHolderSends(add, balance, amountToSend);
			else
			{
				pc.totalPaidStakeHoldersSet(pc.totalPaidStakeHolders() + amountToSend);				
			}			
		}
		i++;
	}
}

function stopSetup() public returns (bool success)
{
	return bst.stopSetup(msg.sender);
}

function BurnTokens(uint256 mneToBurn) public returns (bool success) {	
	gn.BurnTokens(msg.sender, mneToBurn);
	emit Transfer(msg.sender, 0x0000000000000000000000000000000000000000, mneToBurn);
	return true;
}

function SetStakeForSale(uint256 priceInWei) public
{	
	st.SetStakeForSale(msg.sender, priceInWei);
}

function RemoveStakeFromSale() public {
	st.RemoveStakeFromSale(msg.sender);
}

function StakeTransferMNE(address _to, uint256 _value) public {
	if (_to == address(this)) revert('if (_to == address(this))');
	BurnTokens(st.StakeTransferMNE(msg.sender, _to, _value));
	emit StakeTransfer(msg.sender, _to, _value); 
}

function BurnGenesisAddresses(address[] memory _genesisAddressesToBurn) public
{
	uint i = 0;	
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	gn.BurnGenesisAddresses(msg.sender, _genesisAddressesToBurn);	
}

function StakeTransferGenesis(address _to, uint256 _value, address[] memory _genesisAddressesToBurn) public {
	if (_to == address(this)) revert('if (_to == address(this))');
	uint i = 0;	
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	st.StakeTransferGenesis(msg.sender, _to, _value, _genesisAddressesToBurn);	
	emit StakeTransfer(msg.sender, _to, _value); 
}

function setBalanceStakes(address _address, uint256 balance) public {
	st.setBalanceStakes(msg.sender, _address, balance);
}

function BuyGenesisLevel1FromNormal(address payable _address) public payable {
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel1FromNormal(msg.sender, address(_address), msg.value);
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');				
}

function BuyGenesisLevel2FromNormal(address payable _address) public payable{
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel2FromNormal(msg.sender, address(_address), msg.value);	
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
}

function BuyGenesisLevel3FromNormal(address payable _address) public payable{
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel3FromNormal(msg.sender, address(_address), msg.value);	
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');		
}

function BuyStakeMNE(address payable _address) public payable {
	uint256 balanceToSend = pc.stakeBalances(_address);
	(uint256 mneToBurn, uint256 feesToPayToSeller) = stb.BuyStakeMNE(msg.sender, address(_address), msg.value);
	BurnTokens(mneToBurn);
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
	emit StakeTransfer(_address, msg.sender, balanceToSend); 
}

function BuyStakeGenesis(address payable _address, address[] memory _genesisAddressesToBurn) public payable {
	uint256 balanceToSend = pc.stakeBalances(_address);
	uint i = 0;
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	uint256 feesToPayToSeller = stb.BuyStakeGenesis(msg.sender, address(_address), _genesisAddressesToBurn, msg.value);
	if(!_address.send(feesToPayToSeller)) revert();		
	emit StakeTransfer(_address, msg.sender, balanceToSend); 
}

function CreateToken() public payable {
	(uint256 _mneToBurn, address tokenAdderss) = tks.CreateToken(msg.sender, msg.value);
	BurnTokens(_mneToBurn);
	emit TokenCreation(msg.sender, tokenAdderss);
}

function CreateTokenICO() public payable {
	(uint256 _mneToBurn, address tokenAdderss) = tks.CreateTokenICO(msg.sender, msg.value);
	BurnTokens(_mneToBurn);
	emit TokenCreationICO(msg.sender, tokenAdderss);
}

function Payment() public payable {
	
}

function BuyLuckyDrawTickets(uint256[] memory max) public payable {
	uint256 _mneToBurn = lkd.BuyTickets.value(msg.value)(msg.sender, max);
	if (_mneToBurn > 0) BurnTokens(_mneToBurn);
}

function Staking(uint256 _amountToStake, address[] memory _addressList, uint256[] memory uintList) public {
	if (_amountToStake > 0)
	{
		bst.transfer(msg.sender, address(mneStk), _amountToStake);
		emit Transfer(msg.sender, address(mneStk), _amountToStake); 
	}
	mneStk.startStaking(msg.sender, _amountToStake, _addressList, uintList);
}

function isAnyGenesisAddress(address _address) public view returns (bool success) {
	return gn.isAnyGenesisAddress(_address);
}

function isGenesisAddressLevel1(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel1(_address);
}

function isGenesisAddressLevel2(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel2(_address);
}

function isGenesisAddressLevel3(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel3(_address);
}

function isGenesisAddressLevel2Or3(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel2Or3(_address);
}

function registerAddresses(address[] memory _addressList) public {
	uint i = 0;
	if (pc.setupRunning() && msg.sender == pc.genesisCallerAddress())
	{
		while(i < _addressList.length)
		{
			emit Transfer(address(this), _addressList[i], gn.balanceOf(_addressList[i]));
			i++;
		}
	}
	else 
	{
		revert();
	}
}

function registerAddressesValue(address[] memory _addressList, uint _value) public {
	uint i = 0;
	if (pc.setupRunning() && msg.sender == pc.genesisCallerAddress())
	{
		while(i < _addressList.length)
		{
			emit Transfer(address(this), _addressList[i], _value);
			i++;
		}
	}
	else 
	{
		revert();
	}
}

function ethFeeToUpgradeToLevel2Set(uint256 _ethFeeToUpgradeToLevel2) public {pc.ethFeeToUpgradeToLevel2Set(msg.sender, _ethFeeToUpgradeToLevel2);}
function ethFeeToUpgradeToLevel3Set(uint256 _ethFeeToUpgradeToLevel3) public {pc.ethFeeToUpgradeToLevel3Set(msg.sender, _ethFeeToUpgradeToLevel3);}
function ethFeeToBuyLevel1Set(uint256 _ethFeeToBuyLevel1) public {pc.ethFeeToBuyLevel1Set(msg.sender, _ethFeeToBuyLevel1);}
function ethFeeForSellerLevel1Set(uint256 _ethFeeForSellerLevel1) public {pc.ethFeeForSellerLevel1Set(msg.sender, _ethFeeForSellerLevel1);}
function ethFeeForTokenSet(uint256 _ethFeeForToken) public {pc.ethFeeForTokenSet(msg.sender, _ethFeeForToken);}
function ethFeeForTokenICOSet(uint256 _ethFeeForTokenICO) public {pc.ethFeeForTokenICOSet(msg.sender, _ethFeeForTokenICO);}
function ethPercentFeeGenesisExchangeSet(uint256 _ethPercentFeeGenesisExchange) public {pc.ethPercentFeeGenesisExchangeSet(msg.sender, _ethPercentFeeGenesisExchange);}
function ethPercentFeeNormalExchangeSet(uint256 _ethPercentFeeNormalExchange) public {pc.ethPercentFeeNormalExchangeSet(msg.sender, _ethPercentFeeNormalExchange);}
function ethPercentStakeExchangeSet(uint256 _ethPercentStakeExchange) public {pc.ethPercentStakeExchangeSet(msg.sender, _ethPercentStakeExchange);}
function amountOfGenesisToBuyStakesSet(uint256 _amountOfGenesisToBuyStakes) public {pc.amountOfGenesisToBuyStakesSet(msg.sender, _amountOfGenesisToBuyStakes);}
function amountOfMNEToBuyStakesSet(uint256 _amountOfMNEToBuyStakes) public {pc.amountOfMNEToBuyStakesSet(msg.sender, _amountOfMNEToBuyStakes);}
function amountOfMNEForTokenSet(uint256 _amountOfMNEForToken) public {pc.amountOfMNEForTokenSet(msg.sender, _amountOfMNEForToken);}
function amountOfMNEForTokenICOSet(uint256 _amountOfMNEForTokenICO) public {pc.amountOfMNEForTokenICOSet(msg.sender, _amountOfMNEForTokenICO);}
function amountOfMNEToTransferStakesSet(uint256 _amountOfMNEToTransferStakes) public {pc.amountOfMNEToTransferStakesSet(msg.sender, _amountOfMNEToTransferStakes);}
function amountOfGenesisToTransferStakesSet(uint256 _amountOfGenesisToTransferStakes) public {pc.amountOfGenesisToTransferStakesSet(msg.sender, _amountOfGenesisToTransferStakes);}
function stakeDecimalsSet(uint256 _stakeDecimals) public {pc.stakeDecimalsSet(msg.sender, _stakeDecimals);}


function ServiceFunction1(address[] memory _addressList, uint256[] memory _uintList) public payable {
	uint256 _mneToBurn = extS1.externalFunction.value(msg.value)(msg.sender, _addressList, _uintList);
	if (_mneToBurn > 0) BurnTokens(_mneToBurn);	
}

function ReceiverFunction1(uint256 _mneAmount, address[] memory _addressList, uint256[] memory _uintList) public payable {
	if (_mneAmount > 0)
	{
		bst.transfer(msg.sender, address(extR1), _mneAmount);
		emit Transfer(msg.sender, address(extR1), _mneAmount); 
	}
	extR1.externalFunction.value(msg.value)(msg.sender, _mneAmount, _addressList, _uintList);	
}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_publicCallsAddress","type":"address"},{"internalType":"address","name":"_publicArraysAddress","type":"address"},{"internalType":"address","name":"_genesisCallsAddress","type":"address"},{"internalType":"address","name":"_normalAddressAddress","type":"address"},{"internalType":"address","name":"_stakesAddress","type":"address"},{"internalType":"address","name":"_stakesBuysAddress","type":"address"},{"internalType":"address","name":"_genesisBuysAddress","type":"address"},{"internalType":"address","name":"_tokenServiceAddress","type":"address"},{"internalType":"address","name":"_baseTransfersAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSend","type":"uint256"}],"name":"LogFailedStakeHolderSends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSend","type":"uint256"}],"name":"LogStakeHolderSends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"StakeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"contractAdd","type":"address"}],"name":"TokenCreation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"contractAdd","type":"address"}],"name":"TokenCreationICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"AllowAddressToDestroyGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AllowReceiveGenesisTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"BurnGenesisAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mneToBurn","type":"uint256"}],"name":"BurnTokens","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel1FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel2FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel3FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"max","type":"uint256[]"}],"name":"BuyLuckyDrawTickets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyNormalAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"BuyStakeGenesis","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyStakeMNE","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"ContractTransferAllFundsOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"CreateToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"CreateTokenICO","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"Payment","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"PayoutStakeHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mneAmount","type":"uint256"},{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256[]","name":"_uintList","type":"uint256[]"}],"name":"ReceiverFunction1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"RemoveAllowAddressToDestroyGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveAllowReceiveGenesisTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveGenesisAddressFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveNormalAddressFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveStakeFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256[]","name":"_uintList","type":"uint256[]"}],"name":"ServiceFunction1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"toBlock","type":"bool"}],"name":"SetBlockPayouts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiPrice","type":"uint256"}],"name":"SetGenesisForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiPricePerMNE","type":"uint256"}],"name":"SetNormalAddressForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceInWei","type":"uint256"}],"name":"SetStakeForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"StakeTransferGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"StakeTransferMNE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountToStake","type":"uint256"},{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256[]","name":"uintList","type":"uint256[]"}],"name":"Staking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"TransferGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel2FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromLevel2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel2FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromLevel2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfGenesisToBuyStakes","type":"uint256"}],"name":"amountOfGenesisToBuyStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfGenesisToTransferStakes","type":"uint256"}],"name":"amountOfGenesisToTransferStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEForTokenICO","type":"uint256"}],"name":"amountOfMNEForTokenICOSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEForToken","type":"uint256"}],"name":"amountOfMNEForTokenSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEToBuyStakes","type":"uint256"}],"name":"amountOfMNEToBuyStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEToTransferStakes","type":"uint256"}],"name":"amountOfMNEToTransferStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"availableBalanceOf","outputs":[{"internalType":"uint256","name":"Balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bst","outputs":[{"internalType":"contract baseTransfers","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBlock","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEthBlock","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForSellerLevel1","type":"uint256"}],"name":"ethFeeForSellerLevel1Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForTokenICO","type":"uint256"}],"name":"ethFeeForTokenICOSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForToken","type":"uint256"}],"name":"ethFeeForTokenSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToBuyLevel1","type":"uint256"}],"name":"ethFeeToBuyLevel1Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToUpgradeToLevel2","type":"uint256"}],"name":"ethFeeToUpgradeToLevel2Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToUpgradeToLevel3","type":"uint256"}],"name":"ethFeeToUpgradeToLevel3Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentFeeGenesisExchange","type":"uint256"}],"name":"ethPercentFeeGenesisExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentFeeNormalExchange","type":"uint256"}],"name":"ethPercentFeeNormalExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentStakeExchange","type":"uint256"}],"name":"ethPercentStakeExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extR1","outputs":[{"internalType":"contract externalReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extS1","outputs":[{"internalType":"contract externalService","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"externalReceiver1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"externalService1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gn","outputs":[{"internalType":"contract genesisCalls","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gnb","outputs":[{"internalType":"contract genesisBuys","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isAnyGenesisAddress","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel1","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel2","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel2Or3","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel3","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lkd","outputs":[{"internalType":"contract luckyDraw","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"loadLuckyDraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"loadMNEStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mneStk","outputs":[{"internalType":"contract mneStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"na","outputs":[{"internalType":"contract normalAddress","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pa","outputs":[{"internalType":"contract publicArrays","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pc","outputs":[{"internalType":"contract publicCalls","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"}],"name":"registerAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"registerAddressesValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadBaseTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadGenesisBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadNormalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"code","type":"uint256"}],"name":"reloadPublicArrays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"code","type":"uint256"}],"name":"reloadPublicCalls","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadStakeBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadStakes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadTokenService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondaryPayoutAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"setBalanceNormalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"setBalanceStakes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPayoutOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setSecondaryPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"st","outputs":[{"internalType":"contract stakes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"stakeBalanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakeDecimals","type":"uint256"}],"name":"stakeDecimalsSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stb","outputs":[{"internalType":"contract stakeBuys","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopSetup","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tks","outputs":[{"internalType":"contract tokenService","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"TotalSupply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updaterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052600f80546001600160a01b0319908116909155601080546001600160a81b03191690556011805490911690553480156200003d57600080fd5b50604051620065653803806200656583398181016040526101208110156200006457600080fd5b5080516020808301516040808501516060860151608087015160a088015160c089015160e08a0151610100909a015186518088019097526008808852674d696e657265756d60c01b9790990196875298999698949793969295919490939091620000d29160009190620005a2565b50604080518082019091526003808252624d4e4560e81b6020909201918252620000ff91600191620005a2565b506002805460ff19166008179055620001206001600160e01b036200057216565b88600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200019857600080fd5b505af1158015620001ad573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b038c81169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200020f57600080fd5b505af115801562000224573d6000803e3d6000fd5b5050600480546001600160a01b0319166001600160a01b038b811691909117808355604080516313b9f0c760e01b815290519190921694506313b9f0c793508183019260009282900301818387803b1580156200028057600080fd5b505af115801562000295573d6000803e3d6000fd5b5050600580546001600160a01b0319166001600160a01b038a81169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620002f757600080fd5b505af11580156200030c573d6000803e3d6000fd5b5050600680546001600160a01b0319166001600160a01b038981169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200036e57600080fd5b505af115801562000383573d6000803e3d6000fd5b5050600780546001600160a01b0319166001600160a01b038881169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620003e557600080fd5b505af1158015620003fa573d6000803e3d6000fd5b5050600880546001600160a01b0319166001600160a01b038781169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200045c57600080fd5b505af115801562000471573d6000803e3d6000fd5b5050600980546001600160a01b0319166001600160a01b038681169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620004d357600080fd5b505af1158015620004e8573d6000803e3d6000fd5b5050600a80546001600160a01b0319166001600160a01b038581169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200054a57600080fd5b505af11580156200055f573d6000803e3d6000fd5b5050505050505050505050505062000647565b600f546001600160a01b03166200059b57600f80546001600160a01b03191633179055620005a0565b600080fd5b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005e557805160ff191683800117855562000615565b8280016001018555821562000615579182015b8281111562000615578251825591602001919060010190620005f8565b506200062392915062000627565b5090565b6200064491905b808211156200062357600081556001016200062e565b90565b615f0e80620006576000396000f3fe6080604052600436106106d35760003560e01c806374a72e411161037a578063bd65fc4c116101d1578063ddcbfce011610102578063e69919ae116100a0578063ef3dd5c81161007a578063ef3dd5c814611f05578063fd3c763814611f38578063fdbc653014611f6b578063ffc4b16814611f80576106d3565b8063e69919ae14611e0f578063e9095e5c14611e24578063eb0fbbad14611ed2576106d3565b8063e12ed13c116100dc578063e12ed13c14611d9d578063e241263014611db2578063e33eaaf714611dc7578063e4c4b47c14611ddc576106d3565b8063ddcbfce014611d2b578063df02f1db14611d55578063df462a4714611d88576106d3565b8063d4f745791161016f578063db59ab3a11610149578063db59ab3a14611b65578063dc8689fc14611c9c578063dd2c455c14611cc6578063dd62ed3e14611cf0576106d3565b8063d4f7457914611afc578063dae487ca14611b26578063db16cb5b14611b3b576106d3565b8063c1696533116101ab578063c169653314611950578063c3536e8b14611a13578063c92f146a14611ab4578063cf91e33114611ac9576106d3565b8063bd65fc4c146118f3578063bdbdcd7514611908578063c0ea2e771461193b576106d3565b8063a2ea2aaf116102ab578063aede090f11610249578063b3e9047611610223578063b3e904761461186c578063b4e85ec814611896578063b9c25cae146118ab578063bad0f934146118c0576106d3565b8063aede090f14611701578063aee1fabc14611824578063af46aa0814611839576106d3565b8063a5094f8f11610285578063a5094f8f14611656578063a9059cbb14611680578063aa13504e146116b9578063ac0f738f146116ec576106d3565b8063a2ea2aaf1461163e578063a330915114611646578063a33b12601461164e576106d3565b80638af8edfc1161031857806392cca541116102f257806392cca541146115ae57806393c63b9d146115c357806395d89b41146115f657806397b5e5541461160b576106d3565b80638af8edfc146114b55780638ccb0023146114ca5780639055a23e1461157b576106d3565b806380167ebf1161035457806380167ebf1461133c5780638278188a146113dd578063846153b5146113f25780638a670113146114a0576106d3565b806374a72e41146112515780637b411ca5146113015780637d20a24f14611316576106d3565b8063429069091161052e5780636af434701161045f5780637050ec89116103fd5780637347060c116103d75780637347060c146111b357806373668817146111d957806373f0cc2d14611212578063742ec16414611227576106d3565b80637050ec891461113f57806370a082311461117857806370a8a2e6146111ab576106d3565b80636c2f12e6116104395780636c2f12e61461101b5780636dcb9800146110bc5780636e3ee8f1146110e65780637022c79e1461110c576106d3565b80636af4347014610fd85780636b3b280014610fe05780636be2ca4314611006576106d3565b8063542aa99f116104cc5780635b65268f116104a65780635b65268f14610f5e57806361a3be8014610f735780636338655114610f8857806366a497b714610fae576106d3565b8063542aa99f14610ee657806357e08c6014610efb5780635b48a88414610f34576106d3565b80634955d7f0116105085780634955d7f014610e2f57806350ac2f6914610e59578063522c628f14610e835780635339689314610ebc576106d3565b80634290690914610de8578063474b07bf14610e125780634890bb5114610e27576106d3565b806321df8098116106085780633118f543116105a657806333d599341161058057806333d5993414610d3d57806336d6991014610d675780633c64cfc614610d9a578063416e860414610dd3576106d3565b80633118f54314610cd7578063313ce56714610cec5780633181a5a714610d17576106d3565b806324ac57b7116105e257806324ac57b714610c3257806325d998bb14610c475780632940187a14610c7a5780632cd3fd7014610cad576106d3565b806321df809814610b9057806323b872dd14610bc357806323e46e7c14610c06576106d3565b80630d061e7511610675578063177e48d01161064f578063177e48d014610a7d57806318160ddd14610b1e5780631d2cb86114610b335780631ec32a6614610b66576106d3565b80630d061e7514610a0b578063124d83d814610a20578063128fb93014610a4a576106d3565b8063095ea7b3116106b1578063095ea7b3146108b857806309ae18441461090557806309f6c607146109b35780630a63361c146109da576106d3565b806306fdde03146106d857806307c5c18e14610762578063088c35fd1461088e575b600080fd5b3480156106e457600080fd5b506106ed611fb3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561072757818101518382015260200161070f565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088c6004803603606081101561077857600080fd5b81359190810190604081016020820135600160201b81111561079957600080fd5b8201836020820111156107ab57600080fd5b803590602001918460208302840111600160201b831117156107cc57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561081b57600080fd5b82018360208201111561082d57600080fd5b803590602001918460208302840111600160201b8311171561084e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612041945050505050565b005b34801561089a57600080fd5b5061088c600480360360208110156108b157600080fd5b50356121f2565b3480156108c457600080fd5b506108f1600480360360408110156108db57600080fd5b506001600160a01b038135169060200135612264565b604080519115158252519081900360200190f35b34801561091157600080fd5b5061088c6004803603602081101561092857600080fd5b810190602081018135600160201b81111561094257600080fd5b82018360208201111561095457600080fd5b803590602001918460208302840111600160201b8311171561097557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612327945050505050565b3480156109bf57600080fd5b506109c861244d565b60408051918252519081900360200190f35b3480156109e657600080fd5b506109ef612451565b604080516001600160a01b039092168252519081900360200190f35b348015610a1757600080fd5b506109ef612460565b348015610a2c57600080fd5b5061088c60048036036020811015610a4357600080fd5b503561246f565b348015610a5657600080fd5b5061088c60048036036020811015610a6d57600080fd5b50356001600160a01b03166124c6565b61088c60048036036020811015610a9357600080fd5b810190602081018135600160201b811115610aad57600080fd5b820183602082011115610abf57600080fd5b803590602001918460208302840111600160201b83111715610ae057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506124f8945050505050565b348015610b2a57600080fd5b506109c86126d4565b348015610b3f57600080fd5b5061088c60048036036020811015610b5657600080fd5b50356001600160a01b031661274a565b348015610b7257600080fd5b5061088c60048036036020811015610b8957600080fd5b503561277d565b348015610b9c57600080fd5b5061088c60048036036020811015610bb357600080fd5b50356001600160a01b03166127d4565b348015610bcf57600080fd5b506108f160048036036060811015610be657600080fd5b506001600160a01b03813581169160208101359091169060400135612861565b348015610c1257600080fd5b5061088c60048036036020811015610c2957600080fd5b5035151561293c565b348015610c3e57600080fd5b506109ef61296b565b348015610c5357600080fd5b506109c860048036036020811015610c6a57600080fd5b50356001600160a01b031661297a565b348015610c8657600080fd5b506108f160048036036020811015610c9d57600080fd5b50356001600160a01b03166129ff565b348015610cb957600080fd5b506108f160048036036020811015610cd057600080fd5b5035612a52565b348015610ce357600080fd5b506109ef612b03565b348015610cf857600080fd5b50610d01612b12565b6040805160ff9092168252519081900360200190f35b61088c60048036036020811015610d2d57600080fd5b50356001600160a01b0316612b1b565b348015610d4957600080fd5b5061088c60048036036020811015610d6057600080fd5b5035612d08565b348015610d7357600080fd5b506108f160048036036020811015610d8a57600080fd5b50356001600160a01b0316612d5f565b348015610da657600080fd5b5061088c60048036036040811015610dbd57600080fd5b506001600160a01b038135169060200135612db2565b348015610ddf57600080fd5b506109ef612e0d565b348015610df457600080fd5b5061088c60048036036020811015610e0b57600080fd5b5035612e1c565b348015610e1e57600080fd5b506109ef612e73565b61088c612e82565b348015610e3b57600080fd5b5061088c60048036036020811015610e5257600080fd5b5035612eef565b348015610e6557600080fd5b5061088c60048036036020811015610e7c57600080fd5b5035612f46565b348015610e8f57600080fd5b5061088c60048036036040811015610ea657600080fd5b506001600160a01b038135169060200135612f9d565b348015610ec857600080fd5b5061088c60048036036020811015610edf57600080fd5b503561301f565b348015610ef257600080fd5b506108f1613076565b348015610f0757600080fd5b5061088c60048036036040811015610f1e57600080fd5b506001600160a01b0381351690602001356130d6565b348015610f4057600080fd5b5061088c60048036036020811015610f5757600080fd5b503561317b565b348015610f6a57600080fd5b5061088c6131ce565b348015610f7f57600080fd5b5061088c61321b565b61088c60048036036020811015610f9e57600080fd5b50356001600160a01b0316613268565b348015610fba57600080fd5b5061088c60048036036020811015610fd157600080fd5b503561341d565b61088c613474565b61088c60048036036020811015610ff657600080fd5b50356001600160a01b03166134c7565b34801561101257600080fd5b5061088c6135e8565b61088c6004803603602081101561103157600080fd5b810190602081018135600160201b81111561104b57600080fd5b82018360208201111561105d57600080fd5b803590602001918460208302840111600160201b8311171561107e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613634945050505050565b3480156110c857600080fd5b5061088c600480360360208110156110df57600080fd5b503561380b565b61088c600480360360208110156110fc57600080fd5b50356001600160a01b0316613862565b34801561111857600080fd5b5061088c6004803603602081101561112f57600080fd5b50356001600160a01b03166138f4565b34801561114b57600080fd5b5061088c6004803603604081101561116257600080fd5b506001600160a01b038135169060200135613964565b34801561118457600080fd5b506109c86004803603602081101561119b57600080fd5b50356001600160a01b0316613a83565b61088c613ad6565b61088c600480360360208110156111c957600080fd5b50356001600160a01b0316613b29565b3480156111e557600080fd5b5061088c600480360360408110156111fc57600080fd5b506001600160a01b038135169060200135613bbb565b34801561121e57600080fd5b506109ef613c53565b34801561123357600080fd5b5061088c6004803603602081101561124a57600080fd5b5035613c62565b34801561125d57600080fd5b5061088c6004803603604081101561127457600080fd5b810190602081018135600160201b81111561128e57600080fd5b8201836020820111156112a057600080fd5b803590602001918460208302840111600160201b831117156112c157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250613cb6915050565b34801561130d57600080fd5b5061088c613e21565b61088c6004803603602081101561132c57600080fd5b50356001600160a01b0316614232565b61088c6004803603602081101561135257600080fd5b810190602081018135600160201b81111561136c57600080fd5b82018360208201111561137e57600080fd5b803590602001918460208302840111600160201b8311171561139f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506142c4945050505050565b3480156113e957600080fd5b506109ef614393565b3480156113fe57600080fd5b5061088c6004803603602081101561141557600080fd5b810190602081018135600160201b81111561142f57600080fd5b82018360208201111561144157600080fd5b803590602001918460208302840111600160201b8311171561146257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506143a2945050505050565b3480156114ac57600080fd5b506109ef6145b2565b3480156114c157600080fd5b506109ef6145c1565b61088c600480360360408110156114e057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561150a57600080fd5b82018360208201111561151c57600080fd5b803590602001918460208302840111600160201b8311171561153d57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506145d0945050505050565b34801561158757600080fd5b506108f16004803603602081101561159e57600080fd5b50356001600160a01b03166147f8565b3480156115ba57600080fd5b5061088c61484b565b3480156115cf57600080fd5b5061088c600480360360208110156115e657600080fd5b50356001600160a01b0316614870565b34801561160257600080fd5b506106ed6148dc565b34801561161757600080fd5b5061088c6004803603602081101561162e57600080fd5b50356001600160a01b0316614936565b61088c6149a6565b61088c614a7d565b61088c61486e565b34801561166257600080fd5b5061088c6004803603602081101561167957600080fd5b5035614b54565b34801561168c57600080fd5b5061088c600480360360408110156116a357600080fd5b506001600160a01b038135169060200135614bab565b3480156116c557600080fd5b5061088c600480360360208110156116dc57600080fd5b50356001600160a01b0316614caa565b3480156116f857600080fd5b5061088c614cdd565b61088c6004803603604081101561171757600080fd5b810190602081018135600160201b81111561173157600080fd5b82018360208201111561174357600080fd5b803590602001918460208302840111600160201b8311171561176457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156117b357600080fd5b8201836020820111156117c557600080fd5b803590602001918460208302840111600160201b831117156117e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614d2a945050505050565b34801561183057600080fd5b506109ef614e42565b34801561184557600080fd5b506109c86004803603602081101561185c57600080fd5b50356001600160a01b0316614e51565b34801561187857600080fd5b5061088c6004803603602081101561188f57600080fd5b5035614ea6565b3480156118a257600080fd5b5061088c614efd565b3480156118b757600080fd5b5061088c614f49565b3480156118cc57600080fd5b5061088c600480360360208110156118e357600080fd5b50356001600160a01b0316614f96565b3480156118ff57600080fd5b506109ef615006565b34801561191457600080fd5b5061088c6004803603602081101561192b57600080fd5b50356001600160a01b0316615015565b34801561194757600080fd5b506108f1615085565b34801561195c57600080fd5b5061088c6004803603606081101561197357600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156119a257600080fd5b8201836020820111156119b457600080fd5b803590602001918460208302840111600160201b831117156119d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615095945050505050565b61088c60048036036020811015611a2957600080fd5b810190602081018135600160201b811115611a4357600080fd5b820183602082011115611a5557600080fd5b803590602001918460208302840111600160201b83111715611a7657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061524b945050505050565b348015611ac057600080fd5b5061088c61550c565b348015611ad557600080fd5b5061088c60048036036020811015611aec57600080fd5b50356001600160a01b0316615559565b348015611b0857600080fd5b5061088c60048036036020811015611b1f57600080fd5b503561563c565b348015611b3257600080fd5b506109ef615693565b348015611b4757600080fd5b5061088c60048036036020811015611b5e57600080fd5b50356156a2565b348015611b7157600080fd5b5061088c60048036036060811015611b8857600080fd5b81359190810190604081016020820135600160201b811115611ba957600080fd5b820183602082011115611bbb57600080fd5b803590602001918460208302840111600160201b83111715611bdc57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115611c2b57600080fd5b820183602082011115611c3d57600080fd5b803590602001918460208302840111600160201b83111715611c5e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506156f5945050505050565b348015611ca857600080fd5b5061088c60048036036020811015611cbf57600080fd5b50356158a5565b348015611cd257600080fd5b5061088c60048036036020811015611ce957600080fd5b50356158fc565b348015611cfc57600080fd5b506109c860048036036040811015611d1357600080fd5b506001600160a01b0381358116916020013516615953565b348015611d3757600080fd5b5061088c60048036036020811015611d4e57600080fd5b50356159e3565b348015611d6157600080fd5b5061088c60048036036020811015611d7857600080fd5b50356001600160a01b0316615a3a565b348015611d9457600080fd5b506109ef615a6d565b348015611da957600080fd5b506109c8615a7c565b348015611dbe57600080fd5b5061088c615aff565b348015611dd357600080fd5b5061088c615b26565b348015611de857600080fd5b5061088c60048036036020811015611dff57600080fd5b50356001600160a01b0316615b69565b348015611e1b57600080fd5b506109ef615b9c565b348015611e3057600080fd5b5061088c60048036036020811015611e4757600080fd5b810190602081018135600160201b811115611e6157600080fd5b820183602082011115611e7357600080fd5b803590602001918460208302840111600160201b83111715611e9457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615bb0945050505050565b348015611ede57600080fd5b506108f160048036036020811015611ef557600080fd5b50356001600160a01b0316615c54565b348015611f1157600080fd5b5061088c60048036036020811015611f2857600080fd5b50356001600160a01b0316615ca7565b348015611f4457600080fd5b5061088c60048036036020811015611f5b57600080fd5b50356001600160a01b0316615cfc565b348015611f7757600080fd5b506109ef615d6c565b348015611f8c57600080fd5b506108f160048036036020811015611fa357600080fd5b50356001600160a01b0316615d7b565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156120395780601f1061200e57610100808354040283529160200191612039565b820191906000526020600020905b81548152906001019060200180831161201c57829003601f168201915b505050505081565b82156120f157600a54600e54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b1580156120a557600080fd5b505af11580156120b9573d6000803e3d6000fd5b5050600e546040805187815290516001600160a01b039092169350339250600080516020615e88833981519152919081900360200190a35b600e54604051632433a49160e11b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b03909516946348674922943494938a938a938a93606481019160a4909101906020808801910280838360005b8381101561216d578181015183820152602001612155565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156121ac578181015183820152602001612194565b5050505090500196505050505050506000604051808303818588803b1580156121d457600080fd5b505af11580156121e8573d6000803e3d6000fd5b5050505050505050565b600254604080516305de45bd60e11b81523360048201526024810184905290516101009092046001600160a01b031691630bbc8b7a9160448082019260009290919082900301818387803b15801561224957600080fd5b505af115801561225d573d6000803e3d6000fd5b5050505050565b6002546040805163779a859960e11b81523360048201526001600160a01b03858116602483015260448201859052915160009361010090049092169163ef350b3291606480820192869290919082900301818387803b1580156122c657600080fd5b505af11580156122da573d6000803e3d6000fd5b50506040805185815290516001600160a01b03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b60005b815181101561239f5760006001600160a01b031682828151811061234a57fe5b60200260200101516001600160a01b0316600080516020615e8883398151915261238685858151811061237957fe5b6020026020010151613a83565b60408051918252519081900360200190a360010161232a565b6004805460408051633ca4fe7b60e11b815233938101848152602482019283528651604483015286516001600160a01b0390941694637949fcf6949093889390916064909101906020808601910280838360005b8381101561240b5781810151838201526020016123f3565b505050509050019350505050600060405180830381600087803b15801561243157600080fd5b505af1158015612445573d6000803e3d6000fd5b505050505050565b4390565b6003546001600160a01b031681565b6011546001600160a01b031681565b60025460408051633429fca760e21b81523360048201526024810184905290516101009092046001600160a01b03169163d0a7f29c9160448082019260009290919082900301818387803b15801561224957600080fd5b600f546001600160a01b03163314156106d357600b80546001600160a01b0319166001600160a01b0383161790555b50565b805160025460408051633238268960e01b81529051839261010090046001600160a01b0316916332382689916004808301926020929190829003018186803b15801561254357600080fd5b505afa158015612557573d6000803e3d6000fd5b505050506040513d602081101561256d57600080fd5b50510234146125ad5760405162461bcd60e51b8152600401808060200182810382526031815260200180615ea86031913960400191505060405180910390fd5b60005b818110156126cf5760045483516001600160a01b03909116906376067e67908590849081106125db57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663323826896040518163ffffffff1660e01b815260040160206040518083038186803b15801561263157600080fd5b505afa158015612645573d6000803e3d6000fd5b505050506040513d602081101561265b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b1580156126ab57600080fd5b505af11580156126bf573d6000803e3d6000fd5b5050600190920191506125b09050565b505050565b600a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561271957600080fd5b505afa15801561272d573d6000803e3d6000fd5b505050506040513d602081101561274357600080fd5b5051905090565b600f546001600160a01b03163314156106d357600e80546001600160a01b0319166001600160a01b0383161790556124f5565b600254604080516372a4edd560e01b81523360048201526024810184905290516101009092046001600160a01b0316916372a4edd59160448082019260009290919082900301818387803b15801561224957600080fd5b600f546001600160a01b03163314156106d357600780546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b505050506124f5565b600a5460408051630aed65f560e11b81523360048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849316916315dacbea91608480830192602092919082900301818787803b1580156128c657600080fd5b505af11580156128da573d6000803e3d6000fd5b505050506040513d60208110156128f057600080fd5b50519050801561293457836001600160a01b0316856001600160a01b0316600080516020615e88833981519152856040518082815260200191505060405180910390a35b949350505050565b6010546001600160a01b03163314156124f55760108054821515600160a01b0260ff60a01b1990911617905550565b600b546001600160a01b031681565b60048054604080516325d998bb60e01b81526001600160a01b03858116948201949094529051600093909216916325d998bb91602480820192602092909190829003018186803b1580156129cd57600080fd5b505afa1580156129e1573d6000803e3d6000fd5b505050506040513d60208110156129f757600080fd5b505192915050565b60048054604080516314a00c3d60e11b81526001600160a01b0385811694820194909452905160009390921691632940187a91602480820192602092909190829003018186803b1580156129cd57600080fd5b6004805460408051631c46b08160e11b8152339381019390935260248301849052516000926001600160a01b039092169163388d610291604480830192602092919082900301818787803b158015612aa957600080fd5b505af1158015612abd573d6000803e3d6000fd5b505050506040513d6020811015612ad357600080fd5b50506040805183815290516000913391600080516020615e888339815191529181900360200190a3506001919050565b6004546001600160a01b031681565b60025460ff1681565b600480546040805163482ad11f60e11b81526001600160a01b038581169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b158015612b6c57600080fd5b505afa158015612b80573d6000803e3d6000fd5b505050506040513d6020811015612b9657600080fd5b505115612bab57612ba6816134c7565b6124f5565b60048054604080516314a00c3d60e11b81526001600160a01b038581169482019490945290519290911691632940187a91602480820192602092909190829003018186803b158015612bfc57600080fd5b505afa158015612c10573d6000803e3d6000fd5b505050506040513d6020811015612c2657600080fd5b505115612c3657612ba681613b29565b60048054604080516001620769d360e31b031981526001600160a01b03858116948201949094529051929091169163ffc4b16891602480820192602092909190829003018186803b158015612c8a57600080fd5b505afa158015612c9e573d6000803e3d6000fd5b505050506040513d6020811015612cb457600080fd5b505115612cc457612ba681613862565b6040805162461bcd60e51b815260206004820152601460248201527341646472657373206e6f7420666f722073616c6560601b604482015290519081900360640190fd5b6002546040805163f5d1858560e01b81523360048201526024810184905290516101009092046001600160a01b03169163f5d185859160448082019260009290919082900301818387803b15801561224957600080fd5b600480546040805163036d699160e41b81526001600160a01b03858116948201949094529051600093909216916336d6991091602480820192602092909190829003018186803b1580156129cd57600080fd5b6006546040805163f8e4df0f60e01b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f8e4df0f91606480830192600092919082900301818387803b15801561243157600080fd5b6005546001600160a01b031681565b600254604080516304e49a5f60e51b81523360048201526024810184905290516101009092046001600160a01b031691639c934be09160448082019260009290919082900301818387803b15801561224957600080fd5b600e546001600160a01b031681565b60048054604080516376067e6760e01b81523393810193909352346024840152516001600160a01b03909116916376067e6791604480830192600092919082900301818387803b158015612ed557600080fd5b505af1158015612ee9573d6000803e3d6000fd5b50505050565b60025460408051632f89629160e21b81523360048201526024810184905290516101009092046001600160a01b03169163be258a449160448082019260009290919082900301818387803b15801561224957600080fd5b6002546040805163c226832b60e01b81523360048201526024810184905290516101009092046001600160a01b03169163c226832b9160448082019260009290919082900301818387803b15801561224957600080fd5b806104d214612fab57600080fd5b600f546001600160a01b03163314156106d357600380546001600160a01b0319166001600160a01b038481169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561243157600080fd5b5050565b600254604080516312b0e54d60e31b81523360048201526024810184905290516101009092046001600160a01b0316916395872a689160448082019260009290919082900301818387803b15801561224957600080fd5b600a5460408051633b8d674f60e01b815233600482015290516000926001600160a01b031691633b8d674f91602480830192602092919082900301818787803b1580156130c257600080fd5b505af115801561272d573d6000803e3d6000fd5b60055460408051631e4eb16d60e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f2758b6891606480830192600092919082900301818387803b15801561313157600080fd5b505af1158015613145573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350309250600080516020615e888339815191529181900360200190a35050565b60055460408051631d90fdf560e31b81523360048201526024810184905290516001600160a01b039092169163ec87efa89160448082019260009290919082900301818387803b15801561224957600080fd5b60048054604080516306baf26360e01b81523393810193909352516001600160a01b03909116916306baf26391602480830192600092919082900301818387803b158015612ed557600080fd5b60048054604080516352ba171d60e01b81523393810193909352516001600160a01b03909116916352ba171d91602480830192600092919082900301818387803b158015612ed557600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b1580156132bd57600080fd5b505afa1580156132d1573d6000803e3d6000fd5b505050506040513d60208110156132e757600080fd5b505160075460408051632bfac20f60e01b81523360048201526001600160a01b038681166024830152346044830152825194955060009485949190911692632bfac20f926064808201939182900301818787803b15801561334757600080fd5b505af115801561335b573d6000803e3d6000fd5b505050506040513d604081101561337157600080fd5b508051602090910151909250905061338882612a52565b506040516001600160a01b0385169082156108fc029083906000818181858888f193505050506133e95760405162461bcd60e51b8152600401808060200182810382526023815260200180615e326023913960400191505060405180910390fd5b60408051848152905133916001600160a01b03871691600080516020615e128339815191529181900360200190a350505050565b60025460408051637626dfcf60e01b81523360048201526024810184905290516101009092046001600160a01b031691637626dfcf9160448082019260009290919082900301818387803b15801561224957600080fd5b600480546040805163ecc517f160e01b81523393810193909352346024840152516001600160a01b039091169163ecc517f191604480830192600092919082900301818387803b158015612ed557600080fd5b336001600160a01b038216600080516020615e888339815191526134ea84613a83565b60408051918252519081900360200190a36008546040805163eb19110d60e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163eb19110d9160648082019260209290919082900301818787803b15801561355957600080fd5b505af115801561356d573d6000803e3d6000fd5b505050506040513d602081101561358357600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f1935050505061301b5760405162461bcd60e51b8152600401808060200182810382526023815260200180615e326023913960400191505060405180910390fd5b6005546040805163062199f760e31b815233600482015290516001600160a01b039092169163310ccfb89160248082019260009290919082900301818387803b158015612ed557600080fd5b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b15801561367f57600080fd5b505afa158015613693573d6000803e3d6000fd5b505050506040513d60208110156136a957600080fd5b50510234146136e95760405162461bcd60e51b8152600401808060200182810382526033815260200180615e556033913960400191505060405180910390fd5b60005b818110156126cf5760045483516001600160a01b039091169063ecc517f19085908490811061371757fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561376d57600080fd5b505afa158015613781573d6000803e3d6000fd5b505050506040513d602081101561379757600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b1580156137e757600080fd5b505af11580156137fb573d6000803e3d6000fd5b5050600190920191506136ec9050565b6002546040805163225e453360e21b81523360048201526024810184905290516101009092046001600160a01b03169163897914cc9160448082019260009290919082900301818387803b15801561224957600080fd5b336001600160a01b038216600080516020615e8883398151915261388584613a83565b60408051918252519081900360200190a36008546040805163e7cba43360e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163e7cba4339160648082019260209290919082900301818787803b15801561355957600080fd5b600f546001600160a01b03163314156106d357600580546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b6001600160a01b0382163014156139be576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60065460408051631c1b2e5560e21b81523360048201526001600160a01b038581166024830152604482018590529151613a5093929092169163706cb954916064808201926020929091908290030181600087803b158015613a1f57600080fd5b505af1158015613a33573d6000803e3d6000fd5b505050506040513d6020811015613a4957600080fd5b5051612a52565b506040805182815290516001600160a01b038416913391600080516020615e128339815191529181900360200190a35050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b1580156129cd57600080fd5b600480546040805163016e045960e41b81523393810193909352346024840152516001600160a01b03909116916316e0459091604480830192600092919082900301818387803b158015612ed557600080fd5b336001600160a01b038216600080516020615e88833981519152613b4c84613a83565b60408051918252519081900360200190a3600854604080516345b4f43b60e01b81523360048201526001600160a01b038481166024830152346044830152915160009392909216916345b4f43b9160648082019260209290919082900301818787803b15801561355957600080fd5b806104d214613bc957600080fd5b600f546001600160a01b03163314156106d35781600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561243157600080fd5b6006546001600160a01b031681565b600480546040805163ed401ac360e01b8152339381019390935260248301849052516001600160a01b039091169163ed401ac391604480830192600092919082900301818387803b15801561224957600080fd5b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b158015613d0057600080fd5b505afa158015613d14573d6000803e3d6000fd5b505050506040513d6020811015613d2a57600080fd5b50518015613db95750600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b158015613d8157600080fd5b505afa158015613d95573d6000803e3d6000fd5b505050506040513d6020811015613dab57600080fd5b50516001600160a01b031633145b156106d3575b8251811015613e1c57828181518110613dd457fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020615e88833981519152846040518082815260200191505060405180910390a3600101613dbf565b6126cf565b333214613e2d57600080fd5b601054600160a01b900460ff1615613e7e576040805162461bcd60e51b815260206004820152600f60248201526e14185e5bdd5d1cc8109b1bd8dad959608a1b604482015290519081900360640190fd5b4780613ed1576040805162461bcd60e51b815260206004820152601860248201527f282128636f6e747261637442616c616e6365203e203029290000000000000000604482015290519081900360640190fd5b6003546040805163643a943160e01b8152905160009283926001600160a01b039091169163643a943191600480820192602092909190829003018186803b158015613f1b57600080fd5b505afa158015613f2f573d6000803e3d6000fd5b505050506040513d6020811015613f4557600080fd5b505190505b808210156126cf576003546040805163124183a760e31b81526004810185905290516000926001600160a01b03169163920c1d38916024808301926020929190829003018186803b158015613f9e57600080fd5b505afa158015613fb2573d6000803e3d6000fd5b505050506040513d6020811015613fc857600080fd5b505160025460408051633b317dab60e01b81526001600160a01b038085166004830152915193945060009361010090930490911691633b317dab91602480820192602092909190829003018186803b15801561402357600080fd5b505afa158015614037573d6000803e3d6000fd5b505050506040513d602081101561404d57600080fd5b50516002546040805163433ad96960e11b815290519293506000926101009092046001600160a01b031691638675b2d291600480820192602092909190829003018186803b15801561409e57600080fd5b505afa1580156140b2573d6000803e3d6000fd5b505050506040513d60208110156140c857600080fd5b5051868302816140d457fe5b0490508015614224576040516001600160a01b0384169082156108fc029083906000818181858888f1935050505061414e57604080518381526020810183905281516001600160a01b038616927f50a6033bb1b577c577f67a1425e1ac9939c9382b114ae85b5274fd3e76a7f7df928290030190a2614224565b6002546040805163028f4a6960e41b815290516101009092046001600160a01b031691631eeb57ec91849184916328f4a690916004808301926020929190829003018186803b1580156141a057600080fd5b505afa1580156141b4573d6000803e3d6000fd5b505050506040513d60208110156141ca57600080fd5b5051604080516001600160e01b031960e086901b16815292909101600483015251602480830192600092919082900301818387803b15801561420b57600080fd5b505af115801561421f573d6000803e3d6000fd5b505050505b505060019092019150613f4a565b336001600160a01b038216600080516020615e8883398151915261425584613a83565b60408051918252519081900360200190a360055460408051636311a8d360e11b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163c62351a69160648082019260209290919082900301818787803b15801561355957600080fd5b600c5460408051631a3a8c1f60e21b81523360048201818152602483019384528551604484015285516000956001600160a01b0316946368ea307c94349493899390929160640190602080860191028083838d5b83811015614330578181015183820152602001614318565b5050505090500193505050506020604051808303818588803b15801561435557600080fd5b505af1158015614369573d6000803e3d6000fd5b50505050506040513d602081101561438057600080fd5b50519050801561301b576126cf81612a52565b6008546001600160a01b031681565b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b1580156143ec57600080fd5b505afa158015614400573d6000803e3d6000fd5b505050506040513d602081101561441657600080fd5b505180156144a55750600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b15801561446d57600080fd5b505afa158015614481573d6000803e3d6000fd5b505050506040513d602081101561449757600080fd5b50516001600160a01b031633145b156106d3575b81518110156145ad578181815181106144c057fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020615e88833981519152600460009054906101000a90046001600160a01b03166001600160a01b03166370a0823186868151811061451a57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561456857600080fd5b505afa15801561457c573d6000803e3d6000fd5b505050506040513d602081101561459257600080fd5b505160408051918252519081900360200190a36001016144ab565b61301b565b6010546001600160a01b031681565b600a546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0385811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561462557600080fd5b505afa158015614639573d6000803e3d6000fd5b505050506040513d602081101561464f57600080fd5b5051905060005b82518110156146be5760006001600160a01b031683828151811061467657fe5b60200260200101516001600160a01b0316600080516020615e888339815191526146a586858151811061237957fe5b60408051918252519081900360200190a3600101614656565b6007546040516367711a5960e01b815233600482018181526001600160a01b038881166024850152346064850181905260806044860190815289516084870152895160009793909316956367711a5995948c948c9493919260a40190602080870191028083838e5b8381101561473e578181015183820152602001614726565b5050505090500195505050505050602060405180830381600087803b15801561476657600080fd5b505af115801561477a573d6000803e3d6000fd5b505050506040513d602081101561479057600080fd5b50516040519091506001600160a01b0386169082156108fc029083906000818181858888f193505050506147c357600080fd5b60408051848152905133916001600160a01b03881691600080516020615e128339815191529181900360200190a35050505050565b600480546040805163482ad11f60e11b81526001600160a01b0385811694820194909452905160009390921691639055a23e91602480820192602092909190829003018186803b1580156129cd57600080fd5b6010546001600160a01b03166106d357601080546001600160a01b031916331790555b565b600f546001600160a01b03163314156106d357600480546001600160a01b0319166001600160a01b0383811691909117808355604080516313b9f0c760e01b8152905191909216926313b9f0c79280820192600092909182900301818387803b15801561284457600080fd5b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156120395780601f1061200e57610100808354040283529160200191612039565b600f546001600160a01b03163314156106d357600980546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b6009546040805163b378e89b60e01b8152336004820152346024820152815160009384936001600160a01b039091169263b378e89b926044808301939282900301818787803b1580156149f857600080fd5b505af1158015614a0c573d6000803e3d6000fd5b505050506040513d6040811015614a2257600080fd5b5080516020909101519092509050614a3982612a52565b50604080516001600160a01b0383168152905133917fc372ae39394d4f0b2ac49b0e0c2200b3e9a7e66b3c52d01aef930695f1296804919081900360200190a25050565b6009546040805163291c964760e21b8152336004820152346024820152815160009384936001600160a01b039091169263a472591c926044808301939282900301818787803b158015614acf57600080fd5b505af1158015614ae3573d6000803e3d6000fd5b505050506040513d6040811015614af957600080fd5b5080516020909101519092509050614b1082612a52565b50604080516001600160a01b0383168152905133917f1f4d287b617c59dd118975b7dd7525ab82bb32e7a6db7023cf41bf6af3c21494919081900360200190a25050565b60025460408051634ea8c93760e11b81523360048201526024810184905290516101009092046001600160a01b031691639d51926e9160448082019260009290919082900301818387803b15801561224957600080fd5b6001600160a01b038216301415614c05576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b600a54604080516317d5759960e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163beabacc891606480830192600092919082900301818387803b158015614c6057600080fd5b505af1158015614c74573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350339250600080516020615e888339815191529181900360200190a35050565b600f546001600160a01b03163314156106d357600d80546001600160a01b0319166001600160a01b0383161790556124f5565b600480546040805163ca02eb9d60e01b81523393810193909352516001600160a01b039091169163ca02eb9d91602480830192600092919082900301818387803b158015612ed557600080fd5b600d5460405163fe942a2d60e01b815233600482018181526060602484019081528651606485015286516000956001600160a01b03169463fe942a2d94349490938a938a936044810191608490910190602080880191028083838f5b83811015614d9e578181015183820152602001614d86565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015614ddd578181015183820152602001614dc5565b50505050905001955050505050506020604051808303818588803b158015614e0457600080fd5b505af1158015614e18573d6000803e3d6000fd5b50505050506040513d6020811015614e2f57600080fd5b5051905080156126cf57612ee981612a52565b600d546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b1580156129cd57600080fd5b600254604080516344c077ab60e11b81523360048201526024810184905290516101009092046001600160a01b031691638980ef569160448082019260009290919082900301818387803b15801561224957600080fd5b6006546040805163ac39285b60e01b815233600482015290516001600160a01b039092169163ac39285b9160248082019260009290919082900301818387803b158015612ed557600080fd5b600480546040805163034043e160e51b81523393810193909352516001600160a01b03909116916368087c2091602480830192600092919082900301818387803b158015612ed557600080fd5b600f546001600160a01b03163314156106d357600880546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b6007546001600160a01b031681565b600f546001600160a01b03163314156106d357600680546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b601054600160a01b900460ff1681565b6001600160a01b0383163014156150ef576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60005b815181101561515a5760006001600160a01b031682828151811061511257fe5b60200260200101516001600160a01b0316600080516020615e8883398151915261514185858151811061237957fe5b60408051918252519081900360200190a36001016150f2565b600654604051632464a27d60e01b815233600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519190951694632464a27d948a938a938a93919260a401906020808601910280838360005b838110156151d75781810151838201526020016151bf565b5050505090500195505050505050600060405180830381600087803b1580156151ff57600080fd5b505af1158015615213573d6000803e3d6000fd5b50506040805186815290516001600160a01b0388169350339250600080516020615e128339815191529181900360200190a350505050565b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b15801561529657600080fd5b505afa1580156152aa573d6000803e3d6000fd5b505050506040513d60208110156152c057600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561530b57600080fd5b505afa15801561531f573d6000803e3d6000fd5b505050506040513d602081101561533557600080fd5b5051010234146153765760405162461bcd60e51b8152600401808060200182810382526040815260200180615dd26040913960400191505060405180910390fd5b60005b818110156126cf5760045483516001600160a01b03909116906316e04590908590849081106153a457fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b1580156153fa57600080fd5b505afa15801561540e573d6000803e3d6000fd5b505050506040513d602081101561542457600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561546f57600080fd5b505afa158015615483573d6000803e3d6000fd5b505050506040513d602081101561549957600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b1580156154e857600080fd5b505af11580156154fc573d6000803e3d6000fd5b5050600190920191506153799050565b60048054604080516371681de560e11b81523393810193909352516001600160a01b039091169163e2d03bca91602480830192600092919082900301818387803b158015612ed557600080fd5b6001600160a01b03811633600080516020615e8883398151915261557c82613a83565b60408051918252519081900360200190a36001600160a01b0381163014156155e7576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60048054604080516334d5831d60e21b815233938101939093526001600160a01b038481166024850152905191169163d3560c7491604480830192600092919082900301818387803b15801561224957600080fd5b60025460408051631d25fd5560e01b81523360048201526024810184905290516101009092046001600160a01b031691631d25fd559160448082019260009290919082900301818387803b15801561224957600080fd5b6009546001600160a01b031681565b60065460408051637cb6d17b60e11b81523360048201526024810184905290516001600160a01b039092169163f96da2f69160448082019260009290919082900301818387803b15801561224957600080fd5b82156157a557600a54600b54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b15801561575957600080fd5b505af115801561576d573d6000803e3d6000fd5b5050600b546040805187815290516001600160a01b039092169350339250600080516020615e88833981519152919081900360200190a35b600b54604051630a67889360e01b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b0390951694630a6788939489938993899391929091606482019160a401906020808801910280838360005b83811015615820578181015183820152602001615808565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561585f578181015183820152602001615847565b505050509050019650505050505050600060405180830381600087803b15801561588857600080fd5b505af115801561589c573d6000803e3d6000fd5b50505050505050565b600254604080516333dfca3560e21b81523360048201526024810184905290516101009092046001600160a01b03169163cf7f28d49160448082019260009290919082900301818387803b15801561224957600080fd5b6002546040805163124e91b960e01b81523360048201526024810184905290516101009092046001600160a01b03169163124e91b99160448082019260009290919082900301818387803b15801561224957600080fd5b60025460408051635c65816560e01b81526001600160a01b03858116600483015284811660248301529151600093610100900490921691635c65816591604480820192602092909190829003018186803b1580156159b057600080fd5b505afa1580156159c4573d6000803e3d6000fd5b505050506040513d60208110156159da57600080fd5b50519392505050565b60025460408051633bb868dd60e21b81523360048201526024810184905290516101009092046001600160a01b03169163eee1a3749160448082019260009290919082900301818387803b15801561224957600080fd5b6010546001600160a01b03163314156106d357601180546001600160a01b0319166001600160a01b0383161790556124f5565b600c546001600160a01b031681565b6000600260019054906101000a90046001600160a01b03166001600160a01b031663e5f65c716040518163ffffffff1660e01b815260040160206040518083038186803b158015615acc57600080fd5b505afa158015615ae0573d6000803e3d6000fd5b505050506040513d6020811015615af657600080fd5b50514303905090565b600f546001600160a01b03166106d357600f80546001600160a01b0319163317905561486e565b601054600160a01b900460ff161561486e576011546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505061486e57600080fd5b600f546001600160a01b03163314156106d357600c80546001600160a01b0319166001600160a01b0383161790556124f5565b60025461010090046001600160a01b031681565b805160005b818110156126cf5760045483516001600160a01b03909116906352ba171d90859084908110615be057fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015615c3057600080fd5b505af1158015615c44573d6000803e3d6000fd5b505060019092019150615bb59050565b600480546040805163eb0fbbad60e01b81526001600160a01b038581169482019490945290516000939092169163eb0fbbad91602480820192602092909190829003018186803b1580156129cd57600080fd5b600480546040805163d42e1c2f60e01b815233938101939093526001600160a01b038481166024850152905191169163d42e1c2f91604480830192600092919082900301818387803b15801561224957600080fd5b600f546001600160a01b03163314156106d357600a80546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b600f546001600160a01b031681565b60048054604080516001620769d360e31b031981526001600160a01b038581169482019490945290516000939092169163ffc4b16891602480820192602092909190829003018186803b1580156129cd57600080fdfe2877656956616c756520213d2028286d73672e76616c7565202b2070632e657468466565546f55706772616465546f4c6576656c332829292a636f756e742929cc6ddb19d323297cc6ed8f3dbda06395f6f153d24bf678f36305752ab635e10928215f616464726573732e73656e642866656573546f506179546f53656c6c65722929286d73672e76616c756520213d202870632e657468466565546f55706772616465546f4c6576656c3328292a636f756e742929ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef286d73672e76616c756520213d2070632e657468466565546f55706772616465546f4c6576656c3228292a636f756e7429a2646970667358221220fbe85c3a6fa0919c93491c769155cdfad5809a0a4845bd3d867d33fbea239d1764736f6c6343000601003300000000000000000000000090e340e2d11e6eb1d99e34d122d6fe0fef3213fd000000000000000000000000805385fba3f03a24d793721f4583be53d3abf86b000000000000000000000000a6be27538a28114fe03eb7ade9adfe53164f2a4c000000000000000000000000905139d0b050157d5786ba55cbb7c0bb23de48a20000000000000000000000000b11403debdef5eb2b094d71b39c2f71339933e4000000000000000000000000955c475da7a43247b10874dd610e113991b8c220000000000000000000000000e9a4319702b271765fdd9a2134e511bdc4d2a2c800000000000000000000000067d817f7d61d14b0308854cb277011d7ac024d2d0000000000000000000000007766b5f6fc12ef01ac9fe52ed550d854b0375d5f

Deployed Bytecode

0x6080604052600436106106d35760003560e01c806374a72e411161037a578063bd65fc4c116101d1578063ddcbfce011610102578063e69919ae116100a0578063ef3dd5c81161007a578063ef3dd5c814611f05578063fd3c763814611f38578063fdbc653014611f6b578063ffc4b16814611f80576106d3565b8063e69919ae14611e0f578063e9095e5c14611e24578063eb0fbbad14611ed2576106d3565b8063e12ed13c116100dc578063e12ed13c14611d9d578063e241263014611db2578063e33eaaf714611dc7578063e4c4b47c14611ddc576106d3565b8063ddcbfce014611d2b578063df02f1db14611d55578063df462a4714611d88576106d3565b8063d4f745791161016f578063db59ab3a11610149578063db59ab3a14611b65578063dc8689fc14611c9c578063dd2c455c14611cc6578063dd62ed3e14611cf0576106d3565b8063d4f7457914611afc578063dae487ca14611b26578063db16cb5b14611b3b576106d3565b8063c1696533116101ab578063c169653314611950578063c3536e8b14611a13578063c92f146a14611ab4578063cf91e33114611ac9576106d3565b8063bd65fc4c146118f3578063bdbdcd7514611908578063c0ea2e771461193b576106d3565b8063a2ea2aaf116102ab578063aede090f11610249578063b3e9047611610223578063b3e904761461186c578063b4e85ec814611896578063b9c25cae146118ab578063bad0f934146118c0576106d3565b8063aede090f14611701578063aee1fabc14611824578063af46aa0814611839576106d3565b8063a5094f8f11610285578063a5094f8f14611656578063a9059cbb14611680578063aa13504e146116b9578063ac0f738f146116ec576106d3565b8063a2ea2aaf1461163e578063a330915114611646578063a33b12601461164e576106d3565b80638af8edfc1161031857806392cca541116102f257806392cca541146115ae57806393c63b9d146115c357806395d89b41146115f657806397b5e5541461160b576106d3565b80638af8edfc146114b55780638ccb0023146114ca5780639055a23e1461157b576106d3565b806380167ebf1161035457806380167ebf1461133c5780638278188a146113dd578063846153b5146113f25780638a670113146114a0576106d3565b806374a72e41146112515780637b411ca5146113015780637d20a24f14611316576106d3565b8063429069091161052e5780636af434701161045f5780637050ec89116103fd5780637347060c116103d75780637347060c146111b357806373668817146111d957806373f0cc2d14611212578063742ec16414611227576106d3565b80637050ec891461113f57806370a082311461117857806370a8a2e6146111ab576106d3565b80636c2f12e6116104395780636c2f12e61461101b5780636dcb9800146110bc5780636e3ee8f1146110e65780637022c79e1461110c576106d3565b80636af4347014610fd85780636b3b280014610fe05780636be2ca4314611006576106d3565b8063542aa99f116104cc5780635b65268f116104a65780635b65268f14610f5e57806361a3be8014610f735780636338655114610f8857806366a497b714610fae576106d3565b8063542aa99f14610ee657806357e08c6014610efb5780635b48a88414610f34576106d3565b80634955d7f0116105085780634955d7f014610e2f57806350ac2f6914610e59578063522c628f14610e835780635339689314610ebc576106d3565b80634290690914610de8578063474b07bf14610e125780634890bb5114610e27576106d3565b806321df8098116106085780633118f543116105a657806333d599341161058057806333d5993414610d3d57806336d6991014610d675780633c64cfc614610d9a578063416e860414610dd3576106d3565b80633118f54314610cd7578063313ce56714610cec5780633181a5a714610d17576106d3565b806324ac57b7116105e257806324ac57b714610c3257806325d998bb14610c475780632940187a14610c7a5780632cd3fd7014610cad576106d3565b806321df809814610b9057806323b872dd14610bc357806323e46e7c14610c06576106d3565b80630d061e7511610675578063177e48d01161064f578063177e48d014610a7d57806318160ddd14610b1e5780631d2cb86114610b335780631ec32a6614610b66576106d3565b80630d061e7514610a0b578063124d83d814610a20578063128fb93014610a4a576106d3565b8063095ea7b3116106b1578063095ea7b3146108b857806309ae18441461090557806309f6c607146109b35780630a63361c146109da576106d3565b806306fdde03146106d857806307c5c18e14610762578063088c35fd1461088e575b600080fd5b3480156106e457600080fd5b506106ed611fb3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561072757818101518382015260200161070f565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088c6004803603606081101561077857600080fd5b81359190810190604081016020820135600160201b81111561079957600080fd5b8201836020820111156107ab57600080fd5b803590602001918460208302840111600160201b831117156107cc57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561081b57600080fd5b82018360208201111561082d57600080fd5b803590602001918460208302840111600160201b8311171561084e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612041945050505050565b005b34801561089a57600080fd5b5061088c600480360360208110156108b157600080fd5b50356121f2565b3480156108c457600080fd5b506108f1600480360360408110156108db57600080fd5b506001600160a01b038135169060200135612264565b604080519115158252519081900360200190f35b34801561091157600080fd5b5061088c6004803603602081101561092857600080fd5b810190602081018135600160201b81111561094257600080fd5b82018360208201111561095457600080fd5b803590602001918460208302840111600160201b8311171561097557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612327945050505050565b3480156109bf57600080fd5b506109c861244d565b60408051918252519081900360200190f35b3480156109e657600080fd5b506109ef612451565b604080516001600160a01b039092168252519081900360200190f35b348015610a1757600080fd5b506109ef612460565b348015610a2c57600080fd5b5061088c60048036036020811015610a4357600080fd5b503561246f565b348015610a5657600080fd5b5061088c60048036036020811015610a6d57600080fd5b50356001600160a01b03166124c6565b61088c60048036036020811015610a9357600080fd5b810190602081018135600160201b811115610aad57600080fd5b820183602082011115610abf57600080fd5b803590602001918460208302840111600160201b83111715610ae057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506124f8945050505050565b348015610b2a57600080fd5b506109c86126d4565b348015610b3f57600080fd5b5061088c60048036036020811015610b5657600080fd5b50356001600160a01b031661274a565b348015610b7257600080fd5b5061088c60048036036020811015610b8957600080fd5b503561277d565b348015610b9c57600080fd5b5061088c60048036036020811015610bb357600080fd5b50356001600160a01b03166127d4565b348015610bcf57600080fd5b506108f160048036036060811015610be657600080fd5b506001600160a01b03813581169160208101359091169060400135612861565b348015610c1257600080fd5b5061088c60048036036020811015610c2957600080fd5b5035151561293c565b348015610c3e57600080fd5b506109ef61296b565b348015610c5357600080fd5b506109c860048036036020811015610c6a57600080fd5b50356001600160a01b031661297a565b348015610c8657600080fd5b506108f160048036036020811015610c9d57600080fd5b50356001600160a01b03166129ff565b348015610cb957600080fd5b506108f160048036036020811015610cd057600080fd5b5035612a52565b348015610ce357600080fd5b506109ef612b03565b348015610cf857600080fd5b50610d01612b12565b6040805160ff9092168252519081900360200190f35b61088c60048036036020811015610d2d57600080fd5b50356001600160a01b0316612b1b565b348015610d4957600080fd5b5061088c60048036036020811015610d6057600080fd5b5035612d08565b348015610d7357600080fd5b506108f160048036036020811015610d8a57600080fd5b50356001600160a01b0316612d5f565b348015610da657600080fd5b5061088c60048036036040811015610dbd57600080fd5b506001600160a01b038135169060200135612db2565b348015610ddf57600080fd5b506109ef612e0d565b348015610df457600080fd5b5061088c60048036036020811015610e0b57600080fd5b5035612e1c565b348015610e1e57600080fd5b506109ef612e73565b61088c612e82565b348015610e3b57600080fd5b5061088c60048036036020811015610e5257600080fd5b5035612eef565b348015610e6557600080fd5b5061088c60048036036020811015610e7c57600080fd5b5035612f46565b348015610e8f57600080fd5b5061088c60048036036040811015610ea657600080fd5b506001600160a01b038135169060200135612f9d565b348015610ec857600080fd5b5061088c60048036036020811015610edf57600080fd5b503561301f565b348015610ef257600080fd5b506108f1613076565b348015610f0757600080fd5b5061088c60048036036040811015610f1e57600080fd5b506001600160a01b0381351690602001356130d6565b348015610f4057600080fd5b5061088c60048036036020811015610f5757600080fd5b503561317b565b348015610f6a57600080fd5b5061088c6131ce565b348015610f7f57600080fd5b5061088c61321b565b61088c60048036036020811015610f9e57600080fd5b50356001600160a01b0316613268565b348015610fba57600080fd5b5061088c60048036036020811015610fd157600080fd5b503561341d565b61088c613474565b61088c60048036036020811015610ff657600080fd5b50356001600160a01b03166134c7565b34801561101257600080fd5b5061088c6135e8565b61088c6004803603602081101561103157600080fd5b810190602081018135600160201b81111561104b57600080fd5b82018360208201111561105d57600080fd5b803590602001918460208302840111600160201b8311171561107e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613634945050505050565b3480156110c857600080fd5b5061088c600480360360208110156110df57600080fd5b503561380b565b61088c600480360360208110156110fc57600080fd5b50356001600160a01b0316613862565b34801561111857600080fd5b5061088c6004803603602081101561112f57600080fd5b50356001600160a01b03166138f4565b34801561114b57600080fd5b5061088c6004803603604081101561116257600080fd5b506001600160a01b038135169060200135613964565b34801561118457600080fd5b506109c86004803603602081101561119b57600080fd5b50356001600160a01b0316613a83565b61088c613ad6565b61088c600480360360208110156111c957600080fd5b50356001600160a01b0316613b29565b3480156111e557600080fd5b5061088c600480360360408110156111fc57600080fd5b506001600160a01b038135169060200135613bbb565b34801561121e57600080fd5b506109ef613c53565b34801561123357600080fd5b5061088c6004803603602081101561124a57600080fd5b5035613c62565b34801561125d57600080fd5b5061088c6004803603604081101561127457600080fd5b810190602081018135600160201b81111561128e57600080fd5b8201836020820111156112a057600080fd5b803590602001918460208302840111600160201b831117156112c157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250613cb6915050565b34801561130d57600080fd5b5061088c613e21565b61088c6004803603602081101561132c57600080fd5b50356001600160a01b0316614232565b61088c6004803603602081101561135257600080fd5b810190602081018135600160201b81111561136c57600080fd5b82018360208201111561137e57600080fd5b803590602001918460208302840111600160201b8311171561139f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506142c4945050505050565b3480156113e957600080fd5b506109ef614393565b3480156113fe57600080fd5b5061088c6004803603602081101561141557600080fd5b810190602081018135600160201b81111561142f57600080fd5b82018360208201111561144157600080fd5b803590602001918460208302840111600160201b8311171561146257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506143a2945050505050565b3480156114ac57600080fd5b506109ef6145b2565b3480156114c157600080fd5b506109ef6145c1565b61088c600480360360408110156114e057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561150a57600080fd5b82018360208201111561151c57600080fd5b803590602001918460208302840111600160201b8311171561153d57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506145d0945050505050565b34801561158757600080fd5b506108f16004803603602081101561159e57600080fd5b50356001600160a01b03166147f8565b3480156115ba57600080fd5b5061088c61484b565b3480156115cf57600080fd5b5061088c600480360360208110156115e657600080fd5b50356001600160a01b0316614870565b34801561160257600080fd5b506106ed6148dc565b34801561161757600080fd5b5061088c6004803603602081101561162e57600080fd5b50356001600160a01b0316614936565b61088c6149a6565b61088c614a7d565b61088c61486e565b34801561166257600080fd5b5061088c6004803603602081101561167957600080fd5b5035614b54565b34801561168c57600080fd5b5061088c600480360360408110156116a357600080fd5b506001600160a01b038135169060200135614bab565b3480156116c557600080fd5b5061088c600480360360208110156116dc57600080fd5b50356001600160a01b0316614caa565b3480156116f857600080fd5b5061088c614cdd565b61088c6004803603604081101561171757600080fd5b810190602081018135600160201b81111561173157600080fd5b82018360208201111561174357600080fd5b803590602001918460208302840111600160201b8311171561176457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156117b357600080fd5b8201836020820111156117c557600080fd5b803590602001918460208302840111600160201b831117156117e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614d2a945050505050565b34801561183057600080fd5b506109ef614e42565b34801561184557600080fd5b506109c86004803603602081101561185c57600080fd5b50356001600160a01b0316614e51565b34801561187857600080fd5b5061088c6004803603602081101561188f57600080fd5b5035614ea6565b3480156118a257600080fd5b5061088c614efd565b3480156118b757600080fd5b5061088c614f49565b3480156118cc57600080fd5b5061088c600480360360208110156118e357600080fd5b50356001600160a01b0316614f96565b3480156118ff57600080fd5b506109ef615006565b34801561191457600080fd5b5061088c6004803603602081101561192b57600080fd5b50356001600160a01b0316615015565b34801561194757600080fd5b506108f1615085565b34801561195c57600080fd5b5061088c6004803603606081101561197357600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156119a257600080fd5b8201836020820111156119b457600080fd5b803590602001918460208302840111600160201b831117156119d557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615095945050505050565b61088c60048036036020811015611a2957600080fd5b810190602081018135600160201b811115611a4357600080fd5b820183602082011115611a5557600080fd5b803590602001918460208302840111600160201b83111715611a7657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061524b945050505050565b348015611ac057600080fd5b5061088c61550c565b348015611ad557600080fd5b5061088c60048036036020811015611aec57600080fd5b50356001600160a01b0316615559565b348015611b0857600080fd5b5061088c60048036036020811015611b1f57600080fd5b503561563c565b348015611b3257600080fd5b506109ef615693565b348015611b4757600080fd5b5061088c60048036036020811015611b5e57600080fd5b50356156a2565b348015611b7157600080fd5b5061088c60048036036060811015611b8857600080fd5b81359190810190604081016020820135600160201b811115611ba957600080fd5b820183602082011115611bbb57600080fd5b803590602001918460208302840111600160201b83111715611bdc57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115611c2b57600080fd5b820183602082011115611c3d57600080fd5b803590602001918460208302840111600160201b83111715611c5e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506156f5945050505050565b348015611ca857600080fd5b5061088c60048036036020811015611cbf57600080fd5b50356158a5565b348015611cd257600080fd5b5061088c60048036036020811015611ce957600080fd5b50356158fc565b348015611cfc57600080fd5b506109c860048036036040811015611d1357600080fd5b506001600160a01b0381358116916020013516615953565b348015611d3757600080fd5b5061088c60048036036020811015611d4e57600080fd5b50356159e3565b348015611d6157600080fd5b5061088c60048036036020811015611d7857600080fd5b50356001600160a01b0316615a3a565b348015611d9457600080fd5b506109ef615a6d565b348015611da957600080fd5b506109c8615a7c565b348015611dbe57600080fd5b5061088c615aff565b348015611dd357600080fd5b5061088c615b26565b348015611de857600080fd5b5061088c60048036036020811015611dff57600080fd5b50356001600160a01b0316615b69565b348015611e1b57600080fd5b506109ef615b9c565b348015611e3057600080fd5b5061088c60048036036020811015611e4757600080fd5b810190602081018135600160201b811115611e6157600080fd5b820183602082011115611e7357600080fd5b803590602001918460208302840111600160201b83111715611e9457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615bb0945050505050565b348015611ede57600080fd5b506108f160048036036020811015611ef557600080fd5b50356001600160a01b0316615c54565b348015611f1157600080fd5b5061088c60048036036020811015611f2857600080fd5b50356001600160a01b0316615ca7565b348015611f4457600080fd5b5061088c60048036036020811015611f5b57600080fd5b50356001600160a01b0316615cfc565b348015611f7757600080fd5b506109ef615d6c565b348015611f8c57600080fd5b506108f160048036036020811015611fa357600080fd5b50356001600160a01b0316615d7b565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156120395780601f1061200e57610100808354040283529160200191612039565b820191906000526020600020905b81548152906001019060200180831161201c57829003601f168201915b505050505081565b82156120f157600a54600e54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b1580156120a557600080fd5b505af11580156120b9573d6000803e3d6000fd5b5050600e546040805187815290516001600160a01b039092169350339250600080516020615e88833981519152919081900360200190a35b600e54604051632433a49160e11b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b03909516946348674922943494938a938a938a93606481019160a4909101906020808801910280838360005b8381101561216d578181015183820152602001612155565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156121ac578181015183820152602001612194565b5050505090500196505050505050506000604051808303818588803b1580156121d457600080fd5b505af11580156121e8573d6000803e3d6000fd5b5050505050505050565b600254604080516305de45bd60e11b81523360048201526024810184905290516101009092046001600160a01b031691630bbc8b7a9160448082019260009290919082900301818387803b15801561224957600080fd5b505af115801561225d573d6000803e3d6000fd5b5050505050565b6002546040805163779a859960e11b81523360048201526001600160a01b03858116602483015260448201859052915160009361010090049092169163ef350b3291606480820192869290919082900301818387803b1580156122c657600080fd5b505af11580156122da573d6000803e3d6000fd5b50506040805185815290516001600160a01b03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b60005b815181101561239f5760006001600160a01b031682828151811061234a57fe5b60200260200101516001600160a01b0316600080516020615e8883398151915261238685858151811061237957fe5b6020026020010151613a83565b60408051918252519081900360200190a360010161232a565b6004805460408051633ca4fe7b60e11b815233938101848152602482019283528651604483015286516001600160a01b0390941694637949fcf6949093889390916064909101906020808601910280838360005b8381101561240b5781810151838201526020016123f3565b505050509050019350505050600060405180830381600087803b15801561243157600080fd5b505af1158015612445573d6000803e3d6000fd5b505050505050565b4390565b6003546001600160a01b031681565b6011546001600160a01b031681565b60025460408051633429fca760e21b81523360048201526024810184905290516101009092046001600160a01b03169163d0a7f29c9160448082019260009290919082900301818387803b15801561224957600080fd5b600f546001600160a01b03163314156106d357600b80546001600160a01b0319166001600160a01b0383161790555b50565b805160025460408051633238268960e01b81529051839261010090046001600160a01b0316916332382689916004808301926020929190829003018186803b15801561254357600080fd5b505afa158015612557573d6000803e3d6000fd5b505050506040513d602081101561256d57600080fd5b50510234146125ad5760405162461bcd60e51b8152600401808060200182810382526031815260200180615ea86031913960400191505060405180910390fd5b60005b818110156126cf5760045483516001600160a01b03909116906376067e67908590849081106125db57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663323826896040518163ffffffff1660e01b815260040160206040518083038186803b15801561263157600080fd5b505afa158015612645573d6000803e3d6000fd5b505050506040513d602081101561265b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b1580156126ab57600080fd5b505af11580156126bf573d6000803e3d6000fd5b5050600190920191506125b09050565b505050565b600a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561271957600080fd5b505afa15801561272d573d6000803e3d6000fd5b505050506040513d602081101561274357600080fd5b5051905090565b600f546001600160a01b03163314156106d357600e80546001600160a01b0319166001600160a01b0383161790556124f5565b600254604080516372a4edd560e01b81523360048201526024810184905290516101009092046001600160a01b0316916372a4edd59160448082019260009290919082900301818387803b15801561224957600080fd5b600f546001600160a01b03163314156106d357600780546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b505050506124f5565b600a5460408051630aed65f560e11b81523360048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849316916315dacbea91608480830192602092919082900301818787803b1580156128c657600080fd5b505af11580156128da573d6000803e3d6000fd5b505050506040513d60208110156128f057600080fd5b50519050801561293457836001600160a01b0316856001600160a01b0316600080516020615e88833981519152856040518082815260200191505060405180910390a35b949350505050565b6010546001600160a01b03163314156124f55760108054821515600160a01b0260ff60a01b1990911617905550565b600b546001600160a01b031681565b60048054604080516325d998bb60e01b81526001600160a01b03858116948201949094529051600093909216916325d998bb91602480820192602092909190829003018186803b1580156129cd57600080fd5b505afa1580156129e1573d6000803e3d6000fd5b505050506040513d60208110156129f757600080fd5b505192915050565b60048054604080516314a00c3d60e11b81526001600160a01b0385811694820194909452905160009390921691632940187a91602480820192602092909190829003018186803b1580156129cd57600080fd5b6004805460408051631c46b08160e11b8152339381019390935260248301849052516000926001600160a01b039092169163388d610291604480830192602092919082900301818787803b158015612aa957600080fd5b505af1158015612abd573d6000803e3d6000fd5b505050506040513d6020811015612ad357600080fd5b50506040805183815290516000913391600080516020615e888339815191529181900360200190a3506001919050565b6004546001600160a01b031681565b60025460ff1681565b600480546040805163482ad11f60e11b81526001600160a01b038581169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b158015612b6c57600080fd5b505afa158015612b80573d6000803e3d6000fd5b505050506040513d6020811015612b9657600080fd5b505115612bab57612ba6816134c7565b6124f5565b60048054604080516314a00c3d60e11b81526001600160a01b038581169482019490945290519290911691632940187a91602480820192602092909190829003018186803b158015612bfc57600080fd5b505afa158015612c10573d6000803e3d6000fd5b505050506040513d6020811015612c2657600080fd5b505115612c3657612ba681613b29565b60048054604080516001620769d360e31b031981526001600160a01b03858116948201949094529051929091169163ffc4b16891602480820192602092909190829003018186803b158015612c8a57600080fd5b505afa158015612c9e573d6000803e3d6000fd5b505050506040513d6020811015612cb457600080fd5b505115612cc457612ba681613862565b6040805162461bcd60e51b815260206004820152601460248201527341646472657373206e6f7420666f722073616c6560601b604482015290519081900360640190fd5b6002546040805163f5d1858560e01b81523360048201526024810184905290516101009092046001600160a01b03169163f5d185859160448082019260009290919082900301818387803b15801561224957600080fd5b600480546040805163036d699160e41b81526001600160a01b03858116948201949094529051600093909216916336d6991091602480820192602092909190829003018186803b1580156129cd57600080fd5b6006546040805163f8e4df0f60e01b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f8e4df0f91606480830192600092919082900301818387803b15801561243157600080fd5b6005546001600160a01b031681565b600254604080516304e49a5f60e51b81523360048201526024810184905290516101009092046001600160a01b031691639c934be09160448082019260009290919082900301818387803b15801561224957600080fd5b600e546001600160a01b031681565b60048054604080516376067e6760e01b81523393810193909352346024840152516001600160a01b03909116916376067e6791604480830192600092919082900301818387803b158015612ed557600080fd5b505af1158015612ee9573d6000803e3d6000fd5b50505050565b60025460408051632f89629160e21b81523360048201526024810184905290516101009092046001600160a01b03169163be258a449160448082019260009290919082900301818387803b15801561224957600080fd5b6002546040805163c226832b60e01b81523360048201526024810184905290516101009092046001600160a01b03169163c226832b9160448082019260009290919082900301818387803b15801561224957600080fd5b806104d214612fab57600080fd5b600f546001600160a01b03163314156106d357600380546001600160a01b0319166001600160a01b038481169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561243157600080fd5b5050565b600254604080516312b0e54d60e31b81523360048201526024810184905290516101009092046001600160a01b0316916395872a689160448082019260009290919082900301818387803b15801561224957600080fd5b600a5460408051633b8d674f60e01b815233600482015290516000926001600160a01b031691633b8d674f91602480830192602092919082900301818787803b1580156130c257600080fd5b505af115801561272d573d6000803e3d6000fd5b60055460408051631e4eb16d60e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f2758b6891606480830192600092919082900301818387803b15801561313157600080fd5b505af1158015613145573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350309250600080516020615e888339815191529181900360200190a35050565b60055460408051631d90fdf560e31b81523360048201526024810184905290516001600160a01b039092169163ec87efa89160448082019260009290919082900301818387803b15801561224957600080fd5b60048054604080516306baf26360e01b81523393810193909352516001600160a01b03909116916306baf26391602480830192600092919082900301818387803b158015612ed557600080fd5b60048054604080516352ba171d60e01b81523393810193909352516001600160a01b03909116916352ba171d91602480830192600092919082900301818387803b158015612ed557600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b1580156132bd57600080fd5b505afa1580156132d1573d6000803e3d6000fd5b505050506040513d60208110156132e757600080fd5b505160075460408051632bfac20f60e01b81523360048201526001600160a01b038681166024830152346044830152825194955060009485949190911692632bfac20f926064808201939182900301818787803b15801561334757600080fd5b505af115801561335b573d6000803e3d6000fd5b505050506040513d604081101561337157600080fd5b508051602090910151909250905061338882612a52565b506040516001600160a01b0385169082156108fc029083906000818181858888f193505050506133e95760405162461bcd60e51b8152600401808060200182810382526023815260200180615e326023913960400191505060405180910390fd5b60408051848152905133916001600160a01b03871691600080516020615e128339815191529181900360200190a350505050565b60025460408051637626dfcf60e01b81523360048201526024810184905290516101009092046001600160a01b031691637626dfcf9160448082019260009290919082900301818387803b15801561224957600080fd5b600480546040805163ecc517f160e01b81523393810193909352346024840152516001600160a01b039091169163ecc517f191604480830192600092919082900301818387803b158015612ed557600080fd5b336001600160a01b038216600080516020615e888339815191526134ea84613a83565b60408051918252519081900360200190a36008546040805163eb19110d60e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163eb19110d9160648082019260209290919082900301818787803b15801561355957600080fd5b505af115801561356d573d6000803e3d6000fd5b505050506040513d602081101561358357600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f1935050505061301b5760405162461bcd60e51b8152600401808060200182810382526023815260200180615e326023913960400191505060405180910390fd5b6005546040805163062199f760e31b815233600482015290516001600160a01b039092169163310ccfb89160248082019260009290919082900301818387803b158015612ed557600080fd5b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b15801561367f57600080fd5b505afa158015613693573d6000803e3d6000fd5b505050506040513d60208110156136a957600080fd5b50510234146136e95760405162461bcd60e51b8152600401808060200182810382526033815260200180615e556033913960400191505060405180910390fd5b60005b818110156126cf5760045483516001600160a01b039091169063ecc517f19085908490811061371757fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561376d57600080fd5b505afa158015613781573d6000803e3d6000fd5b505050506040513d602081101561379757600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b1580156137e757600080fd5b505af11580156137fb573d6000803e3d6000fd5b5050600190920191506136ec9050565b6002546040805163225e453360e21b81523360048201526024810184905290516101009092046001600160a01b03169163897914cc9160448082019260009290919082900301818387803b15801561224957600080fd5b336001600160a01b038216600080516020615e8883398151915261388584613a83565b60408051918252519081900360200190a36008546040805163e7cba43360e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163e7cba4339160648082019260209290919082900301818787803b15801561355957600080fd5b600f546001600160a01b03163314156106d357600580546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b6001600160a01b0382163014156139be576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60065460408051631c1b2e5560e21b81523360048201526001600160a01b038581166024830152604482018590529151613a5093929092169163706cb954916064808201926020929091908290030181600087803b158015613a1f57600080fd5b505af1158015613a33573d6000803e3d6000fd5b505050506040513d6020811015613a4957600080fd5b5051612a52565b506040805182815290516001600160a01b038416913391600080516020615e128339815191529181900360200190a35050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b1580156129cd57600080fd5b600480546040805163016e045960e41b81523393810193909352346024840152516001600160a01b03909116916316e0459091604480830192600092919082900301818387803b158015612ed557600080fd5b336001600160a01b038216600080516020615e88833981519152613b4c84613a83565b60408051918252519081900360200190a3600854604080516345b4f43b60e01b81523360048201526001600160a01b038481166024830152346044830152915160009392909216916345b4f43b9160648082019260209290919082900301818787803b15801561355957600080fd5b806104d214613bc957600080fd5b600f546001600160a01b03163314156106d35781600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561243157600080fd5b6006546001600160a01b031681565b600480546040805163ed401ac360e01b8152339381019390935260248301849052516001600160a01b039091169163ed401ac391604480830192600092919082900301818387803b15801561224957600080fd5b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b158015613d0057600080fd5b505afa158015613d14573d6000803e3d6000fd5b505050506040513d6020811015613d2a57600080fd5b50518015613db95750600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b158015613d8157600080fd5b505afa158015613d95573d6000803e3d6000fd5b505050506040513d6020811015613dab57600080fd5b50516001600160a01b031633145b156106d3575b8251811015613e1c57828181518110613dd457fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020615e88833981519152846040518082815260200191505060405180910390a3600101613dbf565b6126cf565b333214613e2d57600080fd5b601054600160a01b900460ff1615613e7e576040805162461bcd60e51b815260206004820152600f60248201526e14185e5bdd5d1cc8109b1bd8dad959608a1b604482015290519081900360640190fd5b4780613ed1576040805162461bcd60e51b815260206004820152601860248201527f282128636f6e747261637442616c616e6365203e203029290000000000000000604482015290519081900360640190fd5b6003546040805163643a943160e01b8152905160009283926001600160a01b039091169163643a943191600480820192602092909190829003018186803b158015613f1b57600080fd5b505afa158015613f2f573d6000803e3d6000fd5b505050506040513d6020811015613f4557600080fd5b505190505b808210156126cf576003546040805163124183a760e31b81526004810185905290516000926001600160a01b03169163920c1d38916024808301926020929190829003018186803b158015613f9e57600080fd5b505afa158015613fb2573d6000803e3d6000fd5b505050506040513d6020811015613fc857600080fd5b505160025460408051633b317dab60e01b81526001600160a01b038085166004830152915193945060009361010090930490911691633b317dab91602480820192602092909190829003018186803b15801561402357600080fd5b505afa158015614037573d6000803e3d6000fd5b505050506040513d602081101561404d57600080fd5b50516002546040805163433ad96960e11b815290519293506000926101009092046001600160a01b031691638675b2d291600480820192602092909190829003018186803b15801561409e57600080fd5b505afa1580156140b2573d6000803e3d6000fd5b505050506040513d60208110156140c857600080fd5b5051868302816140d457fe5b0490508015614224576040516001600160a01b0384169082156108fc029083906000818181858888f1935050505061414e57604080518381526020810183905281516001600160a01b038616927f50a6033bb1b577c577f67a1425e1ac9939c9382b114ae85b5274fd3e76a7f7df928290030190a2614224565b6002546040805163028f4a6960e41b815290516101009092046001600160a01b031691631eeb57ec91849184916328f4a690916004808301926020929190829003018186803b1580156141a057600080fd5b505afa1580156141b4573d6000803e3d6000fd5b505050506040513d60208110156141ca57600080fd5b5051604080516001600160e01b031960e086901b16815292909101600483015251602480830192600092919082900301818387803b15801561420b57600080fd5b505af115801561421f573d6000803e3d6000fd5b505050505b505060019092019150613f4a565b336001600160a01b038216600080516020615e8883398151915261425584613a83565b60408051918252519081900360200190a360055460408051636311a8d360e11b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163c62351a69160648082019260209290919082900301818787803b15801561355957600080fd5b600c5460408051631a3a8c1f60e21b81523360048201818152602483019384528551604484015285516000956001600160a01b0316946368ea307c94349493899390929160640190602080860191028083838d5b83811015614330578181015183820152602001614318565b5050505090500193505050506020604051808303818588803b15801561435557600080fd5b505af1158015614369573d6000803e3d6000fd5b50505050506040513d602081101561438057600080fd5b50519050801561301b576126cf81612a52565b6008546001600160a01b031681565b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b1580156143ec57600080fd5b505afa158015614400573d6000803e3d6000fd5b505050506040513d602081101561441657600080fd5b505180156144a55750600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b15801561446d57600080fd5b505afa158015614481573d6000803e3d6000fd5b505050506040513d602081101561449757600080fd5b50516001600160a01b031633145b156106d3575b81518110156145ad578181815181106144c057fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020615e88833981519152600460009054906101000a90046001600160a01b03166001600160a01b03166370a0823186868151811061451a57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561456857600080fd5b505afa15801561457c573d6000803e3d6000fd5b505050506040513d602081101561459257600080fd5b505160408051918252519081900360200190a36001016144ab565b61301b565b6010546001600160a01b031681565b600a546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0385811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561462557600080fd5b505afa158015614639573d6000803e3d6000fd5b505050506040513d602081101561464f57600080fd5b5051905060005b82518110156146be5760006001600160a01b031683828151811061467657fe5b60200260200101516001600160a01b0316600080516020615e888339815191526146a586858151811061237957fe5b60408051918252519081900360200190a3600101614656565b6007546040516367711a5960e01b815233600482018181526001600160a01b038881166024850152346064850181905260806044860190815289516084870152895160009793909316956367711a5995948c948c9493919260a40190602080870191028083838e5b8381101561473e578181015183820152602001614726565b5050505090500195505050505050602060405180830381600087803b15801561476657600080fd5b505af115801561477a573d6000803e3d6000fd5b505050506040513d602081101561479057600080fd5b50516040519091506001600160a01b0386169082156108fc029083906000818181858888f193505050506147c357600080fd5b60408051848152905133916001600160a01b03881691600080516020615e128339815191529181900360200190a35050505050565b600480546040805163482ad11f60e11b81526001600160a01b0385811694820194909452905160009390921691639055a23e91602480820192602092909190829003018186803b1580156129cd57600080fd5b6010546001600160a01b03166106d357601080546001600160a01b031916331790555b565b600f546001600160a01b03163314156106d357600480546001600160a01b0319166001600160a01b0383811691909117808355604080516313b9f0c760e01b8152905191909216926313b9f0c79280820192600092909182900301818387803b15801561284457600080fd5b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156120395780601f1061200e57610100808354040283529160200191612039565b600f546001600160a01b03163314156106d357600980546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b6009546040805163b378e89b60e01b8152336004820152346024820152815160009384936001600160a01b039091169263b378e89b926044808301939282900301818787803b1580156149f857600080fd5b505af1158015614a0c573d6000803e3d6000fd5b505050506040513d6040811015614a2257600080fd5b5080516020909101519092509050614a3982612a52565b50604080516001600160a01b0383168152905133917fc372ae39394d4f0b2ac49b0e0c2200b3e9a7e66b3c52d01aef930695f1296804919081900360200190a25050565b6009546040805163291c964760e21b8152336004820152346024820152815160009384936001600160a01b039091169263a472591c926044808301939282900301818787803b158015614acf57600080fd5b505af1158015614ae3573d6000803e3d6000fd5b505050506040513d6040811015614af957600080fd5b5080516020909101519092509050614b1082612a52565b50604080516001600160a01b0383168152905133917f1f4d287b617c59dd118975b7dd7525ab82bb32e7a6db7023cf41bf6af3c21494919081900360200190a25050565b60025460408051634ea8c93760e11b81523360048201526024810184905290516101009092046001600160a01b031691639d51926e9160448082019260009290919082900301818387803b15801561224957600080fd5b6001600160a01b038216301415614c05576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b600a54604080516317d5759960e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163beabacc891606480830192600092919082900301818387803b158015614c6057600080fd5b505af1158015614c74573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350339250600080516020615e888339815191529181900360200190a35050565b600f546001600160a01b03163314156106d357600d80546001600160a01b0319166001600160a01b0383161790556124f5565b600480546040805163ca02eb9d60e01b81523393810193909352516001600160a01b039091169163ca02eb9d91602480830192600092919082900301818387803b158015612ed557600080fd5b600d5460405163fe942a2d60e01b815233600482018181526060602484019081528651606485015286516000956001600160a01b03169463fe942a2d94349490938a938a936044810191608490910190602080880191028083838f5b83811015614d9e578181015183820152602001614d86565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015614ddd578181015183820152602001614dc5565b50505050905001955050505050506020604051808303818588803b158015614e0457600080fd5b505af1158015614e18573d6000803e3d6000fd5b50505050506040513d6020811015614e2f57600080fd5b5051905080156126cf57612ee981612a52565b600d546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b1580156129cd57600080fd5b600254604080516344c077ab60e11b81523360048201526024810184905290516101009092046001600160a01b031691638980ef569160448082019260009290919082900301818387803b15801561224957600080fd5b6006546040805163ac39285b60e01b815233600482015290516001600160a01b039092169163ac39285b9160248082019260009290919082900301818387803b158015612ed557600080fd5b600480546040805163034043e160e51b81523393810193909352516001600160a01b03909116916368087c2091602480830192600092919082900301818387803b158015612ed557600080fd5b600f546001600160a01b03163314156106d357600880546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b6007546001600160a01b031681565b600f546001600160a01b03163314156106d357600680546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b601054600160a01b900460ff1681565b6001600160a01b0383163014156150ef576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60005b815181101561515a5760006001600160a01b031682828151811061511257fe5b60200260200101516001600160a01b0316600080516020615e8883398151915261514185858151811061237957fe5b60408051918252519081900360200190a36001016150f2565b600654604051632464a27d60e01b815233600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519190951694632464a27d948a938a938a93919260a401906020808601910280838360005b838110156151d75781810151838201526020016151bf565b5050505090500195505050505050600060405180830381600087803b1580156151ff57600080fd5b505af1158015615213573d6000803e3d6000fd5b50506040805186815290516001600160a01b0388169350339250600080516020615e128339815191529181900360200190a350505050565b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b15801561529657600080fd5b505afa1580156152aa573d6000803e3d6000fd5b505050506040513d60208110156152c057600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561530b57600080fd5b505afa15801561531f573d6000803e3d6000fd5b505050506040513d602081101561533557600080fd5b5051010234146153765760405162461bcd60e51b8152600401808060200182810382526040815260200180615dd26040913960400191505060405180910390fd5b60005b818110156126cf5760045483516001600160a01b03909116906316e04590908590849081106153a457fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b1580156153fa57600080fd5b505afa15801561540e573d6000803e3d6000fd5b505050506040513d602081101561542457600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561546f57600080fd5b505afa158015615483573d6000803e3d6000fd5b505050506040513d602081101561549957600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b1580156154e857600080fd5b505af11580156154fc573d6000803e3d6000fd5b5050600190920191506153799050565b60048054604080516371681de560e11b81523393810193909352516001600160a01b039091169163e2d03bca91602480830192600092919082900301818387803b158015612ed557600080fd5b6001600160a01b03811633600080516020615e8883398151915261557c82613a83565b60408051918252519081900360200190a36001600160a01b0381163014156155e7576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60048054604080516334d5831d60e21b815233938101939093526001600160a01b038481166024850152905191169163d3560c7491604480830192600092919082900301818387803b15801561224957600080fd5b60025460408051631d25fd5560e01b81523360048201526024810184905290516101009092046001600160a01b031691631d25fd559160448082019260009290919082900301818387803b15801561224957600080fd5b6009546001600160a01b031681565b60065460408051637cb6d17b60e11b81523360048201526024810184905290516001600160a01b039092169163f96da2f69160448082019260009290919082900301818387803b15801561224957600080fd5b82156157a557600a54600b54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b15801561575957600080fd5b505af115801561576d573d6000803e3d6000fd5b5050600b546040805187815290516001600160a01b039092169350339250600080516020615e88833981519152919081900360200190a35b600b54604051630a67889360e01b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b0390951694630a6788939489938993899391929091606482019160a401906020808801910280838360005b83811015615820578181015183820152602001615808565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561585f578181015183820152602001615847565b505050509050019650505050505050600060405180830381600087803b15801561588857600080fd5b505af115801561589c573d6000803e3d6000fd5b50505050505050565b600254604080516333dfca3560e21b81523360048201526024810184905290516101009092046001600160a01b03169163cf7f28d49160448082019260009290919082900301818387803b15801561224957600080fd5b6002546040805163124e91b960e01b81523360048201526024810184905290516101009092046001600160a01b03169163124e91b99160448082019260009290919082900301818387803b15801561224957600080fd5b60025460408051635c65816560e01b81526001600160a01b03858116600483015284811660248301529151600093610100900490921691635c65816591604480820192602092909190829003018186803b1580156159b057600080fd5b505afa1580156159c4573d6000803e3d6000fd5b505050506040513d60208110156159da57600080fd5b50519392505050565b60025460408051633bb868dd60e21b81523360048201526024810184905290516101009092046001600160a01b03169163eee1a3749160448082019260009290919082900301818387803b15801561224957600080fd5b6010546001600160a01b03163314156106d357601180546001600160a01b0319166001600160a01b0383161790556124f5565b600c546001600160a01b031681565b6000600260019054906101000a90046001600160a01b03166001600160a01b031663e5f65c716040518163ffffffff1660e01b815260040160206040518083038186803b158015615acc57600080fd5b505afa158015615ae0573d6000803e3d6000fd5b505050506040513d6020811015615af657600080fd5b50514303905090565b600f546001600160a01b03166106d357600f80546001600160a01b0319163317905561486e565b601054600160a01b900460ff161561486e576011546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505061486e57600080fd5b600f546001600160a01b03163314156106d357600c80546001600160a01b0319166001600160a01b0383161790556124f5565b60025461010090046001600160a01b031681565b805160005b818110156126cf5760045483516001600160a01b03909116906352ba171d90859084908110615be057fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015615c3057600080fd5b505af1158015615c44573d6000803e3d6000fd5b505060019092019150615bb59050565b600480546040805163eb0fbbad60e01b81526001600160a01b038581169482019490945290516000939092169163eb0fbbad91602480820192602092909190829003018186803b1580156129cd57600080fd5b600480546040805163d42e1c2f60e01b815233938101939093526001600160a01b038481166024850152905191169163d42e1c2f91604480830192600092919082900301818387803b15801561224957600080fd5b600f546001600160a01b03163314156106d357600a80546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561284457600080fd5b600f546001600160a01b031681565b60048054604080516001620769d360e31b031981526001600160a01b038581169482019490945290516000939092169163ffc4b16891602480820192602092909190829003018186803b1580156129cd57600080fdfe2877656956616c756520213d2028286d73672e76616c7565202b2070632e657468466565546f55706772616465546f4c6576656c332829292a636f756e742929cc6ddb19d323297cc6ed8f3dbda06395f6f153d24bf678f36305752ab635e10928215f616464726573732e73656e642866656573546f506179546f53656c6c65722929286d73672e76616c756520213d202870632e657468466565546f55706772616465546f4c6576656c3328292a636f756e742929ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef286d73672e76616c756520213d2070632e657468466565546f55706772616465546f4c6576656c3228292a636f756e7429a2646970667358221220fbe85c3a6fa0919c93491c769155cdfad5809a0a4845bd3d867d33fbea239d1764736f6c63430006010033

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

00000000000000000000000090e340e2d11e6eb1d99e34d122d6fe0fef3213fd000000000000000000000000805385fba3f03a24d793721f4583be53d3abf86b000000000000000000000000a6be27538a28114fe03eb7ade9adfe53164f2a4c000000000000000000000000905139d0b050157d5786ba55cbb7c0bb23de48a20000000000000000000000000b11403debdef5eb2b094d71b39c2f71339933e4000000000000000000000000955c475da7a43247b10874dd610e113991b8c220000000000000000000000000e9a4319702b271765fdd9a2134e511bdc4d2a2c800000000000000000000000067d817f7d61d14b0308854cb277011d7ac024d2d0000000000000000000000007766b5f6fc12ef01ac9fe52ed550d854b0375d5f

-----Decoded View---------------
Arg [0] : _publicCallsAddress (address): 0x90E340e2d11E6Eb1D99E34D122D6fE0fEF3213fd
Arg [1] : _publicArraysAddress (address): 0x805385fba3F03A24d793721f4583BE53d3aBf86b
Arg [2] : _genesisCallsAddress (address): 0xa6be27538A28114Fe03EB7ADE9AdfE53164f2a4c
Arg [3] : _normalAddressAddress (address): 0x905139d0b050157D5786bA55cBb7c0BB23DE48A2
Arg [4] : _stakesAddress (address): 0x0B11403DEbDeF5eB2b094d71b39c2F71339933E4
Arg [5] : _stakesBuysAddress (address): 0x955c475dA7a43247b10874DD610E113991b8c220
Arg [6] : _genesisBuysAddress (address): 0xe9A4319702B271765fDd9A2134E511BDC4d2A2C8
Arg [7] : _tokenServiceAddress (address): 0x67D817F7d61d14B0308854CB277011d7Ac024d2d
Arg [8] : _baseTransfersAddress (address): 0x7766b5f6Fc12Ef01AC9fE52ed550D854B0375d5f

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000090e340e2d11e6eb1d99e34d122d6fe0fef3213fd
Arg [1] : 000000000000000000000000805385fba3f03a24d793721f4583be53d3abf86b
Arg [2] : 000000000000000000000000a6be27538a28114fe03eb7ade9adfe53164f2a4c
Arg [3] : 000000000000000000000000905139d0b050157d5786ba55cbb7c0bb23de48a2
Arg [4] : 0000000000000000000000000b11403debdef5eb2b094d71b39c2f71339933e4
Arg [5] : 000000000000000000000000955c475da7a43247b10874dd610e113991b8c220
Arg [6] : 000000000000000000000000e9a4319702b271765fdd9a2134e511bdc4d2a2c8
Arg [7] : 00000000000000000000000067d817f7d61d14b0308854cb277011d7ac024d2d
Arg [8] : 0000000000000000000000007766b5f6fc12ef01ac9fe52ed550d854b0375d5f


Deployed Bytecode Sourcemap

30439:20423:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30461:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30461:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;30461:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50495:364;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;50495:364:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;50495:364:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50495:364:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50495:364:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50495:364:0;;;;;;;;-1:-1:-1;50495:364:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;50495:364:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50495:364:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50495:364:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50495:364:0;;-1:-1:-1;50495:364:0;;-1:-1:-1;;;;;50495:364:0:i;:::-;;48209:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48209:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48209:123:0;;:::i;36191:205::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36191:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;36191:205:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;42534:353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42534:353:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;42534:353:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;42534:353:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;42534:353:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;42534:353:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;42534:353:0;;-1:-1:-1;42534:353:0;;-1:-1:-1;;;;;42534:353:0:i;35230:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35230:98:0;;;:::i;:::-;;;;;;;;;;;;;;;;31098:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31098:22:0;;;:::i;:::-;;;;-1:-1:-1;;;;;31098:22:0;;;;;;;;;;;;;;31738:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31738:90:0;;;:::i;48334:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48334:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48334:139:0;;:::i;34224:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34224:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34224:134:0;-1:-1:-1;;;;;34224:134:0;;:::i;38108:369::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;38108:369:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;38108:369:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;38108:369:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;38108:369:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;38108:369:0;;-1:-1:-1;38108:369:0;;-1:-1:-1;;;;;38108:369:0:i;35590:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35590:99:0;;;:::i;34635:142::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34635:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34635:142:0;-1:-1:-1;;;;;34635:142:0;;:::i;48713:167::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48713:167:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48713:167:0;;:::i;33198:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33198:151:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33198:151:0;-1:-1:-1;;;;;33198:151:0;;:::i;35903:284::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35903:284:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;35903:284:0;;;;;;;;;;;;;;;;;:::i;35105:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35105:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35105:119:0;;;;:::i;31294:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31294:24:0;;;:::i;35455:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35455:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35455:131:0;-1:-1:-1;;;;;35455:131:0;;:::i;46839:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46839:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46839:135:0;-1:-1:-1;;;;;46839:135:0;;:::i;41882:213::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41882:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41882:213:0;;:::i;31123:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31123:22:0;;;:::i;30507:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30507:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;39522:377;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39522:377:0;-1:-1:-1;;;;;39522:377:0;;:::i;49780:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49780:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49780:163:0;;:::i;47117:141::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47117:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47117:141:0;-1:-1:-1;;;;;47117:141:0;;:::i;43402:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43402:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;43402:126:0;;;;;;;;:::i;31148:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31148:23:0;;;:::i;48588:123::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48588:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48588:123:0;;:::i;31375:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31375:29:0;;;:::i;37673:111::-;;;:::i;49635:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49635:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49635:143:0;;:::i;47911:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47911:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47911:147:0;;:::i;34025:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34025:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34025:197:0;;;;;;;;:::i;48475:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48475:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48475:111:0;;:::i;41786:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41786:92:0;;;:::i;40455:196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40455:196:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;40455:196:0;;;;;;;;:::i;39903:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39903:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39903:127:0;;:::i;37210:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37210:111:0;;;:::i;38018:86::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38018:86:0;;;:::i;44547:403::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44547:403:0;-1:-1:-1;;;;;44547:403:0;;:::i;49047:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49047:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49047:147:0;;:::i;37903:111::-;;;:::i;43532:336::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43532:336:0;-1:-1:-1;;;;;43532:336:0;;:::i;40034:97::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40034:97:0;;;:::i;38935:371::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;38935:371:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;38935:371:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;38935:371:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;38935:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;38935:371:0;;-1:-1:-1;38935:371:0;;-1:-1:-1;;;;;38935:371:0:i;50126:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50126:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;50126:107:0;;:::i;44209:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44209:334:0;-1:-1:-1;;;;;44209:334:0;;:::i;32894:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32894:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32894:157:0;-1:-1:-1;;;;;32894:157:0;;:::i;42291:239::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42291:239:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;42291:239:0;;;;;;;;:::i;36542:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36542:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36542:112:0;-1:-1:-1;;;;;36542:112:0;;:::i;37788:111::-;;;:::i;43872:333::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43872:333:0;-1:-1:-1;;;;;43872:333:0;;:::i;33828:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33828:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;33828:195:0;;;;;;;;:::i;31174:16::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31174:16:0;;;:::i;37000:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37000:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37000:103:0;;:::i;47589:318::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47589:318:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;47589:318:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;47589:318:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;47589:318:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;47589:318:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;47589:318:0;;-1:-1:-1;;47589:318:0;;;-1:-1:-1;47589:318:0;;-1:-1:-1;;47589:318:0:i;40918:864::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40918:864:0;;;:::i;40135:316::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40135:316:0;-1:-1:-1;;;;;40135:316:0;;:::i;46025:189::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;46025:189:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;46025:189:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;46025:189:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;46025:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;46025:189:0;;-1:-1:-1;46025:189:0;;-1:-1:-1;;;;;46025:189:0:i;31216:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31216:22:0;;;:::i;47262:323::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47262:323:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;47262:323:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;47262:323:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;47262:323:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;47262:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;47262:323:0;;-1:-1:-1;47262:323:0;;-1:-1:-1;;;;;47262:323:0:i;31628:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31628:71:0;;;:::i;31267:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31267:24:0;;;:::i;44954:599::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;44954:599:0;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;44954:599:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;44954:599:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;44954:599:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;44954:599:0;;-1:-1:-1;44954:599:0;;-1:-1:-1;;;;;44954:599:0:i;46700:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46700:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46700:135:0;-1:-1:-1;;;;;46700:135:0;;:::i;34783:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34783:151:0;;;:::i;32742:150::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32742:150:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32742:150:0;-1:-1:-1;;;;;32742:150:0;;:::i;30483:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30483:20:0;;;:::i;33508:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33508:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33508:157:0;-1:-1:-1;;;;;33508:157:0;;:::i;45557:203::-;;;:::i;45764:212::-;;;:::i;45980:41::-;;;:::i;49945:179::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49945:179:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49945:179:0;;:::i;35693:206::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35693:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;35693:206:0;;;;;;;;:::i;34493:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34493:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34493:140:0;-1:-1:-1;;;;;34493:140:0;;:::i;37558:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37558:111:0;;;:::i;50239:252::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;50239:252:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;50239:252:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50239:252:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50239:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50239:252:0;;;;;;;;-1:-1:-1;50239:252:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;50239:252:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50239:252:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50239:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50239:252:0;;-1:-1:-1;50239:252:0;;-1:-1:-1;;;;;50239:252:0:i;31344:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31344:28:0;;;:::i;36658:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36658:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36658:121:0;-1:-1:-1;;;;;36658:121:0;;:::i;49357:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49357:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49357:143:0;;:::i;42207:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42207:80:0;;;:::i;37107:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37107:99:0;;;:::i;33351:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33351:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33351:155:0;-1:-1:-1;;;;;33351:155:0;;:::i;31193:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31193:20:0;;;:::i;33053:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33053:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33053:143:0;-1:-1:-1;;;;;33053:143:0;;:::i;31702:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31702:33:0;;;:::i;42891:507::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42891:507:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;42891:507:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;42891:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;42891:507:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;42891:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;42891:507:0;;-1:-1:-1;42891:507:0;;-1:-1:-1;;;;;42891:507:0:i;38481:450::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;38481:450:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;38481:450:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;38481:450:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;38481:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;38481:450:0;;-1:-1:-1;38481:450:0;;-1:-1:-1;;;;;38481:450:0:i;37325:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37325:99:0;;;:::i;36783:213::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36783:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36783:213:0;-1:-1:-1;;;;;36783:213:0;;:::i;49196:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49196:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49196:159:0;;:::i;31241:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31241:23:0;;;:::i;42099:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42099:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42099:104:0;;:::i;46218:345::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46218:345:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;46218:345:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;46218:345:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;46218:345:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;46218:345:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;46218:345:0;;;;;;;;-1:-1:-1;46218:345:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;46218:345:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;46218:345:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;46218:345:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;46218:345:0;;-1:-1:-1;46218:345:0;;-1:-1:-1;;;;;46218:345:0:i;49502:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49502:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49502:131:0;;:::i;48060:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48060:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48060:147:0;;:::i;36400:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36400:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;36400:138:0;;;;;;;;;;:::i;48882:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48882:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48882:163:0;;:::i;34938:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34938:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34938:163:0;-1:-1:-1;;;;;34938:163:0;;:::i;31321:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31321:20:0;;;:::i;35332:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35332:119:0;;;:::i;31486:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31486:140:0;;;:::i;40655:259::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40655:259:0;;;:::i;34360:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34360:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34360:129:0;-1:-1:-1;;;;;34360:129:0;;:::i;31074:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31074:21:0;;;:::i;39310:208::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39310:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;39310:208:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;39310:208:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;39310:208:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;39310:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;39310:208:0;;-1:-1:-1;39310:208:0;;-1:-1:-1;;;;;39310:208:0:i;46567:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46567:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46567:129:0;-1:-1:-1;;;;;46567:129:0;;:::i;37428:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37428:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37428:126:0;-1:-1:-1;;;;;37428:126:0;;:::i;33667:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33667:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33667:159:0;-1:-1:-1;;;;;33667:159:0;;:::i;31409:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31409:74:0;;;:::i;46978:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46978:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46978:135:0;-1:-1:-1;;;;;46978:135:0;;:::i;30461:18::-;;;;;;;;;;;;;;;-1:-1:-1;;30461:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50495:364::-;50624:14;;50620:143;;50647:3;;50680:5;;50647:52;;;-1:-1:-1;;;50647:52:0;;50660:10;50647:52;;;;-1:-1:-1;;;;;50680:5:0;;;50647:52;;;;;;;;;;;;:3;;;;;:12;;:52;;;;;:3;;:52;;;;;;;:3;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;50647:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;50738:5:0;;50709:48;;;;;;;;-1:-1:-1;;;;;50738:5:0;;;;-1:-1:-1;50718:10:0;;-1:-1:-1;;;;;;;;;;;;50709:48:0;;;;;;;;;50620:143;50766:5;;:88;;-1:-1:-1;;;50766:88:0;;50806:10;50766:88;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;50766:5:0;;;;:22;;50795:9;;50806:10;50818;;50830:12;;50844:9;;50766:88;;;;;;;;;;;;;;;;;;:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50766:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50766:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50766:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;50766:88:0;;;;;50495:364;;;:::o;48209:123::-;48275:2;;:55;;;-1:-1:-1;;;48275:55:0;;48299:10;48275:55;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48275:2:0;;:23;;:55;;;;;-1:-1:-1;;48275:55:0;;;;;;;;-1:-1:-1;48275:2:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;48275:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;48275:55:0;;;;48209:123;:::o;36191:205::-;36280:2;;:43;;;-1:-1:-1;;;36280:43:0;;36294:10;36280:43;;;;-1:-1:-1;;;;;36280:43:0;;;;;;;;;;;;;;;-1:-1:-1;;36280:2:0;;;;;;;:13;;:43;;;;;-1:-1:-1;;36280:43:0;;;;;;;;-1:-1:-1;36280:2:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;36280:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;36335:39:0;;;;;;;;-1:-1:-1;;;;;36335:39:0;;;-1:-1:-1;36344:10:0;;-1:-1:-1;36335:39:0;;;;;;;;;-1:-1:-1;36388:4:0;36191:205;;;;:::o;42534:353::-;42618:6;42633:186;42643:23;:30;42639:1;:34;42633:186;;;42724:42;-1:-1:-1;;;;;42687:119:0;42696:23;42720:1;42696:26;;;;;;;;;;;;;;-1:-1:-1;;;;;42687:119:0;-1:-1:-1;;;;;;;;;;;42768:37:0;42778:23;42802:1;42778:26;;;;;;;;;;;;;;42768:9;:37::i;:::-;42687:119;;;;;;;;;;;;;;;42811:3;;42633:186;;;42822:2;;;:60;;;-1:-1:-1;;;42822:60:0;;42846:10;42822:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;42822:2:0;;;;:23;;42846:10;;42858:23;;42822:60;;;;;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;42822:60:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42822:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42822:60:0;;;;42534:353;;:::o;35230:98::-;35312:12;35230:98;:::o;31098:22::-;;;-1:-1:-1;;;;;31098:22:0;;:::o;31738:90::-;;;-1:-1:-1;;;;;31738:90:0;;:::o;48334:139::-;48408:2;;:63;;;-1:-1:-1;;;48408:63:0;;48436:10;48408:63;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48408:2:0;;:27;;:63;;;;;-1:-1:-1;;48408:63:0;;;;;;;;-1:-1:-1;48408:2:0;:63;;;5:2:-1;;;;30:1;27;20:12;34224:134:0;34293:14;;-1:-1:-1;;;;;34293:14:0;34279:10;:28;34275:81;;;34310:6;:29;;-1:-1:-1;;;;;;34310:29:0;-1:-1:-1;;;;;34310:29:0;;;;;34275:81;34224:134;:::o;38108:369::-;38210:17;;38249:2;;:28;;;-1:-1:-1;;;38249:28:0;;;;38210:17;;38249:2;;;-1:-1:-1;;;;;38249:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;38249:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38249:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38249:28:0;:34;38235:9;:49;38231:114;;38286:59;;-1:-1:-1;;;38286:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38231:114;38349:6;38363:111;38374:5;38370:1;:9;38363:111;;;38388:2;;38417:13;;-1:-1:-1;;;;;38388:2:0;;;;:28;;38417:10;;38428:1;;38417:13;;;;;;;;;;;;38432:2;;;;;;;;;-1:-1:-1;;;;;38432:2:0;-1:-1:-1;;;;;38432:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38432:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38432:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38432:28:0;38388:73;;;-1:-1:-1;;;;;;38388:73:0;;;;;;;-1:-1:-1;;;;;38388:73:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;38388:73:0;;;;;;;-1:-1:-1;38388:73:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;38388:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;38466:3:0;;;;;-1:-1:-1;38363:111:0;;-1:-1:-1;38363:111:0;;38108:369;;;:::o;35590:99::-;35668:3;;:17;;;-1:-1:-1;;;35668:17:0;;;;35634:19;;-1:-1:-1;;;;;35668:3:0;;:15;;:17;;;;;;;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;35668:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35668:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35668:17:0;;-1:-1:-1;35590:99:0;:::o;34635:142::-;34707:14;;-1:-1:-1;;;;;34707:14:0;34693:10;:28;34689:86;;;34724:5;:34;;-1:-1:-1;;;;;;34724:34:0;-1:-1:-1;;;;;34724:34:0;;;;;34689:86;;48713:167;48801:2;;:77;;;-1:-1:-1;;;48801:77:0;;48836:10;48801:77;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48801:2:0;;:34;;:77;;;;;-1:-1:-1;;48801:77:0;;;;;;;;-1:-1:-1;48801:2:0;:77;;;5:2:-1;;;;30:1;27;20:12;33198:151:0;33268:14;;-1:-1:-1;;;;;33268:14:0;33254:10;:28;33250:97;;;33285:3;:25;;-1:-1:-1;;;;;;33285:25:0;-1:-1:-1;;;;;33285:25:0;;;;;;;;;;;33312:18;;;-1:-1:-1;;;33312:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33312:18:0;;;;;;;;-1:-1:-1;33312:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;33312:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33312:18:0;;;;33250:97;;35903:284;36049:3;;:49;;;-1:-1:-1;;;36049:49:0;;36066:10;36049:49;;;;-1:-1:-1;;;;;36049:49:0;;;;;;;;;;;;;;;;;;;;;;36016:12;;;;36049:3;;:16;;:49;;;;;;;;;;;;;;36016:12;36049:3;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;36049:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36049:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36049:49:0;;-1:-1:-1;36109:46:0;;;;36142:3;-1:-1:-1;;;;;36126:29:0;36135:5;-1:-1:-1;;;;;36126:29:0;-1:-1:-1;;;;;;;;;;;36147:7:0;36126:29;;;;;;;;;;;;;;;;;;36109:46;36173:6;35903:284;-1:-1:-1;;;;35903:284:0:o;35105:119::-;35173:11;;-1:-1:-1;;;;;35173:11:0;35159:10;:25;35156:65;;;35193:13;:23;;;;;-1:-1:-1;;;35193:23:0;-1:-1:-1;;;;35193:23:0;;;;;;35105:119;:::o;31294:24::-;;;-1:-1:-1;;;;;31294:24:0;;:::o;35455:131::-;35551:2;;;:31;;;-1:-1:-1;;;35551:31:0;;-1:-1:-1;;;;;35551:31:0;;;;;;;;;;;;35522:15;;35551:2;;;;:21;;:31;;;;;;;;;;;;;;;:2;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;35551:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35551:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35551:31:0;;35455:131;-1:-1:-1;;35455:131:0:o;46839:135::-;46935:2;;;:35;;;-1:-1:-1;;;46935:35:0;;-1:-1:-1;;;;;46935:35:0;;;;;;;;;;;;46910:12;;46935:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;41882:213:0;41956:2;;;:36;;;-1:-1:-1;;;41956:36:0;;41970:10;41956:36;;;;;;;;;;;;;;41937:12;;-1:-1:-1;;;;;41956:2:0;;;;:13;;:36;;;;;;;;;;;;;;41937:12;41956:2;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;41956:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41956:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;42001:75:0;;;;;;;;42022:42;;42010:10;;-1:-1:-1;;;;;;;;;;;42001:75:0;;;;41956:36;42001:75;;;-1:-1:-1;42087:4:0;41882:213;;;:::o;31123:22::-;;;-1:-1:-1;;;;;31123:22:0;;:::o;30507:21::-;;;;;;:::o;39522:377::-;39599:2;;;:35;;;-1:-1:-1;;;39599:35:0;;-1:-1:-1;;;;;39599:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;39599:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39599:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39599:35:0;39595:300;;;39639:36;39666:8;39639:26;:36::i;:::-;39595:300;;;39688:2;;;:35;;;-1:-1:-1;;;39688:35:0;;-1:-1:-1;;;;;39688:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;39688:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39688:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39688:35:0;39684:211;;;39728:36;39755:8;39728:26;:36::i;39684:211::-;39777:2;;;:35;;;-1:-1:-1;;;;;;39777:35:0;;-1:-1:-1;;;;;39777:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;39777:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39777:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39777:35:0;39773:122;;;39817:36;39844:8;39817:26;:36::i;39773:122::-;39865:30;;;-1:-1:-1;;;39865:30:0;;;;;;;;;;;;-1:-1:-1;;;39865:30:0;;;;;;;;;;;;;;49780:163;49866:2;;:75;;;-1:-1:-1;;;49866:75:0;;49900:10;49866:75;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49866:2:0;;:33;;:75;;;;;-1:-1:-1;;49866:75:0;;;;;;;;-1:-1:-1;49866:2:0;:75;;;5:2:-1;;;;30:1;27;20:12;47117:141:0;47216:2;;;:38;;;-1:-1:-1;;;47216:38:0;;-1:-1:-1;;;;;47216:38:0;;;;;;;;;;;;47191:12;;47216:2;;;;:28;;:38;;;;;;;;;;;;;;;:2;:38;;;5:2:-1;;;;30:1;27;20:12;43402:126:0;43474:2;;:50;;;-1:-1:-1;;;43474:50:0;;43494:10;43474:50;;;;-1:-1:-1;;;;;43474:50:0;;;;;;;;;;;;;;;:2;;;;;:19;;:50;;;;;:2;;:50;;;;;;;:2;;:50;;;5:2:-1;;;;30:1;27;20:12;31148:23:0;;;-1:-1:-1;;;;;31148:23:0;;:::o;48588:123::-;48654:2;;:55;;;-1:-1:-1;;;48654:55:0;;48678:10;48654:55;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48654:2:0;;:23;;:55;;;;;-1:-1:-1;;48654:55:0;;;;;;;;-1:-1:-1;48654:2:0;:55;;;5:2:-1;;;;30:1;27;20:12;31375:29:0;;;-1:-1:-1;;;;;31375:29:0;;:::o;37673:111::-;37729:2;;;:51;;;-1:-1:-1;;;37729:51:0;;37758:10;37729:51;;;;;;;37770:9;37729:51;;;;;-1:-1:-1;;;;;37729:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;37729:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37729:51:0;;;;37673:111::o;49635:143::-;49711:2;;:65;;;-1:-1:-1;;;49711:65:0;;49740:10;49711:65;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49711:2:0;;:28;;:65;;;;;-1:-1:-1;;49711:65:0;;;;;;;;-1:-1:-1;49711:2:0;:65;;;5:2:-1;;;;30:1;27;20:12;47911:147:0;47989:2;;:67;;;-1:-1:-1;;;47989:67:0;;48019:10;47989:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47989:2:0;;:29;;:67;;;;;-1:-1:-1;;47989:67:0;;;;;;;;-1:-1:-1;47989:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;34025:197:0;34097:4;34105;34097:12;34091:29;;34112:8;;;34091:29;34141:14;;-1:-1:-1;;;;;34141:14:0;34127:10;:28;34123:97;;;34158:2;:27;;-1:-1:-1;;;;;;34158:27:0;-1:-1:-1;;;;;34158:27:0;;;;;;;;;;;34187:17;;;-1:-1:-1;;;34187:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;34187:17:0;;;;;;;;-1:-1:-1;34187:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;34123:97:0;34025:197;;:::o;48475:111::-;48535:2;;:49;;;-1:-1:-1;;;48535:49:0;;48556:10;48535:49;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48535:2:0;;:20;;:49;;;;;-1:-1:-1;;48535:49:0;;;;;;;;-1:-1:-1;48535:2:0;:49;;;5:2:-1;;;;30:1;27;20:12;41786:92:0;41849:3;;:25;;;-1:-1:-1;;;41849:25:0;;41863:10;41849:25;;;;;;41823:12;;-1:-1:-1;;;;;41849:3:0;;:13;;:25;;;;;;;;;;;;;;41823:12;41849:3;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;41849:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;40455:196:0;40536:2;;:58;;;-1:-1:-1;;;40536:58:0;;40563:10;40536:58;;;;-1:-1:-1;;;;;40536:58:0;;;;;;;;;;;;;;;:2;;;;;:26;;:58;;;;;:2;;:58;;;;;;;:2;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;40536:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;40603:43:0;;;;;;;;-1:-1:-1;;;;;40603:43:0;;;-1:-1:-1;40620:4:0;;-1:-1:-1;;;;;;;;;;;;40603:43:0;;;;;;;;40455:196;;:::o;39903:127::-;39972:2;;:54;;;-1:-1:-1;;;39972:54:0;;39999:10;39972:54;;;;;;;;;;;;-1:-1:-1;;;;;39972:2:0;;;;:26;;:54;;;;;:2;;:54;;;;;;;;:2;;:54;;;5:2:-1;;;;30:1;27;20:12;37210:111:0;37268:2;;;:49;;;-1:-1:-1;;;37268:49:0;;37306:10;37268:49;;;;;;;;-1:-1:-1;;;;;37268:2:0;;;;:37;;:49;;;;;:2;;:49;;;;;;;:2;;:49;;;5:2:-1;;;;30:1;27;20:12;38018:86:0;38063:2;;;:37;;;-1:-1:-1;;;38063:37:0;;38089:10;38063:37;;;;;;;;-1:-1:-1;;;;;38063:2:0;;;;:25;;:37;;;;;:2;;:37;;;;;;;:2;;:37;;;5:2:-1;;;;30:1;27;20:12;44547:403:0;44637:2;;:26;;;-1:-1:-1;;;44637:26:0;;-1:-1:-1;;;;;44637:26:0;;;;;;;;;-1:-1:-1;;44637:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;44637:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44637:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44637:26:0;44716:3;;:57;;;-1:-1:-1;;;44716:57:0;;44732:10;44716:57;;;;-1:-1:-1;;;;;44716:57:0;;;;;;;44763:9;44716:57;;;;;;44637:26;;-1:-1:-1;44668:17:0;;;;44716:3;;;;;:15;;:57;;;;;;;;;;;44668:17;44716:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;44716:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44716:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44716:57:0;;;;;;;;;-1:-1:-1;44716:57:0;-1:-1:-1;44777:21:0;44716:57;44777:10;:21::i;:::-;-1:-1:-1;44806:32:0;;-1:-1:-1;;;;;44806:13:0;;;:32;;;;;44820:17;;44806:32;;;;44820:17;44806:13;:32;;;;;;;44802:83;;44840:45;;-1:-1:-1;;;44840:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44802:83;44895:50;;;;;;;;44919:10;;-1:-1:-1;;;;;44895:50:0;;;-1:-1:-1;;;;;;;;;;;44895:50:0;;;;;;;;44547:403;;;;:::o;49047:147::-;49125:2;;:67;;;-1:-1:-1;;;49125:67:0;;49155:10;49125:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49125:2:0;;:29;;:67;;;;;-1:-1:-1;;49125:67:0;;;;;;;;-1:-1:-1;49125:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;37903:111:0;37959:2;;;:51;;;-1:-1:-1;;;37959:51:0;;37988:10;37959:51;;;;;;;38000:9;37959:51;;;;;-1:-1:-1;;;;;37959:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;43532:336:0;43637:10;-1:-1:-1;;;;;43618:51:0;;-1:-1:-1;;;;;;;;;;;43649:19:0;43627:8;43649:9;:19::i;:::-;43618:51;;;;;;;;;;;;;;;43701:3;;:72;;;-1:-1:-1;;;43701:72:0;;43732:10;43701:72;;;;-1:-1:-1;;;;;43701:72:0;;;;;;;43763:9;43701:72;;;;;;43673:25;;43701:3;;;;;:30;;:72;;;;;;;;;;;;;;;43673:25;43701:3;:72;;;5:2:-1;;;;30:1;27;20:12;5:2;43701:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43701:72:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43701:72:0;43781:32;;43701:72;;-1:-1:-1;;;;;;43781:13:0;;;:32;;;;;43701:72;;43781:32;;;;43701:72;43781:13;:32;;;;;;;43777:83;;43815:45;;-1:-1:-1;;;43815:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40034:97;40085:2;;:42;;;-1:-1:-1;;;40085:42:0;;40116:10;40085:42;;;;;;-1:-1:-1;;;;;40085:2:0;;;;:30;;:42;;;;;:2;;:42;;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;38935:371:0;39037:17;;39076:2;;:28;;;-1:-1:-1;;;39076:28:0;;;;39037:17;;39076:2;;;-1:-1:-1;;;;;39076:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;39076:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39076:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39076:28:0;:34;39062:9;:49;39058:116;;39113:61;;-1:-1:-1;;;39113:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39058:116;39178:6;39192:111;39203:5;39199:1;:9;39192:111;;;39217:2;;39246:13;;-1:-1:-1;;;;;39217:2:0;;;;:28;;39246:10;;39257:1;;39246:13;;;;;;;;;;;;39261:2;;;;;;;;;-1:-1:-1;;;;;39261:2:0;-1:-1:-1;;;;;39261:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39261:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39261:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39261:28:0;39217:73;;;-1:-1:-1;;;;;;39217:73:0;;;;;;;-1:-1:-1;;;;;39217:73:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;39217:73:0;;;;;;;-1:-1:-1;39217:73:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;39217:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;39295:3:0;;;;;-1:-1:-1;39192:111:0;;-1:-1:-1;39192:111:0;50126:107;50184:2;;:47;;;-1:-1:-1;;;50184:47:0;;50204:10;50184:47;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;50184:2:0;;:19;;:47;;;;;-1:-1:-1;;50184:47:0;;;;;;;;-1:-1:-1;50184:2:0;:47;;;5:2:-1;;;;30:1;27;20:12;44209:334:0;44313:10;-1:-1:-1;;;;;44294:51:0;;-1:-1:-1;;;;;;;;;;;44325:19:0;44303:8;44325:9;:19::i;:::-;44294:51;;;;;;;;;;;;;;;44377:3;;:72;;;-1:-1:-1;;;44377:72:0;;44408:10;44377:72;;;;-1:-1:-1;;;;;44377:72:0;;;;;;;44439:9;44377:72;;;;;;44349:25;;44377:3;;;;;:30;;:72;;;;;;;;;;;;;;;44349:25;44377:3;:72;;;5:2:-1;;;;30:1;27;20:12;32894:157:0;32968:14;;-1:-1:-1;;;;;32968:14:0;32954:10;:28;32950:99;;;32985:2;:28;;-1:-1:-1;;;;;;32985:28:0;-1:-1:-1;;;;;32985:28:0;;;;;;;;;;;33015:17;;;-1:-1:-1;;;33015:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;33015:17:0;;;;;;;;-1:-1:-1;33015:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;42291:239:0;-1:-1:-1;;;;;42361:20:0;;42376:4;42361:20;42357:61;;;42383:35;;;-1:-1:-1;;;42383:35:0;;;;;;;;;;;;-1:-1:-1;;;42383:35:0;;;;;;;;;;;;;;42357:61;42433:2;;:44;;;-1:-1:-1;;;42433:44:0;;42453:10;42433:44;;;;-1:-1:-1;;;;;42433:44:0;;;;;;;;;;;;;;;42422:56;;42433:2;;;;;:19;;:44;;;;;;;;;;;;;;;:2;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;42433:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42433:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42433:44:0;42422:10;:56::i;:::-;-1:-1:-1;42487:38:0;;;;;;;;-1:-1:-1;;;;;42487:38:0;;;42501:10;;-1:-1:-1;;;;;;;;;;;42487:38:0;;;;;;;;42291:239;;:::o;36542:112::-;36628:2;;;:22;;;-1:-1:-1;;;36628:22:0;;-1:-1:-1;;;;;36628:22:0;;;;;;;;;;;;36600:15;;36628:2;;;;:12;;:22;;;;;;;;;;;;;;;:2;:22;;;5:2:-1;;;;30:1;27;20:12;37788:111:0;37844:2;;;:51;;;-1:-1:-1;;;37844:51:0;;37873:10;37844:51;;;;;;;37885:9;37844:51;;;;;-1:-1:-1;;;;;37844:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;43872:333:0;43976:10;-1:-1:-1;;;;;43957:51:0;;-1:-1:-1;;;;;;;;;;;43988:19:0;43966:8;43988:9;:19::i;:::-;43957:51;;;;;;;;;;;;;;;44040:3;;:72;;;-1:-1:-1;;;44040:72:0;;44071:10;44040:72;;;;-1:-1:-1;;;;;44040:72:0;;;;;;;44102:9;44040:72;;;;;;44012:25;;44040:3;;;;;:30;;:72;;;;;;;;;;;;;;;44012:25;44040:3;:72;;;5:2:-1;;;;30:1;27;20:12;33828:195:0;33899:4;33907;33899:12;33893:29;;33914:8;;;33893:29;33943:14;;-1:-1:-1;;;;;33943:14:0;33929:10;:28;33925:96;;;33977:8;33960:2;;:26;;;;;-1:-1:-1;;;;;33960:26:0;;;;;-1:-1:-1;;;;;33960:26:0;;;;;;33988:2;;;;;;;;;-1:-1:-1;;;;;33988:2:0;-1:-1:-1;;;;;33988:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;31174:16:0;;;-1:-1:-1;;;;;31174:16:0;;:::o;37000:103::-;37057:2;;;:42;;;-1:-1:-1;;;37057:42:0;;37078:10;37057:42;;;;;;;;;;;;;;-1:-1:-1;;;;;37057:2:0;;;;:20;;:42;;;;;:2;;:42;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;47589:318:0;47694:2;;:17;;;-1:-1:-1;;;47694:17:0;;;;47676:6;;47694:2;;;-1:-1:-1;;;;;47694:2:0;;:15;;:17;;;;;;;;;;;;;;:2;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;47694:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47694:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47694:17:0;:60;;;;;47729:2;;;;;;;;;-1:-1:-1;;;;;47729:2:0;-1:-1:-1;;;;;47729:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47729:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47729:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47729:25:0;-1:-1:-1;;;;;47715:39:0;:10;:39;47694:60;47690:214;;;47763:108;47773:12;:19;47769:1;:23;47763:108;;;47832:12;47845:1;47832:15;;;;;;;;;;;;;;-1:-1:-1;;;;;47808:48:0;47825:4;-1:-1:-1;;;;;47808:48:0;-1:-1:-1;;;;;;;;;;;47849:6:0;47808:48;;;;;;;;;;;;;;;;;;47862:3;;47763:108;;;47690:214;;40918:864;40967:10;40981:9;40967:23;40959:32;;;;;;41067:13;;-1:-1:-1;;;41067:13:0;;;;41063:44;;;41082:25;;;-1:-1:-1;;;41082:25:0;;;;;;;;;;;;-1:-1:-1;;;41082:25:0;;;;;;;;;;;;;;41063:44;41176:21;41207:19;41201:62;;41229:34;;;-1:-1:-1;;;41229:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;41201:62;41307:2;;:27;;;-1:-1:-1;;;41307:27:0;;;;41267:6;;;;-1:-1:-1;;;;;41307:2:0;;;;:25;;:27;;;;;;;;;;;;;;;:2;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;41307:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41307:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41307:27:0;;-1:-1:-1;41340:439:0;41351:3;41347:1;:7;41340:439;;;41393:2;;:22;;;-1:-1:-1;;;41393:22:0;;;;;;;;;;41363:19;;-1:-1:-1;;;;;41393:2:0;;:19;;:22;;;;;;;;;;;;;;:2;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;41393:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41393:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41393:22:0;41436:2;;:21;;;-1:-1:-1;;;41436:21:0;;-1:-1:-1;;;;;41436:21:0;;;;;;;;;41393:22;;-1:-1:-1;;;41436:2:0;;;;;;;;:16;;:21;;;;;41393:22;;41436:21;;;;;;;;:2;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;41436:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41436:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41436:21:0;41510:2;;:18;;;-1:-1:-1;;;41510:18:0;;;;41436:21;;-1:-1:-1;41462:17:0;;41510:2;;;;-1:-1:-1;;;;;41510:2:0;;:16;;:18;;;;;41436:21;;41510:18;;;;;;;;:2;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;41510:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41510:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41510:18:0;41482:25;;;41510:18;41482:46;;;;;;-1:-1:-1;41537:16:0;;41533:234;;41569:22;;-1:-1:-1;;;;;41569:8:0;;;:22;;;;;41578:12;;41569:22;;;;41578:12;41569:8;:22;;;;;;;41564:195;;41603:53;;;;;;;;;;;;;;-1:-1:-1;;;;;41603:53:0;;;;;;;;;;;41564:195;;;41678:2;;41706:26;;;-1:-1:-1;;;41706:26:0;;;;41678:2;;;;-1:-1:-1;;;;;41678:2:0;;:27;;41735:12;;41678:2;;41706:24;;:26;;;;;;;;;;;;;;41678:2;41706:26;;;5:2:-1;;;;30:1;27;20:12;5:2;41706:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41706:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41706:26:0;41678:70;;;-1:-1:-1;;;;;;41678:70:0;;;;;;;41706:41;;;;41678:70;;;;;;;;;;-1:-1:-1;;41678:70:0;;;;;;;-1:-1:-1;41678:70:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;41678:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41678:70:0;;;;41564:195;-1:-1:-1;;41771:3:0;;;;;-1:-1:-1;41340:439:0;;40135:316;40229:10;-1:-1:-1;;;;;40210:51:0;;-1:-1:-1;;;;;;;;;;;40241:19:0;40219:8;40241:9;:19::i;:::-;40210:51;;;;;;;;;;;;;;;40293:2;;:61;;;-1:-1:-1;;;40293:61:0;;40313:10;40293:61;;;;-1:-1:-1;;;;;40293:61:0;;;;;;;40344:9;40293:61;;;;;;40265:25;;40293:2;;;;;:19;;:61;;;;;;;;;;;;;;;40265:25;40293:2;:61;;;5:2:-1;;;;30:1;27;20:12;46025:189:0;46116:3;;:48;;;-1:-1:-1;;;46116:48:0;;46148:10;46116:48;;;;;;;;;;;;;;;;;;;;46095:18;;-1:-1:-1;;;;;46116:3:0;;:14;;46137:9;;46148:10;46160:3;;46116:48;;;;;;;;;;;;;;;46095:18;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;46116:48:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46116:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;46116:48:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46116:48:0;;-1:-1:-1;46172:14:0;;46168:42;;46188:22;46199:10;46188;:22::i;31216:::-;;;-1:-1:-1;;;;;31216:22:0;;:::o;47262:323::-;47349:2;;:17;;;-1:-1:-1;;;47349:17:0;;;;47331:6;;47349:2;;;-1:-1:-1;;;;;47349:2:0;;:15;;:17;;;;;;;;;;;;;;:2;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;47349:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47349:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47349:17:0;:60;;;;;47384:2;;;;;;;;;-1:-1:-1;;;;;47384:2:0;-1:-1:-1;;;;;47384:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47384:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47384:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47384:25:0;-1:-1:-1;;;;;47370:39:0;:10;:39;47349:60;47345:237;;;47418:131;47428:12;:19;47424:1;:23;47418:131;;;47487:12;47500:1;47487:15;;;;;;;;;;;;;;-1:-1:-1;;;;;47463:71:0;47480:4;-1:-1:-1;;;;;47463:71:0;-1:-1:-1;;;;;;;;;;;47504:2:0;;;;;;;;;-1:-1:-1;;;;;47504:2:0;-1:-1:-1;;;;;47504:12:0;;47517;47530:1;47517:15;;;;;;;;;;;;;;47504:29;;;;;;;;;;;;;-1:-1:-1;;;;;47504:29:0;-1:-1:-1;;;;;47504:29:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47504:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47504:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47504:29:0;47463:71;;;;;;;;;;;47504:29;47463:71;;;47540:3;;47418:131;;;47345:237;;31628:71;;;-1:-1:-1;;;;;31628:71:0;;:::o;31267:24::-;;;-1:-1:-1;;;;;31267:24:0;;:::o;44954:599::-;45090:2;;:26;;;-1:-1:-1;;;45090:26:0;;-1:-1:-1;;;;;45090:26:0;;;;;;;;;-1:-1:-1;;45090:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;45090:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45090:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45090:26:0;;-1:-1:-1;45120:6:0;45134:186;45144:23;:30;45140:1;:34;45134:186;;;45225:42;-1:-1:-1;;;;;45188:119:0;45197:23;45221:1;45197:26;;;;;;;;;;;;;;-1:-1:-1;;;;;45188:119:0;-1:-1:-1;;;;;;;;;;;45269:37:0;45279:23;45303:1;45279:26;;;;;;;45269:37;45188:119;;;;;;;;;;;;;;;45312:3;;45134:186;;;45351:3;;:86;;-1:-1:-1;;;45351:86:0;;45371:10;45351:86;;;;;;-1:-1:-1;;;;;45351:86:0;;;;;;;45427:9;45351:86;;;;;;;;;;;;;;;;;;;;;45323:25;;45351:3;;;;;:19;;45371:10;45391:8;;45402:23;;45427:9;45351:86;;;;;;;;;;;;;;45323:25;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;45351:86:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45351:86:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45351:86:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45351:86:0;45445:32;;45351:86;;-1:-1:-1;;;;;;45445:13:0;;;:32;;;;;45351:86;;45445:32;;;;45351:86;45445:13;:32;;;;;;;45441:46;;45479:8;;;45441:46;45498:50;;;;;;;;45522:10;;-1:-1:-1;;;;;45498:50:0;;;-1:-1:-1;;;;;;;;;;;45498:50:0;;;;;;;;44954:599;;;;;:::o;46700:135::-;46796:2;;;:35;;;-1:-1:-1;;;46796:35:0;;-1:-1:-1;;;;;46796:35:0;;;;;;;;;;;;46771:12;;46796:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;34783:151:0;34824:11;;-1:-1:-1;;;;;34824:11:0;34821:109;;34886:11;:24;;-1:-1:-1;;;;;;34886:24:0;34900:10;34886:24;;;34821:109;34783:151::o;32742:150::-;32810:14;;-1:-1:-1;;;;;32810:14:0;32796:10;:28;32792:98;;;32827:2;:27;;-1:-1:-1;;;;;;32827:27:0;-1:-1:-1;;;;;32827:27:0;;;;;;;;;;32856:17;;;-1:-1:-1;;;32856:17:0;;;;:2;;;;;:15;;:17;;;;-1:-1:-1;;32856:17:0;;;;;;;-1:-1:-1;32856:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;30483:20:0;;;;;;;;;;;;;;;-1:-1:-1;;30483:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33508:157;33581:14;;-1:-1:-1;;;;;33581:14:0;33567:10;:28;33563:100;;;33598:3;:28;;-1:-1:-1;;;;;;33598:28:0;-1:-1:-1;;;;;33598:28:0;;;;;;;;;;;33628:18;;;-1:-1:-1;;;33628:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33628:18:0;;;;;;;;-1:-1:-1;33628:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;45557:203:0;45644:3;;:38;;;-1:-1:-1;;;45644:38:0;;45660:10;45644:38;;;;45672:9;45644:38;;;;;;45600:18;;;;-1:-1:-1;;;;;45644:3:0;;;;:15;;:38;;;;;;;;;;;45600:18;45644:3;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;45644:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45644:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45644:38:0;;;;;;;;;-1:-1:-1;45644:38:0;-1:-1:-1;45686:22:0;45644:38;45686:10;:22::i;:::-;-1:-1:-1;45717:39:0;;;-1:-1:-1;;;;;45717:39:0;;;;;;45731:10;;45717:39;;;;;;;;;;45557:203;;:::o;45764:212::-;45854:3;;:41;;;-1:-1:-1;;;45854:41:0;;45873:10;45854:41;;;;45885:9;45854:41;;;;;;45810:18;;;;-1:-1:-1;;;;;45854:3:0;;;;:18;;:41;;;;;;;;;;;45810:18;45854:3;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;45854:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45854:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45854:41:0;;;;;;;;;-1:-1:-1;45854:41:0;-1:-1:-1;45899:22:0;45854:41;45899:10;:22::i;:::-;-1:-1:-1;45930:42:0;;;-1:-1:-1;;;;;45930:42:0;;;;;;45947:10;;45930:42;;;;;;;;;;45764:212;;:::o;49945:179::-;50039:2;;:83;;;-1:-1:-1;;;50039:83:0;;50077:10;50039:83;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;50039:2:0;;:37;;:83;;;;;-1:-1:-1;;50039:83:0;;;;;;;;-1:-1:-1;50039:2:0;:83;;;5:2:-1;;;;30:1;27;20:12;35693:206:0;-1:-1:-1;;;;;35756:20:0;;35771:4;35756:20;35752:61;;;35778:35;;;-1:-1:-1;;;35778:35:0;;;;;;;;;;;;-1:-1:-1;;;35778:35:0;;;;;;;;;;;;;;35752:61;35816:3;;:37;;;-1:-1:-1;;;35816:37:0;;35829:10;35816:37;;;;-1:-1:-1;;;;;35816:37:0;;;;;;;;;;;;;;;:3;;;;;:12;;:37;;;;;:3;;:37;;;;;;;:3;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;35816:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;35861:33:0;;;;;;;;-1:-1:-1;;;;;35861:33:0;;;-1:-1:-1;35870:10:0;;-1:-1:-1;;;;;;;;;;;;35861:33:0;;;;;;;;35693:206;;:::o;34493:140::-;34564:14;;-1:-1:-1;;;;;34564:14:0;34550:10;:28;34546:85;;;34581:5;:33;;-1:-1:-1;;;;;;34581:33:0;-1:-1:-1;;;;;34581:33:0;;;;;34546:85;;37558:111;37616:2;;;:49;;;-1:-1:-1;;;37616:49:0;;37654:10;37616:49;;;;;;;;-1:-1:-1;;;;;37616:2:0;;;;:37;;:49;;;;;:2;;:49;;;;;;;:2;;:49;;;5:2:-1;;;;30:1;27;20:12;50239:252:0;50364:5;;:76;;-1:-1:-1;;;50364:76:0;;50404:10;50364:76;;;;;;;;;;;;;;;;;;;;;50343:18;;-1:-1:-1;;;;;50364:5:0;;:22;;50393:9;;50404:10;;50416:12;;50430:9;;50364:76;;;;;;;;;;;;;;;;;;50343:18;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50364:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50364:76:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50364:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;50364:76:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;50364:76:0;;-1:-1:-1;50448:14:0;;50444:42;;50464:22;50475:10;50464;:22::i;31344:28::-;;;-1:-1:-1;;;;;31344:28:0;;:::o;36658:121::-;36749:2;;:26;;;-1:-1:-1;;;36749:26:0;;-1:-1:-1;;;;;36749:26:0;;;;;;;;;-1:-1:-1;;36749:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;49357:143:0;49433:2;;:65;;;-1:-1:-1;;;49433:65:0;;49462:10;49433:65;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49433:2:0;;:28;;:65;;;;;-1:-1:-1;;49433:65:0;;;;;;;;-1:-1:-1;49433:2:0;:65;;;5:2:-1;;;;30:1;27;20:12;42207:80:0;42249:2;;:34;;;-1:-1:-1;;;42249:34:0;;42272:10;42249:34;;;;;;-1:-1:-1;;;;;42249:2:0;;;;:22;;:34;;;;;:2;;:34;;;;;;;;:2;;:34;;;5:2:-1;;;;30:1;27;20:12;37107:99:0;37159:2;;;:43;;;-1:-1:-1;;;37159:43:0;;37191:10;37159:43;;;;;;;;-1:-1:-1;;;;;37159:2:0;;;;:31;;:43;;;;;:2;;:43;;;;;;;:2;;:43;;;5:2:-1;;;;30:1;27;20:12;33351:155:0;33423:14;;-1:-1:-1;;;;;33423:14:0;33409:10;:28;33405:99;;;33440:3;:27;;-1:-1:-1;;;;;;33440:27:0;-1:-1:-1;;;;;33440:27:0;;;;;;;;;;;33469:18;;;-1:-1:-1;;;33469:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33469:18:0;;;;;;;;-1:-1:-1;33469:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;31193:20:0;;;-1:-1:-1;;;;;31193:20:0;;:::o;33053:143::-;33120:14;;-1:-1:-1;;;;;33120:14:0;33106:10;:28;33102:92;;;33137:2;:21;;-1:-1:-1;;;;;;33137:21:0;-1:-1:-1;;;;;33137:21:0;;;;;;;;;;;33160:17;;;-1:-1:-1;;;33160:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;33160:17:0;;;;;;;;-1:-1:-1;33160:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;31702:33:0;;;-1:-1:-1;;;31702:33:0;;;;;:::o;42891:507::-;-1:-1:-1;;;;;43007:20:0;;43022:4;43007:20;43003:61;;;43029:35;;;-1:-1:-1;;;43029:35:0;;;;;;;;;;;;-1:-1:-1;;;43029:35:0;;;;;;;;;;;;;;43003:61;43068:6;43083:186;43093:23;:30;43089:1;:34;43083:186;;;43174:42;-1:-1:-1;;;;;43137:119:0;43146:23;43170:1;43146:26;;;;;;;;;;;;;;-1:-1:-1;;;;;43137:119:0;-1:-1:-1;;;;;;;;;;;43218:37:0;43228:23;43252:1;43228:26;;;;;;;43218:37;43137:119;;;;;;;;;;;;;;;43261:3;;43083:186;;;43272:2;;:73;;-1:-1:-1;;;43272:73:0;;43296:10;43272:73;;;;;;-1:-1:-1;;;;;43272:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:2;;;;;:23;;43308:3;;43313:6;;43321:23;;43272:73;;;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;43272:73:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43272:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;43355:38:0;;;;;;;;-1:-1:-1;;;;;43355:38:0;;;-1:-1:-1;43369:10:0;;-1:-1:-1;;;;;;;;;;;;43355:38:0;;;;;;;;42891:507;;;;:::o;38481:450::-;38583:17;;38654:2;;:28;;;-1:-1:-1;;;38654:28:0;;;;38583:17;;38654:2;;;-1:-1:-1;;;;;38654:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;38654:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38654:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38654:28:0;38623:2;;:28;;;-1:-1:-1;;;38623:28:0;;;;:2;;;;-1:-1:-1;;;;;38623:2:0;;:26;;:28;;;;;38654;;38623;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;38623:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38623:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38623:28:0;:59;38622:67;38608:9;:82;38604:162;;38692:74;;-1:-1:-1;;;38692:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38604:162;38770:6;38784:144;38795:5;38791:1;:9;38784:144;;;38809:2;;38838:13;;-1:-1:-1;;;;;38809:2:0;;;;:28;;38838:10;;38849:1;;38838:13;;;;;;;;;;;;38885:2;;;;;;;;;-1:-1:-1;;;;;38885:2:0;-1:-1:-1;;;;;38885:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38885:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38885:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38885:28:0;38854:2;;:28;;;-1:-1:-1;;;38854:28:0;;;;:2;;;;-1:-1:-1;;;;;38854:2:0;;:26;;:28;;;;;38885;;38854;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;38854:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38854:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38854:28:0;38809:106;;;-1:-1:-1;;;;;;38809:106:0;;;;;;;-1:-1:-1;;;;;38809:106:0;;;;;;;38854:59;;38809:106;;;;;;;;;;-1:-1:-1;;38809:106:0;;;;;;;-1:-1:-1;38809:106:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;38809:106:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;38920:3:0;;;;;-1:-1:-1;38784:144:0;;-1:-1:-1;38784:144:0;37325:99;37377:2;;;:43;;;-1:-1:-1;;;37377:43:0;;37409:10;37377:43;;;;;;;;-1:-1:-1;;;;;37377:2:0;;;;:31;;:43;;;;;:2;;:43;;;;;;;:2;;:43;;;5:2:-1;;;;30:1;27;20:12;36783:213:0;-1:-1:-1;;;;;36837:48:0;;36846:10;-1:-1:-1;;;;;;;;;;;36863:21:0;36846:10;36863:9;:21::i;:::-;36837:48;;;;;;;;;;;;;;;-1:-1:-1;;;;;36894:20:0;;36909:4;36894:20;36890:61;;;36916:35;;;-1:-1:-1;;;36916:35:0;;;;;;;;;;;;-1:-1:-1;;;36916:35:0;;;;;;;;;;;;;;36890:61;36956:2;;;:35;;;-1:-1:-1;;;36956:35:0;;36975:10;36956:35;;;;;;;-1:-1:-1;;;;;36956:35:0;;;;;;;;;:2;;;:18;;:35;;;;;:2;;:35;;;;;;;:2;;:35;;;5:2:-1;;;;30:1;27;20:12;49196:159:0;49280:2;;:73;;;-1:-1:-1;;;49280:73:0;;49313:10;49280:73;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49280:2:0;;:32;;:73;;;;;-1:-1:-1;;49280:73:0;;;;;;;;-1:-1:-1;49280:2:0;:73;;;5:2:-1;;;;30:1;27;20:12;31241:23:0;;;-1:-1:-1;;;;;31241:23:0;;:::o;42099:104::-;42157:2;;:42;;;-1:-1:-1;;;42157:42:0;;42176:10;42157:42;;;;;;;;;;;;-1:-1:-1;;;;;42157:2:0;;;;:18;;:42;;;;;:2;;:42;;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;46218:345:0;46332:18;;46328:157;;46359:3;;46392:6;;46359:57;;;-1:-1:-1;;;46359:57:0;;46372:10;46359:57;;;;-1:-1:-1;;;;;46392:6:0;;;46359:57;;;;;;;;;;;;:3;;;;;:12;;:57;;;;;:3;;:57;;;;;;;:3;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;46359:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;46455:6:0;;46426:53;;;;;;;;-1:-1:-1;;;;;46455:6:0;;;;-1:-1:-1;46435:10:0;;-1:-1:-1;;;;;;;;;;;;46426:53:0;;;;;;;;;46328:157;46488:6;;:71;;-1:-1:-1;;;46488:71:0;;46508:10;46488:71;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;46488:6:0;;;;:19;;46520:14;;46536:12;;46550:8;;46488:71;;;;;;;;;;;;;;;;;;;;:6;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;46488:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;46488:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46488:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;46488:71:0;;;;46218:345;;;:::o;49502:131::-;49572:2;;:59;;;-1:-1:-1;;;49572:59:0;;49598:10;49572:59;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49572:2:0;;:25;;:59;;;;;-1:-1:-1;;49572:59:0;;;;;;;;-1:-1:-1;49572:2:0;:59;;;5:2:-1;;;;30:1;27;20:12;48060:147:0;48138:2;;:67;;;-1:-1:-1;;;48138:67:0;;48168:10;48138:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48138:2:0;;:29;;:67;;;;;-1:-1:-1;;48138:67:0;;;;;;;;-1:-1:-1;48138:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;36400:138:0;36507:2;;:27;;;-1:-1:-1;;;36507:27:0;;-1:-1:-1;;;;;36507:27:0;;;;;;;;;;;;;;;;-1:-1:-1;;36507:2:0;;;;;;;:10;;:27;;;;;;;;;;;;;;;:2;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;36507:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36507:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36507:27:0;;36400:138;-1:-1:-1;;;36400:138:0:o;48882:163::-;48968:2;;:75;;;-1:-1:-1;;;48968:75:0;;49002:10;48968:75;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48968:2:0;;:33;;:75;;;;;-1:-1:-1;;48968:75:0;;;;;;;;-1:-1:-1;48968:2:0;:75;;;5:2:-1;;;;30:1;27;20:12;34938:163:0;35028:11;;-1:-1:-1;;;;;35028:11:0;35014:10;:25;35011:86;;;35044:22;:33;;-1:-1:-1;;;;;;35044:33:0;-1:-1:-1;;;;;35044:33:0;;;;;35011:86;;31321:20;;;-1:-1:-1;;;;;31321:20:0;;:::o;35332:119::-;35377:19;35425:2;;;;;;;;;-1:-1:-1;;;;;35425:2:0;-1:-1:-1;;;;;35425:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35425:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35425:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35425:22:0;35410:12;:37;;-1:-1:-1;35332:119:0;:::o;31486:140::-;31520:14;;-1:-1:-1;;;;;31520:14:0;31516:108;;31582:14;:27;;-1:-1:-1;;;;;;31582:27:0;31599:10;31582:27;;;31516:108;;40655:259;40828:13;;-1:-1:-1;;;40828:13:0;;;;40824:86;;;40850:22;;:50;;-1:-1:-1;;;;;40850:22:0;;;;40878:21;40850:50;;;;;:22;:50;:22;:50;40878:21;40850:22;:50;;;;;;;40846:64;;40902:8;;;34360:129;34428:14;;-1:-1:-1;;;;;34428:14:0;34414:10;:28;34410:77;;;34445:3;:25;;-1:-1:-1;;;;;;34445:25:0;-1:-1:-1;;;;;34445:25:0;;;;;34410:77;;31074:21;;;;;;-1:-1:-1;;;;;31074:21:0;;:::o;39310:208::-;39401:17;;39388:10;39437:78;39448:5;39444:1;:9;39437:78;;;39462:2;;39488:13;;-1:-1:-1;;;;;39462:2:0;;;;:25;;39488:10;;39499:1;;39488:13;;;;;;;;;;;;39462:40;;;;;;;;;;;;;-1:-1:-1;;;;;39462:40:0;-1:-1:-1;;;;;39462:40:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39462:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;39507:3:0;;;;;-1:-1:-1;39437:78:0;;-1:-1:-1;39437:78:0;46567:129;46660:2;;;:32;;;-1:-1:-1;;;46660:32:0;;-1:-1:-1;;;;;46660:32:0;;;;;;;;;;;;46635:12;;46660:2;;;;:22;;:32;;;;;;;;;;;;;;;:2;:32;;;5:2:-1;;;;30:1;27;20:12;37428:126:0;37497:2;;;:53;;;-1:-1:-1;;;37497:53:0;;37529:10;37497:53;;;;;;;-1:-1:-1;;;;;37497:53:0;;;;;;;;;:2;;;:31;;:53;;;;;:2;;:53;;;;;;;:2;;:53;;;5:2:-1;;;;30:1;27;20:12;33667:159:0;33741:14;;-1:-1:-1;;;;;33741:14:0;33727:10;:28;33723:101;;;33758:3;:29;;-1:-1:-1;;;;;;33758:29:0;-1:-1:-1;;;;;33758:29:0;;;;;;;;;;;33789:18;;;-1:-1:-1;;;33789:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33789:18:0;;;;;;;;-1:-1:-1;33789:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;31409:74:0;;;-1:-1:-1;;;;;31409:74:0;;:::o;46978:135::-;47074:2;;;:35;;;-1:-1:-1;;;;;;47074:35:0;;-1:-1:-1;;;;;47074:35:0;;;;;;;;;;;;47049:12;;47074:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12

Swarm Source

ipfs://fbe85c3a6fa0919c93491c769155cdfad5809a0a4845bd3d867d33fbea239d17
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.