Overview
ETH Balance
195 wei
Eth Value
Less Than $0.01 (@ $3,131.01/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 597 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Cancel And Trans... | 11880303 | 1439 days ago | IN | 0 ETH | 0.04171267 | ||||
Claim Tokens | 11768876 | 1456 days ago | IN | 0 ETH | 0.02416969 | ||||
Claim Tokens | 11765186 | 1456 days ago | IN | 0 ETH | 0.02636976 | ||||
Claim Tokens | 11764195 | 1457 days ago | IN | 0 ETH | 0.02856724 | ||||
Claim Tokens | 11762696 | 1457 days ago | IN | 0 ETH | 0.01801933 | ||||
Claim Tokens | 11762643 | 1457 days ago | IN | 0 ETH | 0.01670084 | ||||
Claim Tokens | 11757559 | 1458 days ago | IN | 0 ETH | 0.02219454 | ||||
Claim Tokens | 11757351 | 1458 days ago | IN | 0 ETH | 0.01256958 | ||||
Claim Tokens | 11757121 | 1458 days ago | IN | 0 ETH | 0.01516261 | ||||
Claim Tokens | 11757038 | 1458 days ago | IN | 0 ETH | 0.01889832 | ||||
Claim Tokens | 11756804 | 1458 days ago | IN | 0 ETH | 0.01626135 | ||||
Transfer | 11756565 | 1458 days ago | IN | 0.03 ETH | 0.0021 | ||||
Transfer | 11756558 | 1458 days ago | IN | 0.03 ETH | 0.001638 | ||||
Claim Tokens | 11756407 | 1458 days ago | IN | 0 ETH | 0.0164811 | ||||
Claim Tokens | 11756379 | 1458 days ago | IN | 0 ETH | 0.01516261 | ||||
Claim Tokens | 11756254 | 1458 days ago | IN | 0 ETH | 0.01757984 | ||||
Claim Tokens | 11756113 | 1458 days ago | IN | 0 ETH | 0.01318488 | ||||
Claim Tokens | 11755392 | 1458 days ago | IN | 0 ETH | 0.01748157 | ||||
Claim Tokens | 11755185 | 1458 days ago | IN | 0 ETH | 0.01144627 | ||||
Claim Tokens | 11755171 | 1458 days ago | IN | 0 ETH | 0.01207061 | ||||
Claim Tokens | 11755144 | 1458 days ago | IN | 0 ETH | 0.0178978 | ||||
Claim Tokens | 11755136 | 1458 days ago | IN | 0 ETH | 0.01477609 | ||||
Claim Tokens | 11755124 | 1458 days ago | IN | 0 ETH | 0.02143574 | ||||
Claim Tokens | 11755121 | 1458 days ago | IN | 0 ETH | 0.0315917 | ||||
Claim Tokens | 11754937 | 1458 days ago | IN | 0 ETH | 0.02018705 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11768876 | 1456 days ago | 0.73605947 ETH | ||||
11765186 | 1456 days ago | 0.73605947 ETH | ||||
11764195 | 1457 days ago | 0.73605947 ETH | ||||
11762696 | 1457 days ago | 0.73605947 ETH | ||||
11762643 | 1457 days ago | 0.73605947 ETH | ||||
11757559 | 1458 days ago | 0.73605947 ETH | ||||
11757351 | 1458 days ago | 0.73605947 ETH | ||||
11757121 | 1458 days ago | 0.73605947 ETH | ||||
11757038 | 1458 days ago | 0.73605947 ETH | ||||
11756804 | 1458 days ago | 0.73605947 ETH | ||||
11756407 | 1458 days ago | 0.73605947 ETH | ||||
11756379 | 1458 days ago | 0.73605947 ETH | ||||
11756254 | 1458 days ago | 0.73605947 ETH | ||||
11756113 | 1458 days ago | 0.73605947 ETH | ||||
11755392 | 1458 days ago | 0.73605947 ETH | ||||
11755185 | 1458 days ago | 0.73605947 ETH | ||||
11755171 | 1458 days ago | 0.73605947 ETH | ||||
11755144 | 1458 days ago | 0.73605947 ETH | ||||
11755136 | 1458 days ago | 0.73605947 ETH | ||||
11755124 | 1458 days ago | 0.73605947 ETH | ||||
11755121 | 1458 days ago | 0.73605947 ETH | ||||
11754937 | 1458 days ago | 0.73605947 ETH | ||||
11754764 | 1458 days ago | 0.73605947 ETH | ||||
11754614 | 1458 days ago | 0.73605947 ETH | ||||
11754572 | 1458 days ago | 0.73605947 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SafuInvestmentsPresale
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; import "./SafeMath.sol"; import "./IERC20.sol"; interface IUniswapV2Router02 { function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract SafuInvestmentsPresale { using SafeMath for uint256; IUniswapV2Router02 private constant uniswapRouter = IUniswapV2Router02(address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)); address payable internal safuFactoryAddress; // address that creates the presale contracts address payable public safuDevAddress; // address where dev fees will be transferred to address public safuLiqLockAddress; // address where LP tokens will be locked IERC20 public token; // token that will be sold address payable public presaleCreatorAddress; // address where percentage of invested wei will be transferred to address public unsoldTokensDumpAddress; // address where unsold tokens will be transferred to mapping(address => uint256) public investments; // total wei invested per address mapping(address => bool) public whitelistedAddresses; // addresses eligible in presale mapping(address => bool) public claimed; // if true, it means investor already claimed the tokens or got a refund uint256 private safuDevFeePercentage; // dev fee to support the development of Safu Investments uint256 private safuMinDevFeeInWei; // minimum fixed dev fee to support the development of Safu Investments uint256 public safuId; // used for fetching presale without referencing its address uint256 public totalInvestorsCount; // total investors count uint256 public presaleCreatorClaimWei; // wei to transfer to presale creator per investor claim uint256 public presaleCreatorClaimTime; // time when presale creator can collect funds raise uint256 public totalCollectedWei; // total wei collected uint256 public totalTokens; // total tokens to be sold uint256 public tokensLeft; // available tokens to be sold uint256 public tokenPriceInWei; // token presale wei price per 1 token uint256 public hardCapInWei; // maximum wei amount that can be invested in presale uint256 public softCapInWei; // minimum wei amount to invest in presale, if not met, invested wei will be returned uint256 public maxInvestInWei; // maximum wei amount that can be invested per wallet address uint256 public minInvestInWei; // minimum wei amount that can be invested per wallet address uint256 public openTime; // time when presale starts, investing is allowed uint256 public closeTime; // time when presale closes, investing is not allowed uint256 public uniListingPriceInWei; // token price when listed in Uniswap uint256 public uniLiquidityAddingTime; // time when adding of liquidity in uniswap starts, investors can claim their tokens afterwards uint256 public uniLPTokensLockDurationInDays; // how many days after the liquity is added the presale creator can unlock the LP tokens uint256 public uniLiquidityPercentageAllocation; // how many percentage of the total invested wei that will be added as liquidity bool public uniLiquidityAdded = false; // if true, liquidity is added in Uniswap and lp tokens are locked bool public onlyWhitelistedAddressesAllowed = true; // if true, only whitelisted addresses can invest bool public safuDevFeesExempted = false; // if true, presale will be exempted from dev fees bool public presaleCancelled = false; // if true, investing will not be allowed, investors can withdraw, presale creator can withdraw their tokens bytes32 public saleTitle; bytes32 public linkTelegram; bytes32 public linkTwitter; bytes32 public linkDiscord; bytes32 public linkWebsite; constructor(address _safuFactoryAddress, address _safuDevAddress) public { require(_safuFactoryAddress != address(0)); require(_safuDevAddress != address(0)); safuFactoryAddress = payable(_safuFactoryAddress); safuDevAddress = payable(_safuDevAddress); } modifier onlySafuDev() { require(safuFactoryAddress == msg.sender || safuDevAddress == msg.sender); _; } modifier onlySafuFactory() { require(safuFactoryAddress == msg.sender); _; } modifier onlyPresaleCreatorOrSafuFactory() { require( presaleCreatorAddress == msg.sender || safuFactoryAddress == msg.sender, "Not presale creator or factory" ); _; } modifier onlyPresaleCreator() { require(presaleCreatorAddress == msg.sender, "Not presale creator"); _; } modifier whitelistedAddressOnly() { require( !onlyWhitelistedAddressesAllowed || whitelistedAddresses[msg.sender], "Address not whitelisted" ); _; } modifier presaleIsNotCancelled() { require(!presaleCancelled, "Cancelled"); _; } modifier investorOnly() { require(investments[msg.sender] > 0, "Not an investor"); _; } modifier notYetClaimedOrRefunded() { require(!claimed[msg.sender], "Already claimed or refunded"); _; } function setAddressInfo( address _presaleCreator, address _tokenAddress, address _unsoldTokensDumpAddress ) external onlySafuFactory { require(_presaleCreator != address(0)); require(_tokenAddress != address(0)); require(_unsoldTokensDumpAddress != address(0)); presaleCreatorAddress = payable(_presaleCreator); token = IERC20(_tokenAddress); unsoldTokensDumpAddress = _unsoldTokensDumpAddress; } function setGeneralInfo( uint256 _totalTokens, uint256 _tokenPriceInWei, uint256 _hardCapInWei, uint256 _softCapInWei, uint256 _maxInvestInWei, uint256 _minInvestInWei, uint256 _openTime, uint256 _closeTime ) external onlySafuFactory { require(_totalTokens > 0); require(_tokenPriceInWei > 0); require(_openTime > 0); require(_closeTime > 0); require(_hardCapInWei > 0); // Hard cap > (token amount * token price) require(_hardCapInWei <= _totalTokens.mul(_tokenPriceInWei)); // Soft cap > to hard cap require(_softCapInWei <= _hardCapInWei); // Min. wei investment > max. wei investment require(_minInvestInWei <= _maxInvestInWei); // Open time >= close time require(_openTime < _closeTime); totalTokens = _totalTokens; tokensLeft = _totalTokens; tokenPriceInWei = _tokenPriceInWei; hardCapInWei = _hardCapInWei; softCapInWei = _softCapInWei; maxInvestInWei = _maxInvestInWei; minInvestInWei = _minInvestInWei; openTime = _openTime; closeTime = _closeTime; } function setUniswapInfo( uint256 _uniListingPriceInWei, uint256 _uniLiquidityAddingTime, uint256 _uniLPTokensLockDurationInDays, uint256 _uniLiquidityPercentageAllocation ) external onlySafuFactory { require(_uniListingPriceInWei > 0); require(_uniLiquidityAddingTime > 0); require(_uniLPTokensLockDurationInDays > 0); require(_uniLiquidityPercentageAllocation > 0); require(closeTime > 0); // Listing time < close time require(_uniLiquidityAddingTime >= closeTime); uniListingPriceInWei = _uniListingPriceInWei; uniLiquidityAddingTime = _uniLiquidityAddingTime; uniLPTokensLockDurationInDays = _uniLPTokensLockDurationInDays; uniLiquidityPercentageAllocation = _uniLiquidityPercentageAllocation; } function setStringInfo( bytes32 _saleTitle, bytes32 _linkTelegram, bytes32 _linkDiscord, bytes32 _linkTwitter, bytes32 _linkWebsite ) external onlyPresaleCreatorOrSafuFactory { saleTitle = _saleTitle; linkTelegram = _linkTelegram; linkDiscord = _linkDiscord; linkTwitter = _linkTwitter; linkWebsite = _linkWebsite; } function setSafuInfo( address _safuLiqLockAddress, uint256 _safuDevFeePercentage, uint256 _safuMinDevFeeInWei, uint256 _safuId ) external onlySafuDev { safuLiqLockAddress = _safuLiqLockAddress; safuDevFeePercentage = _safuDevFeePercentage; safuMinDevFeeInWei = _safuMinDevFeeInWei; safuId = _safuId; } function setSafuDevFeesExempted(bool _safuDevFeesExempted) external onlySafuDev { safuDevFeesExempted = _safuDevFeesExempted; } function setOnlyWhitelistedAddressesAllowed(bool _onlyWhitelistedAddressesAllowed) external onlyPresaleCreatorOrSafuFactory { onlyWhitelistedAddressesAllowed = _onlyWhitelistedAddressesAllowed; } function addwhitelistedAddresses(address[] calldata _whitelistedAddresses) external onlyPresaleCreatorOrSafuFactory { onlyWhitelistedAddressesAllowed = _whitelistedAddresses.length > 0; for (uint256 i = 0; i < _whitelistedAddresses.length; i++) { whitelistedAddresses[_whitelistedAddresses[i]] = true; } } function getTokenAmount(uint256 _weiAmount) internal view returns (uint256) { return _weiAmount.mul(1e18).div(tokenPriceInWei); } function invest() public payable whitelistedAddressOnly presaleIsNotCancelled { require(block.timestamp >= openTime, "Not yet opened"); require(block.timestamp < closeTime, "Closed"); require(totalCollectedWei < hardCapInWei, "Hard cap reached"); require(tokensLeft > 0); require(msg.value <= tokensLeft.mul(tokenPriceInWei)); uint256 totalInvestmentInWei = investments[msg.sender].add(msg.value); require(totalInvestmentInWei >= minInvestInWei, "Min investment not reached"); require(maxInvestInWei == 0 || totalInvestmentInWei <= maxInvestInWei, "Max investment reached"); if (investments[msg.sender] == 0) { totalInvestorsCount = totalInvestorsCount.add(1); } totalCollectedWei = totalCollectedWei.add(msg.value); investments[msg.sender] = totalInvestmentInWei; tokensLeft = tokensLeft.sub(getTokenAmount(msg.value)); } receive() external payable { invest(); } function addLiquidityAndLockLPTokens() external presaleIsNotCancelled { require(totalCollectedWei > 0); require(!uniLiquidityAdded, "Liquidity already added"); require( !onlyWhitelistedAddressesAllowed || whitelistedAddresses[msg.sender] || msg.sender == presaleCreatorAddress, "Not whitelisted or not presale creator" ); if (totalCollectedWei == hardCapInWei && block.timestamp < uniLiquidityAddingTime) { require(msg.sender == presaleCreatorAddress, "Not presale creator"); } else if (block.timestamp >= uniLiquidityAddingTime) { require( msg.sender == presaleCreatorAddress || investments[msg.sender] > 0, "Not presale creator or investor" ); require(totalCollectedWei >= softCapInWei, "Soft cap not reached"); } else { revert("Liquidity cannot be added yet"); } uniLiquidityAdded = true; uint256 finalTotalCollectedWei = totalCollectedWei; uint256 safuDevFeeInWei; if (!safuDevFeesExempted) { uint256 pctDevFee = finalTotalCollectedWei.mul(safuDevFeePercentage).div(100); safuDevFeeInWei = pctDevFee > safuMinDevFeeInWei || safuMinDevFeeInWei >= finalTotalCollectedWei ? pctDevFee : safuMinDevFeeInWei; } if (safuDevFeeInWei > 0) { finalTotalCollectedWei = finalTotalCollectedWei.sub(safuDevFeeInWei); safuDevAddress.transfer(safuDevFeeInWei); } uint256 liqPoolEthAmount = finalTotalCollectedWei.mul(uniLiquidityPercentageAllocation).div(100); uint256 liqPoolTokenAmount = liqPoolEthAmount.mul(1e18).div(uniListingPriceInWei); token.approve(address(uniswapRouter), liqPoolTokenAmount); uniswapRouter.addLiquidityETH{value : liqPoolEthAmount}( address(token), liqPoolTokenAmount, 0, 0, safuLiqLockAddress, block.timestamp.add(15 minutes) ); uint256 unsoldTokensAmount = token.balanceOf(address(this)).sub(getTokenAmount(totalCollectedWei)); if (unsoldTokensAmount > 0) { token.transfer(unsoldTokensDumpAddress, unsoldTokensAmount); } presaleCreatorClaimWei = address(this).balance.mul(1e18).div(totalInvestorsCount.mul(1e18)); presaleCreatorClaimTime = block.timestamp + 1 days; } function claimTokens() external whitelistedAddressOnly presaleIsNotCancelled investorOnly notYetClaimedOrRefunded { require(uniLiquidityAdded, "Liquidity not yet added"); claimed[msg.sender] = true; // make sure this goes first before transfer to prevent reentrancy token.transfer(msg.sender, getTokenAmount(investments[msg.sender])); uint256 balance = address(this).balance; if (balance > 0) { uint256 funds = presaleCreatorClaimWei > balance ? balance : presaleCreatorClaimWei; presaleCreatorAddress.transfer(funds); } } function getRefund() external whitelistedAddressOnly investorOnly notYetClaimedOrRefunded { if (!presaleCancelled) { require(block.timestamp >= openTime, "Not yet opened"); require(block.timestamp >= closeTime, "Not yet closed"); require(softCapInWei > 0, "No soft cap"); require(totalCollectedWei < softCapInWei, "Soft cap reached"); } claimed[msg.sender] = true; // make sure this goes first before transfer to prevent reentrancy uint256 investment = investments[msg.sender]; uint256 presaleBalance = address(this).balance; require(presaleBalance > 0); if (investment > presaleBalance) { investment = presaleBalance; } if (investment > 0) { msg.sender.transfer(investment); } } function cancelAndTransferTokensToPresaleCreator() external { if (!uniLiquidityAdded && presaleCreatorAddress != msg.sender && safuDevAddress != msg.sender) { revert(); } if (uniLiquidityAdded && safuDevAddress != msg.sender) { revert(); } require(!presaleCancelled); presaleCancelled = true; uint256 balance = token.balanceOf(address(this)); if (balance > 0) { token.transfer(presaleCreatorAddress, balance); } } function collectFundsRaised() onlyPresaleCreator external { require(uniLiquidityAdded); require(!presaleCancelled); require(block.timestamp >= presaleCreatorClaimTime); if (address(this).balance > 0) { presaleCreatorAddress.transfer(address(this).balance); } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @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; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_safuFactoryAddress","type":"address"},{"internalType":"address","name":"_safuDevAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"addLiquidityAndLockLPTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_whitelistedAddresses","type":"address[]"}],"name":"addwhitelistedAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAndTransferTokensToPresaleCreator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectFundsRaised","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hardCapInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"invest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"linkDiscord","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"linkTelegram","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"linkTwitter","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"linkWebsite","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxInvestInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minInvestInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onlyWhitelistedAddressesAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleCancelled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleCreatorAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleCreatorClaimTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleCreatorClaimWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safuDevAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safuDevFeesExempted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safuId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safuLiqLockAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleTitle","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_presaleCreator","type":"address"},{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_unsoldTokensDumpAddress","type":"address"}],"name":"setAddressInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalTokens","type":"uint256"},{"internalType":"uint256","name":"_tokenPriceInWei","type":"uint256"},{"internalType":"uint256","name":"_hardCapInWei","type":"uint256"},{"internalType":"uint256","name":"_softCapInWei","type":"uint256"},{"internalType":"uint256","name":"_maxInvestInWei","type":"uint256"},{"internalType":"uint256","name":"_minInvestInWei","type":"uint256"},{"internalType":"uint256","name":"_openTime","type":"uint256"},{"internalType":"uint256","name":"_closeTime","type":"uint256"}],"name":"setGeneralInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_onlyWhitelistedAddressesAllowed","type":"bool"}],"name":"setOnlyWhitelistedAddressesAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_safuDevFeesExempted","type":"bool"}],"name":"setSafuDevFeesExempted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_safuLiqLockAddress","type":"address"},{"internalType":"uint256","name":"_safuDevFeePercentage","type":"uint256"},{"internalType":"uint256","name":"_safuMinDevFeeInWei","type":"uint256"},{"internalType":"uint256","name":"_safuId","type":"uint256"}],"name":"setSafuInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_saleTitle","type":"bytes32"},{"internalType":"bytes32","name":"_linkTelegram","type":"bytes32"},{"internalType":"bytes32","name":"_linkDiscord","type":"bytes32"},{"internalType":"bytes32","name":"_linkTwitter","type":"bytes32"},{"internalType":"bytes32","name":"_linkWebsite","type":"bytes32"}],"name":"setStringInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_uniListingPriceInWei","type":"uint256"},{"internalType":"uint256","name":"_uniLiquidityAddingTime","type":"uint256"},{"internalType":"uint256","name":"_uniLPTokensLockDurationInDays","type":"uint256"},{"internalType":"uint256","name":"_uniLiquidityPercentageAllocation","type":"uint256"}],"name":"setUniswapInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"softCapInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPriceInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCollectedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInvestorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniLPTokensLockDurationInDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniLiquidityAddingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniLiquidityPercentageAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniListingPriceInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unsoldTokensDumpAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000601d60006101000a81548160ff0219169083151502179055506001601d60016101000a81548160ff0219169083151502179055506000601d60026101000a81548160ff0219169083151502179055506000601d60036101000a81548160ff0219169083151502179055503480156200007d57600080fd5b5060405162003e9838038062003e9883398181016040526040811015620000a357600080fd5b810190808051906020019092919080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000f957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200013457600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050613cd180620001c76000396000f3fe6080604052600436106102b25760003560e01c806389771dd811610175578063c36002c9116100dc578063d6c86b1b11610095578063e8b5e51f1161006f578063e8b5e51f14610c6d578063eaa2288b14610c77578063f24ec90814610cda578063fc0c546a14610d49576102c1565b8063d6c86b1b14610bec578063e47935e614610c17578063e861e34d14610c42576102c1565b8063c36002c914610ad4578063c502b13b14610aeb578063c51d16b614610b16578063c884ef8314610b41578063ce8f582e14610ba8578063d5933c2c14610bbf576102c1565b8063a999ac321161012e578063a999ac32146109be578063a9cbc798146109ff578063b1406b7914610a2a578063b2d5ae4414610a67578063b31f8f9314610a7e578063b425688814610aa9576102c1565b806389771dd8146107e357806389bc9cb51461080e5780638a6688f11461089457806396b98862146108ed5780639fa1eccc14610952578063a2460d2e1461097d576102c1565b806335d079de1161021957806355973a90116101d257806355973a90146106f3578063627749e6146107205780636cb962871461074b5780637275ae1414610762578063744583061461078d5780637e1c0c09146107b8576102c1565b806335d079de146105895780634760eb25146105ca57806348c54b9d146105f55780634b8eb8551461060c5780634b9c4cb31461063757806350c73391146106c8576102c1565b806318cc60e41161026b57806318cc60e4146104085780631c194ba914610445578063261ad0c5146104c75780632a00551e146104f25780632f8de8101461051d57806335c5b37114610548576102c1565b806303205053146102c6578063032e1cee146102f3578063057bdd441461031e57806306c933d81461034b5780630ca99ca8146103b25780630cdc1fc5146103dd576102c1565b366102c1576102bf610d8a565b005b600080fd5b3480156102d257600080fd5b506102db6112bb565b60405180821515815260200191505060405180910390f35b3480156102ff57600080fd5b506103086112ce565b6040518082815260200191505060405180910390f35b34801561032a57600080fd5b506103336112d4565b60405180821515815260200191505060405180910390f35b34801561035757600080fd5b5061039a6004803603602081101561036e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e7565b60405180821515815260200191505060405180910390f35b3480156103be57600080fd5b506103c7611307565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506103f261130d565b6040518082815260200191505060405180910390f35b34801561041457600080fd5b506104436004803603602081101561042b57600080fd5b81019080803515159060200190929190505050611313565b005b34801561045157600080fd5b506104c5600480360361010081101561046957600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506113e0565b005b3480156104d357600080fd5b506104dc611507565b6040518082815260200191505060405180910390f35b3480156104fe57600080fd5b5061050761150d565b6040518082815260200191505060405180910390f35b34801561052957600080fd5b50610532611513565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b5061055d611519565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059557600080fd5b5061059e61153f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d657600080fd5b506105df611565565b6040518082815260200191505060405180910390f35b34801561060157600080fd5b5061060a61156b565b005b34801561061857600080fd5b50610621611abd565b6040518082815260200191505060405180910390f35b34801561064357600080fd5b506106c66004803603606081101561065a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac3565b005b3480156106d457600080fd5b506106dd611c91565b6040518082815260200191505060405180910390f35b3480156106ff57600080fd5b50610708611c97565b60405180821515815260200191505060405180910390f35b34801561072c57600080fd5b50610735611caa565b6040518082815260200191505060405180910390f35b34801561075757600080fd5b50610760611cb0565b005b34801561076e57600080fd5b50610777611e2a565b6040518082815260200191505060405180910390f35b34801561079957600080fd5b506107a2611e30565b6040518082815260200191505060405180910390f35b3480156107c457600080fd5b506107cd611e36565b6040518082815260200191505060405180910390f35b3480156107ef57600080fd5b506107f8611e3c565b6040518082815260200191505060405180910390f35b34801561081a57600080fd5b506108926004803603602081101561083157600080fd5b810190808035906020019064010000000081111561084e57600080fd5b82018360208201111561086057600080fd5b8035906020019184602083028401116401000000008311171561088257600080fd5b9091929391929390505050611e42565b005b3480156108a057600080fd5b506108eb600480360360808110156108b757600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919050505061201b565b005b3480156108f957600080fd5b5061093c6004803603602081101561091057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120e7565b6040518082815260200191505060405180910390f35b34801561095e57600080fd5b506109676120ff565b6040518082815260200191505060405180910390f35b34801561098957600080fd5b50610992612105565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109ca57600080fd5b506109d361212b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a0b57600080fd5b50610a14612151565b6040518082815260200191505060405180910390f35b348015610a3657600080fd5b50610a6560048036036020811015610a4d57600080fd5b81019080803515159060200190929190505050612157565b005b348015610a7357600080fd5b50610a7c61228d565b005b348015610a8a57600080fd5b50610a936127de565b6040518082815260200191505060405180910390f35b348015610ab557600080fd5b50610abe6127e4565b6040518082815260200191505060405180910390f35b348015610ae057600080fd5b50610ae96127ea565b005b348015610af757600080fd5b50610b00612b28565b6040518082815260200191505060405180910390f35b348015610b2257600080fd5b50610b2b612b2e565b6040518082815260200191505060405180910390f35b348015610b4d57600080fd5b50610b9060048036036020811015610b6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b34565b60405180821515815260200191505060405180910390f35b348015610bb457600080fd5b50610bbd612b54565b005b348015610bcb57600080fd5b50610bd461365a565b60405180821515815260200191505060405180910390f35b348015610bf857600080fd5b50610c0161366d565b6040518082815260200191505060405180910390f35b348015610c2357600080fd5b50610c2c613673565b6040518082815260200191505060405180910390f35b348015610c4e57600080fd5b50610c57613679565b6040518082815260200191505060405180910390f35b610c75610d8a565b005b348015610c8357600080fd5b50610cd8600480360360a0811015610c9a57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061367f565b005b348015610ce657600080fd5b50610d4760048036036080811015610cfd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506137c2565b005b348015610d5557600080fd5b50610d5e6138ce565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b601d60019054906101000a900460ff161580610def5750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610e61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f41646472657373206e6f742077686974656c697374656400000000000000000081525060200191505060405180910390fd5b601d60039054906101000a900460ff1615610ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f43616e63656c6c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601754421015610f5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420796574206f70656e656400000000000000000000000000000000000081525060200191505060405180910390fd5b6018544210610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f436c6f736564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601354600f541061104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f486172642063617020726561636865640000000000000000000000000000000081525060200191505060405180910390fd5b60006011541161105b57600080fd5b6110726012546011546138f490919063ffffffff16565b34111561107e57600080fd5b60006110d234600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461397a90919063ffffffff16565b905060165481101561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d696e20696e766573746d656e74206e6f74207265616368656400000000000081525060200191505060405180910390fd5b6000601554148061115f57506015548111155b6111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d617820696e766573746d656e7420726561636865640000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112365761122f6001600c5461397a90919063ffffffff16565b600c819055505b61124b34600f5461397a90919063ffffffff16565b600f8190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112b26112a134613a02565b601154613a3a90919063ffffffff16565b60118190555050565b601d60029054906101000a900460ff1681565b601a5481565b601d60009054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60135481565b60205481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806113ba57503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6113c357600080fd5b80601d60026101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143857600080fd5b6000881161144557600080fd5b6000871161145257600080fd5b6000821161145f57600080fd5b6000811161146c57600080fd5b6000861161147957600080fd5b61148c87896138f490919063ffffffff16565b86111561149857600080fd5b858511156114a557600080fd5b838311156114b257600080fd5b8082106114be57600080fd5b8760108190555087601181905550866012819055508560138190555084601481905550836015819055508260168190555081601781905550806018819055505050505050505050565b601b5481565b601c5481565b60125481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b601d60019054906101000a900460ff1615806115d05750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f41646472657373206e6f742077686974656c697374656400000000000000000081525060200191505060405180910390fd5b601d60039054906101000a900460ff16156116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f43616e63656c6c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f7420616e20696e766573746f72000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416c726561647920636c61696d6564206f7220726566756e646564000000000081525060200191505060405180910390fd5b601d60009054906101000a900460ff166118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4c6971756964697479206e6f742079657420616464656400000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3361199b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a02565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156119ee57600080fd5b505af1158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b81019080805190602001909291905050505060004790506000811115611aba57600081600d5411611a4b57600d54611a4d565b815b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab7573d6000803e3d6000fd5b50505b50565b60215481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b1b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b8f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bc957600080fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600e5481565b601d60019054906101000a900460ff1681565b60185481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f742070726573616c652063726561746f720000000000000000000000000081525060200191505060405180910390fd5b601d60009054906101000a900460ff16611d8c57600080fd5b601d60039054906101000a900460ff1615611da657600080fd5b600e54421015611db557600080fd5b6000471115611e2857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e26573d6000803e3d6000fd5b505b565b600c5481565b601f5481565b60105481565b60225481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611ee957503373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611f5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f742070726573616c652063726561746f72206f7220666163746f7279000081525060200191505060405180910390fd5b60008282905011601d60016101000a81548160ff02191690831515021790555060005b8282905081101561201657600160076000858585818110611f9b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611f7e565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461207357600080fd5b6000841161208057600080fd5b6000831161208d57600080fd5b6000821161209a57600080fd5b600081116120a757600080fd5b6000601854116120b657600080fd5b6018548310156120c557600080fd5b8360198190555082601a8190555081601b8190555080601c8190555050505050565b60066020528060005260406000206000915090505481565b60155481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806121fe57503373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f742070726573616c652063726561746f72206f7220666163746f7279000081525060200191505060405180910390fd5b80601d60016101000a81548160ff02191690831515021790555050565b601d60019054906101000a900460ff1615806122f25750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612364576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f41646472657373206e6f742077686974656c697374656400000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f7420616e20696e766573746f72000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416c726561647920636c61696d6564206f7220726566756e646564000000000081525060200191505060405180910390fd5b601d60039054906101000a900460ff166126cf57601754421015612565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420796574206f70656e656400000000000000000000000000000000000081525060200191505060405180910390fd5b6018544210156125dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f742079657420636c6f73656400000000000000000000000000000000000081525060200191505060405180910390fd5b600060145411612655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f20736f66742063617000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601454600f54106126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f536f66742063617020726561636865640000000000000000000000000000000081525060200191505060405180910390fd5b5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060004790506000811161277d57600080fd5b80821115612789578091505b60008211156127da573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127d8573d6000803e3d6000fd5b505b5050565b60115481565b60175481565b601d60009054906101000a900460ff1615801561285557503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156128af57503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156128b957600080fd5b601d60009054906101000a900460ff16801561292357503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561292d57600080fd5b601d60039054906101000a900460ff161561294757600080fd5b6001601d60036101000a81548160ff0219169083151502179055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156129ed57600080fd5b505afa158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b810190808051906020019092919050505090506000811115612b2557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612ae857600080fd5b505af1158015612afc573d6000803e3d6000fd5b505050506040513d6020811015612b1257600080fd5b8101908080519060200190929190505050505b50565b601e5481565b600f5481565b60086020528060005260406000206000915054906101000a900460ff1681565b601d60039054906101000a900460ff1615612bd7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f43616e63656c6c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600f5411612be657600080fd5b601d60009054906101000a900460ff1615612c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4c697175696469747920616c726561647920616464656400000000000000000081525060200191505060405180910390fd5b601d60019054906101000a900460ff161580612cce5750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612d265750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613c556026913960400191505060405180910390fd5b601354600f54148015612d8f5750601a5442105b15612e5c57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f742070726573616c652063726561746f720000000000000000000000000081525060200191505060405180910390fd5b613060565b601a544210612ff157600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612f0057506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b612f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4e6f742070726573616c652063726561746f72206f7220696e766573746f720081525060200191505060405180910390fd5b601454600f541015612fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f536f667420636170206e6f74207265616368656400000000000000000000000081525060200191505060405180910390fd5b61305f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c69717569646974792063616e6e6f742062652061646465642079657400000081525060200191505060405180910390fd5b5b6001601d60006101000a81548160ff0219169083151502179055506000600f5490506000601d60029054906101000a900460ff166130e85760006130c260646130b4600954866138f490919063ffffffff16565b613a8490919063ffffffff16565b9050600a548111806130d6575082600a5410155b6130e257600a546130e4565b805b9150505b6000811115613170576131048183613a3a90919063ffffffff16565b9150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561316e573d6000803e3d6000fd5b505b600061319a606461318c601c54866138f490919063ffffffff16565b613a8490919063ffffffff16565b905060006131cd6019546131bf670de0b6b3a7640000856138f490919063ffffffff16565b613a8490919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561327657600080fd5b505af115801561328a573d6000803e3d6000fd5b505050506040513d60208110156132a057600080fd5b810190808051906020019092919050505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71983600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166133426103844261397a90919063ffffffff16565b6040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156133c657600080fd5b505af11580156133da573d6000803e3d6000fd5b50505050506040513d60608110156133f157600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050505060006134fb613429600f54613a02565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156134b257600080fd5b505afa1580156134c6573d6000803e3d6000fd5b505050506040513d60208110156134dc57600080fd5b8101908080519060200190929190505050613a3a90919063ffffffff16565b905060008111156135f857600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135bb57600080fd5b505af11580156135cf573d6000803e3d6000fd5b505050506040513d60208110156135e557600080fd5b8101908080519060200190929190505050505b613641613618670de0b6b3a7640000600c546138f490919063ffffffff16565b613633670de0b6b3a7640000476138f490919063ffffffff16565b613a8490919063ffffffff16565b600d81905550620151804201600e819055505050505050565b601d60039054906101000a900460ff1681565b60145481565b600d5481565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061372657503373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b613798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f742070726573616c652063726561746f72206f7220666163746f7279000081525060200191505060405180910390fd5b84601e8190555083601f819055508260218190555081602081905550806022819055505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061386957503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61387257600080fd5b83600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260098190555081600a8190555080600b8190555050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156139075760009050613974565b600082840290508284828161391857fe5b041461396f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c7b6021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156139f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000613a33601254613a25670de0b6b3a7640000856138f490919063ffffffff16565b613a8490919063ffffffff16565b9050919050565b6000613a7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613ace565b905092915050565b6000613ac683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b8e565b905092915050565b6000838311158290613b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b40578082015181840152602081019050613b25565b50505050905090810190601f168015613b6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bff578082015181840152602081019050613be4565b50505050905090810190601f168015613c2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613c4657fe5b04905080915050939250505056fe4e6f742077686974656c6973746564206f72206e6f742070726573616c652063726561746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e18ac61ae0cd7df4f09bbdfb601205e91e8def8e02f9a5a7ef7ddee3d5e73a4464736f6c634300060c0033000000000000000000000000084658065b97348026a5111feaa2ba9e83ee28e700000000000000000000000069c62363f5bd1a4505d2bcefa886468478a74b91
Deployed Bytecode
0x6080604052600436106102b25760003560e01c806389771dd811610175578063c36002c9116100dc578063d6c86b1b11610095578063e8b5e51f1161006f578063e8b5e51f14610c6d578063eaa2288b14610c77578063f24ec90814610cda578063fc0c546a14610d49576102c1565b8063d6c86b1b14610bec578063e47935e614610c17578063e861e34d14610c42576102c1565b8063c36002c914610ad4578063c502b13b14610aeb578063c51d16b614610b16578063c884ef8314610b41578063ce8f582e14610ba8578063d5933c2c14610bbf576102c1565b8063a999ac321161012e578063a999ac32146109be578063a9cbc798146109ff578063b1406b7914610a2a578063b2d5ae4414610a67578063b31f8f9314610a7e578063b425688814610aa9576102c1565b806389771dd8146107e357806389bc9cb51461080e5780638a6688f11461089457806396b98862146108ed5780639fa1eccc14610952578063a2460d2e1461097d576102c1565b806335d079de1161021957806355973a90116101d257806355973a90146106f3578063627749e6146107205780636cb962871461074b5780637275ae1414610762578063744583061461078d5780637e1c0c09146107b8576102c1565b806335d079de146105895780634760eb25146105ca57806348c54b9d146105f55780634b8eb8551461060c5780634b9c4cb31461063757806350c73391146106c8576102c1565b806318cc60e41161026b57806318cc60e4146104085780631c194ba914610445578063261ad0c5146104c75780632a00551e146104f25780632f8de8101461051d57806335c5b37114610548576102c1565b806303205053146102c6578063032e1cee146102f3578063057bdd441461031e57806306c933d81461034b5780630ca99ca8146103b25780630cdc1fc5146103dd576102c1565b366102c1576102bf610d8a565b005b600080fd5b3480156102d257600080fd5b506102db6112bb565b60405180821515815260200191505060405180910390f35b3480156102ff57600080fd5b506103086112ce565b6040518082815260200191505060405180910390f35b34801561032a57600080fd5b506103336112d4565b60405180821515815260200191505060405180910390f35b34801561035757600080fd5b5061039a6004803603602081101561036e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e7565b60405180821515815260200191505060405180910390f35b3480156103be57600080fd5b506103c7611307565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506103f261130d565b6040518082815260200191505060405180910390f35b34801561041457600080fd5b506104436004803603602081101561042b57600080fd5b81019080803515159060200190929190505050611313565b005b34801561045157600080fd5b506104c5600480360361010081101561046957600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506113e0565b005b3480156104d357600080fd5b506104dc611507565b6040518082815260200191505060405180910390f35b3480156104fe57600080fd5b5061050761150d565b6040518082815260200191505060405180910390f35b34801561052957600080fd5b50610532611513565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b5061055d611519565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059557600080fd5b5061059e61153f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d657600080fd5b506105df611565565b6040518082815260200191505060405180910390f35b34801561060157600080fd5b5061060a61156b565b005b34801561061857600080fd5b50610621611abd565b6040518082815260200191505060405180910390f35b34801561064357600080fd5b506106c66004803603606081101561065a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac3565b005b3480156106d457600080fd5b506106dd611c91565b6040518082815260200191505060405180910390f35b3480156106ff57600080fd5b50610708611c97565b60405180821515815260200191505060405180910390f35b34801561072c57600080fd5b50610735611caa565b6040518082815260200191505060405180910390f35b34801561075757600080fd5b50610760611cb0565b005b34801561076e57600080fd5b50610777611e2a565b6040518082815260200191505060405180910390f35b34801561079957600080fd5b506107a2611e30565b6040518082815260200191505060405180910390f35b3480156107c457600080fd5b506107cd611e36565b6040518082815260200191505060405180910390f35b3480156107ef57600080fd5b506107f8611e3c565b6040518082815260200191505060405180910390f35b34801561081a57600080fd5b506108926004803603602081101561083157600080fd5b810190808035906020019064010000000081111561084e57600080fd5b82018360208201111561086057600080fd5b8035906020019184602083028401116401000000008311171561088257600080fd5b9091929391929390505050611e42565b005b3480156108a057600080fd5b506108eb600480360360808110156108b757600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919050505061201b565b005b3480156108f957600080fd5b5061093c6004803603602081101561091057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120e7565b6040518082815260200191505060405180910390f35b34801561095e57600080fd5b506109676120ff565b6040518082815260200191505060405180910390f35b34801561098957600080fd5b50610992612105565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109ca57600080fd5b506109d361212b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a0b57600080fd5b50610a14612151565b6040518082815260200191505060405180910390f35b348015610a3657600080fd5b50610a6560048036036020811015610a4d57600080fd5b81019080803515159060200190929190505050612157565b005b348015610a7357600080fd5b50610a7c61228d565b005b348015610a8a57600080fd5b50610a936127de565b6040518082815260200191505060405180910390f35b348015610ab557600080fd5b50610abe6127e4565b6040518082815260200191505060405180910390f35b348015610ae057600080fd5b50610ae96127ea565b005b348015610af757600080fd5b50610b00612b28565b6040518082815260200191505060405180910390f35b348015610b2257600080fd5b50610b2b612b2e565b6040518082815260200191505060405180910390f35b348015610b4d57600080fd5b50610b9060048036036020811015610b6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b34565b60405180821515815260200191505060405180910390f35b348015610bb457600080fd5b50610bbd612b54565b005b348015610bcb57600080fd5b50610bd461365a565b60405180821515815260200191505060405180910390f35b348015610bf857600080fd5b50610c0161366d565b6040518082815260200191505060405180910390f35b348015610c2357600080fd5b50610c2c613673565b6040518082815260200191505060405180910390f35b348015610c4e57600080fd5b50610c57613679565b6040518082815260200191505060405180910390f35b610c75610d8a565b005b348015610c8357600080fd5b50610cd8600480360360a0811015610c9a57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061367f565b005b348015610ce657600080fd5b50610d4760048036036080811015610cfd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506137c2565b005b348015610d5557600080fd5b50610d5e6138ce565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b601d60019054906101000a900460ff161580610def5750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610e61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f41646472657373206e6f742077686974656c697374656400000000000000000081525060200191505060405180910390fd5b601d60039054906101000a900460ff1615610ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f43616e63656c6c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601754421015610f5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420796574206f70656e656400000000000000000000000000000000000081525060200191505060405180910390fd5b6018544210610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f436c6f736564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601354600f541061104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f486172642063617020726561636865640000000000000000000000000000000081525060200191505060405180910390fd5b60006011541161105b57600080fd5b6110726012546011546138f490919063ffffffff16565b34111561107e57600080fd5b60006110d234600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461397a90919063ffffffff16565b905060165481101561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d696e20696e766573746d656e74206e6f74207265616368656400000000000081525060200191505060405180910390fd5b6000601554148061115f57506015548111155b6111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d617820696e766573746d656e7420726561636865640000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112365761122f6001600c5461397a90919063ffffffff16565b600c819055505b61124b34600f5461397a90919063ffffffff16565b600f8190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112b26112a134613a02565b601154613a3a90919063ffffffff16565b60118190555050565b601d60029054906101000a900460ff1681565b601a5481565b601d60009054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60135481565b60205481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806113ba57503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6113c357600080fd5b80601d60026101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143857600080fd5b6000881161144557600080fd5b6000871161145257600080fd5b6000821161145f57600080fd5b6000811161146c57600080fd5b6000861161147957600080fd5b61148c87896138f490919063ffffffff16565b86111561149857600080fd5b858511156114a557600080fd5b838311156114b257600080fd5b8082106114be57600080fd5b8760108190555087601181905550866012819055508560138190555084601481905550836015819055508260168190555081601781905550806018819055505050505050505050565b601b5481565b601c5481565b60125481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b601d60019054906101000a900460ff1615806115d05750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f41646472657373206e6f742077686974656c697374656400000000000000000081525060200191505060405180910390fd5b601d60039054906101000a900460ff16156116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f43616e63656c6c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f7420616e20696e766573746f72000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416c726561647920636c61696d6564206f7220726566756e646564000000000081525060200191505060405180910390fd5b601d60009054906101000a900460ff166118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4c6971756964697479206e6f742079657420616464656400000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3361199b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a02565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156119ee57600080fd5b505af1158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b81019080805190602001909291905050505060004790506000811115611aba57600081600d5411611a4b57600d54611a4d565b815b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab7573d6000803e3d6000fd5b50505b50565b60215481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b1b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b8f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bc957600080fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600e5481565b601d60019054906101000a900460ff1681565b60185481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f742070726573616c652063726561746f720000000000000000000000000081525060200191505060405180910390fd5b601d60009054906101000a900460ff16611d8c57600080fd5b601d60039054906101000a900460ff1615611da657600080fd5b600e54421015611db557600080fd5b6000471115611e2857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e26573d6000803e3d6000fd5b505b565b600c5481565b601f5481565b60105481565b60225481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611ee957503373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611f5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f742070726573616c652063726561746f72206f7220666163746f7279000081525060200191505060405180910390fd5b60008282905011601d60016101000a81548160ff02191690831515021790555060005b8282905081101561201657600160076000858585818110611f9b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611f7e565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461207357600080fd5b6000841161208057600080fd5b6000831161208d57600080fd5b6000821161209a57600080fd5b600081116120a757600080fd5b6000601854116120b657600080fd5b6018548310156120c557600080fd5b8360198190555082601a8190555081601b8190555080601c8190555050505050565b60066020528060005260406000206000915090505481565b60155481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806121fe57503373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f742070726573616c652063726561746f72206f7220666163746f7279000081525060200191505060405180910390fd5b80601d60016101000a81548160ff02191690831515021790555050565b601d60019054906101000a900460ff1615806122f25750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612364576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f41646472657373206e6f742077686974656c697374656400000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f7420616e20696e766573746f72000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416c726561647920636c61696d6564206f7220726566756e646564000000000081525060200191505060405180910390fd5b601d60039054906101000a900460ff166126cf57601754421015612565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420796574206f70656e656400000000000000000000000000000000000081525060200191505060405180910390fd5b6018544210156125dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f742079657420636c6f73656400000000000000000000000000000000000081525060200191505060405180910390fd5b600060145411612655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f20736f66742063617000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601454600f54106126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f536f66742063617020726561636865640000000000000000000000000000000081525060200191505060405180910390fd5b5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060004790506000811161277d57600080fd5b80821115612789578091505b60008211156127da573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127d8573d6000803e3d6000fd5b505b5050565b60115481565b60175481565b601d60009054906101000a900460ff1615801561285557503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156128af57503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156128b957600080fd5b601d60009054906101000a900460ff16801561292357503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561292d57600080fd5b601d60039054906101000a900460ff161561294757600080fd5b6001601d60036101000a81548160ff0219169083151502179055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156129ed57600080fd5b505afa158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b810190808051906020019092919050505090506000811115612b2557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612ae857600080fd5b505af1158015612afc573d6000803e3d6000fd5b505050506040513d6020811015612b1257600080fd5b8101908080519060200190929190505050505b50565b601e5481565b600f5481565b60086020528060005260406000206000915054906101000a900460ff1681565b601d60039054906101000a900460ff1615612bd7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f43616e63656c6c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600f5411612be657600080fd5b601d60009054906101000a900460ff1615612c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4c697175696469747920616c726561647920616464656400000000000000000081525060200191505060405180910390fd5b601d60019054906101000a900460ff161580612cce5750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612d265750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613c556026913960400191505060405180910390fd5b601354600f54148015612d8f5750601a5442105b15612e5c57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f742070726573616c652063726561746f720000000000000000000000000081525060200191505060405180910390fd5b613060565b601a544210612ff157600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612f0057506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b612f72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4e6f742070726573616c652063726561746f72206f7220696e766573746f720081525060200191505060405180910390fd5b601454600f541015612fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f536f667420636170206e6f74207265616368656400000000000000000000000081525060200191505060405180910390fd5b61305f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c69717569646974792063616e6e6f742062652061646465642079657400000081525060200191505060405180910390fd5b5b6001601d60006101000a81548160ff0219169083151502179055506000600f5490506000601d60029054906101000a900460ff166130e85760006130c260646130b4600954866138f490919063ffffffff16565b613a8490919063ffffffff16565b9050600a548111806130d6575082600a5410155b6130e257600a546130e4565b805b9150505b6000811115613170576131048183613a3a90919063ffffffff16565b9150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561316e573d6000803e3d6000fd5b505b600061319a606461318c601c54866138f490919063ffffffff16565b613a8490919063ffffffff16565b905060006131cd6019546131bf670de0b6b3a7640000856138f490919063ffffffff16565b613a8490919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561327657600080fd5b505af115801561328a573d6000803e3d6000fd5b505050506040513d60208110156132a057600080fd5b810190808051906020019092919050505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71983600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166133426103844261397a90919063ffffffff16565b6040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156133c657600080fd5b505af11580156133da573d6000803e3d6000fd5b50505050506040513d60608110156133f157600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050505060006134fb613429600f54613a02565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156134b257600080fd5b505afa1580156134c6573d6000803e3d6000fd5b505050506040513d60208110156134dc57600080fd5b8101908080519060200190929190505050613a3a90919063ffffffff16565b905060008111156135f857600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135bb57600080fd5b505af11580156135cf573d6000803e3d6000fd5b505050506040513d60208110156135e557600080fd5b8101908080519060200190929190505050505b613641613618670de0b6b3a7640000600c546138f490919063ffffffff16565b613633670de0b6b3a7640000476138f490919063ffffffff16565b613a8490919063ffffffff16565b600d81905550620151804201600e819055505050505050565b601d60039054906101000a900460ff1681565b60145481565b600d5481565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061372657503373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b613798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f742070726573616c652063726561746f72206f7220666163746f7279000081525060200191505060405180910390fd5b84601e8190555083601f819055508260218190555081602081905550806022819055505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061386957503373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61387257600080fd5b83600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260098190555081600a8190555080600b8190555050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156139075760009050613974565b600082840290508284828161391857fe5b041461396f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c7b6021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156139f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000613a33601254613a25670de0b6b3a7640000856138f490919063ffffffff16565b613a8490919063ffffffff16565b9050919050565b6000613a7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613ace565b905092915050565b6000613ac683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b8e565b905092915050565b6000838311158290613b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b40578082015181840152602081019050613b25565b50505050905090810190601f168015613b6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bff578082015181840152602081019050613be4565b50505050905090810190601f168015613c2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613c4657fe5b04905080915050939250505056fe4e6f742077686974656c6973746564206f72206e6f742070726573616c652063726561746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e18ac61ae0cd7df4f09bbdfb601205e91e8def8e02f9a5a7ef7ddee3d5e73a4464736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000084658065b97348026a5111feaa2ba9e83ee28e700000000000000000000000069c62363f5bd1a4505d2bcefa886468478a74b91
-----Decoded View---------------
Arg [0] : _safuFactoryAddress (address): 0x084658065b97348026a5111fEAA2bA9e83eE28E7
Arg [1] : _safuDevAddress (address): 0x69c62363f5BD1A4505d2bcEfa886468478A74b91
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000084658065b97348026a5111feaa2ba9e83ee28e7
Arg [1] : 00000000000000000000000069c62363f5bd1a4505d2bcefa886468478a74b91
Deployed Bytecode Sourcemap
470:15054:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10683:8;:6;:8::i;:::-;470:15054;;;;;3599:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2970:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3383;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1298:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2328:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3910:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8768:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5929:1210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3109:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3248:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2253:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;770:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;996:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1720:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13177:624;;;;;;;;;;;;;:::i;:::-;;3942:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5446:477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1974:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3493:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2807:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15205:317;;;;;;;;;;;;;:::i;:::-;;1809:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3877:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2132:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3974;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9150:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7145:828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1212:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2534:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1113:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;862:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2891:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8925:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13807:859;;;;;;;;;;;;;:::i;:::-;;2191:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2728:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14672:527;;;;;;;;;;;;;:::i;:::-;;3847:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2071:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1389:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10704:2467;;;;;;;;;;;;;:::i;:::-;;3695:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2415:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1874:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2631:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9676:964;;;:::i;:::-;;7979:404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8389:373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;944:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9676:964;4958:31;;;;;;;;;;;4957:32;:68;;;;4993:20;:32;5014:10;4993:32;;;;;;;;;;;;;;;;;;;;;;;;;4957:68;4936:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5150:16:::1;;;;;;;;;;;5149:17;5141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9811:8:::2;;9792:15;:27;;9784:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9874:9;;9856:15;:27;9848:46;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9932:12;;9912:17;;:32;9904:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9996:1;9983:10;;:14;9975:23;;;::::0;::::2;;10029:31;10044:15;;10029:10;;:14;;:31;;;;:::i;:::-;10016:9;:44;;10008:53;;;::::0;::::2;;10071:28;10102:38;10130:9;10102:11;:23;10114:10;10102:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;10071:69;;10182:14;;10158:20;:38;;10150:77;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;10263:1;10245:14;;:19;:61;;;;10292:14;;10268:20;:38;;10245:61;10237:96;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;10375:1;10348:11;:23;10360:10;10348:23;;;;;;;;;;;;;;;;:28;10344:107;;;10414:26;10438:1;10414:19;;:23;;:26;;;;:::i;:::-;10392:19;:48;;;;10344:107;10481:32;10503:9;10481:17;;:21;;:32;;;;:::i;:::-;10461:17;:52;;;;10549:20;10523:11;:23;10535:10;10523:23;;;;;;;;;;;;;;;:46;;;;10592:41;10607:25;10622:9;10607:14;:25::i;:::-;10592:10;;:14;;:41;;;;:::i;:::-;10579:10;:54;;;;5190:1;9676:964::o:0;3599:39::-;;;;;;;;;;;;;:::o;2970:37::-;;;;:::o;3383:::-;;;;;;;;;;;;;:::o;1298:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;2328:27::-;;;;:::o;3910:26::-;;;;:::o;8768:151::-;4367:10;4345:32;;:18;;;;;;;;;;:32;;;:64;;;;4399:10;4381:28;;:14;;;;;;;;;;;:28;;;4345:64;4337:73;;;;;;8892:20:::1;8870:19;;:42;;;;;;;;;;;;;;;;;;8768:151:::0;:::o;5929:1210::-;4501:10;4479:32;;:18;;;;;;;;;;:32;;;4471:41;;;;;;6264:1:::1;6249:12;:16;6241:25;;;::::0;::::1;;6303:1;6284:16;:20;6276:29;;;::::0;::::1;;6335:1;6323:9;:13;6315:22;;;::::0;::::1;;6368:1;6355:10;:14;6347:23;;;::::0;::::1;;6404:1;6388:13;:17;6380:26;;;::::0;::::1;;6493:34;6510:16;6493:12;:16;;:34;;;;:::i;:::-;6476:13;:51;;6468:60;;;::::0;::::1;;6597:13;6580;:30;;6572:39;;;::::0;::::1;;6702:15;6683;:34;;6675:43;;;::::0;::::1;;6783:10;6771:9;:22;6763:31;;;::::0;::::1;;6819:12;6805:11;:26;;;;6854:12;6841:10;:25;;;;6894:16;6876:15;:34;;;;6935:13;6920:12;:28;;;;6973:13;6958:12;:28;;;;7013:15;6996:14;:32;;;;7055:15;7038:14;:32;;;;7091:9;7080:8;:20;;;;7122:10;7110:9;:22;;;;5929:1210:::0;;;;;;;;:::o;3109:44::-;;;;:::o;3248:47::-;;;;:::o;2253:30::-;;;;:::o;770:37::-;;;;;;;;;;;;;:::o;996:44::-;;;;;;;;;;;;;:::o;1720:21::-;;;;:::o;13177:624::-;4958:31;;;;;;;;;;;4957:32;:68;;;;4993:20;:32;5014:10;4993:32;;;;;;;;;;;;;;;;;;;;;;;;;4957:68;4936:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5150:16:::1;;;;;;;;;;;5149:17;5141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5272:1:::2;5246:11;:23;5258:10;5246:23;;;;;;;;;;;;;;;;:27;5238:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;5371:7:::3;:19;5379:10;5371:19;;;;;;;;;;;;;;;;;;;;;;;;;5370:20;5362:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;13333:17:::4;;;;;;;;;;;13325:53;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;13411:4;13389:7;:19;13397:10;13389:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;13492:5;;;;;;;;;;;:14;;;13507:10;13519:39;13534:11;:23;13546:10;13534:23;;;;;;;;;;;;;;;;13519:14;:39::i;:::-;13492:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;13570:15;13588:21;13570:39;;13633:1;13623:7;:11;13619:176;;;13650:13;13691:7;13666:22;;:32;:67;;13711:22;;13666:67;;;13701:7;13666:67;13650:83;;13747:21;;;;;;;;;;;:30;;:37;13778:5;13747:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;13619:176;;5432:1;13177:624::o:0;3942:26::-;;;;:::o;5446:477::-;4501:10;4479:32;;:18;;;;;;;;;;:32;;;4471:41;;;;;;5652:1:::1;5625:29;;:15;:29;;;;5617:38;;;::::0;::::1;;5698:1;5673:27;;:13;:27;;;;5665:36;;;::::0;::::1;;5755:1;5719:38;;:24;:38;;;;5711:47;;;::::0;::::1;;5801:15;5769:21;;:48;;;;;;;;;;;;;;;;;;5842:13;5827:5;;:29;;;;;;;;;;;;;;;;;;5892:24;5866:23;;:50;;;;;;;;;;;;;;;;;;5446:477:::0;;;:::o;1974:38::-;;;;:::o;3493:50::-;;;;;;;;;;;;;:::o;2807:24::-;;;;:::o;15205:317::-;4834:10;4809:35;;:21;;;;;;;;;;;:35;;;4801:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15281:17:::1;;;;;;;;;;;15273:26;;;::::0;::::1;;15318:16;;;;;;;;;;;15317:17;15309:26;;;::::0;::::1;;15372:23;;15353:15;:42;;15345:51;;;::::0;::::1;;15435:1;15411:21;:25;15407:109;;;15452:21;;;;;;;;;;;:30;;:53;15483:21;15452:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15407:109;15205:317::o:0;1809:34::-;;;;:::o;3877:27::-;;;;:::o;2132:26::-;;;;:::o;3974:::-;;;;:::o;9150:357::-;4635:10;4610:35;;:21;;;;;;;;;;;:35;;;:71;;;;4671:10;4649:32;;:18;;;;;;;;;;:32;;;4610:71;4589:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9353:1:::1;9322:21;;:28;;:32;9288:31;;:66;;;;;;;;;;;;;;;;;;9369:9;9364:137;9388:21;;:28;;9384:1;:32;9364:137;;;9486:4;9437:20;:46;9458:21;;9480:1;9458:24;;;;;;;;;;;;;;;9437:46;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;9418:3;;;;;;;9364:137;;;;9150:357:::0;;:::o;7145:828::-;4501:10;4479:32;;:18;;;;;;;;;;:32;;;4471:41;;;;;;7421:1:::1;7397:21;:25;7389:34;;;::::0;::::1;;7467:1;7441:23;:27;7433:36;;;::::0;::::1;;7520:1;7487:30;:34;7479:43;;;::::0;::::1;;7576:1;7540:33;:37;7532:46;;;::::0;::::1;;7609:1;7597:9;;:13;7589:22;;;::::0;::::1;;7693:9;;7666:23;:36;;7658:45;;;::::0;::::1;;7737:21;7714:20;:44;;;;7793:23;7768:22;:48;;;;7858:30;7826:29;:62;;;;7933:33;7898:32;:68;;;;7145:828:::0;;;;:::o;1212:46::-;;;;;;;;;;;;;;;;;:::o;2534:29::-;;;;:::o;1113:38::-;;;;;;;;;;;;;:::o;862:33::-;;;;;;;;;;;;;:::o;2891:35::-;;;;:::o;8925:219::-;4635:10;4610:35;;:21;;;;;;;;;;;:35;;;:71;;;;4671:10;4649:32;;:18;;;;;;;;;;:32;;;4610:71;4589:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9105:32:::1;9071:31;;:66;;;;;;;;;;;;;;;;;;8925:219:::0;:::o;13807:859::-;4958:31;;;;;;;;;;;4957:32;:68;;;;4993:20;:32;5014:10;4993:32;;;;;;;;;;;;;;;;;;;;;;;;;4957:68;4936:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5272:1:::1;5246:11;:23;5258:10;5246:23;;;;;;;;;;;;;;;;:27;5238:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5371:7:::2;:19;5379:10;5371:19;;;;;;;;;;;;;;;;;;;;;;;;;5370:20;5362:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;13932:16:::3;;;;;;;;;;;13927:300;;13991:8;;13972:15;:27;;13964:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;14059:9;;14040:15;:28;;14032:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;14124:1;14109:12;;:16;14101:40;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;14183:12;;14163:17;;:32;14155:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;13927:300;14259:4;14237:7;:19;14245:10;14237:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14340:18;14361:11;:23;14373:10;14361:23;;;;;;;;;;;;;;;;14340:44;;14394:22;14420:21;14394:47;;14476:1;14459:14;:18;14451:27;;;::::0;::::3;;14506:14;14493:10;:27;14489:85;;;14549:14;14536:27;;14489:85;14601:1;14588:10;:14;14584:76;;;14618:10;:19;;:31;14638:10;14618:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;14584:76;5432:1;;13807:859::o:0;2191:25::-;;;;:::o;2728:23::-;;;;:::o;14672:527::-;14747:17;;;;;;;;;;;14746:18;:57;;;;;14793:10;14768:35;;:21;;;;;;;;;;;:35;;;;14746:57;:89;;;;;14825:10;14807:28;;:14;;;;;;;;;;;:28;;;;14746:89;14742:128;;;14851:8;;;14742:128;14883:17;;;;;;;;;;;:49;;;;;14922:10;14904:28;;:14;;;;;;;;;;;:28;;;;14883:49;14879:88;;;14948:8;;;14879:88;14986:16;;;;;;;;;;;14985:17;14977:26;;;;;;15032:4;15013:16;;:23;;;;;;;;;;;;;;;;;;15047:15;15065:5;;;;;;;;;;;:15;;;15089:4;15065:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15047:48;;15119:1;15109:7;:11;15105:88;;;15136:5;;;;;;;;;;;:14;;;15151:21;;;;;;;;;;;15174:7;15136:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15105:88;14672:527;:::o;3847:24::-;;;;:::o;2071:32::-;;;;:::o;1389:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;10704:2467::-;5150:16;;;;;;;;;;;5149:17;5141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10812:1:::1;10792:17;;:21;10784:30;;;::::0;::::1;;10833:17;;;;;;;;;;;10832:18;10824:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10910:31;;;;;;;;;;;10909:32;:68;;;;10945:20;:32;10966:10;10945:32;;;;;;;;;;;;;;;;;;;;;;;;;10909:68;:107;;;;10995:21;;;;;;;;;;;10981:35;;:10;:35;;;10909:107;10888:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11116:12;;11095:17;;:33;:77;;;;;11150:22;;11132:15;:40;11095:77;11091:559;;;11210:21;;;;;;;;;;;11196:35;;:10;:35;;;11188:67;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11091:559;;;11295:22;;11276:15;:41;11272:378;;11372:21;;;;;;;;;;;11358:35;;:10;:35;;;:66;;;;11423:1;11397:11;:23;11409:10;11397:23;;;;;;;;;;;;;;;;:27;11358:66;11333:156;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11532:12;;11511:17;;:33;;11503:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11272:378;;;11600:39;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;11272:378;11091:559;11680:4;11660:17;;:24;;;;;;;;;;;;;;;;;;11695:30;11728:17;;11695:50;;11755:23;11793:19;;;;;;;;;;;11788:295;;11828:17;11848:57;11901:3;11848:48;11875:20;;11848:22;:26;;:48;;;;:::i;:::-;:52;;:57;;;;:::i;:::-;11828:77;;11949:18;;11937:9;:30;:78;;;;11993:22;11971:18;;:44;;11937:78;:135;;12054:18;;11937:135;;;12030:9;11937:135;11919:153;;11788:295;;12114:1;12096:15;:19;12092:172;;;12156:43;12183:15;12156:22;:26;;:43;;;;:::i;:::-;12131:68;;12213:14;;;;;;;;;;;:23;;:40;12237:15;12213:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12092:172;12274:24;12301:69;12366:3;12301:60;12328:32;;12301:22;:26;;:60;;;;:::i;:::-;:64;;:69;;;;:::i;:::-;12274:96;;12380:26;12409:52;12440:20;;12409:26;12430:4;12409:16;:20;;:26;;;;:::i;:::-;:30;;:52;;;;:::i;:::-;12380:81;;12472:5;;;;;;;;;;;:13;;;624:42;12510:18;12472:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;624:42;12540:29;;;12578:16;12617:5;;;;;;;;;;;12637:18;12669:1;12684::::0;12699:18:::1;;;;;;;;;;;12731:31;12751:10;12731:15;:19;;:31;;;;:::i;:::-;12540:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12783:26;12812:69;12847:33;12862:17;;12847:14;:33::i;:::-;12812:5;;;;;;;;;;;:15;;;12836:4;12812:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:34;;:69;;;;:::i;:::-;12783:98;;12916:1;12895:18;:22;12891:112;;;12933:5;;;;;;;;;;;:14;;;12948:23;;;;;;;;;;;12973:18;12933:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;12891:112;13038:66;13074:29;13098:4;13074:19;;:23;;:29;;;;:::i;:::-;13038:31;13064:4;13038:21;:25;;:31;;;;:::i;:::-;:35;;:66;;;;:::i;:::-;13013:22;:91;;;;13158:6;13140:15;:24;13114:23;:50;;;;5190:1;;;;;10704:2467::o:0;3695:36::-;;;;;;;;;;;;;:::o;2415:27::-;;;;:::o;1874:37::-;;;;:::o;2631:29::-;;;;:::o;7979:404::-;4635:10;4610:35;;:21;;;;;;;;;;;:35;;;:71;;;;4671:10;4649:32;;:18;;;;;;;;;;:32;;;4610:71;4589:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8220:10:::1;8208:9;:22;;;;8255:13;8240:12;:28;;;;8292:12;8278:11;:26;;;;8328:12;8314:11;:26;;;;8364:12;8350:11;:26;;;;7979:404:::0;;;;;:::o;8389:373::-;4367:10;4345:32;;:18;;;;;;;;;;:32;;;:64;;;;4399:10;4381:28;;:14;;;;;;;;;;;:28;;;4345:64;4337:73;;;;;;8606:19:::1;8585:18;;:40;;;;;;;;;;;;;;;;;;8658:21;8635:20;:44;;;;8710:19;8689:18;:40;;;;8748:7;8739:6;:16;;;;8389:373:::0;;;;:::o;944:19::-;;;;;;;;;;;;;:::o;2188:459:1:-;2246:7;2492:1;2487;:6;2483:45;;;2516:1;2509:8;;;;2483:45;2538:9;2554:1;2550;:5;2538:17;;2582:1;2577;2573;:5;;;;;;:10;2565:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2639:1;2632:8;;;2188:459;;;;;:::o;882:176::-;940:7;959:9;975:1;971;:5;959:17;;999:1;994;:6;;986:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;1043:8;;;882:176;;;;:::o;9513:157:2:-;9592:7;9622:41;9647:15;;9622:20;9637:4;9622:10;:14;;:20;;;;:::i;:::-;:24;;:41;;;;:::i;:::-;9615:48;;9513:157;;;:::o;1329:134:1:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1406:50;;1329:134;;;;:::o;3109:130::-;3167:7;3193:39;3197:1;3200;3193:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3186:46;;3109:130;;;;:::o;1754:187::-;1840:7;1872:1;1867;:6;;1875:12;1859:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:9;1914:1;1910;:5;1898:17;;1933:1;1926:8;;;1754:187;;;;;:::o;3721:272::-;3807:7;3838:1;3834;:5;3841:12;3826:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3864:9;3880:1;3876;:5;;;;;;3864:17;;3985:1;3978:8;;;3721:272;;;;;:::o
Swarm Source
ipfs://e18ac61ae0cd7df4f09bbdfb601205e91e8def8e02f9a5a7ef7ddee3d5e73a44
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,131.01 | 0.000000000000000195 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.