Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 2364 txns
Token Tracker: SmarterThanCrypto (STC)
 Latest 25 txns From a total of 2364 Transactions

TxHash Age From To Value [TxFee]
0x33d29ed43e9a24531349b5668bf201e175b19916811fbc274898d309f97d6be14 hrs 30 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0001674552
0x12c62972cb560917e4f7ce75a80ecd86c07bf7cf770ca26b8742eef40deece956 hrs 24 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000177892
0x96e59927ac500f2817e9249f4e7ae0add080a83589e670b70bea21dda5e8e54012 hrs 25 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00039351972
0xef601795388d0e8ea05a88ad33c7291b4d5eabd322036bb66eaa2712af69c59314 hrs 36 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000311311
0x32552e97e047901a2cfe85effcad36201f7780cd11e31ab4d1199d79d3b2c56714 hrs 36 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000195811
0xc63821be4f8cf19ed50cabf7fb6d5001e5027fd1f33a2af6b57f2552da61e86e14 hrs 37 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000311311
0xfad73714e2f730943c5cf8535d066f167b7d2ab3c2c90647408ef3d488b1fd3514 hrs 37 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003115574
0xd4558536e2d3add5cf5d806c51d1b7083a941cec1a91dcde14212504228219eb14 hrs 37 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003115574
0x2158e311113ca47e277bd75f5ea608e06f029ef181e2b89afd3177f00096bf4a14 hrs 37 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000311311
0x1b527392902ac00fd9a19e405794e5e0aabdcb73b69d11f3d2aec4a35fabb16114 hrs 37 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0001960574
0x30f433c7ddacd72b1419dca40ce9537331bf4b4e4564867f904e2cffba8b2fb914 hrs 37 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003115574
0x34a04c869b02742305158bbf3a85d9a1fc55a0e223a3ac901f633f03b04f163814 hrs 38 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000195811
0xd55bf468c5ade52beaf09b3424eedd2f0a9ec344419f15cf18032d15706d683014 hrs 39 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000195811
0x418124187954638f4fcc00a78755b6fd330de33404bdf25685516c1ae27adb5014 hrs 41 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003115574
0x1cb0fc3d486dc1178de67f3f42c8da112ec472b8bc05adec54817a9c61575bd414 hrs 41 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000311311
0x21007939ae61a7ef002a177b1003d9d9ff54f73ef553e077ff1fc2f3b961024b14 hrs 43 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003115574
0x988f24252e655592628c6e810dcc2dd09d0f0a51e0feaf7528a69fe8a1a5bd8f18 hrs 29 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0004298382
0x8a6507037bd7b08da5b1c8a7ee88474eb5b9bedff19f31e397164606af594fb81 day 4 hrs ago0x1d94d792ae975bd314d4c3745e75d7b39dc331ef  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.002157568
0xa0549b7e4edd5dcf2182973833ce62ac98fd911bf8e2746c566c15f9cf7a389a1 day 4 hrs ago0x1d94d792ae975bd314d4c3745e75d7b39dc331ef  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.001028608
0xed447f9e0fbec02942b59eae5da5001791bd13dfcc9c63daff812190601136bb1 day 6 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00019257348
0xef240cdf295938b7319c06630de7464f5462281ea86fb9e54ab4f1c4cf2fe2361 day 13 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000168564
0xf1407237cf17f320ca3be8c53473c9a4488b55d626f7515303a43837e5c850851 day 19 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0001674552
0x5ab77427141a51ea7ecf57756dfb54fa44bba3c97f38ffb704fefe6a503dc1412 days 5 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00026792832
0x9b9a9c0e7d316d38d9fa2dd280cd1d496f69958f62f92642d56500781d935afe2 days 11 hrs ago0x26aa63e9cb879d253e73261658e53fa9763e4927  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000317548
0xb6c1cc33e40d2c1b4e6337ecb2f89073edda890d5642ae082ed21fd1e68a112c2 days 12 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000223784
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x27f3a00fd80728849dd72350e18822665ffc94e19b9c8d74686e34217452682865250641 day 11 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x27f3a00fd80728849dd72350e18822665ffc94e19b9c8d74686e34217452682865250641 day 11 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0xb964951072294ba35206d74798be1558dd59d178f305bde0f3b32d125490502365231171 day 19 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.063157894736842105 Ether
0xb964951072294ba35206d74798be1558dd59d178f305bde0f3b32d125490502365231171 day 19 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.063157894736842105 Ether
0x7c1d6739115a105318aa3cee1312eb7f2f9bb976f88fa24eaea6a07a6ffbcb5a65208242 days 4 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x7c1d6739115a105318aa3cee1312eb7f2f9bb976f88fa24eaea6a07a6ffbcb5a65208242 days 4 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x4a8c99bfc85170efbbb9c46cc6678f31762506b5c59bf4dbf14159a959f0b2b165202462 days 6 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x4a8c99bfc85170efbbb9c46cc6678f31762506b5c59bf4dbf14159a959f0b2b165202462 days 6 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0xc0fc5177dd9b2aac91dd85ea2daf37cea2d995e2f5aaea6613682a831b00cab065198652 days 8 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0xc0fc5177dd9b2aac91dd85ea2daf37cea2d995e2f5aaea6613682a831b00cab065198652 days 8 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0xd4d7fe994d63f4d594c8dc2cf8eeda16d940a68020b2e3a67395fec2fbd2e39b65197582 days 8 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0xd4d7fe994d63f4d594c8dc2cf8eeda16d940a68020b2e3a67395fec2fbd2e39b65197582 days 8 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x2e5d58e6e3cfccd632e88a83eed32f47ca6e9a19bb4c33b0b248bd7d9529b3bd65197562 days 8 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x2e5d58e6e3cfccd632e88a83eed32f47ca6e9a19bb4c33b0b248bd7d9529b3bd65197562 days 8 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x0af0dfb4dbaf14bb95cae5a4f0e9ad9daff4db41193e2a6207895e9b8cba698f65194482 days 9 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.001052631578947367 Ether
0x917c79dd7da00e0438a3dabe73b9bbde303fb8db234d1d8501c17c6a230e996e65194372 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x917c79dd7da00e0438a3dabe73b9bbde303fb8db234d1d8501c17c6a230e996e65194372 days 10 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x9e2882ed74576a0c98757fd32f1946c796af41a764093977f191b21061aefa3e65194372 days 10 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.001052631578947367 Ether
0x8d86dd96164c4bf8c457e8daa916f7054e3b12687939bcc74b9a222e386f452865194342 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x8d86dd96164c4bf8c457e8daa916f7054e3b12687939bcc74b9a222e386f452865194342 days 10 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x73a6a68e06a7368da6f5b7507547e8f2cb3b58dd23e4f0dd032f1835acc3c33f65192712 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.053684210526315789 Ether
0x73a6a68e06a7368da6f5b7507547e8f2cb3b58dd23e4f0dd032f1835acc3c33f65192712 days 10 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.053684210526315789 Ether
0xa47d6950e8900f616572bd06f42dd7030f34b37c59e672a17e54abef4200d31065192562 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.063157894736842104 Ether
0xa47d6950e8900f616572bd06f42dd7030f34b37c59e672a17e54abef4200d31065192562 days 10 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.063157894736842104 Ether
0xc1334bc6c58b380ab36e818a1a3baa90745e9b1bf29a14cfc10d09b3e848425565192192 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: STC
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

contract SafeMath {
	  function safeMul(uint a, uint b) internal returns (uint) {
		uint c = a * b;
		assert(a == 0 || c / a == b);
		return c;
	  }
	  function safeSub(uint a, uint b) internal returns (uint) {
		assert(b <= a);
		return a - b;
	  }
	  function safeAdd(uint a, uint b) internal returns (uint) {
		uint c = a + b;
		assert(c>=a && c>=b);
		return c;
	  }
	  // mitigate short address attack
	  // thanks to https://github.com/numerai/contract/blob/c182465f82e50ced8dacb3977ec374a892f5fa8c/contracts/Safe.sol#L30-L34.
	  // TODO: doublecheck implication of >= compared to ==
	  modifier onlyPayloadSize(uint numWords) {
		 assert(msg.data.length >= numWords * 32 + 4);
		 _;
	  }
	}

	contract Token { // ERC20 standard
		function balanceOf(address _owner) public  view returns (uint256 balance);
		function transfer(address _to, uint256 _value) public  returns (bool success);
		function transferFrom(address _from, address _to, uint256 _value) public  returns (bool success);
		function approve(address _spender, uint256 _value)  returns (bool success);
		function allowance(address _owner, address _spender) public  view returns (uint256 remaining);
		event Transfer(address indexed _from, address indexed _to, uint256 _value);
		event Approval(address indexed _owner, address indexed _spender, uint256 _value);
	}

	contract StandardToken is Token, SafeMath {
		uint256 public totalSupply;
		// TODO: update tests to expect throw
		function transfer(address _to, uint256 _value) public  onlyPayloadSize(2) returns (bool success) {
			require(_to != address(0));
			require(balances[msg.sender] >= _value && _value > 0);
			balances[msg.sender] = safeSub(balances[msg.sender], _value);
			balances[_to] = safeAdd(balances[_to], _value);
			Transfer(msg.sender, _to, _value);
			return true;
		}
		// TODO: update tests to expect throw
		function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3) returns (bool success) {
			require(_to != address(0));
			require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0);
			balances[_from] = safeSub(balances[_from], _value);
			balances[_to] = safeAdd(balances[_to], _value);
			allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender], _value);
			Transfer(_from, _to, _value);
			return true;
		}
		function balanceOf(address _owner) view returns (uint256 balance) {
			return balances[_owner];
		}
		// To change the approve amount you first have to reduce the addresses'
		//  allowance to zero by calling 'approve(_spender, 0)' if it is not
		//  already 0 to mitigate the race condition described here:
		//  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
		function approve(address _spender, uint256 _value) onlyPayloadSize(2) returns (bool success) {
			require((_value == 0) || (allowed[msg.sender][_spender] == 0));
			allowed[msg.sender][_spender] = _value;
			Approval(msg.sender, _spender, _value);
			return true;
		}
		function changeApproval(address _spender, uint256 _oldValue, uint256 _newValue) onlyPayloadSize(3) returns (bool success) {
			require(allowed[msg.sender][_spender] == _oldValue);
			allowed[msg.sender][_spender] = _newValue;
			Approval(msg.sender, _spender, _newValue);
			return true;
		}
		function allowance(address _owner, address _spender) public  view returns (uint256 remaining) {
		  return allowed[_owner][_spender];
		}
		mapping (address => uint256) public  balances;
		mapping (address => mapping (address => uint256)) public  allowed;
	}

	contract STC is StandardToken {
		// FIELDS
		string public name = "SmarterThanCrypto";
		string public symbol = "STC";
		uint256 public decimals = 18;
		string public version = "10.0";
		uint256 public tokenCap = 100000000 * 10**18;
		// crowdsale parameters
		uint256 public fundingStartTime;
		uint256 public fundingEndTime;
		// vesting fields
		address public vestingContract;
		bool private vestingSet = false;
		// root control
		address public fundWallet;
		// control of liquidity and limited control of updatePrice
		address public controlWallet;
		// time to wait between controlWallet price updates
		uint256 public waitTime = 1 hours;
		// fundWallet controlled state variables
		// halted: halt buying due to emergency, tradeable: signal that assets have been acquired
		bool public halted = false;
		bool public tradeable = false;
		// -- totalSupply defined in StandardToken
		// -- mapping to token balances done in StandardToken
		uint256 public previousUpdateTime = 0;
		Price public currentPrice;
		uint256 public minAmount = 0.04 ether;
		uint256 public OfferTime = 2592000;
	 

		// map participant address to a withdrawal request
		mapping (address => Withdrawal) public withdrawals;
		// maps previousUpdateTime to the next price
		mapping (uint256 => Price) public prices;
		// maps addresses
		mapping (address => bool) public whitelist;
		// TYPES
		struct Price { // tokensPerEth
			uint256 numerator;
			uint256 denominator;
		}
		struct Withdrawal {
			uint256 tokens;
			uint256 time; // time for each withdrawal is set to the previousUpdateTime
		}
		// EVENTS
		event Buy(address indexed participant, address indexed beneficiary, uint256 ethValue, uint256 amountTokens);
		event AllocatePresale(address indexed participant, uint256 amountTokens);
		event Whitelist(address indexed participant);
		event PriceUpdate(uint256 numerator, uint256 denominator);
		event AddLiquidity(uint256 ethAmount);
		event RemoveLiquidity(uint256 ethAmount);
		event WithdrawRequest(address indexed participant, uint256 amountTokens);
		event Withdraw(address indexed participant, uint256 amountTokens, uint256 etherAmount);
		// MODIFIERS
		modifier isTradeable { // exempt vestingContract and fundWallet to allow dev allocations
			require(tradeable || msg.sender == fundWallet || msg.sender == vestingContract);
			_;
		}
		modifier onlyWhitelist {
			require(whitelist[msg.sender]);
			_;
		}
		modifier onlyFundWallet {
			require(msg.sender == fundWallet);
			_;
		}
		modifier onlyManagingWallets {
			require(msg.sender == controlWallet || msg.sender == fundWallet);
			_;
		}
		modifier only_if_controlWallet {
			if (msg.sender == controlWallet) _;
		}
		modifier require_waited {
			require(safeSub(now, waitTime) >= previousUpdateTime);
			_;
		}
		modifier only_if_increase (uint256 newNumerator) {
			if (newNumerator > currentPrice.numerator) _;
		}
		// CONSTRUCTOR
		function STC(address controlWalletInput, uint256 priceNumeratorInput, uint256 startTimeInput, uint256 endTimeInput) public  {
			require(controlWalletInput != address(0));
			require(priceNumeratorInput > 0);
			require(endTimeInput > startTimeInput);
			fundWallet = msg.sender;
			controlWallet = controlWalletInput;
			whitelist[fundWallet] = true;
			whitelist[controlWallet] = true;
			currentPrice = Price(priceNumeratorInput, 10000); // 1 token = 1 usd at ICO start
			fundingStartTime = startTimeInput;
			fundingEndTime = endTimeInput;
			previousUpdateTime = now;
		}			
		// METHODS	
		function setOfferTime(uint256 newOfferTime) external onlyFundWallet {
			require(newOfferTime>0);
			require(newOfferTime<safeSub(fundingEndTime,fundingStartTime));
			OfferTime = newOfferTime;
		}		
		function setVestingContract(address vestingContractInput) external onlyFundWallet {
			require(vestingContractInput != address(0));
			vestingContract = vestingContractInput;
			whitelist[vestingContract] = true;
			vestingSet = true;
		}
		// allows controlWallet to update the price within a time contstraint, allows fundWallet complete control
		function updatePrice(uint256 newNumerator) external onlyManagingWallets {
			require(newNumerator > 0);
			require_limited_change(newNumerator);
			// either controlWallet command is compliant or transaction came from fundWallet
			currentPrice.numerator = newNumerator;
			// maps time to new Price (if not during ICO)
			prices[previousUpdateTime] = currentPrice;
			previousUpdateTime = now;
			PriceUpdate(newNumerator, currentPrice.denominator);
		}
		function require_limited_change (uint256 newNumerator)
			private
			only_if_controlWallet
			require_waited
			only_if_increase(newNumerator)
		{
			uint256 percentage_diff = 0;
			percentage_diff = safeMul(newNumerator, 10000) / currentPrice.numerator;
			percentage_diff = safeSub(percentage_diff, 10000);
			// controlWallet can only increase price by max 20% and only every waitTime
			//require(percentage_diff <= 20);
		}
		function updatePriceDenominator(uint256 newDenominator) external onlyManagingWallets {
			require(now > fundingEndTime);
			require(newDenominator > 0);
			currentPrice.denominator = newDenominator;
			// maps time to new Price
			prices[previousUpdateTime] = currentPrice;
			previousUpdateTime = now;
			PriceUpdate(currentPrice.numerator, newDenominator);
		}
		function updatePriceAndDenominator(uint256 newNumerator, uint256 newDenominator) external onlyManagingWallets {
			require(now > fundingEndTime);
			require(newDenominator > 0);
			require(newNumerator > 0);
			require(safeSub(now, waitTime) >= previousUpdateTime);
			currentPrice.denominator = newDenominator;
			currentPrice.numerator = newNumerator;
			// maps time to new Price
			prices[previousUpdateTime] = currentPrice;
			previousUpdateTime = now;
			PriceUpdate(currentPrice.numerator, newDenominator);
		}
		function allocateTokens(address participant, uint256 amountTokens) private {
			require(vestingSet);
			// 13% of total allocated for PR, Marketing, Team, Advisors
			uint256 developmentAllocation = safeMul(amountTokens, 14942528735632200) / 100000000000000000;
			// check that token cap is not exceeded
			uint256 newTokens = safeAdd(amountTokens, developmentAllocation);
			require(safeAdd(totalSupply, newTokens) <= tokenCap);
			// increase token supply, assign tokens to participant
			totalSupply = safeAdd(totalSupply, newTokens);
			balances[participant] = safeAdd(balances[participant], amountTokens);
			balances[vestingContract] = safeAdd(balances[vestingContract], developmentAllocation);
		}
		function allocatePresaleTokens(address participant, uint amountTokens) external onlyManagingWallets {
			require(!halted);
			require(participant != address(0));
			whitelist[participant] = true; // automatically whitelist accepted presale
			allocateTokens(participant, amountTokens);
			Whitelist(participant);
			AllocatePresale(participant, amountTokens);
		}
		function verifyParticipant(address participant) external onlyManagingWallets {
			whitelist[participant] = true;
			Whitelist(participant);
		}
		function buy() external payable {
			buyTo(msg.sender);
		}
		function buyTo(address participant) public payable onlyWhitelist {
			require(!halted);
			require(participant != address(0));
			require(msg.value >= minAmount);
			require(now >= fundingStartTime);
			uint256 icoDenominator = icoDenominatorPrice();
			uint256 tokensToBuy = safeMul(msg.value, currentPrice.numerator) / icoDenominator;
			allocateTokens(participant, tokensToBuy);
			// send ether to fundWallet
			fundWallet.transfer(msg.value);
			Buy(msg.sender, participant, msg.value, tokensToBuy);
		}
		// time based on blocknumbers, assuming a blocktime of 30s
		function icoDenominatorPrice() public view returns (uint256) {
			uint256 icoDuration = safeSub(now, fundingStartTime);
			uint256 denominator;
			if (icoDuration < 172800) { // time in sec = (48*60*60) = 172800
			   denominator = safeMul(currentPrice.denominator, 95) / 100;
			   return denominator;
			} else if (icoDuration < OfferTime ) { // time in sec = (((4*7)+2)*24*60*60) = 2592000
				denominator = safeMul(currentPrice.denominator, 100) / 100;
			   return denominator;
			} else if (now > fundingEndTime ) {
			   denominator = safeMul(currentPrice.denominator, 100) / 100;
			   return denominator;   
			} else {
				denominator = safeMul(currentPrice.denominator, 105) / 100;
			   return denominator;
			}
		}
		function requestWithdrawal(uint256 amountTokensToWithdraw) external isTradeable onlyWhitelist {
			require(now > fundingEndTime);
			require(amountTokensToWithdraw > 0);
			address participant = msg.sender;
			require(balanceOf(participant) >= amountTokensToWithdraw);
			require(withdrawals[participant].tokens == 0); // participant cannot have outstanding withdrawals
			balances[participant] = safeSub(balances[participant], amountTokensToWithdraw);
			withdrawals[participant] = Withdrawal({tokens: amountTokensToWithdraw, time: previousUpdateTime});
			WithdrawRequest(participant, amountTokensToWithdraw);
		}
		function withdraw() external {
			address participant = msg.sender;
			uint256 tokens = withdrawals[participant].tokens;
			require(tokens > 0); // participant must have requested a withdrawal
			uint256 requestTime = withdrawals[participant].time;
			// obtain the next price that was set after the request
			Price price = prices[requestTime];
			require(price.numerator > 0); // price must have been set
			uint256 withdrawValue  = safeMul(tokens, price.denominator) / price.numerator;
			// if contract ethbal > then send + transfer tokens to fundWallet, otherwise give tokens back
			withdrawals[participant].tokens = 0;
			if (this.balance >= withdrawValue)
				enact_withdrawal_greater_equal(participant, withdrawValue, tokens);
			else
				enact_withdrawal_less(participant, withdrawValue, tokens);
		}
		function enact_withdrawal_greater_equal(address participant, uint256 withdrawValue, uint256 tokens)
			private
		{
			assert(this.balance >= withdrawValue);
			balances[fundWallet] = safeAdd(balances[fundWallet], tokens);
			participant.transfer(withdrawValue);
			Withdraw(participant, tokens, withdrawValue);
		}
		function enact_withdrawal_less(address participant, uint256 withdrawValue, uint256 tokens)
			private
		{
			assert(this.balance < withdrawValue);
			balances[participant] = safeAdd(balances[participant], tokens);
			Withdraw(participant, tokens, 0); // indicate a failed withdrawal
		}
		function checkWithdrawValue(uint256 amountTokensToWithdraw) public  view returns (uint256 etherValue) {
			require(amountTokensToWithdraw > 0);
			require(balanceOf(msg.sender) >= amountTokensToWithdraw);
			uint256 withdrawValue = safeMul(amountTokensToWithdraw, currentPrice.denominator) / currentPrice.numerator;
			require(this.balance >= withdrawValue);
			return withdrawValue;
		}
		function checkWithdrawValueForAddress(address participant,uint256 amountTokensToWithdraw) public  view returns (uint256 etherValue) {
			require(amountTokensToWithdraw > 0);
			require(balanceOf(participant) >= amountTokensToWithdraw);
			uint256 withdrawValue = safeMul(amountTokensToWithdraw, currentPrice.denominator) / currentPrice.numerator;
			return withdrawValue;
		}
		// allow fundWallet or controlWallet to add ether to contract
		function addLiquidity() external onlyManagingWallets payable {
			require(msg.value > 0);
			AddLiquidity(msg.value);
		}
		// allow fundWallet to remove ether from contract
		function removeLiquidity(uint256 amount) external onlyManagingWallets {
			require(amount <= this.balance);
			fundWallet.transfer(amount);
			RemoveLiquidity(amount);
		}
		function changeFundWallet(address newFundWallet) external onlyFundWallet {
			require(newFundWallet != address(0));
			fundWallet = newFundWallet;
		}
		function changeControlWallet(address newControlWallet) external onlyFundWallet {
			require(newControlWallet != address(0));
			controlWallet = newControlWallet;
		}
		function changeWaitTime(uint256 newWaitTime) external onlyFundWallet {
			waitTime = newWaitTime;
		}
		function updatefundingStartTime(uint256 newfundingStartTime) external onlyFundWallet {
		   // require(now < fundingStartTime);
		   // require(now < newfundingStartTime);
			fundingStartTime = newfundingStartTime;
		}
		function updatefundingEndTime(uint256 newfundingEndTime) external onlyFundWallet {
		  //  require(now < fundingEndTime);
		  //  require(now < newfundingEndTime);
			fundingEndTime = newfundingEndTime;
		}
		function halt() external onlyFundWallet {
			halted = true;
		}
		function unhalt() external onlyFundWallet {
			halted = false;
		}
		function enableTrading() external onlyFundWallet {
			require(now > fundingEndTime);
			tradeable = true;
		}
		// fallback function
		function() payable {
			require(tx.origin == msg.sender);
			buyTo(msg.sender);
		}
		function claimTokens(address _token) external onlyFundWallet {
			require(_token != address(0));
			Token token = Token(_token);
			uint256 balance = token.balanceOf(this);
			token.transfer(fundWallet, balance);
		 }
		// prevent transfers until trading allowed
		function transfer(address _to, uint256 _value) isTradeable returns (bool success) {
			return super.transfer(_to, _value);
		}
		function transferFrom(address _from, address _to, uint256 _value) public  isTradeable returns (bool success) {
			return super.transferFrom(_from, _to, _value);
		}
	}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newWaitTime","type":"uint256"}],"name":"changeWaitTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOfferTime","type":"uint256"}],"name":"setOfferTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newNumerator","type":"uint256"},{"name":"newDenominator","type":"uint256"}],"name":"updatePriceAndDenominator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"previousUpdateTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"OfferTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newControlWallet","type":"address"}],"name":"changeControlWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vestingContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"},{"name":"amountTokensToWithdraw","type":"uint256"}],"name":"checkWithdrawValueForAddress","outputs":[{"name":"etherValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"}],"name":"verifyParticipant","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFundWallet","type":"address"}],"name":"changeFundWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"vestingContractInput","type":"address"}],"name":"setVestingContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"withdrawals","outputs":[{"name":"tokens","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controlWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newfundingStartTime","type":"uint256"}],"name":"updatefundingStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableTrading","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newNumerator","type":"uint256"}],"name":"updatePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amountTokensToWithdraw","type":"uint256"}],"name":"checkWithdrawValue","outputs":[{"name":"etherValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"},{"name":"amountTokens","type":"uint256"}],"name":"allocatePresaleTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_oldValue","type":"uint256"},{"name":"_newValue","type":"uint256"}],"name":"changeApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"removeLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amountTokensToWithdraw","type":"uint256"}],"name":"requestWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"prices","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"waitTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newfundingEndTime","type":"uint256"}],"name":"updatefundingEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newDenominator","type":"uint256"}],"name":"updatePriceDenominator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"}],"name":"buyTo","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"addLiquidity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoDenominatorPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"controlWalletInput","type":"address"},{"name":"priceNumeratorInput","type":"uint256"},{"name":"startTimeInput","type":"uint256"},{"name":"endTimeInput","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"amountTokens","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"amountTokens","type":"uint256"}],"name":"AllocatePresale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"}],"name":"Whitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"numerator","type":"uint256"},{"indexed":false,"name":"denominator","type":"uint256"}],"name":"PriceUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"amountTokens","type":"uint256"}],"name":"WithdrawRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"amountTokens","type":"uint256"},{"indexed":false,"name":"etherAmount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526040805190810160405280601181526020017f536d61727465725468616e43727970746f0000000000000000000000000000008152506003908051906020019062000051929190620003e0565b506040805190810160405280600381526020017f5354430000000000000000000000000000000000000000000000000000000000815250600490805190602001906200009f929190620003e0565b5060126005556040805190810160405280600481526020017f31302e300000000000000000000000000000000000000000000000000000000081525060069080519060200190620000f2929190620003e0565b506a52b7d2dcc80cd2e40000006007556000600a60146101000a81548160ff021916908315150217905550610e10600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f55668e1bc9bf04000060125562278d006013553480156200017d57600080fd5b506040516080806200451983398101806040528101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515620001fc57600080fd5b6000831115156200020c57600080fd5b81811115156200021b57600080fd5b33600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160166000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604080519081016040528084815260200161271081525060106000820151816000015560208201518160010155905050816008819055508060098190555042600f81905550505050506200048f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200042357805160ff191683800117855562000454565b8280016001018555821562000454579182015b828111156200045357825182559160200191906001019062000436565b5b50905062000463919062000467565b5090565b6200048c91905b80821115620004885760008160009055506001016200046e565b5090565b90565b61407a806200049f6000396000f300608060405260043610610288576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146102cd57806306fe22121461035d578063095ea7b31461038a57806318160ddd146103ef5780631df411a61461041a5780631df935581461044757806323b872dd1461047257806324038339146104f757806327e235e31461052e578063313ce56714610585578063347820eb146105b05780633ccfd60b146105db5780634a96d129146105f257806354fd4d501461061d5780635a8cf571146106ad5780635c658165146106f05780635e6f6045146107675780635ed7ca5b146107be57806363f114f2146107d5578063643a769514610836578063664a1ad6146108795780636fb4adff146108d057806370a0823114610913578063749915691461096a57806374eedd46146109ad5780637a9262a2146109d8578063823e569e14610a36578063861654f714610a8d5780638a8c523c14610aba5780638d6cc56d14610ad15780638f11e5f914610afe5780638fee768714610b3f5780639281cd6514610b8c57806395d89b4114610bfb5780639b19251a14610c8b5780639b2cb5d814610ce65780639c8f9f2314610d115780639d1b464a14610d3e5780639ee679e814610d70578063a6f2ae3a14610d9d578063a9059cbb14610da7578063b9b8af0b14610e0c578063bc31c1c114610e3b578063cb3e64fd14610e83578063ccca123b14610e9a578063cef9436014610ec5578063dbb2455414610ef2578063dcf72c1014610f1f578063dd54291b14610f55578063dd62ed3e14610f80578063df8de3e714610ff7578063e8078d941461103a578063f5ac9db614611044578063fa0d80fc14611073575b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156102c257600080fd5b6102cb3361109e565b005b3480156102d957600080fd5b506102e261127e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610322578082015181840152602081019050610307565b50505050905090810190601f16801561034f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036957600080fd5b506103886004803603810190808035906020019092919050505061131c565b005b34801561039657600080fd5b506103d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611382565b604051808215151515815260200191505060405180910390f35b3480156103fb57600080fd5b50610404611523565b6040518082815260200191505060405180910390f35b34801561042657600080fd5b5061044560048036038101908080359060200190929190505050611529565b005b34801561045357600080fd5b5061045c6115b9565b6040518082815260200191505060405180910390f35b34801561047e57600080fd5b506104dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bf565b604051808215151515815260200191505060405180910390f35b34801561050357600080fd5b5061052c60048036038101908080359060200190929190803590602001909291905050506116a0565b005b34801561053a57600080fd5b5061056f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061182f565b6040518082815260200191505060405180910390f35b34801561059157600080fd5b5061059a611847565b6040518082815260200191505060405180910390f35b3480156105bc57600080fd5b506105c561184d565b6040518082815260200191505060405180910390f35b3480156105e757600080fd5b506105f0611853565b005b3480156105fe57600080fd5b506106076119c9565b6040518082815260200191505060405180910390f35b34801561062957600080fd5b506106326119cf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610672578082015181840152602081019050610657565b50505050905090810190601f16801561069f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106b957600080fd5b506106ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6d565b005b3480156106fc57600080fd5b50610751600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b49565b6040518082815260200191505060405180910390f35b34801561077357600080fd5b5061077c611b6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ca57600080fd5b506107d3611b94565b005b3480156107e157600080fd5b50610820600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c0d565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b50610877600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c61565b005b34801561088557600080fd5b5061088e611db3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108dc57600080fd5b50610911600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd9565b005b34801561091f57600080fd5b50610954600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb5565b6040518082815260200191505060405180910390f35b34801561097657600080fd5b506109ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611efe565b005b3480156109b957600080fd5b506109c261206f565b6040518082815260200191505060405180910390f35b3480156109e457600080fd5b50610a19600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612075565b604051808381526020018281526020019250505060405180910390f35b348015610a4257600080fd5b50610a4b612099565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a9957600080fd5b50610ab8600480360381019080803590602001909291905050506120bf565b005b348015610ac657600080fd5b50610acf612125565b005b348015610add57600080fd5b50610afc600480360381019080803590602001909291905050506121ae565b005b348015610b0a57600080fd5b50610b2960048036038101908080359060200190929190505050612300565b6040518082815260200191505060405180910390f35b348015610b4b57600080fd5b50610b8a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612379565b005b348015610b9857600080fd5b50610be1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061257c565b604051808215151515815260200191505060405180910390f35b348015610c0757600080fd5b50610c10612712565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c50578082015181840152602081019050610c35565b50505050905090810190601f168015610c7d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c9757600080fd5b50610ccc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127b0565b604051808215151515815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb6127d0565b6040518082815260200191505060405180910390f35b348015610d1d57600080fd5b50610d3c600480360381019080803590602001909291905050506127d6565b005b348015610d4a57600080fd5b50610d53612953565b604051808381526020018281526020019250505060405180910390f35b348015610d7c57600080fd5b50610d9b60048036038101908080359060200190929190505050612965565b005b610da5612c5f565b005b348015610db357600080fd5b50610df2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c6a565b604051808215151515815260200191505060405180910390f35b348015610e1857600080fd5b50610e21612d49565b604051808215151515815260200191505060405180910390f35b348015610e4757600080fd5b50610e6660048036038101908080359060200190929190505050612d5c565b604051808381526020018281526020019250505060405180910390f35b348015610e8f57600080fd5b50610e98612d80565b005b348015610ea657600080fd5b50610eaf612df9565b6040518082815260200191505060405180910390f35b348015610ed157600080fd5b50610ef060048036038101908080359060200190929190505050612dff565b005b348015610efe57600080fd5b50610f1d60048036038101908080359060200190929190505050612e65565b005b610f53600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061109e565b005b348015610f6157600080fd5b50610f6a612fbe565b6040518082815260200191505060405180910390f35b348015610f8c57600080fd5b50610fe1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fc4565b6040518082815260200191505060405180910390f35b34801561100357600080fd5b50611038600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061304b565b005b6110426132c7565b005b34801561105057600080fd5b506110596133c3565b604051808215151515815260200191505060405180910390f35b34801561107f57600080fd5b506110886133d6565b6040518082815260200191505060405180910390f35b600080601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156110f957600080fd5b600e60009054906101000a900460ff1615151561111557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561115157600080fd5b601254341015151561116257600080fd5b600854421015151561117357600080fd5b61117b6133d6565b91508161118d346010600001546134a1565b81151561119657fe5b0490506111a383826134d4565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561120b573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f89f5adc174562e07c9c9b1cae7109bbecb21cf9d1b2847e550042b8653c54a0e3484604051808381526020018281526020019250505060405180910390a3505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113145780601f106112e957610100808354040283529160200191611314565b820191906000526020600020905b8154815290600101906020018083116112f757829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137857600080fd5b80600d8190555050565b600060026004602082020160003690501015151561139c57fe5b600083148061142757506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561143257600080fd5b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b60005481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158557600080fd5b60008111151561159457600080fd5b6115a26009546008546136b4565b811015156115af57600080fd5b8060138190555050565b60085481565b6000600e60019054906101000a900460ff16806116295750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116815750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561168c57600080fd5b6116978484846136cd565b90509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117495750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561175457600080fd5b6009544211151561176457600080fd5b60008111151561177357600080fd5b60008211151561178257600080fd5b600f5461179142600d546136b4565b1015151561179e57600080fd5b8060106001018190555081601060000181905550601060156000600f548152602001908152602001600020600082015481600001556001820154816001015590505042600f819055507f92664190cca12aca9cd5309d87194bdda75bb51362d71c06e1a6f75c7c76571160106000015482604051808381526020018281526020019250505060405180910390a15050565b60016020528060005260406000206000915090505481565b60055481565b600f5481565b6000806000806000339450601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015493506000841115156118b257600080fd5b601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015492506015600084815260200190815260200160002091506000826000015411151561191f57600080fd5b81600001546119328584600101546134a1565b81151561193b57fe5b0490506000601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550803073ffffffffffffffffffffffffffffffffffffffff16311015156119b6576119b1858286613a94565b6119c2565b6119c1858286613c29565b5b5050505050565b60135481565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a655780601f10611a3a57610100808354040283529160200191611a65565b820191906000526020600020905b815481529060010190602001808311611a4857829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ac957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0557600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002602052816000526040600020602052806000526040600020600091509150505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bf057600080fd5b6001600e60006101000a81548160ff021916908315150217905550565b600080600083111515611c1f57600080fd5b82611c2985611eb5565b10151515611c3657600080fd5b601060000154611c4b846010600101546134a1565b811515611c5457fe5b0490508091505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d0a5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611d1557600080fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e60405160405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e7157600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f9657600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160166000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60146101000a81548160ff02191690831515021790555050565b60095481565b60146020528060005260406000206000915090508060000154908060010154905082565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211b57600080fd5b8060088190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561218157600080fd5b6009544211151561219157600080fd5b6001600e60016101000a81548160ff021916908315150217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806122575750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561226257600080fd5b60008111151561227157600080fd5b61227a81613d33565b80601060000181905550601060156000600f548152602001908152602001600020600082015481600001556001820154816001015590505042600f819055507f92664190cca12aca9cd5309d87194bdda75bb51362d71c06e1a6f75c7c76571181601060010154604051808381526020018281526020019250505060405180910390a150565b60008060008311151561231257600080fd5b8261231c33611eb5565b1015151561232957600080fd5b60106000015461233e846010600101546134a1565b81151561234757fe5b049050803073ffffffffffffffffffffffffffffffffffffffff16311015151561237057600080fd5b80915050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124225750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561242d57600080fd5b600e60009054906101000a900460ff1615151561244957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561248557600080fd5b6001601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124e782826134d4565b8173ffffffffffffffffffffffffffffffffffffffff167feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e60405160405180910390a28173ffffffffffffffffffffffffffffffffffffffff167f69488271d7ab6c5d1d852b2fedbeafcee0ad158162b8c58145130bacd56bff76826040518082815260200191505060405180910390a25050565b600060036004602082020160003690501015151561259657fe5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561262057600080fd5b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a360019150509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127a85780601f1061277d576101008083540402835291602001916127a8565b820191906000526020600020905b81548152906001019060200180831161278b57829003601f168201915b505050505081565b60166020528060005260406000206000915054906101000a900460ff1681565b60125481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061287f5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561288a57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111515156128b057600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612918573d6000803e3d6000fd5b507f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa816040518082815260200191505060405180910390a150565b60108060000154908060010154905082565b6000600e60019054906101000a900460ff16806129cf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612a275750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612a3257600080fd5b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612a8a57600080fd5b60095442111515612a9a57600080fd5b600082111515612aa957600080fd5b33905081612ab682611eb5565b10151515612ac357600080fd5b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515612b1457600080fd5b612b5d600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836136b4565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040805190810160405280838152602001600f54815250601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101559050508073ffffffffffffffffffffffffffffffffffffffff167f17040713250ec5f668a1c39e7939900e78558350dbaff0ebef34268dfa8ea4ac836040518082815260200191505060405180910390a25050565b612c683361109e565b565b6000600e60019054906101000a900460ff1680612cd45750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612d2c5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612d3757600080fd5b612d418383613dec565b905092915050565b600e60009054906101000a900460ff1681565b60156020528060005260406000206000915090508060000154908060010154905082565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ddc57600080fd5b6000600e60006101000a81548160ff021916908315150217905550565b600d5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5b57600080fd5b8060098190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612f0e5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612f1957600080fd5b60095442111515612f2957600080fd5b600081111515612f3857600080fd5b80601060010181905550601060156000600f548152602001908152602001600020600082015481600001556001820154816001015590505042600f819055507f92664190cca12aca9cd5309d87194bdda75bb51362d71c06e1a6f75c7c76571160106000015482604051808381526020018281526020019250505060405180910390a150565b60075481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130aa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156130e657600080fd5b8291508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561318457600080fd5b505af1158015613198573d6000803e3d6000fd5b505050506040513d60208110156131ae57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561328657600080fd5b505af115801561329a573d6000803e3d6000fd5b505050506040513d60208110156132b057600080fd5b810190808051906020019092919050505050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133705750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561337b57600080fd5b60003411151561338a57600080fd5b7ff53d9d58a7ff16a2e1360446f1c4b5e81a427d3efd25615be081f4003662400a346040518082815260200191505060405180910390a1565b600e60019054906101000a900460ff1681565b60008060006133e7426008546136b4565b91506202a30082101561341a576064613406601060010154605f6134a1565b81151561340f57fe5b04905080925061349c565b60135482101561344a57606461343660106001015460646134a1565b81151561343f57fe5b04905080925061349c565b60095442111561347a57606461346660106001015460646134a1565b81151561346f57fe5b04905080925061349c565b606461348c60106001015460696134a1565b81151561349557fe5b0490508092505b505090565b600080828402905060008414806134c257508284828115156134bf57fe5b04145b15156134ca57fe5b8091505092915050565b600080600a60149054906101000a900460ff1615156134f257600080fd5b67016345785d8a000061350c846635162695555b486134a1565b81151561351557fe5b0491506135228383614024565b905060075461353360005483614024565b1115151561354057600080fd5b61354c60005482614024565b60008190555061359b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614024565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061364960016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483614024565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008282111515156136c257fe5b818303905092915050565b60006003600460208202016000369050101515156136e757fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561372357600080fd5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156137ee575082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156137fa5750600083115b151561380557600080fd5b61384e600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846136b4565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138da600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614024565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139a3600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846136b4565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b813073ffffffffffffffffffffffffffffffffffffffff163110151515613ab757fe5b613b2260016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614024565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613bcd573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688284604051808381526020018281526020019250505060405180910390a2505050565b813073ffffffffffffffffffffffffffffffffffffffff1631101515613c4b57fe5b613c94600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614024565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568826000604051808381526020018281526020019250505060405180910390a2505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415613de857600f54613d9a42600d546136b4565b10151515613da757600080fd5b81601060000154811115613de65760009150601060000154613dcb846127106134a1565b811515613dd457fe5b049150613de3826127106136b4565b91505b505b5050565b6000600260046020820201600036905010151515613e0657fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515613e4257600080fd5b82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613e915750600083115b1515613e9c57600080fd5b613ee5600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846136b4565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f71600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614024565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600080828401905083811015801561403c5750828110155b151561404457fe5b80915050929150505600a165627a7a723058203032deea60836f9d8140d5b32abcb94e30ef00c78e387606c325a1b1d904b09e0029000000000000000000000000344f0e5555f0e11e523ffef4c503f29838cad6d4000000000000000000000000000000000000000000000000000000001585e223000000000000000000000000000000000000000000000000000000005b9eee80000000000000000000000000000000000000000000000000000000005bc3d880

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

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000344f0e5555f0e11e523ffef4c503f29838cad6d4
Arg [1] : 000000000000000000000000000000000000000000000000000000001585e223
Arg [2] : 000000000000000000000000000000000000000000000000000000005b9eee80
Arg [3] : 000000000000000000000000000000000000000000000000000000005bc3d880


   Swarm Source:
bzzr://3032deea60836f9d8140d5b32abcb94e30ef00c78e387606c325a1b1d904b09e

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.