ETH Price: $2,181.16 (-6.82%)

Contract

0xaDa502f46D75A9Ed4c8EDC059E7c0308f8Cbf42e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Option

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-03
*/

library SafeMath {
	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a * b;
		assert(a == 0 || c / a == b);
		return c;
	}

	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		assert(b > 0); // Solidity automatically throws when dividing by 0
		uint256 c = a / b;
		assert(a == b * c + a % b); // There is no case in which this doesn't hold
		return c;
	}

	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		assert(b <= a);
		return a - b;
	}

	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		assert(c >= a);
		return c;
	}
}

contract Ownable {
	address public owner;

	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

	modifier onlyOwner() {
		require(msg.sender == owner);
		_;
	}
	
	function transferOwnership(address newOwner) public onlyOwner {
		require(newOwner != address(0));
		OwnershipTransferred(owner, newOwner);
		owner = newOwner;
	}
}

contract ERC20 {
	uint public totalSupply;
	function balanceOf(address _owner) public constant returns (uint balance);
	function transfer(address _to,uint _value) public returns (bool success);
	function transferFrom(address _from,address _to,uint _value) public returns (bool success);
	function approve(address _spender,uint _value) public returns (bool success);
	function allownce(address _owner,address _spender) public constant returns (uint remaining);
	event Transfer(address indexed _from,address indexed _to,uint _value);
	event Approval(address indexed _owner,address indexed _spender,uint _value);
}

contract Option is ERC20,Ownable {
	using SafeMath for uint8;
	using SafeMath for uint256;
	
	event Burn(address indexed _from,uint256 _value);
	event Increase(address indexed _to, uint256 _value);
	event SetItemOption(address _to, uint256 _amount, uint256 _releaseTime);
	
	struct ItemAccount {
		address fromAccount;
		address toAccount;
	}
	struct ItemOption {
		uint256 releaseAmount;
		uint256 releaseTime;
	}
	struct listOption {
	    uint256 offset;
	    address fromAccount;
		address toAccount;
		uint256 releaseAmount;
		uint256 releaseTime;
	}

	string public name;
	string public symbol;
	uint8 public decimals;
	uint256 public initial_supply;
	mapping (address => uint256) public balances;
	mapping (address => mapping (address => uint256)) allowed;
	uint256 private offset;
	mapping (address => uint256[]) fromOption;
	mapping (address => uint256[]) toOption;
	mapping (uint256 => ItemAccount) itemAccount;
	mapping (uint256 => ItemOption[]) mapOption;
	
	function Option (
		string Name,
		string Symbol,
		uint8 Decimals,
		uint256 initialSupply,
		address initOwner
	) public {
		require(initOwner != address(0));
		owner = initOwner;
		name = Name;
		symbol = Symbol;
		decimals = Decimals;
		initial_supply = initialSupply * (10 ** uint256(decimals));
		totalSupply = initial_supply;
		balances[initOwner] = totalSupply;
		offset = 0;
	}
	
	function itemBalance(address _to) public view returns (uint256 amount) {
		require(_to != address(0));
		amount = 0;
		uint256 nowtime = now;
		for(uint256 i = 0; i < toOption[_to].length; i++) {
		    for(uint256 j = 0; j < mapOption[toOption[_to][i]].length; j++) {
		        if(mapOption[toOption[_to][i]][j].releaseAmount > 0 && nowtime >= mapOption[toOption[_to][i]][j].releaseTime) {
		            amount = amount.add(mapOption[toOption[_to][i]][j].releaseAmount);
		        }
		    }
		}
		return amount;
	}
	
	function balanceOf(address _owner) public view returns (uint256 balance) {
		return balances[_owner].add(itemBalance(_owner));
	}
	
	function itemTransfer(address _to) public returns (bool success) {
		require(_to != address(0));
		uint256 nowtime = now;
		for(uint256 i = 0; i < toOption[_to].length; i++) {
		    for(uint256 j = 0; j < mapOption[toOption[_to][i]].length; j++) {
		        if(mapOption[toOption[_to][i]][j].releaseAmount > 0 && nowtime >= mapOption[toOption[_to][i]][j].releaseTime) {
    		        balances[_to] = balances[_to].add(mapOption[toOption[_to][i]][j].releaseAmount);
    		        mapOption[toOption[_to][i]][j].releaseAmount = 0;
    		    }
		    }
		}
		return true;
	}
	
	function transfer(address _to,uint _value) public returns (bool success) {
		itemTransfer(_to);
		if(balances[msg.sender] >= _value && _value > 0 && balances[_to] + _value > balances[_to]){
			balances[msg.sender] = balances[msg.sender].sub(_value);
			balances[_to] = balances[_to].add(_value);
			Transfer(msg.sender,_to,_value);
			return true;
		} else {
			return false;
		}
	}

	function transferFrom(address _from,address _to,uint _value) public returns (bool success) {
		itemTransfer(_from);
		if(balances[_from] >= _value && _value > 0 && balances[_to] + _value > balances[_to]) {
			if(_from != msg.sender) {
				require(allowed[_from][msg.sender] > _value);
				allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
			}
			balances[_from] = balances[_from].sub(_value);
			balances[_to] = balances[_to].add(_value);
			Transfer(_from,_to,_value);
			return true;
		} else {
			return false;
		}
	}

	function approve(address _spender, uint _value) public returns (bool success) {
		allowed[msg.sender][_spender] = _value;
		Approval(msg.sender,_spender,_value);
		return true;
	}
	
	function allownce(address _owner,address _spender) public constant returns (uint remaining) {
		return allowed[_owner][_spender];
	}
	
	function burn(uint256 _value) public returns (bool success) {
		require(balances[msg.sender] >= _value);
		balances[msg.sender] = balances[msg.sender].sub(_value);
		totalSupply = totalSupply.sub(_value);
		Burn(msg.sender,_value);
		return true;
	}

	function increase(uint256 _value) public onlyOwner returns (bool success) {
		if(balances[msg.sender] + _value > balances[msg.sender]) {
			totalSupply = totalSupply.add(_value);
			balances[msg.sender] = balances[msg.sender].add(_value);
			Increase(msg.sender, _value);
			return true;
		}
	}
	
	function setItemOptions(address _to, uint256 _amount, uint256 _startTime, uint8 _count) public returns (bool success) {
	    require(_to != address(0));
		require(_amount > 0);
		require(_count > 0);
		
		uint256 total = _amount.mul(_count);
		require(total > 0 && balances[msg.sender].sub(total) >= 0 && balances[_to].add(total) > balances[_to]);
		
		fromOption[msg.sender].push(offset);
		toOption[_to].push(offset);
		itemAccount[offset] = ItemAccount(msg.sender, _to);
		
		balances[msg.sender] = balances[msg.sender].sub(total);
		
		uint256 releaseTime = _startTime;
		for(uint8 i = 0; i < _count; i++) {
		    releaseTime = releaseTime.add(1 years);
		    mapOption[offset].push(ItemOption(_amount, releaseTime));
		}
		offset++;
		
		return true;
	}
	
	function fromListOptions() public view returns (uint256[] offset_s) {
	    uint256 nowtime = now;
	    uint8 k = 0;
	    for(uint256 i = 0; i < fromOption[msg.sender].length; i++) {
	        for(uint256 j = 0; j < mapOption[fromOption[msg.sender][i]].length; j++) {
	            if(mapOption[fromOption[msg.sender][i]][j].releaseAmount > 0 && mapOption[fromOption[msg.sender][i]][j].releaseTime > nowtime) {
                    offset_s[k] = fromOption[msg.sender][i];
                    k++;
	                break;
	            }
	        }
	    }
	}
	
	function toListOptions() public view returns (uint256[] offset_s) {
	    uint256 nowtime = now;
	    uint8 k = 0;
	    for(uint256 i = 0; i < toOption[msg.sender].length; i++) {
	        for(uint256 j = 0; j < mapOption[toOption[msg.sender][i]].length; j++) {
	            if(mapOption[toOption[msg.sender][i]][j].releaseAmount > 0 && mapOption[toOption[msg.sender][i]][j].releaseTime > nowtime) {
	                offset_s[k] = toOption[msg.sender][i];
	                k++;
	                break;
	            }
	        }
	    }
	}
	
	function getOption(uint256 _offset) public view returns (address fromAccount, address toAccount, uint8 count, uint256 totalAmount) {
	    require(_offset >= 0);
	    require(itemAccount[_offset].fromAccount == msg.sender || itemAccount[_offset].toAccount == msg.sender);
	    
	    fromAccount = itemAccount[_offset].fromAccount;
	    toAccount = itemAccount[_offset].toAccount;
	    count = 0;
	    totalAmount = 0;
	    uint256 nowtime = now;
	    for(uint256 i = 0; i < mapOption[_offset].length; i++) {
	        if(mapOption[_offset][i].releaseAmount > 0 && mapOption[_offset][i].releaseTime > nowtime && totalAmount.add(mapOption[_offset][i].releaseAmount) > totalAmount) {
	            count++;
	            totalAmount = totalAmount.add(mapOption[_offset][i].releaseAmount);
	        }
	    }
	}
	
	function getOptionOnce(uint256 _offset, uint8 _id) public view returns (address fromAccount, address toAccount, uint256 releaseAmount, uint256 releaseTime) {
	    require(_offset >= 0);
	    require(_id >= 0);
	    require(itemAccount[_offset].fromAccount == msg.sender || itemAccount[_offset].toAccount == msg.sender);
	    require(mapOption[_offset][_id].releaseAmount > 0);
	    
	    fromAccount = itemAccount[_offset].fromAccount;
	    toAccount = itemAccount[_offset].toAccount;
	    releaseAmount = mapOption[_offset][_id].releaseAmount;
	    releaseTime = mapOption[_offset][_id].releaseTime;
	}
	
	function burnOptions(address _to, uint256 _offset) public returns (bool success) {
	    require(_to != address(0));
	    require(_offset >= 0);
	    uint256 nowtime = now;
	    for(uint256 i = 0; i < toOption[_to].length; i++) {
	        if(toOption[_to][i] == _offset && itemAccount[toOption[_to][i]].fromAccount == msg.sender) {
	            for(uint256 j = 0; j < mapOption[_offset].length; j++) {
	                if(mapOption[_offset][j].releaseAmount > 0 && mapOption[_offset][j].releaseTime > nowtime && balances[msg.sender].add(mapOption[_offset][j].releaseAmount) > balances[msg.sender]) {
	                    balances[msg.sender] = balances[msg.sender].add(mapOption[_offset][j].releaseAmount);
	                    mapOption[_offset][j].releaseAmount = 0;
	                }
	            }
	            return true;
	        }
	    }
	    
	    return false;
	}
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","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":true,"inputs":[{"name":"_offset","type":"uint256"}],"name":"getOption","outputs":[{"name":"fromAccount","type":"address"},{"name":"toAccount","type":"address"},{"name":"count","type":"uint8"},{"name":"totalAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"toListOptions","outputs":[{"name":"offset_s","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":true,"inputs":[],"name":"initial_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_count","type":"uint8"}],"name":"setItemOptions","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"itemTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"increase","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fromListOptions","outputs":[{"name":"offset_s","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_offset","type":"uint256"}],"name":"burnOptions","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"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":true,"inputs":[{"name":"_offset","type":"uint256"},{"name":"_id","type":"uint8"}],"name":"getOptionOnce","outputs":[{"name":"fromAccount","type":"address"},{"name":"toAccount","type":"address"},{"name":"releaseAmount","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allownce","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_to","type":"address"}],"name":"itemBalance","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"Name","type":"string"},{"name":"Symbol","type":"string"},{"name":"Decimals","type":"uint8"},{"name":"initialSupply","type":"uint256"},{"name":"initOwner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Increase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_releaseTime","type":"uint256"}],"name":"SetItemOption","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

606060405234156200001057600080fd5b6040516200368a3803806200368a83398101604052808051820191906020018051820191906020018051906020019091908051906020019091908051906020019091905050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200009257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460029080519060200190620000eb929190620001a0565b50836003908051906020019062000104929190620001a0565b5082600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a8202600581905550600554600081905550600054600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060088190555050505050506200024f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e357805160ff191683800117855562000214565b8280016001018555821562000214579182015b8281111562000213578251825591602001919060010190620001f6565b5b50905062000223919062000227565b5090565b6200024c91905b80821115620002485760008160009055506001016200022e565b5090565b90565b61342b806200025f6000396000f300606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c657806318160ddd146102205780631ce5e9a6146102495780632142ca5e146102f357806323b872dd1461035d5780632405e3c6146103d657806327e235e3146103ff5780632e81cdda1461044c5780632ec19f0f146104bb57806330f3f0db1461050c578063313ce5671461054757806334bd94ba146105765780633c5f0465146105e057806342966c681461063a57806370a08231146106755780638517ffa6146106c25780638da5cb5b1461077257806395d89b41146107c7578063a20bc7fe14610855578063a9059cbb146108c1578063aa8d715d1461091b578063f2fde38b14610968575b600080fd5b341561014357600080fd5b61014b6109a1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018b578082015181840152602081019050610170565b50505050905090810190601f1680156101b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d157600080fd5b610206600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a3f565b604051808215151515815260200191505060405180910390f35b341561022b57600080fd5b610233610b31565b6040518082815260200191505060405180910390f35b341561025457600080fd5b61026a6004808035906020019091905050610b37565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff16815260200182815260200194505050505060405180910390f35b34156102fe57600080fd5b610306610df5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561034957808201518184015260208101905061032e565b505050509050019250505060405180910390f35b341561036857600080fd5b6103bc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061109c565b604051808215151515815260200191505060405180910390f35b34156103e157600080fd5b6103e96114fa565b6040518082815260200191505060405180910390f35b341561040a57600080fd5b610436600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611500565b6040518082815260200191505060405180910390f35b341561045757600080fd5b6104a1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803560ff16906020019091905050611518565b604051808215151515815260200191505060405180910390f35b34156104c657600080fd5b6104f2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119ac565b604051808215151515815260200191505060405180910390f35b341561051757600080fd5b61052d6004808035906020019091905050611db1565b604051808215151515815260200191505060405180910390f35b341561055257600080fd5b61055a611fa4565b604051808260ff1660ff16815260200191505060405180910390f35b341561058157600080fd5b610589611fb7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105cc5780820151818401526020810190506105b1565b505050509050019250505060405180910390f35b34156105eb57600080fd5b610620600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061225e565b604051808215151515815260200191505060405180910390f35b341561064557600080fd5b61065b60048080359060200190919050506126b9565b604051808215151515815260200191505060405180910390f35b341561068057600080fd5b6106ac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612810565b6040518082815260200191505060405180910390f35b34156106cd57600080fd5b6106ef600480803590602001909190803560ff16906020019091905050612873565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b341561077d57600080fd5b610785612aa4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107d257600080fd5b6107da612aca565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081a5780820151818401526020810190506107ff565b50505050905090810190601f1680156108475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086057600080fd5b6108ab600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b68565b6040518082815260200191505060405180910390f35b34156108cc57600080fd5b610901600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612bef565b604051808215151515815260200191505060405180910390f35b341561092657600080fd5b610952600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612e7d565b6040518082815260200191505060405180910390f35b341561097357600080fd5b61099f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613177565b005b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a375780601f10610a0c57610100808354040283529160200191610a37565b820191906000526020600020905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b60008060008060008060008710151515610b5057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600b600089815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c2157503373ffffffffffffffffffffffffffffffffffffffff16600b600089815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1515610c2c57600080fd5b600b600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550600b600088815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1694506000935060009250429150600090505b600c600088815260200190815260200160002080549050811015610dec576000600c600089815260200190815260200160002082815481101515610cee57fe5b906000526020600020906002020160000154118015610d3d575081600c600089815260200190815260200160002082815481101515610d2957fe5b906000526020600020906002020160010154115b8015610d8b575082610d89600c60008a815260200190815260200160002083815481101515610d6857fe5b906000526020600020906002020160000154856132cf90919063ffffffff16565b115b15610ddf578380600101945050610ddc600c600089815260200190815260200160002082815481101515610dbb57fe5b906000526020600020906002020160000154846132cf90919063ffffffff16565b92505b8080600101915050610cae565b50509193509193565b610dfd613339565b60008060008042935060009250600091505b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561109557600090505b600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515610eae57fe5b906000526020600020900154815260200190815260200160002080549050811015611088576000600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515610f2557fe5b906000526020600020900154815260200190815260200160002082815481101515610f4c57fe5b906000526020600020906002020160000154118015610ff2575083600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515610fb757fe5b906000526020600020900154815260200190815260200160002082815481101515610fde57fe5b906000526020600020906002020160010154115b1561107b57600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561104357fe5b906000526020600020900154858460ff1681518110151561106057fe5b90602001906020020181815250508280600101935050611088565b8080600101915050610e5e565b8180600101925050610e0f565b5050505090565b60006110a7846119ac565b5081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156110f75750600082115b80156111825750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156114ee573373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415156113565781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561124657600080fd5b6112d582600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113a882600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061143d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506114f3565b600090505b9392505050565b60055481565b60066020528060005260406000206000915090505481565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561155a57600080fd5b60008711151561156957600080fd5b60008560ff1611151561157b57600080fd5b6115918560ff168861330690919063ffffffff16565b92506000831180156115f5575060006115f284600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b10155b80156116905750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168e84600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b115b151561169b57600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816116ec919061334d565b9160005260206000209001600060085490919091505550600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611754919061334d565b916000526020600020900160006008549091909150555060408051908101604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815250600b6000600854815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506118a483600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550859150600090505b8460ff168160ff16101561198b576119146301e13380836132cf90919063ffffffff16565b9150600c60006008548152602001908152602001600020805480600101828161193d9190613379565b9160005260206000209060020201600060408051908101604052808b8152602001868152509091909150600082015181600001556020820151816001015550505080806001019150506118ef565b60086000815480929190600101919050555060019350505050949350505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156119ee57600080fd5b429250600091505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015611da557600090505b600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611a9557fe5b906000526020600020900154815260200190815260200160002080549050811015611d98576000600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515611b0c57fe5b906000526020600020900154815260200190815260200160002082815481101515611b3357fe5b906000526020600020906002020160000154118015611bda5750600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611b9d57fe5b906000526020600020900154815260200190815260200160002081815481101515611bc457fe5b9060005260206000209060020201600101548310155b15611d8b57611cb9600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515611c3257fe5b906000526020600020900154815260200190815260200160002082815481101515611c5957fe5b906000526020600020906002020160000154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515611d4e57fe5b906000526020600020900154815260200190815260200160002082815481101515611d7557fe5b9060005260206000209060020201600001819055505b8080600101915050611a45565b81806001019250506119f6565b60019350505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0f57600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611f9e57611eac826000546132cf90919063ffffffff16565b600081905550611f0482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f12007e72f6f07d1e7dd33219d5187184ceba138e79459b6c241cec9a9399fe0c836040518082815260200191505060405180910390a260019050611f9f565b5b919050565b600460009054906101000a900460ff1681565b611fbf613339565b60008060008042935060009250600091505b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561225757600090505b600c6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561207057fe5b90600052602060002090015481526020019081526020016000208054905081101561224a576000600c6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156120e757fe5b90600052602060002090015481526020019081526020016000208281548110151561210e57fe5b9060005260206000209060020201600001541180156121b4575083600c6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561217957fe5b9060005260206000209001548152602001908152602001600020828154811015156121a057fe5b906000526020600020906002020160010154115b1561223d57600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561220557fe5b906000526020600020900154858460ff1681518110151561222257fe5b9060200190602002018181525050828060010193505061224a565b8080600101915050612020565b8180600101925050611fd1565b5050505090565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156122a057600080fd5b600085101515156122b057600080fd5b429250600091505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210156126ab5784600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561234f57fe5b90600052602060002090015414801561242057503373ffffffffffffffffffffffffffffffffffffffff16600b6000600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156123ca57fe5b906000526020600020900154815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561269e57600090505b600c600086815260200190815260200160002080549050811015612695576000600c60008781526020019081526020016000208281548110151561246a57fe5b9060005260206000209060020201600001541180156124b9575082600c6000878152602001908152602001600020828154811015156124a557fe5b906000526020600020906002020160010154115b80156125855750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612583600c60008881526020019081526020016000208381548110151561252357fe5b906000526020600020906002020160000154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b115b156126885761260d600c6000878152602001908152602001600020828154811015156125ad57fe5b906000526020600020906002020160000154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60008781526020019081526020016000208281548110151561267257fe5b9060005260206000209060020201600001819055505b808060010191505061242a565b600193506126b0565b81806001019250506122b8565b600093505b50505092915050565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561270957600080fd5b61275b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127b3826000546132ed90919063ffffffff16565b6000819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b600061286c61281e83612e7d565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b9050919050565b6000806000806000861015151561288957600080fd5b60008560ff161015151561289c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600b600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061296d57503373ffffffffffffffffffffffffffffffffffffffff16600b600088815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561297857600080fd5b6000600c60008881526020019081526020016000208660ff1681548110151561299d57fe5b9060005260206000209060020201600001541115156129bb57600080fd5b600b600087815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600b600087815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600c60008781526020019081526020016000208560ff16815481101515612a5057fe5b9060005260206000209060020201600001549150600c60008781526020019081526020016000208560ff16815481101515612a8757fe5b906000526020600020906002020160010154905092959194509250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b605780601f10612b3557610100808354040283529160200191612b60565b820191906000526020600020905b815481529060010190602001808311612b4357829003601f168201915b505050505081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000612bfa836119ac565b5081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612c4a5750600082115b8015612cd55750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b15612e7257612d2c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dc182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612e77565b600090505b92915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515612ebf57600080fd5b60009350429250600091505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561316c57600090505b600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612f6a57fe5b90600052602060002090015481526020019081526020016000208054905081101561315f576000600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515612fe157fe5b90600052602060002090015481526020019081526020016000208281548110151561300857fe5b9060005260206000209060020201600001541180156130af5750600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561307257fe5b90600052602060002090015481526020019081526020016000208181548110151561309957fe5b9060005260206000209060020201600101548310155b156131525761314f600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561310757fe5b90600052602060002090015481526020019081526020016000208281548110151561312e57fe5b906000526020600020906002020160000154856132cf90919063ffffffff16565b93505b8080600101915050612f1a565b8180600101925050612ecb565b839350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561320f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082840190508381101515156132e357fe5b8091505092915050565b60008282111515156132fb57fe5b818303905092915050565b60008082840290506000841480613327575082848281151561332457fe5b04145b151561332f57fe5b8091505092915050565b602060405190810160405280600081525090565b8154818355818115116133745781836000526020600020918201910161337391906133ab565b5b505050565b8154818355818115116133a6576002028160020283600052602060002091820191016133a591906133d0565b5b505050565b6133cd91905b808211156133c95760008160009055506001016133b1565b5090565b90565b6133fc91905b808211156133f8576000808201600090556001820160009055506002016133d6565b5090565b905600a165627a7a72305820a08227d3ab2d0a357643084b5f6bc3012a2fec91d6e3c29d28670669dbbbaa24002900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000018e116e76948df1d930922c19c2ec2d7c99ebc8d000000000000000000000000000000000000000000000000000000000000000854657374436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354434f0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c657806318160ddd146102205780631ce5e9a6146102495780632142ca5e146102f357806323b872dd1461035d5780632405e3c6146103d657806327e235e3146103ff5780632e81cdda1461044c5780632ec19f0f146104bb57806330f3f0db1461050c578063313ce5671461054757806334bd94ba146105765780633c5f0465146105e057806342966c681461063a57806370a08231146106755780638517ffa6146106c25780638da5cb5b1461077257806395d89b41146107c7578063a20bc7fe14610855578063a9059cbb146108c1578063aa8d715d1461091b578063f2fde38b14610968575b600080fd5b341561014357600080fd5b61014b6109a1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018b578082015181840152602081019050610170565b50505050905090810190601f1680156101b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d157600080fd5b610206600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a3f565b604051808215151515815260200191505060405180910390f35b341561022b57600080fd5b610233610b31565b6040518082815260200191505060405180910390f35b341561025457600080fd5b61026a6004808035906020019091905050610b37565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff16815260200182815260200194505050505060405180910390f35b34156102fe57600080fd5b610306610df5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561034957808201518184015260208101905061032e565b505050509050019250505060405180910390f35b341561036857600080fd5b6103bc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061109c565b604051808215151515815260200191505060405180910390f35b34156103e157600080fd5b6103e96114fa565b6040518082815260200191505060405180910390f35b341561040a57600080fd5b610436600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611500565b6040518082815260200191505060405180910390f35b341561045757600080fd5b6104a1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803560ff16906020019091905050611518565b604051808215151515815260200191505060405180910390f35b34156104c657600080fd5b6104f2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119ac565b604051808215151515815260200191505060405180910390f35b341561051757600080fd5b61052d6004808035906020019091905050611db1565b604051808215151515815260200191505060405180910390f35b341561055257600080fd5b61055a611fa4565b604051808260ff1660ff16815260200191505060405180910390f35b341561058157600080fd5b610589611fb7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105cc5780820151818401526020810190506105b1565b505050509050019250505060405180910390f35b34156105eb57600080fd5b610620600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061225e565b604051808215151515815260200191505060405180910390f35b341561064557600080fd5b61065b60048080359060200190919050506126b9565b604051808215151515815260200191505060405180910390f35b341561068057600080fd5b6106ac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612810565b6040518082815260200191505060405180910390f35b34156106cd57600080fd5b6106ef600480803590602001909190803560ff16906020019091905050612873565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b341561077d57600080fd5b610785612aa4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107d257600080fd5b6107da612aca565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081a5780820151818401526020810190506107ff565b50505050905090810190601f1680156108475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086057600080fd5b6108ab600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b68565b6040518082815260200191505060405180910390f35b34156108cc57600080fd5b610901600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612bef565b604051808215151515815260200191505060405180910390f35b341561092657600080fd5b610952600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612e7d565b6040518082815260200191505060405180910390f35b341561097357600080fd5b61099f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613177565b005b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a375780601f10610a0c57610100808354040283529160200191610a37565b820191906000526020600020905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b60008060008060008060008710151515610b5057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600b600089815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c2157503373ffffffffffffffffffffffffffffffffffffffff16600b600089815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1515610c2c57600080fd5b600b600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550600b600088815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1694506000935060009250429150600090505b600c600088815260200190815260200160002080549050811015610dec576000600c600089815260200190815260200160002082815481101515610cee57fe5b906000526020600020906002020160000154118015610d3d575081600c600089815260200190815260200160002082815481101515610d2957fe5b906000526020600020906002020160010154115b8015610d8b575082610d89600c60008a815260200190815260200160002083815481101515610d6857fe5b906000526020600020906002020160000154856132cf90919063ffffffff16565b115b15610ddf578380600101945050610ddc600c600089815260200190815260200160002082815481101515610dbb57fe5b906000526020600020906002020160000154846132cf90919063ffffffff16565b92505b8080600101915050610cae565b50509193509193565b610dfd613339565b60008060008042935060009250600091505b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561109557600090505b600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515610eae57fe5b906000526020600020900154815260200190815260200160002080549050811015611088576000600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515610f2557fe5b906000526020600020900154815260200190815260200160002082815481101515610f4c57fe5b906000526020600020906002020160000154118015610ff2575083600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515610fb757fe5b906000526020600020900154815260200190815260200160002082815481101515610fde57fe5b906000526020600020906002020160010154115b1561107b57600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561104357fe5b906000526020600020900154858460ff1681518110151561106057fe5b90602001906020020181815250508280600101935050611088565b8080600101915050610e5e565b8180600101925050610e0f565b5050505090565b60006110a7846119ac565b5081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156110f75750600082115b80156111825750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156114ee573373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415156113565781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561124657600080fd5b6112d582600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113a882600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061143d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506114f3565b600090505b9392505050565b60055481565b60066020528060005260406000206000915090505481565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561155a57600080fd5b60008711151561156957600080fd5b60008560ff1611151561157b57600080fd5b6115918560ff168861330690919063ffffffff16565b92506000831180156115f5575060006115f284600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b10155b80156116905750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168e84600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b115b151561169b57600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816116ec919061334d565b9160005260206000209001600060085490919091505550600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611754919061334d565b916000526020600020900160006008549091909150555060408051908101604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815250600b6000600854815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506118a483600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550859150600090505b8460ff168160ff16101561198b576119146301e13380836132cf90919063ffffffff16565b9150600c60006008548152602001908152602001600020805480600101828161193d9190613379565b9160005260206000209060020201600060408051908101604052808b8152602001868152509091909150600082015181600001556020820151816001015550505080806001019150506118ef565b60086000815480929190600101919050555060019350505050949350505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156119ee57600080fd5b429250600091505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015611da557600090505b600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611a9557fe5b906000526020600020900154815260200190815260200160002080549050811015611d98576000600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515611b0c57fe5b906000526020600020900154815260200190815260200160002082815481101515611b3357fe5b906000526020600020906002020160000154118015611bda5750600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611b9d57fe5b906000526020600020900154815260200190815260200160002081815481101515611bc457fe5b9060005260206000209060020201600101548310155b15611d8b57611cb9600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515611c3257fe5b906000526020600020900154815260200190815260200160002082815481101515611c5957fe5b906000526020600020906002020160000154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515611d4e57fe5b906000526020600020900154815260200190815260200160002082815481101515611d7557fe5b9060005260206000209060020201600001819055505b8080600101915050611a45565b81806001019250506119f6565b60019350505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0f57600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611f9e57611eac826000546132cf90919063ffffffff16565b600081905550611f0482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f12007e72f6f07d1e7dd33219d5187184ceba138e79459b6c241cec9a9399fe0c836040518082815260200191505060405180910390a260019050611f9f565b5b919050565b600460009054906101000a900460ff1681565b611fbf613339565b60008060008042935060009250600091505b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561225757600090505b600c6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561207057fe5b90600052602060002090015481526020019081526020016000208054905081101561224a576000600c6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156120e757fe5b90600052602060002090015481526020019081526020016000208281548110151561210e57fe5b9060005260206000209060020201600001541180156121b4575083600c6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561217957fe5b9060005260206000209001548152602001908152602001600020828154811015156121a057fe5b906000526020600020906002020160010154115b1561223d57600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561220557fe5b906000526020600020900154858460ff1681518110151561222257fe5b9060200190602002018181525050828060010193505061224a565b8080600101915050612020565b8180600101925050611fd1565b5050505090565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156122a057600080fd5b600085101515156122b057600080fd5b429250600091505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210156126ab5784600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561234f57fe5b90600052602060002090015414801561242057503373ffffffffffffffffffffffffffffffffffffffff16600b6000600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156123ca57fe5b906000526020600020900154815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561269e57600090505b600c600086815260200190815260200160002080549050811015612695576000600c60008781526020019081526020016000208281548110151561246a57fe5b9060005260206000209060020201600001541180156124b9575082600c6000878152602001908152602001600020828154811015156124a557fe5b906000526020600020906002020160010154115b80156125855750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612583600c60008881526020019081526020016000208381548110151561252357fe5b906000526020600020906002020160000154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b115b156126885761260d600c6000878152602001908152602001600020828154811015156125ad57fe5b906000526020600020906002020160000154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60008781526020019081526020016000208281548110151561267257fe5b9060005260206000209060020201600001819055505b808060010191505061242a565b600193506126b0565b81806001019250506122b8565b600093505b50505092915050565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561270957600080fd5b61275b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127b3826000546132ed90919063ffffffff16565b6000819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b600061286c61281e83612e7d565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b9050919050565b6000806000806000861015151561288957600080fd5b60008560ff161015151561289c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600b600088815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061296d57503373ffffffffffffffffffffffffffffffffffffffff16600b600088815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561297857600080fd5b6000600c60008881526020019081526020016000208660ff1681548110151561299d57fe5b9060005260206000209060020201600001541115156129bb57600080fd5b600b600087815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600b600087815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600c60008781526020019081526020016000208560ff16815481101515612a5057fe5b9060005260206000209060020201600001549150600c60008781526020019081526020016000208560ff16815481101515612a8757fe5b906000526020600020906002020160010154905092959194509250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b605780601f10612b3557610100808354040283529160200191612b60565b820191906000526020600020905b815481529060010190602001808311612b4357829003601f168201915b505050505081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000612bfa836119ac565b5081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612c4a5750600082115b8015612cd55750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b15612e7257612d2c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ed90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dc182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132cf90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612e77565b600090505b92915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515612ebf57600080fd5b60009350429250600091505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561316c57600090505b600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612f6a57fe5b90600052602060002090015481526020019081526020016000208054905081101561315f576000600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515612fe157fe5b90600052602060002090015481526020019081526020016000208281548110151561300857fe5b9060005260206000209060020201600001541180156130af5750600c6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561307257fe5b90600052602060002090015481526020019081526020016000208181548110151561309957fe5b9060005260206000209060020201600101548310155b156131525761314f600c6000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561310757fe5b90600052602060002090015481526020019081526020016000208281548110151561312e57fe5b906000526020600020906002020160000154856132cf90919063ffffffff16565b93505b8080600101915050612f1a565b8180600101925050612ecb565b839350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561320f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082840190508381101515156132e357fe5b8091505092915050565b60008282111515156132fb57fe5b818303905092915050565b60008082840290506000841480613327575082848281151561332457fe5b04145b151561332f57fe5b8091505092915050565b602060405190810160405280600081525090565b8154818355818115116133745781836000526020600020918201910161337391906133ab565b5b505050565b8154818355818115116133a6576002028160020283600052602060002091820191016133a591906133d0565b5b505050565b6133cd91905b808211156133c95760008160009055506001016133b1565b5090565b90565b6133fc91905b808211156133f8576000808201600090556001820160009055506002016133d6565b5090565b905600a165627a7a72305820a08227d3ab2d0a357643084b5f6bc3012a2fec91d6e3c29d28670669dbbbaa240029

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000018e116e76948df1d930922c19c2ec2d7c99ebc8d000000000000000000000000000000000000000000000000000000000000000854657374436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354434f0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : Name (string): TestCoin
Arg [1] : Symbol (string): TCO
Arg [2] : Decimals (uint8): 18
Arg [3] : initialSupply (uint256): 100000000
Arg [4] : initOwner (address): 0x18E116e76948dF1d930922c19c2eC2D7c99Ebc8d

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [4] : 00000000000000000000000018e116e76948df1d930922c19c2ec2d7c99ebc8d
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [6] : 54657374436f696e000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [8] : 54434f0000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://a08227d3ab2d0a357643084b5f6bc3012a2fec91d6e3c29d28670669dbbbaa24

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

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.