Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
MainDeployerPrivate
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; //pragma experimental ABIEncoderV2; //import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; //import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/UniswapFactory.sol"; //import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/UniswapPair.sol"; //import "https://github.com/pancakeswap/pancake-swap-periphery/blob/master/contracts/interfaces/UniswapRouter02.sol"; interface ERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface UniswapRouter02 { function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function factory() external pure returns (address); } 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; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; address public voter; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyVoter() { require(msg.sender == voter); _; } /** * @dev Allows the current owner to relinquish control of the contract. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } contract Consts { uint constant TOKEN_DECIMALS = 18; uint8 constant TOKEN_DECIMALS_UINT8 = 18; uint constant TOKEN_DECIMAL_MULTIPLIER = 10 ** TOKEN_DECIMALS; address public feeContract; uint256 airdrop_fees_Percentage = 2; uint256 public minLockTime = 2592000; // 10 mins for degen uint256 constant minStartDeltaTime = 600; // presale must be atleast 10 mins in future; } interface StorageContractInterface { //function CreatePresaleStorage(string[10] memory _tokenInfo, address tokenAddr, uint256 _lp_locked, address _creator, bool[3] memory _nftIdoFair) external returns(bool); function CreatePresaleStorage( address tokenAddr, uint256 _lp_locked, address _creator, bool[3] memory _nftIdoFair ) external returns (bool); function addPresaleAddr( string[10] memory _tokenInfo, address _presale, address _creator, uint256 _presaleNum ) external returns (bool); function fetchPresaleNumByOwner( address _creator ) external returns (uint256); function fetchTokenAddrLiqLockTime( address _creator, uint256 _presaleNum ) external view returns (address, uint256); function addRouterAddr( address _router, address _creator, uint256 _presaleNum ) external returns (bool); function fetchPresaleStruct( address _creator, uint256 _presaleNum ) external view returns (address, address, address); function setPresaleActiveFalse( address _creator, uint256 _presaleNum ) external returns (bool); function setPresaleFilter( address _creator, uint256 _presaleNum ) external returns (bool); function fetchPresaleAddress( address _creator, uint256 _presaleNum ) external view returns (address); function fetchVoterCallData( address _creator, uint256 _presaleNum ) external view returns (address, address); function addFailFilter(address _creator, uint256 _presaleNum) external; } interface PresaleDappInterface { function CreatePresalePrivate( address[4] memory presaleAddressInput_router, uint256[2] memory start_end_time, uint256[5] memory soft_hard_cap_rate_min_max_eth, uint256[3] memory vestData ) external returns (address); } interface PresaleContractInterface { //function uniswapPercentage() external returns(uint256); //function uniswapRate() external returns(uint256); function CheckTotalEthRaised() external view returns (uint256); function CheckSoftCap() external view returns (uint256); function mintForPlatform( address _platform, address _referrer, uint256 _refPer, bool tokenFeeToRef ) external; function mintForUniswap(address _routerAddr) external; function finalize( address[2] memory __finalizeInfo, uint256 refPer, bool validFinalize ) external returns (uint256); function finalizeAnytime( address[2] memory __finalizeInfo, bool validFinalize ) external returns (uint256); function enableWhitelist() external; function disableWhitelist() external; function addToWhitelist(address WhitelistAddress) external; function removeFromWhitelist(address WhitelistAddress) external; } interface ReferralContract { function getDiscountedPrice(string memory _code) external returns (uint256); function validateCode(string memory _code) external returns (bool); function fetchCodeOwner(string memory _code) external returns (address); function fetchCodeOwnerPercentage( string memory _code ) external returns (uint256); function updateReferrerAmounts( address _referrer, uint256 _updateAmount ) external returns (bool); function updateCodeUseNumber( string memory _code, address _presaleAddress ) external returns (bool); } interface FeeCheckContractInterface { function getFees(string memory _dappName) external view returns (uint256); function getWhitelistFees( string memory _dappWhitelistName ) external view returns (uint256); } interface FeeDepositContractInterface { function payment(uint256 _dappNum) external payable; } contract MainDeployerPrivate is Consts, Ownable { //uint256 public presaleFees = 1 * (10**18); // 1 ETH //uint256 public whitelistFees = 0.9 * (10**18); // 0.9 ETH uint public minUniPercentage = 50; //minimum 50% has to go for uniswap lock address public presaleDappAddr; address public referralDappAddr; //address public presaleNFTDappAddr; //address public NFTDappAddr; // address public routerDappAddr; //address public FilterAddress; address public storageContract; address public feeCheckContract; uint256 public totalRaisedOnPlatform; uint256 public totalRefundedFromPlatform; uint256 public deltaStartEndTime = 604800; string public dappName = "PrivatePresaleDeployer"; string public dappFeeName = "privatePresaleFees"; string public dappWhitelistFeeName = "privateWhitelistFees"; uint256 public tokenFee; bool public referralDisabled; bool public tokenFeeToReferrer; // address public UNISWAP_ADDRESS = 0xc0fFee0000C824D24E0F280f1e4D21152625742b; //Koffeeswap Address // address public factoryAddress = 0xC0fFeE00000e1439651C6aD025ea2A71ED7F3Eab; //Koffeeswap factory Address constructor( address _presaleDappAddr, address _feeRecieveContract, address _storageContract, address _referralContract, address _feeCheckContract ) { presaleDappAddr = _presaleDappAddr; feeContract = _feeRecieveContract; storageContract = _storageContract; referralDappAddr = _referralContract; feeCheckContract = _feeCheckContract; } using SafeMath for uint256; mapping(address => bool) public presales; //mapping(address => finalizeData) public finalizeDataStruct; mapping(address => mapping(uint256 => bool)) public presaleFinalized; mapping(address => address) public presaleToReferrer; mapping(address => uint256) public presaleToRefPer; mapping(uint256 => address) public presaleOwners; mapping(address => bool) public RouterValid; mapping(uint256 => address) public routerRecord; mapping(address => uint256) public routerNumber; uint256 public totalRouters; uint256 public extraAmountPer = 2; uint256 public extraAmountPerVal; uint256 public hundred = 100; bool public creationPresaleEnabled = true; bool public creationNFTPresaleEnabled = true; bool public activeFalse = true; bool public filter = true; function CreatePresalePrivate( string[10] memory _tokenInfo, address tokenAddr, uint256[2] memory start_end_time, uint256[5] memory soft_hard_cap_rate_min_max_eth, uint256[3] memory vestData, string memory _referralCode ) public payable { require(creationPresaleEnabled, "creation Presale disabled"); require(vestData[0] <= 100, "cannot vest more than 100pc raised"); //require(!presales[msg.sender], "User already made a presale"); require( start_end_time[0] > block.timestamp, "start time not in future" ); require( start_end_time[1] <= (start_end_time[0].add(deltaStartEndTime)), "presale duration exceeds limit" ); require( soft_hard_cap_rate_min_max_eth[0] >= (soft_hard_cap_rate_min_max_eth[1].div(2)), "scap must be atleast half of hcap!" ); require(soft_hard_cap_rate_min_max_eth[3] > 0, "min cont must be > 0"); require( soft_hard_cap_rate_min_max_eth[4] >= soft_hard_cap_rate_min_max_eth[3], "max cont must be >= min cont" ); if (referralDisabled) { require( keccak256(abi.encodePacked(_referralCode)) == keccak256(abi.encodePacked("default")), "only default code allowed" ); } if ( keccak256(abi.encodePacked(_referralCode)) != keccak256(abi.encodePacked("default")) ) { require( ReferralContract(referralDappAddr).validateCode(_referralCode), "invalid discount code" ); require( msg.value >= ( FeeCheckContractInterface(feeCheckContract).getFees( dappFeeName ) ) .mul( hundred.sub( ReferralContract(referralDappAddr) .getDiscountedPrice(_referralCode) ) ) .div(hundred), "msg.value must be equal to referral fee!" ); uint256 referrerAmount = (msg.value) .mul( ReferralContract(referralDappAddr).fetchCodeOwnerPercentage( _referralCode ) ) .div(100); payable( ReferralContract(referralDappAddr).fetchCodeOwner(_referralCode) ).transfer(referrerAmount); FeeDepositContractInterface(feeContract).payment{ value: (msg.value) .mul( hundred.sub( ReferralContract(referralDappAddr) .fetchCodeOwnerPercentage(_referralCode) ) ) .div(100) }(6); // 6 at the end means it will be registerred in the fee deposit contract as a referral private presale //payable(feeContract).transfer((msg.value).mul(hundred.sub(ReferralContract(referralDappAddr).fetchCodeOwnerPercentage(_referralCode))).div(100)); require( ReferralContract(referralDappAddr).updateReferrerAmounts( ReferralContract(referralDappAddr).fetchCodeOwner( _referralCode ), referrerAmount ), "referrerAmountUpdate failed" ); } else { require( msg.value >= FeeCheckContractInterface(feeCheckContract).getFees( dappFeeName ), "msg.value must be equal to presale fee!" ); FeeDepositContractInterface(feeContract).payment{value: msg.value}( 7 ); // 7 at the end means it will be registerred in the fee deposit contract as a NO referral private presale //payable(feeContract).transfer(msg.value); } require( (start_end_time[0].add(minStartDeltaTime)) <= start_end_time[1], "presale period less than minimum" ); require( StorageContractInterface(storageContract).CreatePresaleStorage( tokenAddr, 0, msg.sender, [true, false, false] ), "storage addition failed" ); address presaleAddrReturn = PresaleDappInterface(presaleDappAddr) .CreatePresalePrivate( [address(this), msg.sender, tokenAddr, address(0)], start_end_time, soft_hard_cap_rate_min_max_eth, vestData ); presaleToReferrer[presaleAddrReturn] = ReferralContract( referralDappAddr ).fetchCodeOwner(_referralCode); presaleToRefPer[presaleAddrReturn] = ReferralContract(referralDappAddr) .fetchCodeOwnerPercentage(_referralCode); uint256 presaleNumCorrect = ( StorageContractInterface(storageContract).fetchPresaleNumByOwner( msg.sender ) ).sub(1); require( StorageContractInterface(storageContract).addPresaleAddr( _tokenInfo, presaleAddrReturn, msg.sender, presaleNumCorrect ), "presale addr add failed" ); require( ReferralContract(referralDappAddr).updateCodeUseNumber( _referralCode, presaleAddrReturn ), "code use update failed" ); } function changeDeltaStartEndTime(uint256 _newDelta) public onlyOwner { require(_newDelta >= 0, "invalid delta number"); deltaStartEndTime = _newDelta; } function changeUniPercentage(uint uniPer) public onlyOwner { require((uniPer >= 0) && (uniPer <= 100), "uniPer value outside range"); minUniPercentage = uniPer; } function ChangeVoterAddr(address _newVoterAddress) public onlyOwner { // require(_newVoterAddress != voter, "New addr is same as Old Addr"); require(_newVoterAddress != address(0), "New Addr cant be zero addr"); voter = _newVoterAddress; } function ChangeAirdropFee(uint _newAirdropFee) public onlyOwner { require( _newAirdropFee >= 0 && _newAirdropFee <= 100, "out of range fee value" ); require( _newAirdropFee != airdrop_fees_Percentage, "New fee is same as Old fee" ); airdrop_fees_Percentage = _newAirdropFee; } function disableReferral() public onlyOwner { referralDisabled = true; } function enableReferral() public onlyOwner { referralDisabled = false; } function callFinalizeDG(uint256 _presaleNum) public { ( address _tokenAddr, address _presaleAddr, address _uniswapDep ) = StorageContractInterface(storageContract).fetchPresaleStruct( msg.sender, _presaleNum ); // StorageContractInterface(storageContract).setPresaleActiveFalseAndFilter(msg.sender,_presaleNum); if (filter) { require( StorageContractInterface(storageContract).setPresaleFilter( msg.sender, _presaleNum ), "unable to set presale Filter" ); } if (activeFalse) { require( StorageContractInterface(storageContract).setPresaleActiveFalse( msg.sender, _presaleNum ), "unable to set presale active status" ); } extraAmountPerVal = extraAmountPer.add(hundred); uint256 totalEthRaised = PresaleContractInterface(_presaleAddr) .CheckTotalEthRaised(); uint256 SoftCap = PresaleContractInterface(_presaleAddr).CheckSoftCap(); if (!(totalEthRaised < (SoftCap)) && !(totalEthRaised == 0)) { // CREATE UNISWAP CONTRACT START totalRaisedOnPlatform = totalRaisedOnPlatform.add(totalEthRaised); uint256 tokenFeeCalc = totalEthRaised .mul(airdrop_fees_Percentage) .div(100); PresaleContractInterface(_presaleAddr).mintForPlatform( feeContract, presaleToReferrer[_presaleAddr], presaleToRefPer[_presaleAddr], tokenFeeToReferrer ); require( PresaleContractInterface(_presaleAddr).finalize( [presaleToReferrer[_presaleAddr], msg.sender], presaleToRefPer[_presaleAddr], true ) == 1, "finalize failed at success" ); require( ReferralContract(referralDappAddr).updateReferrerAmounts( presaleToReferrer[_presaleAddr], tokenFeeCalc.mul(presaleToRefPer[_presaleAddr]).div(100) ), "referrer update failed at finalize" ); } else if ((totalEthRaised < SoftCap) || (totalEthRaised == 0)) { totalRefundedFromPlatform = totalRefundedFromPlatform.add( totalEthRaised ); require( PresaleContractInterface(_presaleAddr).finalize( [address(0), address(msg.sender)], presaleToRefPer[_presaleAddr], false ) == 1, "finalize failed at refund" ); } // presaleFinalized[msg.sender][_presaleNum] = true; } function checkTotalEthraisedOfPresale( address presaleToRefundFromOwnerAddress, uint256 _presaleNum ) public view returns (uint256) { address presaleAddressFetched = StorageContractInterface( storageContract ).fetchPresaleAddress(presaleToRefundFromOwnerAddress, _presaleNum); uint256 totalEthRaised = PresaleContractInterface(presaleAddressFetched) .CheckTotalEthRaised(); return totalEthRaised; } function voterCallsFinalizeRefund( address presaleToRefundFromOwnerAddress, uint256 _presaleNum ) public onlyVoter { ( address presaleAddressFetched, address uniAddressFetched ) = StorageContractInterface(storageContract).fetchVoterCallData( presaleToRefundFromOwnerAddress, _presaleNum ); totalRefundedFromPlatform = totalRefundedFromPlatform.add( checkTotalEthraisedOfPresale( presaleToRefundFromOwnerAddress, _presaleNum ) ); require( PresaleContractInterface(presaleAddressFetched).finalize( [address(0), presaleToRefundFromOwnerAddress], presaleToRefPer[presaleAddressFetched], false ) == 1, "finalize failed at voter call refund" ); StorageContractInterface(storageContract).addFailFilter( presaleToRefundFromOwnerAddress, _presaleNum ); } function voterCallsFinalizeRefundAnytime( address presaleToRefundFromOwnerAddress, uint256 _presaleNum ) public onlyVoter { ( address presaleAddressFetched, address uniAddressFetched ) = StorageContractInterface(storageContract).fetchVoterCallData( presaleToRefundFromOwnerAddress, _presaleNum ); totalRefundedFromPlatform = totalRefundedFromPlatform.add( checkTotalEthraisedOfPresale( presaleToRefundFromOwnerAddress, _presaleNum ) ); PresaleContractInterface(presaleAddressFetched).finalizeAnytime( [address(0), presaleToRefundFromOwnerAddress], false ); StorageContractInterface(storageContract).addFailFilter( presaleToRefundFromOwnerAddress, _presaleNum ); } function enableWhitelist(uint256 _presaleNum) public payable { address presaleAddressFetched = StorageContractInterface( storageContract ).fetchPresaleAddress(msg.sender, _presaleNum); // require(msg.value >= FeeCheckContractInterface(feeCheckContract).getWhitelistFees(dappWhitelistFeeName), "msg.value must be >= whitelist fees!"); //payable(feeContract).transfer(msg.value); // FeeDepositContractInterface(feeContract).payment{value: msg.value}(8); // 8 at the end means it will be registerred in the fee deposit contract as a whitelist fee for private presale PresaleContractInterface(presaleAddressFetched).enableWhitelist(); } function disableWhitelist(uint256 _presaleNum) public { address presaleAddressFetched = StorageContractInterface( storageContract ).fetchPresaleAddress(msg.sender, _presaleNum); PresaleContractInterface(presaleAddressFetched).disableWhitelist(); } function AddToWhitelist( address[] memory _whitelistAddress, uint256 _presaleNum ) public { address presaleAddressFetched = StorageContractInterface( storageContract ).fetchPresaleAddress(msg.sender, _presaleNum); //require(presales[msg.sender].exists, "user has no presale!"); for (uint256 i = 0; i < _whitelistAddress.length; i++) { PresaleContractInterface(presaleAddressFetched).addToWhitelist( _whitelistAddress[i] ); } } function RemoveFromWhitelist( address[] memory _whitelistAddress, uint256 _presaleNum ) public { address presaleAddressFetched = StorageContractInterface( storageContract ).fetchPresaleAddress(msg.sender, _presaleNum); //require(presales[msg.sender].exists, "user has no presale!"); for (uint256 i = 0; i < _whitelistAddress.length; i++) { //(bool _addToWhitelist, bytes memory _addToWhitelistReturn) = presaleAddressFetched.call(abi.encodeWithSignature("removeFromWhitelist(address)", _whitelistAddress[i])); //require(_addToWhitelist, "Whitelist removal failed"); PresaleContractInterface(presaleAddressFetched).removeFromWhitelist( _whitelistAddress[i] ); } } function setActiveFalseFilter( bool _activeFalse, bool _filter ) public onlyOwner { activeFalse = _activeFalse; filter = _filter; } function updatePresaleDapp(address _newPresaleDapp) public onlyOwner { require(_newPresaleDapp != address(0x0), "presale dapp cant be 0x0"); presaleDappAddr = _newPresaleDapp; } function transferPresaleOwner( address _presale, address _newOwner ) public onlyOwner { Ownable(_presale).transferOwnership(_newOwner); } function creationPresaleStateChange(bool _input) public onlyOwner { // require(creationEnabled,"already disabled"); creationPresaleEnabled = _input; } function creationNFTPresaleStateChange(bool _input) public onlyOwner { // require(creationEnabled,"already disabled"); creationNFTPresaleEnabled = _input; } function getStuckBNB() public onlyOwner { payable(owner).transfer(address(this).balance); } function changeExtraTokenPer(uint256 _newPer) public onlyOwner { require(_newPer > 0, "Invalid percentage value"); extraAmountPer = _newPer; } function changeFeeContract(address _newContract) public onlyOwner { require(_newContract != address(0x0), "addr cannot be zero"); feeContract = _newContract; } function changeFeeCheckContract( address _newFeeCheckContract ) public onlyOwner { require(_newFeeCheckContract != address(0x0), "addr cannot be zero"); feeCheckContract = _newFeeCheckContract; } function changeStorageContract( address _newStorageContract ) public onlyOwner { require(_newStorageContract != address(0x0), "addr cannot be zero"); storageContract = _newStorageContract; } function changeReferralContract( address _newReferralContract ) public onlyOwner { require(_newReferralContract != address(0x0), "addr cannot be zero"); referralDappAddr = _newReferralContract; } function enableRefTOkenFee() public onlyOwner { require(!tokenFeeToReferrer, "already enabled"); tokenFeeToReferrer = true; } function disableRefTOkenFee() public onlyOwner { require(tokenFeeToReferrer, "already disabled"); tokenFeeToReferrer = false; } function changeminLockTime(uint256 _newMinLockTime) public onlyOwner { minLockTime = _newMinLockTime; } }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 1 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_presaleDappAddr","type":"address"},{"internalType":"address","name":"_feeRecieveContract","type":"address"},{"internalType":"address","name":"_storageContract","type":"address"},{"internalType":"address","name":"_referralContract","type":"address"},{"internalType":"address","name":"_feeCheckContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"_whitelistAddress","type":"address[]"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"AddToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAirdropFee","type":"uint256"}],"name":"ChangeAirdropFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newVoterAddress","type":"address"}],"name":"ChangeVoterAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[10]","name":"_tokenInfo","type":"string[10]"},{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256[2]","name":"start_end_time","type":"uint256[2]"},{"internalType":"uint256[5]","name":"soft_hard_cap_rate_min_max_eth","type":"uint256[5]"},{"internalType":"uint256[3]","name":"vestData","type":"uint256[3]"},{"internalType":"string","name":"_referralCode","type":"string"}],"name":"CreatePresalePrivate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_whitelistAddress","type":"address[]"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"RemoveFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"RouterValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeFalse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"callFinalizeDG","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDelta","type":"uint256"}],"name":"changeDeltaStartEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPer","type":"uint256"}],"name":"changeExtraTokenPer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newFeeCheckContract","type":"address"}],"name":"changeFeeCheckContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newContract","type":"address"}],"name":"changeFeeContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newReferralContract","type":"address"}],"name":"changeReferralContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newStorageContract","type":"address"}],"name":"changeStorageContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"uniPer","type":"uint256"}],"name":"changeUniPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMinLockTime","type":"uint256"}],"name":"changeminLockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presaleToRefundFromOwnerAddress","type":"address"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"checkTotalEthraisedOfPresale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creationNFTPresaleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_input","type":"bool"}],"name":"creationNFTPresaleStateChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creationPresaleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_input","type":"bool"}],"name":"creationPresaleStateChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dappFeeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dappName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dappWhitelistFeeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deltaStartEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableRefTOkenFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"disableWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableRefTOkenFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"enableWhitelist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"extraAmountPer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraAmountPerVal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeCheckContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"filter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStuckBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hundred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minUniPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleDappAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"presaleFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"presaleOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presaleToRefPer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presaleToReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralDappAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"routerNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"routerRecord","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_activeFalse","type":"bool"},{"internalType":"bool","name":"_filter","type":"bool"}],"name":"setActiveFalseFilter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storageContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFeeToReferrer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRaisedOnPlatform","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRefundedFromPlatform","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRouters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_presale","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferPresaleOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newPresaleDapp","type":"address"}],"name":"updatePresaleDapp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"presaleToRefundFromOwnerAddress","type":"address"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"voterCallsFinalizeRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presaleToRefundFromOwnerAddress","type":"address"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"voterCallsFinalizeRefundAnytime","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6002600181905562278d009055603260055562093a80600c5560c0604052601660809081527f5072697661746550726573616c654465706c6f7965720000000000000000000060a052600d9062000057908262000234565b506040805180820190915260128152717072697661746550726573616c654665657360701b6020820152600e9062000090908262000234565b5060408051808201909152601481527f7072697661746557686974656c697374466565730000000000000000000000006020820152600f90620000d4908262000234565b506002601b556064601d55601e805463ffffffff19166301010101179055348015620000ff57600080fd5b50604051620040673803806200406783398101604081905262000122916200031d565b60038054336001600160a01b0319918216179091556006805482166001600160a01b0397881617905560008054821695871695909517909455600880548516938616939093179092556007805484169185169190911790556009805490921692169190911790556200038d565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ba57607f821691505b602082108103620001db57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022f57600081815260208120601f850160051c810160208610156200020a5750805b601f850160051c820191505b818110156200022b5782815560010162000216565b5050505b505050565b81516001600160401b038111156200025057620002506200018f565b6200026881620002618454620001a5565b84620001e1565b602080601f831160018114620002a05760008415620002875750858301515b600019600386901b1c1916600185901b1785556200022b565b600085815260208120601f198616915b82811015620002d157888601518255948401946001909101908401620002b0565b5085821015620002f05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146200031857600080fd5b919050565b600080600080600060a086880312156200033657600080fd5b620003418662000300565b9450620003516020870162000300565b9350620003616040870162000300565b9250620003716060870162000300565b9150620003816080870162000300565b90509295509295909350565b613cca806200039d6000396000f3fe6080604052600436106102de5760003560e01c8063041f78cc146102e3578063042d97821461030557806306bb746e1461033957806306e29712146103595780630c52662e146103865780630d77c7df146103a6578063108d9447146103b957806311ce0267146103ef5780631f4ba8041461040f578063280db44014610433578063284def1514610453578063297054fb14610469578063344eaa271461047f578063363d9efc146104a15780634055f612146104b7578063426b487f146104d75780634503a6d3146104f6578063455991361461050b57806346c96aac1461052157806348e5b7d4146105415780634e6b53f71461057c5780634f81c1ff1461059c5780634fa361e7146105b15780635787b142146105d157806359f962f6146105f15780635bc39e0f146106075780635bff9a27146106275780635fadcc1e1461063d57806360b2aff31461065e578063662b35221461069457806369f5ef4a146106a95780636e62d42f146106c3578063715018a6146106e35780637a594b79146106f85780637d06b7fd146107185780637f928c821461072d5780638da5cb5b1461074257806390f6c06514610762578063a42b45bf14610782578063a60ff76614610798578063a614fec1146107ae578063ab4304df146107e4578063ae27508414610804578063b02fa76c14610824578063b517da2d14610844578063b56a038a14610864578063bc5997751461087a578063c31c01871461089a578063c9467317146108c7578063d0b32863146108e7578063d0f0d73614610914578063d276aded14610934578063d394925414610954578063d50494cf14610974578063d97f558e14610994578063dd13b0dd146109b4578063dec379ff146109e4578063e11f2d1314610a04578063e3613cd914610a24578063ea354fcb14610a39578063efcd708f14610a59578063f2fde38b14610a89578063f5415c1f14610aa9578063f625fd3e14610abe578063f8beaff014610ad8575b600080fd5b3480156102ef57600080fd5b506103036102fe366004613282565b610aeb565b005b34801561031157600080fd5b5060115461032490610100900460ff1681565b60405190151581526020015b60405180910390f35b34801561034557600080fd5b50610303610354366004613282565b610bb8565b34801561036557600080fd5b50600054610379906001600160a01b031681565b604051610330919061329b565b34801561039257600080fd5b506103036103a1366004613343565b610bd4565b6103036103b4366004613282565b610ce6565b3480156103c557600080fd5b506103796103d43660046133fa565b6014602052600090815260409020546001600160a01b031681565b3480156103fb57600080fd5b50600854610379906001600160a01b031681565b34801561041b57600080fd5b50610425601c5481565b604051908152602001610330565b34801561043f57600080fd5b5061030361044e3660046133fa565b610d97565b34801561045f57600080fd5b5061042560055481565b34801561047557600080fd5b50610425600c5481565b34801561048b57600080fd5b50610494610dff565b6040516103309190613467565b3480156104ad57600080fd5b50610425601a5481565b3480156104c357600080fd5b50600754610379906001600160a01b031681565b3480156104e357600080fd5b50601e5461032490610100900460ff1681565b34801561050257600080fd5b50610303610e8d565b34801561051757600080fd5b5061042560105481565b34801561052d57600080fd5b50600454610379906001600160a01b031681565b34801561054d57600080fd5b5061032461055c36600461347a565b601360209081526000928352604080842090915290825290205460ff1681565b34801561058857600080fd5b506103036105973660046133fa565b610eb0565b3480156105a857600080fd5b50610494610f3a565b3480156105bd57600080fd5b506103036105cc366004613282565b610f47565b3480156105dd57600080fd5b506103036105ec3660046133fa565b61162c565b3480156105fd57600080fd5b50610425601b5481565b34801561061357600080fd5b506103036106223660046134b4565b61168b565b34801561063357600080fd5b50610425601d5481565b34801561064957600080fd5b50601e54610324906301000000900460ff1681565b34801561066a57600080fd5b50610379610679366004613282565b6016602052600090815260409020546001600160a01b031681565b3480156106a057600080fd5b506103036116bc565b3480156106b557600080fd5b506011546103249060ff1681565b3480156106cf57600080fd5b50600654610379906001600160a01b031681565b3480156106ef57600080fd5b5061030361172a565b34801561070457600080fd5b50610303610713366004613282565b61178b565b34801561072457600080fd5b506103036117f2565b34801561073957600080fd5b50610303611818565b34801561074e57600080fd5b50600354610379906001600160a01b031681565b34801561076e57600080fd5b5061030361077d366004613282565b61186b565b34801561078e57600080fd5b50610425600a5481565b3480156107a457600080fd5b5061042560025481565b3480156107ba57600080fd5b506103796107c9366004613282565b6018602052600090815260409020546001600160a01b031681565b3480156107f057600080fd5b506103036107ff3660046134b4565b611887565b34801561081057600080fd5b5061030361081f3660046134d1565b6118b1565b34801561083057600080fd5b50601e546103249062010000900460ff1681565b34801561085057600080fd5b5061030361085f3660046133fa565b6118fa565b34801561087057600080fd5b50610425600b5481565b34801561088657600080fd5b50610303610895366004613282565b611959565b3480156108a657600080fd5b506104256108b53660046133fa565b60196020526000908152604090205481565b3480156108d357600080fd5b506103036108e23660046133fa565b611a0d565b3480156108f357600080fd5b506104256109023660046133fa565b60156020526000908152604090205481565b34801561092057600080fd5b50600954610379906001600160a01b031681565b34801561094057600080fd5b5061030361094f36600461347a565b611a6c565b34801561096057600080fd5b5061042561096f36600461347a565b611c07565b34801561098057600080fd5b5061030361098f366004613343565b611cf0565b3480156109a057600080fd5b506103036109af36600461347a565b611dfc565b3480156109c057600080fd5b506103246109cf3660046133fa565b60176020526000908152604090205460ff1681565b3480156109f057600080fd5b506103036109ff3660046133fa565b611fc1565b348015610a1057600080fd5b50610303610a1f366004613282565b61204d565b348015610a3057600080fd5b506104946120b7565b348015610a4557600080fd5b50610303610a5436600461350a565b6120c4565b348015610a6557600080fd5b50610324610a743660046133fa565b60126020526000908152604090205460ff1681565b348015610a9557600080fd5b50610303610aa43660046133fa565b612121565b348015610ab557600080fd5b50610303612141565b348015610aca57600080fd5b50601e546103249060ff1681565b610303610ae63660046136a6565b6121b3565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610b1e90339086906004016137ad565b602060405180830381865afa158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f91906137c6565b9050806001600160a01b031663d6b0f4846040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b505050505050565b6003546001600160a01b03163314610bcf57600080fd5b600255565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610c0790339086906004016137ad565b602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4891906137c6565b905060005b8351811015610ce057816001600160a01b0316638ab1d681858381518110610c7757610c776137e3565b60200260200101516040518263ffffffff1660e01b8152600401610c9b919061329b565b600060405180830381600087803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b505050508080610cd89061380f565b915050610c4d565b50505050565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610d1990339086906004016137ad565b602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a91906137c6565b9050806001600160a01b031663cdfb2b4e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9c57600080fd5b6003546001600160a01b03163314610dae57600080fd5b6001600160a01b038116610ddd5760405162461bcd60e51b8152600401610dd490613828565b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600f8054610e0c90613855565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3890613855565b8015610e855780601f10610e5a57610100808354040283529160200191610e85565b820191906000526020600020905b815481529060010190602001808311610e6857829003601f168201915b505050505081565b6003546001600160a01b03163314610ea457600080fd5b6011805460ff19169055565b6003546001600160a01b03163314610ec757600080fd5b6001600160a01b038116610f185760405162461bcd60e51b8152602060048201526018602482015277070726573616c6520646170702063616e74206265203078360441b6044820152606401610dd4565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600d8054610e0c90613855565b600854604051637e2439b360e11b8152600091829182916001600160a01b03169063fc48736690610f7e90339088906004016137ad565b606060405180830381865afa158015610f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf919061388f565b601e5492955090935091506301000000900460ff16156110995760085460405163cf25127360e01b81526001600160a01b039091169063cf2512739061100b90339088906004016137ad565b6020604051808303816000875af115801561102a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104e91906138dc565b6110995760405162461bcd60e51b815260206004820152601c60248201527b3ab730b13632903a379039b2ba10383932b9b0b632902334b63a32b960211b6044820152606401610dd4565b601e5462010000900460ff16156111775760085460405163f3d7443b60e01b81526001600160a01b039091169063f3d7443b906110dc90339088906004016137ad565b6020604051808303816000875af11580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f91906138dc565b6111775760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207365742070726573616c65206163746976652073746160448201526274757360e81b6064820152608401610dd4565b601d54601b5461118691613044565b601c819055506000826001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f091906138f9565b90506000836001600160a01b031663e4c21cf26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611232573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125691906138f9565b905080821015801561126757508115155b1561152d57600a546112799083613044565b600a5560015460009061129a906064906112949086906130a8565b9061312a565b600080546001600160a01b038881168084526014602090815260408086205460159092529485902054601154955163f6e99c0d60e01b8152948416600486015292166024840152604483019190915261010090920460ff16151560648201529192509063f6e99c0d90608401600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50506040805180820182526001600160a01b03808a166000818152601460209081528582205490931684523383850152818152601590925290839020549251634d2a907360e01b8152909450634d2a90739350611397929060019060040161393e565b6020604051808303816000875af11580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da91906138f9565b6001146114265760405162461bcd60e51b815260206004820152601a60248201527966696e616c697a65206661696c6564206174207375636365737360301b6044820152606401610dd4565b6007546001600160a01b0386811660009081526014602090815260408083205460159092529091205492821692631d592a4d929190911690611470906064906112949087906130a8565b6040518363ffffffff1660e01b815260040161148d9291906137ad565b6020604051808303816000875af11580156114ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d091906138dc565b6115275760405162461bcd60e51b815260206004820152602260248201527f726566657272657220757064617465206661696c65642061742066696e616c696044820152617a6560f01b6064820152608401610dd4565b50610bb0565b80821080611539575081155b15610bb057600b5461154b9083613044565b600b556040805180820182526000808252336020808401919091526001600160a01b0388168083526015909152838220549351634d2a907360e01b81529093634d2a90739361159e93909260040161393e565b6020604051808303816000875af11580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e191906138f9565b600114610bb05760405162461bcd60e51b8152602060048201526019602482015278199a5b985b1a5e994819985a5b195908185d081c99599d5b99603a1b6044820152606401610dd4565b6003546001600160a01b0316331461164357600080fd5b6001600160a01b0381166116695760405162461bcd60e51b8152600401610dd490613828565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146116a257600080fd5b601e80549115156101000261ff0019909216919091179055565b6003546001600160a01b031633146116d357600080fd5b601154610100900460ff1661171d5760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48191a5cd8589b195960821b6044820152606401610dd4565b6011805461ff0019169055565b6003546001600160a01b0316331461174157600080fd5b6003546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600380546001600160a01b0319169055565b6003546001600160a01b031633146117a257600080fd5b600081116117ed5760405162461bcd60e51b8152602060048201526018602482015277496e76616c69642070657263656e746167652076616c756560401b6044820152606401610dd4565b601b55565b6003546001600160a01b0316331461180957600080fd5b6011805460ff19166001179055565b6003546001600160a01b0316331461182f57600080fd5b6003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611868573d6000803e3d6000fd5b50565b6003546001600160a01b0316331461188257600080fd5b600c55565b6003546001600160a01b0316331461189e57600080fd5b601e805460ff1916911515919091179055565b6003546001600160a01b031633146118c857600080fd5b601e805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055565b6003546001600160a01b0316331461191157600080fd5b6001600160a01b0381166119375760405162461bcd60e51b8152600401610dd490613828565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461197057600080fd5b60648111156119ba5760405162461bcd60e51b81526020600482015260166024820152756f7574206f662072616e6765206665652076616c756560501b6044820152606401610dd4565b6001548103611a085760405162461bcd60e51b815260206004820152601a6024820152794e6577206665652069732073616d65206173204f6c642066656560301b6044820152606401610dd4565b600155565b6003546001600160a01b03163314611a2457600080fd5b6001600160a01b038116611a4a5760405162461bcd60e51b8152600401610dd490613828565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b03163314611a8357600080fd5b60085460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b4441190611aba90879087906004016137ad565b6040805180830381865afa158015611ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afa9190613962565b91509150611b14611b0b8585611c07565b600b5490613044565b600b5560408051808201825260008082526001600160a01b0387811660208401529251631c8d674960e01b815292851692631c8d674992611b59929091600401613991565b6020604051808303816000875af1158015611b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9c91906138f9565b50600854604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690611bcf90879087906004016137ad565b600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b5050505050505050565b600854604051632b6419d360e11b815260009182916001600160a01b03909116906356c833a690611c3e90879087906004016137ad565b602060405180830381865afa158015611c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7f91906137c6565b90506000816001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce591906138f9565b925050505b92915050565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690611d2390339086906004016137ad565b602060405180830381865afa158015611d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6491906137c6565b905060005b8351811015610ce057816001600160a01b031663e43252d7858381518110611d9357611d936137e3565b60200260200101516040518263ffffffff1660e01b8152600401611db7919061329b565b600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b505050508080611df49061380f565b915050611d69565b6004546001600160a01b03163314611e1357600080fd5b60085460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b4441190611e4a90879087906004016137ad565b6040805180830381865afa158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8a9190613962565b91509150611e9b611b0b8585611c07565b600b5560408051808201825260008082526001600160a01b038781166020808501919091529086168083526015909152838220549351634d2a907360e01b81529093634d2a907393611ef193909260040161393e565b6020604051808303816000875af1158015611f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3491906138f9565b600114611f8f5760405162461bcd60e51b8152602060048201526024808201527f66696e616c697a65206661696c656420617420766f7465722063616c6c207265604482015263199d5b9960e21b6064820152608401610dd4565b600854604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690611bcf90879087906004016137ad565b6003546001600160a01b03163314611fd857600080fd5b6001600160a01b03811661202b5760405162461bcd60e51b815260206004820152601a6024820152792732bb9020b232391031b0b73a103132903d32b9379030b2323960311b6044820152606401610dd4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461206457600080fd5b60648111156120b25760405162461bcd60e51b815260206004820152601a602482015279756e695065722076616c7565206f7574736964652072616e676560301b6044820152606401610dd4565b600555565b600e8054610e0c90613855565b6003546001600160a01b031633146120db57600080fd5b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b9061210790849060040161329b565b600060405180830381600087803b158015610b9c57600080fd5b6003546001600160a01b0316331461213857600080fd5b61186881613169565b6003546001600160a01b0316331461215857600080fd5b601154610100900460ff16156121a25760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610dd4565b6011805461ff001916610100179055565b601e5460ff166122015760405162461bcd60e51b815260206004820152601960248201527818dc99585d1a5bdb88141c995cd85b1948191a5cd8589b1959603a1b6044820152606401610dd4565b81516064101561225e5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742076657374206d6f7265207468616e2031303070632072616973604482015261195960f21b6064820152608401610dd4565b835142106122a95760405162461bcd60e51b815260206004820152601860248201527773746172742074696d65206e6f7420696e2066757475726560401b6044820152606401610dd4565b600c546122bf908560005b602002015190613044565b602085015111156123125760405162461bcd60e51b815260206004820152601e60248201527f70726573616c65206475726174696f6e2065786365656473206c696d697400006044820152606401610dd4565b602083015161232290600261312a565b8351101561237d5760405162461bcd60e51b815260206004820152602260248201527f73636170206d7573742062652061746c656173742068616c66206f6620686361604482015261702160f01b6064820152608401610dd4565b60608301516123c55760405162461bcd60e51b815260206004820152601460248201527306d696e20636f6e74206d757374206265203e20360641b6044820152606401610dd4565b60608301516080840151101561241c5760405162461bcd60e51b815260206004820152601c60248201527b1b585e0818dbdb9d081b5d5cdd081899480f8f481b5a5b8818dbdb9d60221b6044820152606401610dd4565b60115460ff16156124bc57604051602001612436906139ae565b604051602081830303815290604052805190602001208160405160200161245d91906139c1565b60405160208183030381529060405280519060200120146124bc5760405162461bcd60e51b81526020600482015260196024820152781bdb9b1e48191959985d5b1d0818dbd91948185b1b1bddd959603a1b6044820152606401610dd4565b6040516020016124cb906139ae565b60405160208183030381529060405280519060200120816040516020016124f291906139c1565b6040516020818303038152906040528051906020012014612a22576007546040516349e96fdd60e01b81526001600160a01b03909116906349e96fdd9061253d908490600401613467565b6020604051808303816000875af115801561255c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258091906138dc565b6125c45760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420646973636f756e7420636f646560581b6044820152606401610dd4565b601d54600754604051635f51485160e11b81526126c692916112949161264e916001600160a01b03169063bea290a290612602908890600401613467565b6020604051808303816000875af1158015612621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264591906138f9565b601d54906131d8565b600954604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc9061267f90600e906004016139dd565b602060405180830381865afa15801561269c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c091906138f9565b906130a8565b3410156127265760405162461bcd60e51b815260206004820152602860248201527f6d73672e76616c7565206d75737420626520657175616c20746f20726566657260448201526772616c206665652160c01b6064820152608401610dd4565b600754604051630fc0b3fd60e01b81526000916127ae91606491611294916001600160a01b0390911690630fc0b3fd90612764908890600401613467565b6020604051808303816000875af1158015612783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a791906138f9565b34906130a8565b600754604051630f22420560e11b81529192506001600160a01b031690631e44840a906127df908590600401613467565b6020604051808303816000875af11580156127fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282291906137c6565b6001600160a01b03166108fc829081150290604051600060405180830381858888f1935050505015801561285a573d6000803e3d6000fd5b50600054600754604051630fc0b3fd60e01b81526001600160a01b0392831692638b3c99e3926128a692606492611294926127a792911690630fc0b3fd90612602908b90600401613467565b6040516001600160e01b031960e084901b168152600660048201526024016000604051808303818588803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b5050600754604051630f22420560e11b81526001600160a01b039091169350631d592a4d9250839150631e44840a9061292e908790600401613467565b6020604051808303816000875af115801561294d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297191906137c6565b836040518363ffffffff1660e01b815260040161298f9291906137ad565b6020604051808303816000875af11580156129ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d291906138dc565b612a1c5760405162461bcd60e51b815260206004820152601b60248201527a1c9959995c9c995c905b5bdd5b9d155c19185d194819985a5b1959602a1b6044820152606401610dd4565b50612b54565b600954604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc90612a5390600e906004016139dd565b602060405180830381865afa158015612a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9491906138f9565b341015612af35760405162461bcd60e51b815260206004820152602760248201527f6d73672e76616c7565206d75737420626520657175616c20746f2070726573616044820152666c65206665652160c81b6064820152608401610dd4565b600054604051638b3c99e360e01b8152600760048201526001600160a01b0390911690638b3c99e39034906024016000604051808303818588803b158015612b3a57600080fd5b505af1158015612b4e573d6000803e3d6000fd5b50505050505b6020840151612b676102588660006122b4565b1115612bb55760405162461bcd60e51b815260206004820181905260248201527f70726573616c6520706572696f64206c657373207468616e206d696e696d756d6044820152606401610dd4565b60085460408051606081018252600181526000602082018190528183018190529151630282544d60e21b81526001600160a01b0390931692630a09513492612c04928a92339190600401613a89565b6020604051808303816000875af1158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906138dc565b612c8d5760405162461bcd60e51b81526020600482015260176024820152761cdd1bdc9859d9481859191a5d1a5bdb8819985a5b1959604a1b6044820152606401610dd4565b600654604080516080810182523081523360208201526001600160a01b038881168284015260006060830181905292516308dbf55f60e11b8152929316916311b7eabe91612ce391899089908990600401613b26565b6020604051808303816000875af1158015612d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2691906137c6565b600754604051630f22420560e11b81529192506001600160a01b031690631e44840a90612d57908590600401613467565b6020604051808303816000875af1158015612d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9a91906137c6565b6001600160a01b038281166000908152601460205260409081902080546001600160a01b031916938316939093179092556007549151630fc0b3fd60e01b8152911690630fc0b3fd90612df1908590600401613467565b6020604051808303816000875af1158015612e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3491906138f9565b6001600160a01b03808316600090815260156020526040808220939093556008549251631996f55960e11b81529092612eca9260019291169063332deab290612e8190339060040161329b565b6020604051808303816000875af1158015612ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec491906138f9565b906131d8565b600854604051638252401760e01b81529192506001600160a01b031690638252401790612f01908b90869033908790600401613ba0565b6020604051808303816000875af1158015612f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4491906138dc565b612f8a5760405162461bcd60e51b81526020600482015260176024820152761c1c995cd85b19481859191c881859190819985a5b1959604a1b6044820152606401610dd4565b600754604051635ac066d560e01b81526001600160a01b0390911690635ac066d590612fbc9086908690600401613c0b565b6020604051808303816000875af1158015612fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fff91906138dc565b611bfd5760405162461bcd60e51b815260206004820152601660248201527518dbd919481d5cd9481d5c19185d194819985a5b195960521b6044820152606401610dd4565b6000806130518385613c35565b9050838110156130a15760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610dd4565b9392505050565b6000826000036130ba57506000611cea565b60006130c68385613c48565b9050826130d38583613c5f565b146130a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610dd4565b60006130a183836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061321a565b6001600160a01b03811661317c57600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006130a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613251565b6000818361323b5760405162461bcd60e51b8152600401610dd49190613467565b5060006132488486613c5f565b95945050505050565b600081848411156132755760405162461bcd60e51b8152600401610dd49190613467565b5060006132488486613c81565b60006020828403121561329457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156132e8576132e86132af565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613316576133166132af565b604052919050565b6001600160a01b038116811461186857600080fd5b803561333e8161331e565b919050565b6000806040838503121561335657600080fd5b82356001600160401b038082111561336d57600080fd5b818501915085601f83011261338157600080fd5b8135602082821115613395576133956132af565b8160051b92506133a68184016132ee565b82815292840181019281810190898511156133c057600080fd5b948201945b848610156133ea57853593506133da8461331e565b83825294820194908201906133c5565b9997909101359750505050505050565b60006020828403121561340c57600080fd5b81356130a18161331e565b60005b8381101561343257818101518382015260200161341a565b50506000910152565b60008151808452613453816020860160208601613417565b601f01601f19169290920160200192915050565b6020815260006130a1602083018461343b565b6000806040838503121561348d57600080fd5b82356134988161331e565b946020939093013593505050565b801515811461186857600080fd5b6000602082840312156134c657600080fd5b81356130a1816134a6565b600080604083850312156134e457600080fd5b82356134ef816134a6565b915060208301356134ff816134a6565b809150509250929050565b6000806040838503121561351d57600080fd5b82356135288161331e565b915060208301356134ff8161331e565b600082601f83011261354957600080fd5b81356001600160401b03811115613562576135626132af565b613575601f8201601f19166020016132ee565b81815284602083860101111561358a57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126135b857600080fd5b604080519081016001600160401b03811182821017156135da576135da6132af565b80604052508060408401858111156135f157600080fd5b845b8181101561360b5780358352602092830192016135f3565b509195945050505050565b600082601f83011261362757600080fd5b60405160a081016001600160401b0381118282101715613649576136496132af565b6040528060a08401858111156135f157600080fd5b600082601f83011261366f57600080fd5b604051606081016001600160401b0381118282101715613691576136916132af565b6040528060608401858111156135f157600080fd5b6000806000806000806101a087890312156136c057600080fd5b86356001600160401b03808211156136d757600080fd5b818901915089601f8301126136eb57600080fd5b6136f36132c5565b8061014084018c81111561370657600080fd5b845b8181101561373b578035858111156137205760008081fd5b61372c8f828901613538565b85525060209384019301613708565b5050809950505061374e60208a01613333565b965061375d8a60408b016135a7565b955061376c8a60808b01613616565b945061377c8a6101208b0161365e565b935061018089013591508082111561379357600080fd5b506137a089828a01613538565b9150509295509295509295565b6001600160a01b03929092168252602082015260400190565b6000602082840312156137d857600080fd5b81516130a18161331e565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613821576138216137f9565b5060010190565b602080825260139082015272616464722063616e6e6f74206265207a65726f60681b604082015260600190565b600181811c9082168061386957607f821691505b60208210810361388957634e487b7160e01b600052602260045260246000fd5b50919050565b6000806000606084860312156138a457600080fd5b83516138af8161331e565b60208501519093506138c08161331e565b60408501519092506138d18161331e565b809150509250925092565b6000602082840312156138ee57600080fd5b81516130a1816134a6565b60006020828403121561390b57600080fd5b5051919050565b8060005b6002811015610ce05781516001600160a01b0316845260209384019390910190600101613916565b6080810161394c8286613912565b8360408301528215156060830152949350505050565b6000806040838503121561397557600080fd5b82516139808161331e565b60208401519092506134ff8161331e565b6060810161399f8285613912565b82151560408301529392505050565b66191959985d5b1d60ca1b815260070190565b600082516139d3818460208701613417565b9190910192915050565b600060208083526000845481600182811c9150808316806139ff57607f831692505b8583108103613a1c57634e487b7160e01b85526022600452602485fd5b878601838152602001818015613a395760018114613a4f57613a7a565b60ff198616825284151560051b82019650613a7a565b60008b81526020902060005b86811015613a7457815484820152908501908901613a5b565b83019750505b50949998505050505050505050565b6001600160a01b0385811682526020808301869052908416604083015260c082019060608301908460005b6003811015613ad3578151151584529282019290820190600101613ab4565b5050505095945050505050565b8060005b6005811015610ce0578151845260209384019390910190600101613ae4565b8060005b6003811015610ce0578151845260209384019390910190600101613b07565b6101c08101818660005b6004811015613b585781516001600160a01b0316835260209283019290910190600101613b30565b505050608082018560005b6002811015613b82578151835260209283019290910190600101613b63565b505050613b9260c0830185613ae0565b613248610160830184613b03565b60808082526000906101c0830190830187835b600a811015613be557607f19868503018352613bd084835161343b565b93506020928301929190910190600101613bb3565b5050506001600160a01b0395861660208401529390941660408201526060015292915050565b604081526000613c1e604083018561343b565b905060018060a01b03831660208301529392505050565b80820180821115611cea57611cea6137f9565b8082028115828204841417611cea57611cea6137f9565b600082613c7c57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115611cea57611cea6137f956fea2646970667358221220e1b9947c4c9ae169789bed93c8c3cdf442867dfc399f5f9939a9ccace605cba464736f6c63430008110033000000000000000000000000c4b8c6adc2fdfb86134547050c13e1f0b32953770000000000000000000000000febb541ef3632925cd67daf9e82cdc8ec7a71ef00000000000000000000000037d79eea1f3d5475a7e0f0cd8f8130df8500ca29000000000000000000000000344129238deb523c02e8be4c0e7e630780711bc5000000000000000000000000c1b4c3862d252e4146ca7776faf4460b5bc2ffd9
Deployed Bytecode
0x6080604052600436106102de5760003560e01c8063041f78cc146102e3578063042d97821461030557806306bb746e1461033957806306e29712146103595780630c52662e146103865780630d77c7df146103a6578063108d9447146103b957806311ce0267146103ef5780631f4ba8041461040f578063280db44014610433578063284def1514610453578063297054fb14610469578063344eaa271461047f578063363d9efc146104a15780634055f612146104b7578063426b487f146104d75780634503a6d3146104f6578063455991361461050b57806346c96aac1461052157806348e5b7d4146105415780634e6b53f71461057c5780634f81c1ff1461059c5780634fa361e7146105b15780635787b142146105d157806359f962f6146105f15780635bc39e0f146106075780635bff9a27146106275780635fadcc1e1461063d57806360b2aff31461065e578063662b35221461069457806369f5ef4a146106a95780636e62d42f146106c3578063715018a6146106e35780637a594b79146106f85780637d06b7fd146107185780637f928c821461072d5780638da5cb5b1461074257806390f6c06514610762578063a42b45bf14610782578063a60ff76614610798578063a614fec1146107ae578063ab4304df146107e4578063ae27508414610804578063b02fa76c14610824578063b517da2d14610844578063b56a038a14610864578063bc5997751461087a578063c31c01871461089a578063c9467317146108c7578063d0b32863146108e7578063d0f0d73614610914578063d276aded14610934578063d394925414610954578063d50494cf14610974578063d97f558e14610994578063dd13b0dd146109b4578063dec379ff146109e4578063e11f2d1314610a04578063e3613cd914610a24578063ea354fcb14610a39578063efcd708f14610a59578063f2fde38b14610a89578063f5415c1f14610aa9578063f625fd3e14610abe578063f8beaff014610ad8575b600080fd5b3480156102ef57600080fd5b506103036102fe366004613282565b610aeb565b005b34801561031157600080fd5b5060115461032490610100900460ff1681565b60405190151581526020015b60405180910390f35b34801561034557600080fd5b50610303610354366004613282565b610bb8565b34801561036557600080fd5b50600054610379906001600160a01b031681565b604051610330919061329b565b34801561039257600080fd5b506103036103a1366004613343565b610bd4565b6103036103b4366004613282565b610ce6565b3480156103c557600080fd5b506103796103d43660046133fa565b6014602052600090815260409020546001600160a01b031681565b3480156103fb57600080fd5b50600854610379906001600160a01b031681565b34801561041b57600080fd5b50610425601c5481565b604051908152602001610330565b34801561043f57600080fd5b5061030361044e3660046133fa565b610d97565b34801561045f57600080fd5b5061042560055481565b34801561047557600080fd5b50610425600c5481565b34801561048b57600080fd5b50610494610dff565b6040516103309190613467565b3480156104ad57600080fd5b50610425601a5481565b3480156104c357600080fd5b50600754610379906001600160a01b031681565b3480156104e357600080fd5b50601e5461032490610100900460ff1681565b34801561050257600080fd5b50610303610e8d565b34801561051757600080fd5b5061042560105481565b34801561052d57600080fd5b50600454610379906001600160a01b031681565b34801561054d57600080fd5b5061032461055c36600461347a565b601360209081526000928352604080842090915290825290205460ff1681565b34801561058857600080fd5b506103036105973660046133fa565b610eb0565b3480156105a857600080fd5b50610494610f3a565b3480156105bd57600080fd5b506103036105cc366004613282565b610f47565b3480156105dd57600080fd5b506103036105ec3660046133fa565b61162c565b3480156105fd57600080fd5b50610425601b5481565b34801561061357600080fd5b506103036106223660046134b4565b61168b565b34801561063357600080fd5b50610425601d5481565b34801561064957600080fd5b50601e54610324906301000000900460ff1681565b34801561066a57600080fd5b50610379610679366004613282565b6016602052600090815260409020546001600160a01b031681565b3480156106a057600080fd5b506103036116bc565b3480156106b557600080fd5b506011546103249060ff1681565b3480156106cf57600080fd5b50600654610379906001600160a01b031681565b3480156106ef57600080fd5b5061030361172a565b34801561070457600080fd5b50610303610713366004613282565b61178b565b34801561072457600080fd5b506103036117f2565b34801561073957600080fd5b50610303611818565b34801561074e57600080fd5b50600354610379906001600160a01b031681565b34801561076e57600080fd5b5061030361077d366004613282565b61186b565b34801561078e57600080fd5b50610425600a5481565b3480156107a457600080fd5b5061042560025481565b3480156107ba57600080fd5b506103796107c9366004613282565b6018602052600090815260409020546001600160a01b031681565b3480156107f057600080fd5b506103036107ff3660046134b4565b611887565b34801561081057600080fd5b5061030361081f3660046134d1565b6118b1565b34801561083057600080fd5b50601e546103249062010000900460ff1681565b34801561085057600080fd5b5061030361085f3660046133fa565b6118fa565b34801561087057600080fd5b50610425600b5481565b34801561088657600080fd5b50610303610895366004613282565b611959565b3480156108a657600080fd5b506104256108b53660046133fa565b60196020526000908152604090205481565b3480156108d357600080fd5b506103036108e23660046133fa565b611a0d565b3480156108f357600080fd5b506104256109023660046133fa565b60156020526000908152604090205481565b34801561092057600080fd5b50600954610379906001600160a01b031681565b34801561094057600080fd5b5061030361094f36600461347a565b611a6c565b34801561096057600080fd5b5061042561096f36600461347a565b611c07565b34801561098057600080fd5b5061030361098f366004613343565b611cf0565b3480156109a057600080fd5b506103036109af36600461347a565b611dfc565b3480156109c057600080fd5b506103246109cf3660046133fa565b60176020526000908152604090205460ff1681565b3480156109f057600080fd5b506103036109ff3660046133fa565b611fc1565b348015610a1057600080fd5b50610303610a1f366004613282565b61204d565b348015610a3057600080fd5b506104946120b7565b348015610a4557600080fd5b50610303610a5436600461350a565b6120c4565b348015610a6557600080fd5b50610324610a743660046133fa565b60126020526000908152604090205460ff1681565b348015610a9557600080fd5b50610303610aa43660046133fa565b612121565b348015610ab557600080fd5b50610303612141565b348015610aca57600080fd5b50601e546103249060ff1681565b610303610ae63660046136a6565b6121b3565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610b1e90339086906004016137ad565b602060405180830381865afa158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f91906137c6565b9050806001600160a01b031663d6b0f4846040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b505050505050565b6003546001600160a01b03163314610bcf57600080fd5b600255565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610c0790339086906004016137ad565b602060405180830381865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4891906137c6565b905060005b8351811015610ce057816001600160a01b0316638ab1d681858381518110610c7757610c776137e3565b60200260200101516040518263ffffffff1660e01b8152600401610c9b919061329b565b600060405180830381600087803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b505050508080610cd89061380f565b915050610c4d565b50505050565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610d1990339086906004016137ad565b602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a91906137c6565b9050806001600160a01b031663cdfb2b4e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9c57600080fd5b6003546001600160a01b03163314610dae57600080fd5b6001600160a01b038116610ddd5760405162461bcd60e51b8152600401610dd490613828565b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600f8054610e0c90613855565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3890613855565b8015610e855780601f10610e5a57610100808354040283529160200191610e85565b820191906000526020600020905b815481529060010190602001808311610e6857829003601f168201915b505050505081565b6003546001600160a01b03163314610ea457600080fd5b6011805460ff19169055565b6003546001600160a01b03163314610ec757600080fd5b6001600160a01b038116610f185760405162461bcd60e51b8152602060048201526018602482015277070726573616c6520646170702063616e74206265203078360441b6044820152606401610dd4565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600d8054610e0c90613855565b600854604051637e2439b360e11b8152600091829182916001600160a01b03169063fc48736690610f7e90339088906004016137ad565b606060405180830381865afa158015610f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf919061388f565b601e5492955090935091506301000000900460ff16156110995760085460405163cf25127360e01b81526001600160a01b039091169063cf2512739061100b90339088906004016137ad565b6020604051808303816000875af115801561102a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104e91906138dc565b6110995760405162461bcd60e51b815260206004820152601c60248201527b3ab730b13632903a379039b2ba10383932b9b0b632902334b63a32b960211b6044820152606401610dd4565b601e5462010000900460ff16156111775760085460405163f3d7443b60e01b81526001600160a01b039091169063f3d7443b906110dc90339088906004016137ad565b6020604051808303816000875af11580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f91906138dc565b6111775760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207365742070726573616c65206163746976652073746160448201526274757360e81b6064820152608401610dd4565b601d54601b5461118691613044565b601c819055506000826001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f091906138f9565b90506000836001600160a01b031663e4c21cf26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611232573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125691906138f9565b905080821015801561126757508115155b1561152d57600a546112799083613044565b600a5560015460009061129a906064906112949086906130a8565b9061312a565b600080546001600160a01b038881168084526014602090815260408086205460159092529485902054601154955163f6e99c0d60e01b8152948416600486015292166024840152604483019190915261010090920460ff16151560648201529192509063f6e99c0d90608401600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50506040805180820182526001600160a01b03808a166000818152601460209081528582205490931684523383850152818152601590925290839020549251634d2a907360e01b8152909450634d2a90739350611397929060019060040161393e565b6020604051808303816000875af11580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da91906138f9565b6001146114265760405162461bcd60e51b815260206004820152601a60248201527966696e616c697a65206661696c6564206174207375636365737360301b6044820152606401610dd4565b6007546001600160a01b0386811660009081526014602090815260408083205460159092529091205492821692631d592a4d929190911690611470906064906112949087906130a8565b6040518363ffffffff1660e01b815260040161148d9291906137ad565b6020604051808303816000875af11580156114ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d091906138dc565b6115275760405162461bcd60e51b815260206004820152602260248201527f726566657272657220757064617465206661696c65642061742066696e616c696044820152617a6560f01b6064820152608401610dd4565b50610bb0565b80821080611539575081155b15610bb057600b5461154b9083613044565b600b556040805180820182526000808252336020808401919091526001600160a01b0388168083526015909152838220549351634d2a907360e01b81529093634d2a90739361159e93909260040161393e565b6020604051808303816000875af11580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e191906138f9565b600114610bb05760405162461bcd60e51b8152602060048201526019602482015278199a5b985b1a5e994819985a5b195908185d081c99599d5b99603a1b6044820152606401610dd4565b6003546001600160a01b0316331461164357600080fd5b6001600160a01b0381166116695760405162461bcd60e51b8152600401610dd490613828565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146116a257600080fd5b601e80549115156101000261ff0019909216919091179055565b6003546001600160a01b031633146116d357600080fd5b601154610100900460ff1661171d5760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48191a5cd8589b195960821b6044820152606401610dd4565b6011805461ff0019169055565b6003546001600160a01b0316331461174157600080fd5b6003546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600380546001600160a01b0319169055565b6003546001600160a01b031633146117a257600080fd5b600081116117ed5760405162461bcd60e51b8152602060048201526018602482015277496e76616c69642070657263656e746167652076616c756560401b6044820152606401610dd4565b601b55565b6003546001600160a01b0316331461180957600080fd5b6011805460ff19166001179055565b6003546001600160a01b0316331461182f57600080fd5b6003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611868573d6000803e3d6000fd5b50565b6003546001600160a01b0316331461188257600080fd5b600c55565b6003546001600160a01b0316331461189e57600080fd5b601e805460ff1916911515919091179055565b6003546001600160a01b031633146118c857600080fd5b601e805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055565b6003546001600160a01b0316331461191157600080fd5b6001600160a01b0381166119375760405162461bcd60e51b8152600401610dd490613828565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461197057600080fd5b60648111156119ba5760405162461bcd60e51b81526020600482015260166024820152756f7574206f662072616e6765206665652076616c756560501b6044820152606401610dd4565b6001548103611a085760405162461bcd60e51b815260206004820152601a6024820152794e6577206665652069732073616d65206173204f6c642066656560301b6044820152606401610dd4565b600155565b6003546001600160a01b03163314611a2457600080fd5b6001600160a01b038116611a4a5760405162461bcd60e51b8152600401610dd490613828565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b03163314611a8357600080fd5b60085460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b4441190611aba90879087906004016137ad565b6040805180830381865afa158015611ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afa9190613962565b91509150611b14611b0b8585611c07565b600b5490613044565b600b5560408051808201825260008082526001600160a01b0387811660208401529251631c8d674960e01b815292851692631c8d674992611b59929091600401613991565b6020604051808303816000875af1158015611b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9c91906138f9565b50600854604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690611bcf90879087906004016137ad565b600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b5050505050505050565b600854604051632b6419d360e11b815260009182916001600160a01b03909116906356c833a690611c3e90879087906004016137ad565b602060405180830381865afa158015611c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7f91906137c6565b90506000816001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce591906138f9565b925050505b92915050565b600854604051632b6419d360e11b81526000916001600160a01b0316906356c833a690611d2390339086906004016137ad565b602060405180830381865afa158015611d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6491906137c6565b905060005b8351811015610ce057816001600160a01b031663e43252d7858381518110611d9357611d936137e3565b60200260200101516040518263ffffffff1660e01b8152600401611db7919061329b565b600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b505050508080611df49061380f565b915050611d69565b6004546001600160a01b03163314611e1357600080fd5b60085460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b4441190611e4a90879087906004016137ad565b6040805180830381865afa158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8a9190613962565b91509150611e9b611b0b8585611c07565b600b5560408051808201825260008082526001600160a01b038781166020808501919091529086168083526015909152838220549351634d2a907360e01b81529093634d2a907393611ef193909260040161393e565b6020604051808303816000875af1158015611f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3491906138f9565b600114611f8f5760405162461bcd60e51b8152602060048201526024808201527f66696e616c697a65206661696c656420617420766f7465722063616c6c207265604482015263199d5b9960e21b6064820152608401610dd4565b600854604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690611bcf90879087906004016137ad565b6003546001600160a01b03163314611fd857600080fd5b6001600160a01b03811661202b5760405162461bcd60e51b815260206004820152601a6024820152792732bb9020b232391031b0b73a103132903d32b9379030b2323960311b6044820152606401610dd4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461206457600080fd5b60648111156120b25760405162461bcd60e51b815260206004820152601a602482015279756e695065722076616c7565206f7574736964652072616e676560301b6044820152606401610dd4565b600555565b600e8054610e0c90613855565b6003546001600160a01b031633146120db57600080fd5b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b9061210790849060040161329b565b600060405180830381600087803b158015610b9c57600080fd5b6003546001600160a01b0316331461213857600080fd5b61186881613169565b6003546001600160a01b0316331461215857600080fd5b601154610100900460ff16156121a25760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610dd4565b6011805461ff001916610100179055565b601e5460ff166122015760405162461bcd60e51b815260206004820152601960248201527818dc99585d1a5bdb88141c995cd85b1948191a5cd8589b1959603a1b6044820152606401610dd4565b81516064101561225e5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f742076657374206d6f7265207468616e2031303070632072616973604482015261195960f21b6064820152608401610dd4565b835142106122a95760405162461bcd60e51b815260206004820152601860248201527773746172742074696d65206e6f7420696e2066757475726560401b6044820152606401610dd4565b600c546122bf908560005b602002015190613044565b602085015111156123125760405162461bcd60e51b815260206004820152601e60248201527f70726573616c65206475726174696f6e2065786365656473206c696d697400006044820152606401610dd4565b602083015161232290600261312a565b8351101561237d5760405162461bcd60e51b815260206004820152602260248201527f73636170206d7573742062652061746c656173742068616c66206f6620686361604482015261702160f01b6064820152608401610dd4565b60608301516123c55760405162461bcd60e51b815260206004820152601460248201527306d696e20636f6e74206d757374206265203e20360641b6044820152606401610dd4565b60608301516080840151101561241c5760405162461bcd60e51b815260206004820152601c60248201527b1b585e0818dbdb9d081b5d5cdd081899480f8f481b5a5b8818dbdb9d60221b6044820152606401610dd4565b60115460ff16156124bc57604051602001612436906139ae565b604051602081830303815290604052805190602001208160405160200161245d91906139c1565b60405160208183030381529060405280519060200120146124bc5760405162461bcd60e51b81526020600482015260196024820152781bdb9b1e48191959985d5b1d0818dbd91948185b1b1bddd959603a1b6044820152606401610dd4565b6040516020016124cb906139ae565b60405160208183030381529060405280519060200120816040516020016124f291906139c1565b6040516020818303038152906040528051906020012014612a22576007546040516349e96fdd60e01b81526001600160a01b03909116906349e96fdd9061253d908490600401613467565b6020604051808303816000875af115801561255c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258091906138dc565b6125c45760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420646973636f756e7420636f646560581b6044820152606401610dd4565b601d54600754604051635f51485160e11b81526126c692916112949161264e916001600160a01b03169063bea290a290612602908890600401613467565b6020604051808303816000875af1158015612621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264591906138f9565b601d54906131d8565b600954604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc9061267f90600e906004016139dd565b602060405180830381865afa15801561269c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c091906138f9565b906130a8565b3410156127265760405162461bcd60e51b815260206004820152602860248201527f6d73672e76616c7565206d75737420626520657175616c20746f20726566657260448201526772616c206665652160c01b6064820152608401610dd4565b600754604051630fc0b3fd60e01b81526000916127ae91606491611294916001600160a01b0390911690630fc0b3fd90612764908890600401613467565b6020604051808303816000875af1158015612783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a791906138f9565b34906130a8565b600754604051630f22420560e11b81529192506001600160a01b031690631e44840a906127df908590600401613467565b6020604051808303816000875af11580156127fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282291906137c6565b6001600160a01b03166108fc829081150290604051600060405180830381858888f1935050505015801561285a573d6000803e3d6000fd5b50600054600754604051630fc0b3fd60e01b81526001600160a01b0392831692638b3c99e3926128a692606492611294926127a792911690630fc0b3fd90612602908b90600401613467565b6040516001600160e01b031960e084901b168152600660048201526024016000604051808303818588803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b5050600754604051630f22420560e11b81526001600160a01b039091169350631d592a4d9250839150631e44840a9061292e908790600401613467565b6020604051808303816000875af115801561294d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297191906137c6565b836040518363ffffffff1660e01b815260040161298f9291906137ad565b6020604051808303816000875af11580156129ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d291906138dc565b612a1c5760405162461bcd60e51b815260206004820152601b60248201527a1c9959995c9c995c905b5bdd5b9d155c19185d194819985a5b1959602a1b6044820152606401610dd4565b50612b54565b600954604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc90612a5390600e906004016139dd565b602060405180830381865afa158015612a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9491906138f9565b341015612af35760405162461bcd60e51b815260206004820152602760248201527f6d73672e76616c7565206d75737420626520657175616c20746f2070726573616044820152666c65206665652160c81b6064820152608401610dd4565b600054604051638b3c99e360e01b8152600760048201526001600160a01b0390911690638b3c99e39034906024016000604051808303818588803b158015612b3a57600080fd5b505af1158015612b4e573d6000803e3d6000fd5b50505050505b6020840151612b676102588660006122b4565b1115612bb55760405162461bcd60e51b815260206004820181905260248201527f70726573616c6520706572696f64206c657373207468616e206d696e696d756d6044820152606401610dd4565b60085460408051606081018252600181526000602082018190528183018190529151630282544d60e21b81526001600160a01b0390931692630a09513492612c04928a92339190600401613a89565b6020604051808303816000875af1158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906138dc565b612c8d5760405162461bcd60e51b81526020600482015260176024820152761cdd1bdc9859d9481859191a5d1a5bdb8819985a5b1959604a1b6044820152606401610dd4565b600654604080516080810182523081523360208201526001600160a01b038881168284015260006060830181905292516308dbf55f60e11b8152929316916311b7eabe91612ce391899089908990600401613b26565b6020604051808303816000875af1158015612d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2691906137c6565b600754604051630f22420560e11b81529192506001600160a01b031690631e44840a90612d57908590600401613467565b6020604051808303816000875af1158015612d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9a91906137c6565b6001600160a01b038281166000908152601460205260409081902080546001600160a01b031916938316939093179092556007549151630fc0b3fd60e01b8152911690630fc0b3fd90612df1908590600401613467565b6020604051808303816000875af1158015612e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3491906138f9565b6001600160a01b03808316600090815260156020526040808220939093556008549251631996f55960e11b81529092612eca9260019291169063332deab290612e8190339060040161329b565b6020604051808303816000875af1158015612ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec491906138f9565b906131d8565b600854604051638252401760e01b81529192506001600160a01b031690638252401790612f01908b90869033908790600401613ba0565b6020604051808303816000875af1158015612f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4491906138dc565b612f8a5760405162461bcd60e51b81526020600482015260176024820152761c1c995cd85b19481859191c881859190819985a5b1959604a1b6044820152606401610dd4565b600754604051635ac066d560e01b81526001600160a01b0390911690635ac066d590612fbc9086908690600401613c0b565b6020604051808303816000875af1158015612fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fff91906138dc565b611bfd5760405162461bcd60e51b815260206004820152601660248201527518dbd919481d5cd9481d5c19185d194819985a5b195960521b6044820152606401610dd4565b6000806130518385613c35565b9050838110156130a15760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610dd4565b9392505050565b6000826000036130ba57506000611cea565b60006130c68385613c48565b9050826130d38583613c5f565b146130a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610dd4565b60006130a183836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061321a565b6001600160a01b03811661317c57600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006130a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613251565b6000818361323b5760405162461bcd60e51b8152600401610dd49190613467565b5060006132488486613c5f565b95945050505050565b600081848411156132755760405162461bcd60e51b8152600401610dd49190613467565b5060006132488486613c81565b60006020828403121561329457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156132e8576132e86132af565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613316576133166132af565b604052919050565b6001600160a01b038116811461186857600080fd5b803561333e8161331e565b919050565b6000806040838503121561335657600080fd5b82356001600160401b038082111561336d57600080fd5b818501915085601f83011261338157600080fd5b8135602082821115613395576133956132af565b8160051b92506133a68184016132ee565b82815292840181019281810190898511156133c057600080fd5b948201945b848610156133ea57853593506133da8461331e565b83825294820194908201906133c5565b9997909101359750505050505050565b60006020828403121561340c57600080fd5b81356130a18161331e565b60005b8381101561343257818101518382015260200161341a565b50506000910152565b60008151808452613453816020860160208601613417565b601f01601f19169290920160200192915050565b6020815260006130a1602083018461343b565b6000806040838503121561348d57600080fd5b82356134988161331e565b946020939093013593505050565b801515811461186857600080fd5b6000602082840312156134c657600080fd5b81356130a1816134a6565b600080604083850312156134e457600080fd5b82356134ef816134a6565b915060208301356134ff816134a6565b809150509250929050565b6000806040838503121561351d57600080fd5b82356135288161331e565b915060208301356134ff8161331e565b600082601f83011261354957600080fd5b81356001600160401b03811115613562576135626132af565b613575601f8201601f19166020016132ee565b81815284602083860101111561358a57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126135b857600080fd5b604080519081016001600160401b03811182821017156135da576135da6132af565b80604052508060408401858111156135f157600080fd5b845b8181101561360b5780358352602092830192016135f3565b509195945050505050565b600082601f83011261362757600080fd5b60405160a081016001600160401b0381118282101715613649576136496132af565b6040528060a08401858111156135f157600080fd5b600082601f83011261366f57600080fd5b604051606081016001600160401b0381118282101715613691576136916132af565b6040528060608401858111156135f157600080fd5b6000806000806000806101a087890312156136c057600080fd5b86356001600160401b03808211156136d757600080fd5b818901915089601f8301126136eb57600080fd5b6136f36132c5565b8061014084018c81111561370657600080fd5b845b8181101561373b578035858111156137205760008081fd5b61372c8f828901613538565b85525060209384019301613708565b5050809950505061374e60208a01613333565b965061375d8a60408b016135a7565b955061376c8a60808b01613616565b945061377c8a6101208b0161365e565b935061018089013591508082111561379357600080fd5b506137a089828a01613538565b9150509295509295509295565b6001600160a01b03929092168252602082015260400190565b6000602082840312156137d857600080fd5b81516130a18161331e565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613821576138216137f9565b5060010190565b602080825260139082015272616464722063616e6e6f74206265207a65726f60681b604082015260600190565b600181811c9082168061386957607f821691505b60208210810361388957634e487b7160e01b600052602260045260246000fd5b50919050565b6000806000606084860312156138a457600080fd5b83516138af8161331e565b60208501519093506138c08161331e565b60408501519092506138d18161331e565b809150509250925092565b6000602082840312156138ee57600080fd5b81516130a1816134a6565b60006020828403121561390b57600080fd5b5051919050565b8060005b6002811015610ce05781516001600160a01b0316845260209384019390910190600101613916565b6080810161394c8286613912565b8360408301528215156060830152949350505050565b6000806040838503121561397557600080fd5b82516139808161331e565b60208401519092506134ff8161331e565b6060810161399f8285613912565b82151560408301529392505050565b66191959985d5b1d60ca1b815260070190565b600082516139d3818460208701613417565b9190910192915050565b600060208083526000845481600182811c9150808316806139ff57607f831692505b8583108103613a1c57634e487b7160e01b85526022600452602485fd5b878601838152602001818015613a395760018114613a4f57613a7a565b60ff198616825284151560051b82019650613a7a565b60008b81526020902060005b86811015613a7457815484820152908501908901613a5b565b83019750505b50949998505050505050505050565b6001600160a01b0385811682526020808301869052908416604083015260c082019060608301908460005b6003811015613ad3578151151584529282019290820190600101613ab4565b5050505095945050505050565b8060005b6005811015610ce0578151845260209384019390910190600101613ae4565b8060005b6003811015610ce0578151845260209384019390910190600101613b07565b6101c08101818660005b6004811015613b585781516001600160a01b0316835260209283019290910190600101613b30565b505050608082018560005b6002811015613b82578151835260209283019290910190600101613b63565b505050613b9260c0830185613ae0565b613248610160830184613b03565b60808082526000906101c0830190830187835b600a811015613be557607f19868503018352613bd084835161343b565b93506020928301929190910190600101613bb3565b5050506001600160a01b0395861660208401529390941660408201526060015292915050565b604081526000613c1e604083018561343b565b905060018060a01b03831660208301529392505050565b80820180821115611cea57611cea6137f9565b8082028115828204841417611cea57611cea6137f9565b600082613c7c57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115611cea57611cea6137f956fea2646970667358221220e1b9947c4c9ae169789bed93c8c3cdf442867dfc399f5f9939a9ccace605cba464736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c4b8c6adc2fdfb86134547050c13e1f0b32953770000000000000000000000000febb541ef3632925cd67daf9e82cdc8ec7a71ef00000000000000000000000037d79eea1f3d5475a7e0f0cd8f8130df8500ca29000000000000000000000000344129238deb523c02e8be4c0e7e630780711bc5000000000000000000000000c1b4c3862d252e4146ca7776faf4460b5bc2ffd9
-----Decoded View---------------
Arg [0] : _presaleDappAddr (address): 0xC4B8c6aDC2FDfB86134547050C13E1f0B3295377
Arg [1] : _feeRecieveContract (address): 0x0FEbB541Ef3632925cD67DAf9e82CdC8Ec7a71ef
Arg [2] : _storageContract (address): 0x37d79eea1f3D5475a7e0F0CD8f8130dF8500CA29
Arg [3] : _referralContract (address): 0x344129238deB523C02e8be4C0e7E630780711BC5
Arg [4] : _feeCheckContract (address): 0xC1b4c3862d252e4146CA7776FaF4460B5bc2FFd9
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000c4b8c6adc2fdfb86134547050c13e1f0b3295377
Arg [1] : 0000000000000000000000000febb541ef3632925cd67daf9e82cdc8ec7a71ef
Arg [2] : 00000000000000000000000037d79eea1f3d5475a7e0f0cd8f8130df8500ca29
Arg [3] : 000000000000000000000000344129238deb523c02e8be4c0e7e630780711bc5
Arg [4] : 000000000000000000000000c1b4c3862d252e4146ca7776faf4460b5bc2ffd9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
UNI | 100.00% | $1,808.11 | 0.00000483 | $0.008731 |
Loading...
Loading
Loading...
Loading
[ 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.