Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xc2f50e6ec048e8ab5c5c13020c46541d81a5e54f6810173c5b3d10e86cf70b42 | 0x60806040 | 26974483 | 548 days 19 hrs ago | 0x2252a85e520fe2f29e0be62104d8551b32649c66 | IN | Create: VaultReader | 0 ETH | 0.00039689 |
[ Download CSV Export ]
Contract Name:
VaultReader
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 1 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT import "../core/interfaces/IVault.sol"; import "../core/interfaces/IVaultPriceFeed.sol"; import "../core/interfaces/IBasePositionManager.sol"; import "./interfaces/IMlpManager.sol"; import "../libraries/math/SafeMath.sol"; pragma solidity 0.6.12; contract VaultReader { using SafeMath for uint256; function getTokenExposure( address _vault, address token, bool maximise ) public view returns (uint256) { IVault vault = IVault(_vault); bool isWhitelisted = vault.whitelistedTokens(token); if (!isWhitelisted) { return 0; } else if (vault.stableTokens(token)) { return 0; } uint256 price = maximise ? vault.getMaxPrice(token) : vault.getMinPrice(token); uint256 poolAmount = vault.poolAmounts(token); uint256 decimals = vault.tokenDecimals(token); uint256 reservedAmount = vault.reservedAmounts(token); uint256 shortOpenInterest = vault.globalShortSizes(token); // poolAmount and reservedAmount both factor in collateral reserved for longOpenInterest uint256 aum = (poolAmount.sub(reservedAmount).mul(price).div(10**decimals)).sub(shortOpenInterest); // add global short profit / loss since globalShortSize is a dollar denominated value if (shortOpenInterest > 0) { uint256 averagePrice = vault.globalShortAveragePrices(token); uint256 priceDelta = averagePrice > price ? averagePrice.sub(price) : price.sub(averagePrice); uint256 delta = shortOpenInterest.mul(priceDelta).div(averagePrice); if (price > averagePrice) { // add losses from shorts aum = aum.add(delta); } else { aum = aum.sub(delta); } } // return number of tokens return aum.div(price); } function getTokenExposureUsd( address _vault, address token, bool maximise ) public view returns (uint256) { IVault vault = IVault(_vault); uint256 price = maximise ? vault.getMaxPrice(token) : vault.getMinPrice(token); uint256 exposure = getTokenExposure(_vault, token, maximise); return exposure.mul(price); } function getVaultExposure( address vault, address _mlpManager, address _weth, address[] memory _tokens ) public view returns (uint256[] memory) { uint256 propsLength = 2; IMlpManager mlpManager = IMlpManager(_mlpManager); uint256[] memory aums = mlpManager.getAums(); uint256 aum = (aums[0].add(aums[1])).div(2); uint256[] memory amounts = new uint256[](_tokens.length * propsLength); for (uint256 i = 0; i < _tokens.length; i++) { address token = _tokens[i]; if (token == address(0)) { token = _weth; } uint256 minExposure = getTokenExposureUsd(vault, token, false); uint256 maxExposure = getTokenExposureUsd(vault, token, true); uint256 exposureUsd = (minExposure.add(maxExposure)).div(2); amounts[i * propsLength] = exposureUsd; amounts[i * propsLength + 1] = exposureUsd.mul(10**18).div(aum); } return amounts; } function getVaultTokenInfoV3( address _vault, address _positionManager, address _weth, uint256 _usdgAmount, address[] memory _tokens ) public view returns (uint256[] memory) { uint256 propsLength = 14; IVault vault = IVault(_vault); IVaultPriceFeed priceFeed = IVaultPriceFeed(vault.priceFeed()); IBasePositionManager positionManager = IBasePositionManager(_positionManager); uint256[] memory amounts = new uint256[](_tokens.length * propsLength); for (uint256 i = 0; i < _tokens.length; i++) { address token = _tokens[i]; if (token == address(0)) { token = _weth; } amounts[i * propsLength] = vault.poolAmounts(token); amounts[i * propsLength + 1] = vault.reservedAmounts(token); amounts[i * propsLength + 2] = vault.usdgAmounts(token); amounts[i * propsLength + 3] = vault.getRedemptionAmount(token, _usdgAmount); amounts[i * propsLength + 4] = vault.tokenWeights(token); amounts[i * propsLength + 5] = vault.bufferAmounts(token); amounts[i * propsLength + 6] = vault.maxUsdgAmounts(token); amounts[i * propsLength + 7] = vault.globalShortSizes(token); amounts[i * propsLength + 8] = positionManager.maxGlobalShortSizes(token); amounts[i * propsLength + 9] = vault.getMinPrice(token); amounts[i * propsLength + 10] = vault.getMaxPrice(token); amounts[i * propsLength + 11] = vault.guaranteedUsd(token); amounts[i * propsLength + 12] = priceFeed.getPrimaryPrice(token, false); amounts[i * propsLength + 13] = priceFeed.getPrimaryPrice(token, true); } return amounts; } function getVaultTokenInfoV4( address _vault, address _positionManager, address _weth, uint256 _usdgAmount, address[] memory _tokens ) public view returns (uint256[] memory) { uint256 propsLength = 15; IVault vault = IVault(_vault); IVaultPriceFeed priceFeed = IVaultPriceFeed(vault.priceFeed()); IBasePositionManager positionManager = IBasePositionManager(_positionManager); uint256[] memory amounts = new uint256[](_tokens.length * propsLength); for (uint256 i = 0; i < _tokens.length; i++) { address token = _tokens[i]; if (token == address(0)) { token = _weth; } amounts[i * propsLength] = vault.poolAmounts(token); amounts[i * propsLength + 1] = vault.reservedAmounts(token); amounts[i * propsLength + 2] = vault.usdgAmounts(token); amounts[i * propsLength + 3] = vault.getRedemptionAmount(token, _usdgAmount); amounts[i * propsLength + 4] = vault.tokenWeights(token); amounts[i * propsLength + 5] = vault.bufferAmounts(token); amounts[i * propsLength + 6] = vault.maxUsdgAmounts(token); amounts[i * propsLength + 7] = vault.globalShortSizes(token); amounts[i * propsLength + 8] = positionManager.maxGlobalShortSizes(token); amounts[i * propsLength + 9] = positionManager.maxGlobalLongSizes(token); amounts[i * propsLength + 10] = vault.getMinPrice(token); amounts[i * propsLength + 11] = vault.getMaxPrice(token); amounts[i * propsLength + 12] = vault.guaranteedUsd(token); amounts[i * propsLength + 13] = priceFeed.getPrimaryPrice(token, false); amounts[i * propsLength + 14] = priceFeed.getPrimaryPrice(token, true); } return amounts; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; import "./IVaultUtils.sol"; interface IVault { function isInitialized() external view returns (bool); function isSwapEnabled() external view returns (bool); function isLeverageEnabled() external view returns (bool); function setVaultUtils(IVaultUtils _vaultUtils) external; function setError(uint256 _errorCode, string calldata _error) external; function router() external view returns (address); function usdg() external view returns (address); function gov() external view returns (address); function whitelistedTokenCount() external view returns (uint256); function maxLeverage() external view returns (uint256); function minProfitTime() external view returns (uint256); function hasDynamicFees() external view returns (bool); function fundingInterval() external view returns (uint256); function totalTokenWeights() external view returns (uint256); function getTargetUsdgAmount(address _token) external view returns (uint256); function inManagerMode() external view returns (bool); function inPrivateLiquidationMode() external view returns (bool); function maxGasPrice() external view returns (uint256); function approvedRouters(address _account, address _router) external view returns (bool); function isLiquidator(address _account) external view returns (bool); function isManager(address _account) external view returns (bool); function minProfitBasisPoints(address _token) external view returns (uint256); function tokenBalances(address _token) external view returns (uint256); function lastFundingTimes(address _token) external view returns (uint256); function setMaxLeverage(uint256 _maxLeverage) external; function setInManagerMode(bool _inManagerMode) external; function setManager(address _manager, bool _isManager) external; function setIsSwapEnabled(bool _isSwapEnabled) external; function setIsLeverageEnabled(bool _isLeverageEnabled) external; function setMaxGasPrice(uint256 _maxGasPrice) external; function setUsdgAmount(address _token, uint256 _amount) external; function setBufferAmount(address _token, uint256 _amount) external; function setMaxGlobalShortSize(address _token, uint256 _amount) external; function setInPrivateLiquidationMode(bool _inPrivateLiquidationMode) external; function setLiquidator(address _liquidator, bool _isActive) external; function setFundingRate( uint256 _fundingInterval, uint256 _fundingRateFactor, uint256 _stableFundingRateFactor ) external; function setFees( uint256 _taxBasisPoints, uint256 _stableTaxBasisPoints, uint256 _mintBurnFeeBasisPoints, uint256 _swapFeeBasisPoints, uint256 _stableSwapFeeBasisPoints, uint256 _marginFeeBasisPoints, uint256 _liquidationFeeUsd, uint256 _minProfitTime, bool _hasDynamicFees ) external; function setTokenConfig( address _token, uint256 _tokenDecimals, uint256 _redemptionBps, uint256 _minProfitBps, uint256 _maxUsdgAmount, bool _isStable, bool _isShortable ) external; function setPriceFeed(address _priceFeed) external; function withdrawFees(address _token, address _receiver) external returns (uint256); function directPoolDeposit(address _token) external; function buyUSDG(address _token, address _receiver) external returns (uint256); function sellUSDG(address _token, address _receiver) external returns (uint256); function swap( address _tokenIn, address _tokenOut, address _receiver ) external returns (uint256); function increasePosition( address _account, address _collateralToken, address _indexToken, uint256 _sizeDelta, bool _isLong ) external; function decreasePosition( address _account, address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver ) external returns (uint256); function liquidatePosition( address _account, address _collateralToken, address _indexToken, bool _isLong, address _feeReceiver ) external; function tokenToUsdMin(address _token, uint256 _tokenAmount) external view returns (uint256); function priceFeed() external view returns (address); function fundingRateFactor() external view returns (uint256); function stableFundingRateFactor() external view returns (uint256); function cumulativeFundingRates(address _token) external view returns (uint256); function getNextFundingRate(address _token) external view returns (uint256); function getFeeBasisPoints( address _token, uint256 _usdgDelta, uint256 _feeBasisPoints, uint256 _taxBasisPoints, bool _increment ) external view returns (uint256); function liquidationFeeUsd() external view returns (uint256); function taxBasisPoints() external view returns (uint256); function stableTaxBasisPoints() external view returns (uint256); function mintBurnFeeBasisPoints() external view returns (uint256); function swapFeeBasisPoints() external view returns (uint256); function stableSwapFeeBasisPoints() external view returns (uint256); function marginFeeBasisPoints() external view returns (uint256); function allWhitelistedTokensLength() external view returns (uint256); function allWhitelistedTokens(uint256) external view returns (address); function whitelistedTokens(address _token) external view returns (bool); function stableTokens(address _token) external view returns (bool); function shortableTokens(address _token) external view returns (bool); function feeReserves(address _token) external view returns (uint256); function globalShortSizes(address _token) external view returns (uint256); function globalShortAveragePrices(address _token) external view returns (uint256); function maxGlobalShortSizes(address _token) external view returns (uint256); function tokenDecimals(address _token) external view returns (uint256); function tokenWeights(address _token) external view returns (uint256); function guaranteedUsd(address _token) external view returns (uint256); function poolAmounts(address _token) external view returns (uint256); function bufferAmounts(address _token) external view returns (uint256); function reservedAmounts(address _token) external view returns (uint256); function usdgAmounts(address _token) external view returns (uint256); function maxUsdgAmounts(address _token) external view returns (uint256); function getRedemptionAmount(address _token, uint256 _usdgAmount) external view returns (uint256); function getMaxPrice(address _token) external view returns (uint256); function getMinPrice(address _token) external view returns (uint256); function getDelta( address _indexToken, uint256 _size, uint256 _averagePrice, bool _isLong, uint256 _lastIncreasedTime ) external view returns (bool, uint256); function getPosition( address _account, address _collateralToken, address _indexToken, bool _isLong ) external view returns ( uint256, uint256, uint256, uint256, uint256, uint256, bool, uint256 ); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IVaultPriceFeed { function adjustmentBasisPoints(address _token) external view returns (uint256); function isAdjustmentAdditive(address _token) external view returns (bool); function setAdjustment( address _token, bool _isAdditive, uint256 _adjustmentBps ) external; function setUseV2Pricing(bool _useV2Pricing) external; function setIsAmmEnabled(bool _isEnabled) external; function setIsSecondaryPriceEnabled(bool _isEnabled) external; function setSpreadBasisPoints(address _token, uint256 _spreadBasisPoints) external; function setSpreadThresholdBasisPoints(uint256 _spreadThresholdBasisPoints) external; function setFavorPrimaryPrice(bool _favorPrimaryPrice) external; function setPriceSampleSpace(uint256 _priceSampleSpace) external; function setMaxStrictPriceDeviation(uint256 _maxStrictPriceDeviation) external; function getPrice( address _token, bool _maximise, bool _includeAmmPrice, bool _useSwapPricing ) external view returns (uint256); function getAmmPrice(address _token) external view returns (uint256); function getPrimaryPrice(address _token, bool _maximise) external view returns (uint256); function setTokenConfig( address _token, address _priceFeed, uint256 _priceDecimals, bool _isStrictStable ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IBasePositionManager { function maxGlobalLongSizes(address _token) external view returns (uint256); function maxGlobalShortSizes(address _token) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IMlpManager { function cooldownDuration() external returns (uint256); function lastAddedAt(address _account) external returns (uint256); function getAums() external view returns (uint256[] memory); function addLiquidity( address _token, uint256 _amount, uint256 _minUsdg, uint256 _minMlp ) external returns (uint256); function addLiquidityForAccount( address _fundingAccount, address _account, address _token, uint256 _amount, uint256 _minUsdg, uint256 _minMlp ) external returns (uint256); function removeLiquidity( address _tokenOut, uint256 _mlpAmount, uint256 _minOut, address _receiver ) external returns (uint256); function removeLiquidityForAccount( address _account, address _tokenOut, uint256 _MlpAmount, uint256 _minOut, address _receiver ) external returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IVaultUtils { function updateCumulativeFundingRate(address _collateralToken, address _indexToken) external returns (bool); function validateIncreasePosition( address _account, address _collateralToken, address _indexToken, uint256 _sizeDelta, bool _isLong ) external view; function validateDecreasePosition( address _account, address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver ) external view; function validateLiquidation( address _account, address _collateralToken, address _indexToken, bool _isLong, bool _raise ) external view returns (uint256, uint256); function getEntryFundingRate( address _collateralToken, address _indexToken, bool _isLong ) external view returns (uint256); function getPositionFee( address _account, address _collateralToken, address _indexToken, bool _isLong, uint256 _sizeDelta ) external view returns (uint256); function getFundingFee( address _account, address _collateralToken, address _indexToken, bool _isLong, uint256 _size, uint256 _entryFundingRate ) external view returns (uint256); function getBuyUsdgFeeBasisPoints(address _token, uint256 _usdgAmount) external view returns (uint256); function getSellUsdgFeeBasisPoints(address _token, uint256 _usdgAmount) external view returns (uint256); function getSwapFeeBasisPoints( address _tokenIn, address _tokenOut, uint256 _usdgAmount ) external view returns (uint256); function getFeeBasisPoints( address _token, uint256 _usdgDelta, uint256 _feeBasisPoints, uint256 _taxBasisPoints, bool _increment ) external view returns (uint256); }
{ "optimizer": { "enabled": true, "runs": 1 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
[{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"maximise","type":"bool"}],"name":"getTokenExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"maximise","type":"bool"}],"name":"getTokenExposureUsd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"_mlpManager","type":"address"},{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address[]","name":"_tokens","type":"address[]"}],"name":"getVaultExposure","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_positionManager","type":"address"},{"internalType":"address","name":"_weth","type":"address"},{"internalType":"uint256","name":"_usdgAmount","type":"uint256"},{"internalType":"address[]","name":"_tokens","type":"address[]"}],"name":"getVaultTokenInfoV3","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_positionManager","type":"address"},{"internalType":"address","name":"_weth","type":"address"},{"internalType":"uint256","name":"_usdgAmount","type":"uint256"},{"internalType":"address[]","name":"_tokens","type":"address[]"}],"name":"getVaultTokenInfoV4","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061225d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806357c630b51461005c5780639635bbfb1461016e578063d3f3265c146101b8578063d490e1a314610281578063f75e8101146102b9575b600080fd5b61011e6004803603608081101561007257600080fd5b6001600160a01b0382358116926020810135821692604082013590921691810190608081016060820135600160201b8111156100ad57600080fd5b8201836020820111156100bf57600080fd5b803590602001918460208302840111600160201b831117156100e057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610382945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015a578181015183820152602001610142565b505050509050019250505060405180910390f35b6101a66004803603606081101561018457600080fd5b506001600160a01b038135811691602081013590911690604001351515610604565b60408051918252519081900360200190f35b61011e600480360360a08110156101ce57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561021057600080fd5b82018360208201111561022257600080fd5b803590602001918460208302840111600160201b8311171561024357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610b3b945050505050565b6101a66004803603606081101561029757600080fd5b506001600160a01b038135811691602081013590911690604001351515611545565b61011e600480360360a08110156102cf57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561031157600080fd5b82018360208201111561032357600080fd5b803590602001918460208302840111600160201b8311171561034457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061166c945050505050565b606060006002905060008590506060816001600160a01b031663ed0d1c046040518163ffffffff1660e01b815260040160006040518083038186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561040757600080fd5b8101908080516040519392919084600160201b82111561042657600080fd5b90830190602082018581111561043b57600080fd5b82518660208202830111600160201b8211171561045757600080fd5b82525081516020918201928201910280838360005b8381101561048457818101518382015260200161046c565b50505050905001604052505050905060006104db60026104d5846001815181106104aa57fe5b6020026020010151856000815181106104bf57fe5b6020026020010151611fcf90919063ffffffff16565b90612030565b90506060848751026001600160401b03811180156104f857600080fd5b50604051908082528060200260200182016040528015610522578160200160208202803683370190505b50905060005b87518110156105f657600088828151811061053f57fe5b6020026020010151905060006001600160a01b0316816001600160a01b031614156105675750885b60006105758d836000611545565b905060006105858e846001611545565b9050600061059860026104d58585611fcf565b905080868b8702815181106105a957fe5b60209081029190910101526105ca876104d583670de0b6b3a764000061206f565b868b8702600101815181106105db57fe5b60209081029190910101525050600190920191506105289050565b509998505050505050505050565b6000808490506000816001600160a01b031663daf9c210866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d602081101561068357600080fd5b505190508061069757600092505050610b34565b816001600160a01b03166342b60b03866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50511561072057600092505050610b34565b6000846107a557826001600160a01b03166381a612d6876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561077457600080fd5b505afa158015610788573d6000803e3d6000fd5b505050506040513d602081101561079e57600080fd5b505161081f565b826001600160a01b031663e124e6d2876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156107f257600080fd5b505afa158015610806573d6000803e3d6000fd5b505050506040513d602081101561081c57600080fd5b50515b90506000836001600160a01b03166352f55eed886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561087057600080fd5b505afa158015610884573d6000803e3d6000fd5b505050506040513d602081101561089a57600080fd5b5051604080516323b95ceb60e21b81526001600160a01b038a81166004830152915192935060009291871691638ee573ac91602480820192602092909190829003018186803b1580156108ec57600080fd5b505afa158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b50516040805163c3c7b9e960e01b81526001600160a01b038b8116600483015291519293506000929188169163c3c7b9e991602480820192602092909190829003018186803b15801561096857600080fd5b505afa15801561097c573d6000803e3d6000fd5b505050506040513d602081101561099257600080fd5b50516040805163114f1b5560e31b81526001600160a01b038c81166004830152915192935060009291891691638a78daa891602480820192602092909190829003018186803b1580156109e457600080fd5b505afa1580156109f8573d6000803e3d6000fd5b505050506040513d6020811015610a0e57600080fd5b505190506000610a3a82610a34600a87900a6104d58a610a2e8b8a6120c8565b9061206f565b906120c8565b90508115610b1f576000886001600160a01b031663627498038d6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a9157600080fd5b505afa158015610aa5573d6000803e3d6000fd5b505050506040513d6020811015610abb57600080fd5b505190506000878211610ad757610ad288836120c8565b610ae1565b610ae182896120c8565b90506000610af3836104d5878561206f565b905082891115610b0e57610b078482611fcf565b9350610b1b565b610b1884826120c8565b93505b5050505b610b298187612030565b985050505050505050505b9392505050565b60606000600f905060008790506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8357600080fd5b505afa158015610b97573d6000803e3d6000fd5b505050506040513d6020811015610bad57600080fd5b50518551909150889060609085026001600160401b0381118015610bd057600080fd5b50604051908082528060200260200182016040528015610bfa578160200160208202803683370190505b50905060005b8751811015611536576000888281518110610c1757fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415610c3f5750895b856001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610c8c57600080fd5b505afa158015610ca0573d6000803e3d6000fd5b505050506040513d6020811015610cb657600080fd5b505183518490848a02908110610cc857fe5b602002602001018181525050856001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051835184906001858b0201908110610d6057fe5b602002602001018181525050856001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610db957600080fd5b505afa158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b5051835184906002858b0201908110610df857fe5b602002602001018181525050856001600160a01b0316632c668ec1828c6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610e5957600080fd5b505afa158015610e6d573d6000803e3d6000fd5b505050506040513d6020811015610e8357600080fd5b5051835184906003858b0201908110610e9857fe5b602002602001018181525050856001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ef157600080fd5b505afa158015610f05573d6000803e3d6000fd5b505050506040513d6020811015610f1b57600080fd5b5051835184906004858b0201908110610f3057fe5b602002602001018181525050856001600160a01b0316634a993ee9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f8957600080fd5b505afa158015610f9d573d6000803e3d6000fd5b505050506040513d6020811015610fb357600080fd5b5051835184906005858b0201908110610fc857fe5b602002602001018181525050856001600160a01b031663ad1e4f8d826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561102157600080fd5b505afa158015611035573d6000803e3d6000fd5b505050506040513d602081101561104b57600080fd5b5051835184906006858b020190811061106057fe5b602002602001018181525050856001600160a01b0316638a78daa8826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d60208110156110e357600080fd5b5051835184906007858b02019081106110f857fe5b602002602001018181525050836001600160a01b0316639698d25a826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561115157600080fd5b505afa158015611165573d6000803e3d6000fd5b505050506040513d602081101561117b57600080fd5b5051835184906008858b020190811061119057fe5b602002602001018181525050836001600160a01b0316631045c74e826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156111e957600080fd5b505afa1580156111fd573d6000803e3d6000fd5b505050506040513d602081101561121357600080fd5b5051835184906009858b020190811061122857fe5b602002602001018181525050856001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561128157600080fd5b505afa158015611295573d6000803e3d6000fd5b505050506040513d60208110156112ab57600080fd5b505183518490600a858b02019081106112c057fe5b602002602001018181525050856001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561131957600080fd5b505afa15801561132d573d6000803e3d6000fd5b505050506040513d602081101561134357600080fd5b505183518490600b858b020190811061135857fe5b602002602001018181525050856001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156113b157600080fd5b505afa1580156113c5573d6000803e3d6000fd5b505050506040513d60208110156113db57600080fd5b505183518490600c858b02019081106113f057fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918816926356c8c2c192604480840193829003018186803b15801561144a57600080fd5b505afa15801561145e573d6000803e3d6000fd5b505050506040513d602081101561147457600080fd5b505183518490600d858b020190811061148957fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918816926356c8c2c192604480840193829003018186803b1580156114e357600080fd5b505afa1580156114f7573d6000803e3d6000fd5b505050506040513d602081101561150d57600080fd5b505183518490600e858b020190811061152257fe5b602090810291909101015250600101610c00565b509a9950505050505050505050565b60008381836115cc57816001600160a01b03166381a612d6866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b5051611646565b816001600160a01b031663e124e6d2866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561161957600080fd5b505afa15801561162d573d6000803e3d6000fd5b505050506040513d602081101561164357600080fd5b50515b90506000611655878787610604565b9050611661818361206f565b979650505050505050565b60606000600e905060008790506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d60208110156116de57600080fd5b50518551909150889060609085026001600160401b038111801561170157600080fd5b5060405190808252806020026020018201604052801561172b578160200160208202803683370190505b50905060005b875181101561153657600088828151811061174857fe5b6020026020010151905060006001600160a01b0316816001600160a01b031614156117705750895b856001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156117bd57600080fd5b505afa1580156117d1573d6000803e3d6000fd5b505050506040513d60208110156117e757600080fd5b505183518490848a029081106117f957fe5b602002602001018181525050856001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d602081101561187c57600080fd5b5051835184906001858b020190811061189157fe5b602002602001018181525050856001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d602081101561191457600080fd5b5051835184906002858b020190811061192957fe5b602002602001018181525050856001600160a01b0316632c668ec1828c6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d60208110156119b457600080fd5b5051835184906003858b02019081106119c957fe5b602002602001018181525050856001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611a2257600080fd5b505afa158015611a36573d6000803e3d6000fd5b505050506040513d6020811015611a4c57600080fd5b5051835184906004858b0201908110611a6157fe5b602002602001018181525050856001600160a01b0316634a993ee9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611aba57600080fd5b505afa158015611ace573d6000803e3d6000fd5b505050506040513d6020811015611ae457600080fd5b5051835184906005858b0201908110611af957fe5b602002602001018181525050856001600160a01b031663ad1e4f8d826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611b5257600080fd5b505afa158015611b66573d6000803e3d6000fd5b505050506040513d6020811015611b7c57600080fd5b5051835184906006858b0201908110611b9157fe5b602002602001018181525050856001600160a01b0316638a78daa8826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611bea57600080fd5b505afa158015611bfe573d6000803e3d6000fd5b505050506040513d6020811015611c1457600080fd5b5051835184906007858b0201908110611c2957fe5b602002602001018181525050836001600160a01b0316639698d25a826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611c8257600080fd5b505afa158015611c96573d6000803e3d6000fd5b505050506040513d6020811015611cac57600080fd5b5051835184906008858b0201908110611cc157fe5b602002602001018181525050856001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d6020811015611d4457600080fd5b5051835184906009858b0201908110611d5957fe5b602002602001018181525050856001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611db257600080fd5b505afa158015611dc6573d6000803e3d6000fd5b505050506040513d6020811015611ddc57600080fd5b505183518490600a858b0201908110611df157fe5b602002602001018181525050856001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611e4a57600080fd5b505afa158015611e5e573d6000803e3d6000fd5b505050506040513d6020811015611e7457600080fd5b505183518490600b858b0201908110611e8957fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918816926356c8c2c192604480840193829003018186803b158015611ee357600080fd5b505afa158015611ef7573d6000803e3d6000fd5b505050506040513d6020811015611f0d57600080fd5b505183518490600c858b0201908110611f2257fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918816926356c8c2c192604480840193829003018186803b158015611f7c57600080fd5b505afa158015611f90573d6000803e3d6000fd5b505050506040513d6020811015611fa657600080fd5b505183518490600d858b0201908110611fbb57fe5b602090810291909101015250600101611731565b600082820183811015612027576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b90505b92915050565b600061202783836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061210a565b60008261207e5750600061202a565b8282028284828161208b57fe5b04146120275760405162461bcd60e51b81526004018080602001828103825260218152602001806122076021913960400191505060405180910390fd5b600061202783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121ac565b600081836121965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215b578181015183820152602001612143565b50505050905090810190601f1680156121885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816121a257fe5b0495945050505050565b600081848411156121fe5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561215b578181015183820152602001612143565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212208ded2bcc94340d6b3140cb5b482f3a457a753d8a9e6d4aa3c7d4ce1e9a8ada0664736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100575760003560e01c806357c630b51461005c5780639635bbfb1461016e578063d3f3265c146101b8578063d490e1a314610281578063f75e8101146102b9575b600080fd5b61011e6004803603608081101561007257600080fd5b6001600160a01b0382358116926020810135821692604082013590921691810190608081016060820135600160201b8111156100ad57600080fd5b8201836020820111156100bf57600080fd5b803590602001918460208302840111600160201b831117156100e057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610382945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015a578181015183820152602001610142565b505050509050019250505060405180910390f35b6101a66004803603606081101561018457600080fd5b506001600160a01b038135811691602081013590911690604001351515610604565b60408051918252519081900360200190f35b61011e600480360360a08110156101ce57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561021057600080fd5b82018360208201111561022257600080fd5b803590602001918460208302840111600160201b8311171561024357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610b3b945050505050565b6101a66004803603606081101561029757600080fd5b506001600160a01b038135811691602081013590911690604001351515611545565b61011e600480360360a08110156102cf57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561031157600080fd5b82018360208201111561032357600080fd5b803590602001918460208302840111600160201b8311171561034457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061166c945050505050565b606060006002905060008590506060816001600160a01b031663ed0d1c046040518163ffffffff1660e01b815260040160006040518083038186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561040757600080fd5b8101908080516040519392919084600160201b82111561042657600080fd5b90830190602082018581111561043b57600080fd5b82518660208202830111600160201b8211171561045757600080fd5b82525081516020918201928201910280838360005b8381101561048457818101518382015260200161046c565b50505050905001604052505050905060006104db60026104d5846001815181106104aa57fe5b6020026020010151856000815181106104bf57fe5b6020026020010151611fcf90919063ffffffff16565b90612030565b90506060848751026001600160401b03811180156104f857600080fd5b50604051908082528060200260200182016040528015610522578160200160208202803683370190505b50905060005b87518110156105f657600088828151811061053f57fe5b6020026020010151905060006001600160a01b0316816001600160a01b031614156105675750885b60006105758d836000611545565b905060006105858e846001611545565b9050600061059860026104d58585611fcf565b905080868b8702815181106105a957fe5b60209081029190910101526105ca876104d583670de0b6b3a764000061206f565b868b8702600101815181106105db57fe5b60209081029190910101525050600190920191506105289050565b509998505050505050505050565b6000808490506000816001600160a01b031663daf9c210866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d602081101561068357600080fd5b505190508061069757600092505050610b34565b816001600160a01b03166342b60b03866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50511561072057600092505050610b34565b6000846107a557826001600160a01b03166381a612d6876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561077457600080fd5b505afa158015610788573d6000803e3d6000fd5b505050506040513d602081101561079e57600080fd5b505161081f565b826001600160a01b031663e124e6d2876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156107f257600080fd5b505afa158015610806573d6000803e3d6000fd5b505050506040513d602081101561081c57600080fd5b50515b90506000836001600160a01b03166352f55eed886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561087057600080fd5b505afa158015610884573d6000803e3d6000fd5b505050506040513d602081101561089a57600080fd5b5051604080516323b95ceb60e21b81526001600160a01b038a81166004830152915192935060009291871691638ee573ac91602480820192602092909190829003018186803b1580156108ec57600080fd5b505afa158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b50516040805163c3c7b9e960e01b81526001600160a01b038b8116600483015291519293506000929188169163c3c7b9e991602480820192602092909190829003018186803b15801561096857600080fd5b505afa15801561097c573d6000803e3d6000fd5b505050506040513d602081101561099257600080fd5b50516040805163114f1b5560e31b81526001600160a01b038c81166004830152915192935060009291891691638a78daa891602480820192602092909190829003018186803b1580156109e457600080fd5b505afa1580156109f8573d6000803e3d6000fd5b505050506040513d6020811015610a0e57600080fd5b505190506000610a3a82610a34600a87900a6104d58a610a2e8b8a6120c8565b9061206f565b906120c8565b90508115610b1f576000886001600160a01b031663627498038d6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a9157600080fd5b505afa158015610aa5573d6000803e3d6000fd5b505050506040513d6020811015610abb57600080fd5b505190506000878211610ad757610ad288836120c8565b610ae1565b610ae182896120c8565b90506000610af3836104d5878561206f565b905082891115610b0e57610b078482611fcf565b9350610b1b565b610b1884826120c8565b93505b5050505b610b298187612030565b985050505050505050505b9392505050565b60606000600f905060008790506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8357600080fd5b505afa158015610b97573d6000803e3d6000fd5b505050506040513d6020811015610bad57600080fd5b50518551909150889060609085026001600160401b0381118015610bd057600080fd5b50604051908082528060200260200182016040528015610bfa578160200160208202803683370190505b50905060005b8751811015611536576000888281518110610c1757fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415610c3f5750895b856001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610c8c57600080fd5b505afa158015610ca0573d6000803e3d6000fd5b505050506040513d6020811015610cb657600080fd5b505183518490848a02908110610cc857fe5b602002602001018181525050856001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051835184906001858b0201908110610d6057fe5b602002602001018181525050856001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610db957600080fd5b505afa158015610dcd573d6000803e3d6000fd5b505050506040513d6020811015610de357600080fd5b5051835184906002858b0201908110610df857fe5b602002602001018181525050856001600160a01b0316632c668ec1828c6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015610e5957600080fd5b505afa158015610e6d573d6000803e3d6000fd5b505050506040513d6020811015610e8357600080fd5b5051835184906003858b0201908110610e9857fe5b602002602001018181525050856001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ef157600080fd5b505afa158015610f05573d6000803e3d6000fd5b505050506040513d6020811015610f1b57600080fd5b5051835184906004858b0201908110610f3057fe5b602002602001018181525050856001600160a01b0316634a993ee9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f8957600080fd5b505afa158015610f9d573d6000803e3d6000fd5b505050506040513d6020811015610fb357600080fd5b5051835184906005858b0201908110610fc857fe5b602002602001018181525050856001600160a01b031663ad1e4f8d826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561102157600080fd5b505afa158015611035573d6000803e3d6000fd5b505050506040513d602081101561104b57600080fd5b5051835184906006858b020190811061106057fe5b602002602001018181525050856001600160a01b0316638a78daa8826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d60208110156110e357600080fd5b5051835184906007858b02019081106110f857fe5b602002602001018181525050836001600160a01b0316639698d25a826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561115157600080fd5b505afa158015611165573d6000803e3d6000fd5b505050506040513d602081101561117b57600080fd5b5051835184906008858b020190811061119057fe5b602002602001018181525050836001600160a01b0316631045c74e826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156111e957600080fd5b505afa1580156111fd573d6000803e3d6000fd5b505050506040513d602081101561121357600080fd5b5051835184906009858b020190811061122857fe5b602002602001018181525050856001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561128157600080fd5b505afa158015611295573d6000803e3d6000fd5b505050506040513d60208110156112ab57600080fd5b505183518490600a858b02019081106112c057fe5b602002602001018181525050856001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561131957600080fd5b505afa15801561132d573d6000803e3d6000fd5b505050506040513d602081101561134357600080fd5b505183518490600b858b020190811061135857fe5b602002602001018181525050856001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156113b157600080fd5b505afa1580156113c5573d6000803e3d6000fd5b505050506040513d60208110156113db57600080fd5b505183518490600c858b02019081106113f057fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918816926356c8c2c192604480840193829003018186803b15801561144a57600080fd5b505afa15801561145e573d6000803e3d6000fd5b505050506040513d602081101561147457600080fd5b505183518490600d858b020190811061148957fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918816926356c8c2c192604480840193829003018186803b1580156114e357600080fd5b505afa1580156114f7573d6000803e3d6000fd5b505050506040513d602081101561150d57600080fd5b505183518490600e858b020190811061152257fe5b602090810291909101015250600101610c00565b509a9950505050505050505050565b60008381836115cc57816001600160a01b03166381a612d6866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b5051611646565b816001600160a01b031663e124e6d2866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561161957600080fd5b505afa15801561162d573d6000803e3d6000fd5b505050506040513d602081101561164357600080fd5b50515b90506000611655878787610604565b9050611661818361206f565b979650505050505050565b60606000600e905060008790506000816001600160a01b031663741bef1a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d60208110156116de57600080fd5b50518551909150889060609085026001600160401b038111801561170157600080fd5b5060405190808252806020026020018201604052801561172b578160200160208202803683370190505b50905060005b875181101561153657600088828151811061174857fe5b6020026020010151905060006001600160a01b0316816001600160a01b031614156117705750895b856001600160a01b03166352f55eed826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156117bd57600080fd5b505afa1580156117d1573d6000803e3d6000fd5b505050506040513d60208110156117e757600080fd5b505183518490848a029081106117f957fe5b602002602001018181525050856001600160a01b031663c3c7b9e9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d602081101561187c57600080fd5b5051835184906001858b020190811061189157fe5b602002602001018181525050856001600160a01b0316631aa4ace5826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d602081101561191457600080fd5b5051835184906002858b020190811061192957fe5b602002602001018181525050856001600160a01b0316632c668ec1828c6040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d60208110156119b457600080fd5b5051835184906003858b02019081106119c957fe5b602002602001018181525050856001600160a01b031663ab2f3ad4826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611a2257600080fd5b505afa158015611a36573d6000803e3d6000fd5b505050506040513d6020811015611a4c57600080fd5b5051835184906004858b0201908110611a6157fe5b602002602001018181525050856001600160a01b0316634a993ee9826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611aba57600080fd5b505afa158015611ace573d6000803e3d6000fd5b505050506040513d6020811015611ae457600080fd5b5051835184906005858b0201908110611af957fe5b602002602001018181525050856001600160a01b031663ad1e4f8d826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611b5257600080fd5b505afa158015611b66573d6000803e3d6000fd5b505050506040513d6020811015611b7c57600080fd5b5051835184906006858b0201908110611b9157fe5b602002602001018181525050856001600160a01b0316638a78daa8826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611bea57600080fd5b505afa158015611bfe573d6000803e3d6000fd5b505050506040513d6020811015611c1457600080fd5b5051835184906007858b0201908110611c2957fe5b602002602001018181525050836001600160a01b0316639698d25a826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611c8257600080fd5b505afa158015611c96573d6000803e3d6000fd5b505050506040513d6020811015611cac57600080fd5b5051835184906008858b0201908110611cc157fe5b602002602001018181525050856001600160a01b03166381a612d6826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d6020811015611d4457600080fd5b5051835184906009858b0201908110611d5957fe5b602002602001018181525050856001600160a01b031663e124e6d2826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611db257600080fd5b505afa158015611dc6573d6000803e3d6000fd5b505050506040513d6020811015611ddc57600080fd5b505183518490600a858b0201908110611df157fe5b602002602001018181525050856001600160a01b031663f07456ce826040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611e4a57600080fd5b505afa158015611e5e573d6000803e3d6000fd5b505050506040513d6020811015611e7457600080fd5b505183518490600b858b0201908110611e8957fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600060248301529151918816926356c8c2c192604480840193829003018186803b158015611ee357600080fd5b505afa158015611ef7573d6000803e3d6000fd5b505050506040513d6020811015611f0d57600080fd5b505183518490600c858b0201908110611f2257fe5b602090810291909101810191909152604080516356c8c2c160e01b81526001600160a01b038481166004830152600160248301529151918816926356c8c2c192604480840193829003018186803b158015611f7c57600080fd5b505afa158015611f90573d6000803e3d6000fd5b505050506040513d6020811015611fa657600080fd5b505183518490600d858b0201908110611fbb57fe5b602090810291909101015250600101611731565b600082820183811015612027576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b90505b92915050565b600061202783836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061210a565b60008261207e5750600061202a565b8282028284828161208b57fe5b04146120275760405162461bcd60e51b81526004018080602001828103825260218152602001806122076021913960400191505060405180910390fd5b600061202783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121ac565b600081836121965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561215b578181015183820152602001612143565b50505050905090810190601f1680156121885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816121a257fe5b0495945050505050565b600081848411156121fe5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561215b578181015183820152602001612143565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212208ded2bcc94340d6b3140cb5b482f3a457a753d8a9e6d4aa3c7d4ce1e9a8ada0664736f6c634300060c0033
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.