Transactions
Token Transfers
Tokens
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- GEEQToken
- Optimization enabled
- false
- Compiler version
- v0.4.26+commit.4563c3fc
- EVM Version
- byzantium
- Verified at
- 2026-04-22T04:15:08.612249Z
GEEQToken.sol
pragma solidity ^0.4.26;
library SafeMath {
function add(uint a, uint b) internal pure returns (uint c) {
c = a + b;
require(c >= a);
return (c);
}
function sub(uint a, uint b) internal pure returns (uint c) {
require(b <= a);
c = a - b;
return (c);
}
function mul(uint a, uint b) internal pure returns (uint c) {
c = a * b;
require(a == 0 || c / a == b);
return (c);
}
function div(uint a, uint b) internal pure returns (uint c) {
require(b > 0);
c = a / b;
return (c);
}
}
contract ERC20Interface {
function totalSupply() public constant returns (uint);
function balanceOf(address tokenOwner) public constant returns (uint balance);
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
contract ApproveAndCallFallBack {
function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}
contract Owned {
address public owner;
address public newOwner;
event OwnershipTransferred(address indexed _from, address indexed _to);
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function transferOwnership(address _newOwner) public onlyOwner {
newOwner = _newOwner;
}
function acceptOwnership() public {
require(msg.sender == newOwner);
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
newOwner = address(0); //sets temporary but public variable to zero after migration complete
}
}
contract GEEQToken is ERC20Interface, Owned {
using SafeMath for uint;
string public symbol;
string public name;
uint8 public decimals;
uint256 _totalSupply;
uint256 _totalMinted;
uint256 _maxMintable;
bool public pauseOn;
bool public migrationOn;
mapping(address => uint) public balances;
mapping(address => mapping(address => uint)) allowed; //Hate But Keep ERC20 compliance
event PauseEvent(string pauseevent);
event ErrorEvent(address indexed addr, string errorstr);
event BurnEvent(address indexed addr, uint256 tokens);
constructor() public {
symbol = "GEEQ";
name = "Geeq";
decimals = 18;
_totalMinted = 0; //Total that has been minted. Burned tokens can not be replaced
_totalSupply = 0; //Total in circulation, which is minted - burned
_maxMintable = 100000000 * 10**uint(decimals); //Capped at 100 mil tokens
owner = msg.sender;
}
mapping(address => bytes32) public geeqaddress;
event MigrateEvent(address indexed addr, bytes32 geeqaddress, uint256 balance);
function migrateGEEQ(bytes32 registeraddress) public {
if (migrationOn){
geeqaddress[msg.sender] = registeraddress; //store the GEEQ wallet address in the Ethereum blockchain
emit MigrateEvent(msg.sender, registeraddress, balances[msg.sender]); //Ideally log the tokens for easy indexing
burn(balances[msg.sender]);
} else {
emit ErrorEvent (msg.sender, "Attempted to migrate before GEEQ Migration has begun.");
}
}
//In case someone accidentally or airdrop sends a token, the owner can retreive it.
function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
return ERC20Interface(tokenAddress).transfer(owner, tokens);
}
function pauseEnable() onlyOwner public {
pauseOn= true;
}
function pauseDisable() onlyOwner public {
pauseOn= false;
}
function migrationEnable() onlyOwner public {
migrationOn= true;
}
function migrationDisable() onlyOwner public {
migrationOn= false;
}
function totalSupply() public constant returns (uint) {
return _totalSupply;
}
function totalMinted() public constant returns (uint) {
return _totalMinted;
}
function burn(uint256 tokens) internal { //works even if contract is paused
if(balances[msg.sender]>= tokens) {
_totalSupply=_totalSupply.sub(balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(tokens);
balances[address(0)] = balances[address(0)].add(tokens);
emit BurnEvent(msg.sender, tokens);
} else {
revert(); //necessary explicit - sender attempted to burn more tokens than owned.
}
}
//Mint function, can not create more than totalSupply
function mint(address receiver, uint256 token_amt) onlyOwner public {
if( _totalMinted.add(token_amt) > _maxMintable) {
revert(); //Can not mint more than _maxMintable
}
balances[receiver] = balances[receiver].add(token_amt);
_totalMinted =_totalMinted.add(token_amt);
_totalSupply =_totalSupply.add(token_amt);
emit Transfer(address(0), receiver, token_amt); //This way the correct number of tokens will appear on Etherscan. That is the entire purpose of this event.
}
//Below is the ERC20 logic, with Pause disabling transfer.
function balanceOf(address tokenOwner) public constant returns (uint balance) {
return balances[tokenOwner];
}
function transfer(address to, uint tokens) public returns (bool success) {
if(pauseOn){
emit ErrorEvent(msg.sender, "Contract is paused. Please migrate to the native chain with migrateGEEQ.");
revert(); //unnecessarily explicit
} else {
balances[msg.sender] = balances[msg.sender].sub(tokens);
balances[to] = balances[to].add(tokens);
emit Transfer(msg.sender, to, tokens);
return true; //unnecessarily explicit
}
}
function approve(address spender, uint tokens) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender, spender, tokens);
return true;
}
function transferFrom(address from, address to, uint tokens) public returns (bool success) {
if(pauseOn){
emit ErrorEvent(msg.sender, "Contract is paused. Please migrate to the native chain with migrateGEEQ.");
revert(); //unnecessarily explicit
} else {
balances[from] = balances[from].sub(tokens);
allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
balances[to] = balances[to].add(tokens);
emit Transfer(from, to, tokens);
return true; //unnecessarily explicit
}
}
function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {
return allowed[tokenOwner][spender];
}
function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval(msg.sender, spender, tokens);
ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
return true; //unnecessarily explicit
}
function() public { }
}
Compiler Settings
{"remappings":[],"optimizer":{"runs":200,"enabled":false},"libraries":{},"evmVersion":"byzantium","compilationTarget":{"GEEQToken.sol":"GEEQToken"}}
Contract ABI
[{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":""}],"name":"name","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"success"}],"name":"approve","inputs":[{"type":"address","name":"spender"},{"type":"uint256","name":"tokens"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"migrationOn","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalSupply","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"success"}],"name":"transferFrom","inputs":[{"type":"address","name":"from"},{"type":"address","name":"to"},{"type":"uint256","name":"tokens"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"balances","inputs":[{"type":"address","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"pauseEnable","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint8","name":""}],"name":"decimals","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"mint","inputs":[{"type":"address","name":"receiver"},{"type":"uint256","name":"token_amt"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"pauseOn","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"balance"}],"name":"balanceOf","inputs":[{"type":"address","name":"tokenOwner"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bytes32","name":""}],"name":"geeqaddress","inputs":[{"type":"address","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"acceptOwnership","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"owner","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":""}],"name":"symbol","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalMinted","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"migrateGEEQ","inputs":[{"type":"bytes32","name":"registeraddress"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"success"}],"name":"transfer","inputs":[{"type":"address","name":"to"},{"type":"uint256","name":"tokens"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"migrationDisable","inputs":[],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"success"}],"name":"approveAndCall","inputs":[{"type":"address","name":"spender"},{"type":"uint256","name":"tokens"},{"type":"bytes","name":"data"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"newOwner","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"migrationEnable","inputs":[],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"success"}],"name":"transferAnyERC20Token","inputs":[{"type":"address","name":"tokenAddress"},{"type":"uint256","name":"tokens"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"remaining"}],"name":"allowance","inputs":[{"type":"address","name":"tokenOwner"},{"type":"address","name":"spender"}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"pauseDisable","inputs":[],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"_newOwner"}],"constant":false},{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[]},{"type":"fallback","stateMutability":"nonpayable","payable":false},{"type":"event","name":"PauseEvent","inputs":[{"type":"string","name":"pauseevent","indexed":false}],"anonymous":false},{"type":"event","name":"ErrorEvent","inputs":[{"type":"address","name":"addr","indexed":true},{"type":"string","name":"errorstr","indexed":false}],"anonymous":false},{"type":"event","name":"BurnEvent","inputs":[{"type":"address","name":"addr","indexed":true},{"type":"uint256","name":"tokens","indexed":false}],"anonymous":false},{"type":"event","name":"MigrateEvent","inputs":[{"type":"address","name":"addr","indexed":true},{"type":"bytes32","name":"geeqaddress","indexed":false},{"type":"uint256","name":"balance","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"_from","indexed":true},{"type":"address","name":"_to","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","indexed":true},{"type":"address","name":"to","indexed":true},{"type":"uint256","name":"tokens","indexed":false}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"tokenOwner","indexed":true},{"type":"address","name":"spender","indexed":true},{"type":"uint256","name":"tokens","indexed":false}],"anonymous":false}]
Contract Creation Code
0x60806040523480156200001157600080fd5b506040805190810160405280600481526020017f4745455100000000000000000000000000000000000000000000000000000000815250600290805190602001906200005f92919062000142565b506040805190810160405280600481526020017f476565710000000000000000000000000000000000000000000000000000000081525060039080519060200190620000ad92919062000142565b506012600460006101000a81548160ff021916908360ff16021790555060006006819055506000600581905550600460009054906101000a900460ff1660ff16600a0a6305f5e10002600781905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001f1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018557805160ff1916838001178555620001b6565b82800160010185558215620001b6579182015b82811115620001b557825182559160200191906001019062000198565b5b509050620001c59190620001c9565b5090565b620001ee91905b80821115620001ea576000816000905550600101620001d0565b5090565b90565b61210880620002016000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610163578063095ea7b3146101f357806313f6a2e51461025857806318160ddd1461028757806323b872dd146102b257806327e235e314610337578063291d3dba1461038e578063313ce567146103a557806340c10f19146103d6578063686dc57c1461042357806370a08231146104525780637940009c146104a957806379ba5097146105085780638da5cb5b1461051f57806395d89b4114610576578063a2309ff814610606578063a837d5d014610631578063a9059cbb14610662578063bcf3f702146106c7578063cae9ca51146106de578063d4ee1d9014610789578063d7385f1f146107e0578063dc39d06d146107f7578063dd62ed3e1461085c578063ec7a3395146108d3578063f2fde38b146108ea575b34801561016057600080fd5b50005b34801561016f57600080fd5b5061017861092d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b857808201518184015260208101905061019d565b50505050905090810190601f1680156101e55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ff57600080fd5b5061023e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109cb565b604051808215151515815260200191505060405180910390f35b34801561026457600080fd5b5061026d610abd565b604051808215151515815260200191505060405180910390f35b34801561029357600080fd5b5061029c610ad0565b6040518082815260200191505060405180910390f35b3480156102be57600080fd5b5061031d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ada565b604051808215151515815260200191505060405180910390f35b34801561034357600080fd5b50610378600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6a565b6040518082815260200191505060405180910390f35b34801561039a57600080fd5b506103a3610e82565b005b3480156103b157600080fd5b506103ba610efa565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103e257600080fd5b50610421600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0d565b005b34801561042f57600080fd5b506104386110c0565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b50610493600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b6040518082815260200191505060405180910390f35b3480156104b557600080fd5b506104ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111c565b60405180826000191660001916815260200191505060405180910390f35b34801561051457600080fd5b5061051d611134565b005b34801561052b57600080fd5b506105346112d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561058257600080fd5b5061058b6112f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105cb5780820151818401526020810190506105b0565b50505050905090810190601f1680156105f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061257600080fd5b5061061b611396565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b5061066060048036038101908080356000191690602001909291905050506113a0565b005b34801561066e57600080fd5b506106ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611590565b604051808215151515815260200191505060405180910390f35b3480156106d357600080fd5b506106dc611810565b005b3480156106ea57600080fd5b5061076f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611888565b604051808215151515815260200191505060405180910390f35b34801561079557600080fd5b5061079e611ad7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ec57600080fd5b506107f5611afd565b005b34801561080357600080fd5b50610842600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b75565b604051808215151515815260200191505060405180910390f35b34801561086857600080fd5b506108bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd9565b6040518082815260200191505060405180910390f35b3480156108df57600080fd5b506108e8611d60565b005b3480156108f657600080fd5b5061092b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd8565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109c35780601f10610998576101008083540402835291602001916109c3565b820191906000526020600020905b8154815290600101906020018083116109a657829003601f168201915b505050505081565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600860019054906101000a900460ff1681565b6000600554905090565b6000600860009054906101000a900460ff1615610bc1573373ffffffffffffffffffffffffffffffffffffffff167f73035c8337025033e7e7f0ccffcf34d2601c76e813ecc2acb47b2c344dcc7c476040518080602001828103825260488152602001807f436f6e7472616374206973207061757365642e20506c65617365206d6967726181526020017f746520746f20746865206e617469766520636861696e2077697468206d69677281526020017f617465474545512e00000000000000000000000000000000000000000000000081525060600191505060405180910390a2600080fd5b610c1382600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce582600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db782600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60096020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610edd57600080fd5b6001600860006101000a81548160ff021916908315150217905550565b600460009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6857600080fd5b600754610f8082600654611e9690919063ffffffff16565b1115610f8b57600080fd5b610fdd81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061103581600654611e9690919063ffffffff16565b60068190555061105081600554611e9690919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600860009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138e5780601f106113635761010080835404028352916020019161138e565b820191906000526020600020905b81548152906001019060200180831161137157829003601f168201915b505050505081565b6000600654905090565b600860019054906101000a900460ff16156114e75780600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081600019169055503373ffffffffffffffffffffffffffffffffffffffff167feccfd26844c11ab1d6da3b64d7f8b0742f4a9b270b63693036f64aba31f46d2e82600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518083600019166000191681526020018281526020019250505060405180910390a26114e2600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb5565b61158d565b3373ffffffffffffffffffffffffffffffffffffffff167f73035c8337025033e7e7f0ccffcf34d2601c76e813ecc2acb47b2c344dcc7c476040518080602001828103825260358152602001807f417474656d7074656420746f206d696772617465206265666f7265204745455181526020017f204d6967726174696f6e2068617320626567756e2e000000000000000000000081525060400191505060405180910390a25b50565b6000600860009054906101000a900460ff1615611677573373ffffffffffffffffffffffffffffffffffffffff167f73035c8337025033e7e7f0ccffcf34d2601c76e813ecc2acb47b2c344dcc7c476040518080602001828103825260488152602001807f436f6e7472616374206973207061757365642e20506c65617365206d6967726181526020017f746520746f20746865206e617469766520636861696e2077697468206d69677281526020017f617465474545512e00000000000000000000000000000000000000000000000081525060600191505060405180910390a2600080fd5b6116c982600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061175e82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561186b57600080fd5b6000600860016101000a81548160ff021916908315150217905550565b600082600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a65578082015181840152602081019050611a4a565b50505050905090810190601f168015611a925780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611ab457600080fd5b505af1158015611ac8573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5857600080fd5b6001600860016101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c9657600080fd5b505af1158015611caa573d6000803e3d6000fd5b505050506040513d6020811015611cc057600080fd5b8101908080519060200190929190505050905092915050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dbb57600080fd5b6000600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3357600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515611e8857600080fd5b818303905080905092915050565b60008183019050828110151515611eac57600080fd5b80905092915050565b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015156120d457611f51600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600554611e7790919063ffffffff16565b600581905550611fa981600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061203e81600960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f512586160ebd4dc6945ba9ec5d21a1f723f26f3c7aa36cdffb6818d4e7b88030826040518082815260200191505060405180910390a26120d9565b600080fd5b505600a165627a7a72305820abda4e6211adfdf5467dace36674af0d3b4fd526cae554d6855964988b20e56b0029
Deployed ByteCode
0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610163578063095ea7b3146101f357806313f6a2e51461025857806318160ddd1461028757806323b872dd146102b257806327e235e314610337578063291d3dba1461038e578063313ce567146103a557806340c10f19146103d6578063686dc57c1461042357806370a08231146104525780637940009c146104a957806379ba5097146105085780638da5cb5b1461051f57806395d89b4114610576578063a2309ff814610606578063a837d5d014610631578063a9059cbb14610662578063bcf3f702146106c7578063cae9ca51146106de578063d4ee1d9014610789578063d7385f1f146107e0578063dc39d06d146107f7578063dd62ed3e1461085c578063ec7a3395146108d3578063f2fde38b146108ea575b34801561016057600080fd5b50005b34801561016f57600080fd5b5061017861092d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b857808201518184015260208101905061019d565b50505050905090810190601f1680156101e55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ff57600080fd5b5061023e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109cb565b604051808215151515815260200191505060405180910390f35b34801561026457600080fd5b5061026d610abd565b604051808215151515815260200191505060405180910390f35b34801561029357600080fd5b5061029c610ad0565b6040518082815260200191505060405180910390f35b3480156102be57600080fd5b5061031d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ada565b604051808215151515815260200191505060405180910390f35b34801561034357600080fd5b50610378600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6a565b6040518082815260200191505060405180910390f35b34801561039a57600080fd5b506103a3610e82565b005b3480156103b157600080fd5b506103ba610efa565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103e257600080fd5b50610421600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0d565b005b34801561042f57600080fd5b506104386110c0565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b50610493600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b6040518082815260200191505060405180910390f35b3480156104b557600080fd5b506104ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111c565b60405180826000191660001916815260200191505060405180910390f35b34801561051457600080fd5b5061051d611134565b005b34801561052b57600080fd5b506105346112d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561058257600080fd5b5061058b6112f8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105cb5780820151818401526020810190506105b0565b50505050905090810190601f1680156105f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061257600080fd5b5061061b611396565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b5061066060048036038101908080356000191690602001909291905050506113a0565b005b34801561066e57600080fd5b506106ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611590565b604051808215151515815260200191505060405180910390f35b3480156106d357600080fd5b506106dc611810565b005b3480156106ea57600080fd5b5061076f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611888565b604051808215151515815260200191505060405180910390f35b34801561079557600080fd5b5061079e611ad7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ec57600080fd5b506107f5611afd565b005b34801561080357600080fd5b50610842600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b75565b604051808215151515815260200191505060405180910390f35b34801561086857600080fd5b506108bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd9565b6040518082815260200191505060405180910390f35b3480156108df57600080fd5b506108e8611d60565b005b3480156108f657600080fd5b5061092b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd8565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109c35780601f10610998576101008083540402835291602001916109c3565b820191906000526020600020905b8154815290600101906020018083116109a657829003601f168201915b505050505081565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600860019054906101000a900460ff1681565b6000600554905090565b6000600860009054906101000a900460ff1615610bc1573373ffffffffffffffffffffffffffffffffffffffff167f73035c8337025033e7e7f0ccffcf34d2601c76e813ecc2acb47b2c344dcc7c476040518080602001828103825260488152602001807f436f6e7472616374206973207061757365642e20506c65617365206d6967726181526020017f746520746f20746865206e617469766520636861696e2077697468206d69677281526020017f617465474545512e00000000000000000000000000000000000000000000000081525060600191505060405180910390a2600080fd5b610c1382600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce582600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db782600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60096020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610edd57600080fd5b6001600860006101000a81548160ff021916908315150217905550565b600460009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6857600080fd5b600754610f8082600654611e9690919063ffffffff16565b1115610f8b57600080fd5b610fdd81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061103581600654611e9690919063ffffffff16565b60068190555061105081600554611e9690919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600860009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138e5780601f106113635761010080835404028352916020019161138e565b820191906000526020600020905b81548152906001019060200180831161137157829003601f168201915b505050505081565b6000600654905090565b600860019054906101000a900460ff16156114e75780600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081600019169055503373ffffffffffffffffffffffffffffffffffffffff167feccfd26844c11ab1d6da3b64d7f8b0742f4a9b270b63693036f64aba31f46d2e82600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518083600019166000191681526020018281526020019250505060405180910390a26114e2600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb5565b61158d565b3373ffffffffffffffffffffffffffffffffffffffff167f73035c8337025033e7e7f0ccffcf34d2601c76e813ecc2acb47b2c344dcc7c476040518080602001828103825260358152602001807f417474656d7074656420746f206d696772617465206265666f7265204745455181526020017f204d6967726174696f6e2068617320626567756e2e000000000000000000000081525060400191505060405180910390a25b50565b6000600860009054906101000a900460ff1615611677573373ffffffffffffffffffffffffffffffffffffffff167f73035c8337025033e7e7f0ccffcf34d2601c76e813ecc2acb47b2c344dcc7c476040518080602001828103825260488152602001807f436f6e7472616374206973207061757365642e20506c65617365206d6967726181526020017f746520746f20746865206e617469766520636861696e2077697468206d69677281526020017f617465474545512e00000000000000000000000000000000000000000000000081525060600191505060405180910390a2600080fd5b6116c982600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061175e82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561186b57600080fd5b6000600860016101000a81548160ff021916908315150217905550565b600082600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a65578082015181840152602081019050611a4a565b50505050905090810190601f168015611a925780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611ab457600080fd5b505af1158015611ac8573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5857600080fd5b6001600860016101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c9657600080fd5b505af1158015611caa573d6000803e3d6000fd5b505050506040513d6020811015611cc057600080fd5b8101908080519060200190929190505050905092915050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dbb57600080fd5b6000600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3357600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515611e8857600080fd5b818303905080905092915050565b60008183019050828110151515611eac57600080fd5b80905092915050565b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015156120d457611f51600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600554611e7790919063ffffffff16565b600581905550611fa981600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061203e81600960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9690919063ffffffff16565b600960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f512586160ebd4dc6945ba9ec5d21a1f723f26f3c7aa36cdffb6818d4e7b88030826040518082815260200191505060405180910390a26120d9565b600080fd5b505600a165627a7a72305820abda4e6211adfdf5467dace36674af0d3b4fd526cae554d6855964988b20e56b0029