Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 from a total of 3,149 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 5456131 | 2868 days ago | IN | 3 ETH | 0.00009135 | ||||
| Transfer | 5456113 | 2868 days ago | IN | 5 ETH | 0.00023085 | ||||
| Transfer | 5456109 | 2868 days ago | IN | 10 ETH | 0.00009135 | ||||
| Transfer | 5456103 | 2868 days ago | IN | 10 ETH | 0.00023085 | ||||
| Transfer | 5456092 | 2868 days ago | IN | 10 ETH | 0.00023085 | ||||
| Transfer | 5456084 | 2868 days ago | IN | 10 ETH | 0.00023085 | ||||
| Transfer | 5456075 | 2868 days ago | IN | 50 ETH | 0.00009135 | ||||
| Transfer | 5456067 | 2868 days ago | IN | 50 ETH | 0.00023085 | ||||
| Transfer | 5456048 | 2868 days ago | IN | 10 ETH | 0.00023085 | ||||
| Transfer | 5456012 | 2868 days ago | IN | 1 ETH | 0.00023085 | ||||
| Transfer | 5455990 | 2868 days ago | IN | 300.10358523 ETH | 0.00009135 | ||||
| Transfer | 5455980 | 2868 days ago | IN | 300.10438523 ETH | 0.000084 | ||||
| Transfer | 5433779 | 2872 days ago | IN | 100.10439497 ETH | 0.00004567 | ||||
| Transfer | 5433767 | 2872 days ago | IN | 300.10444065 ETH | 0.00004567 | ||||
| Transfer | 5433753 | 2872 days ago | IN | 300.10448632 ETH | 0.00004567 | ||||
| Transfer | 5433738 | 2872 days ago | IN | 300.10460175 ETH | 0.00011542 | ||||
| Transfer | 5433735 | 2872 days ago | IN | 300.10471718 ETH | 0.00011542 | ||||
| Transfer | 5433728 | 2872 days ago | IN | 300.0048326 ETH | 0.00011542 | ||||
| Transfer | 5433725 | 2872 days ago | IN | 300.00494803 ETH | 0.00011542 | ||||
| Transfer | 5433718 | 2872 days ago | IN | 300.00506345 ETH | 0.00011542 | ||||
| Transfer | 5433716 | 2872 days ago | IN | 300.00517888 ETH | 0.00011542 | ||||
| Transfer | 5433696 | 2872 days ago | IN | 300.00529431 ETH | 0.00011542 | ||||
| Transfer | 5433685 | 2872 days ago | IN | 300.00540973 ETH | 0.00011542 | ||||
| Transfer | 5433678 | 2872 days ago | IN | 300.00552516 ETH | 0.00011542 | ||||
| Transfer | 5433667 | 2872 days ago | IN | 300.00564058 ETH | 0.00011542 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5456113 | 2868 days ago | 5 ETH | ||||
| Transfer | 5456103 | 2868 days ago | 10 ETH | ||||
| Transfer | 5456092 | 2868 days ago | 10 ETH | ||||
| Transfer | 5456084 | 2868 days ago | 10 ETH | ||||
| Transfer | 5456067 | 2868 days ago | 50 ETH | ||||
| Transfer | 5456048 | 2868 days ago | 10 ETH | ||||
| Transfer | 5456012 | 2868 days ago | 1 ETH | ||||
| Transfer | 5433738 | 2872 days ago | 300.10460175 ETH | ||||
| Transfer | 5433735 | 2872 days ago | 300.10471718 ETH | ||||
| Transfer | 5433728 | 2872 days ago | 300.0048326 ETH | ||||
| Transfer | 5433725 | 2872 days ago | 300.00494803 ETH | ||||
| Transfer | 5433718 | 2872 days ago | 300.00506345 ETH | ||||
| Transfer | 5433716 | 2872 days ago | 300.00517888 ETH | ||||
| Transfer | 5433696 | 2872 days ago | 300.00529431 ETH | ||||
| Transfer | 5433685 | 2872 days ago | 300.00540973 ETH | ||||
| Transfer | 5433678 | 2872 days ago | 300.00552516 ETH | ||||
| Transfer | 5433667 | 2872 days ago | 300.00564058 ETH | ||||
| Transfer | 5433665 | 2872 days ago | 300.00575601 ETH | ||||
| Transfer | 5433662 | 2872 days ago | 300.00587144 ETH | ||||
| Transfer | 5433652 | 2872 days ago | 300.00598686 ETH | ||||
| Transfer | 5433649 | 2872 days ago | 300.00610229 ETH | ||||
| Transfer | 5433638 | 2872 days ago | 300.00621771 ETH | ||||
| Transfer | 5433633 | 2872 days ago | 300.00633314 ETH | ||||
| Transfer | 5433629 | 2872 days ago | 300.00644857 ETH | ||||
| Transfer | 5433623 | 2872 days ago | 300.00656399 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x14d333e3...66Bd3488A The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
ShiftCashIco
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-01-24
*/
pragma solidity ^0.4.19;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
contract SafeMath {
uint constant DAY_IN_SECONDS = 86400;
function mul(uint256 a, uint256 b) constant internal returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function div(uint256 a, uint256 b) constant internal 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) constant internal returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) constant internal returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
function mulByFraction(uint256 number, uint256 numerator, uint256 denominator) internal returns (uint256) {
return div(mul(number, numerator), denominator);
}
// ICO date bonus calculation
function dateBonus(uint startIco) internal returns (uint256) {
// day from ICO start
uint daysFromStart = (now - startIco) / DAY_IN_SECONDS + 1;
if(daysFromStart >= 1 && daysFromStart <= 14) return 20; // +20% tokens
if(daysFromStart >= 15 && daysFromStart <= 28) return 15; // +20% tokens
if(daysFromStart >= 29 && daysFromStart <= 42) return 10; // +10% tokens
if(daysFromStart >= 43) return 5; // +5% tokens
// no discount
return 0;
}
}
/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
/// @title Abstract token contract - Functions to be implemented by token contracts.
contract AbstractToken {
// This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions
function totalSupply() constant returns (uint256) {}
function balanceOf(address owner) constant returns (uint256 balance);
function transfer(address to, uint256 value) returns (bool success);
function transferFrom(address from, address to, uint256 value) returns (bool success);
function approve(address spender, uint256 value) returns (bool success);
function allowance(address owner, address spender) constant returns (uint256 remaining);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event Issuance(address indexed to, uint256 value);
}
contract StandardToken is AbstractToken {
/*
* Data structures
*/
mapping (address => uint256) balances;
mapping (address => bool) ownerAppended;
mapping (address => mapping (address => uint256)) allowed;
uint256 public totalSupply;
address[] public owners;
/*
* Read and write storage functions
*/
/// @dev Transfers sender's tokens to a given address. Returns success.
/// @param _to Address of token receiver.
/// @param _value Number of tokens to transfer.
function transfer(address _to, uint256 _value) returns (bool success) {
if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
balances[msg.sender] -= _value;
balances[_to] += _value;
if(!ownerAppended[_to]) {
ownerAppended[_to] = true;
owners.push(_to);
}
Transfer(msg.sender, _to, _value);
return true;
}
else {
return false;
}
}
/// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.
/// @param _from Address from where tokens are withdrawn.
/// @param _to Address to where tokens are sent.
/// @param _value Number of tokens to transfer.
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
balances[_to] += _value;
balances[_from] -= _value;
allowed[_from][msg.sender] -= _value;
if(!ownerAppended[_to]) {
ownerAppended[_to] = true;
owners.push(_to);
}
Transfer(_from, _to, _value);
return true;
}
else {
return false;
}
}
/// @dev Returns number of tokens owned by given address.
/// @param _owner Address of token owner.
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
/// @dev Sets approved amount of tokens for spender. Returns success.
/// @param _spender Address of allowed account.
/// @param _value Number of approved tokens.
function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/*
* Read storage functions
*/
/// @dev Returns number of allowed tokens for given address.
/// @param _owner Address of token owner.
/// @param _spender Address of token spender.
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
}
contract ShiftCashToken is StandardToken, SafeMath {
/*
* Token meta data
*/
string public constant name = "ShiftCashToken";
string public constant symbol = "SCASH";
uint public constant decimals = 18;
// tottal supply
address public icoContract = 0x0;
/*
* Modifiers
*/
modifier onlyIcoContract() {
// only ICO contract is allowed to proceed
require(msg.sender == icoContract);
_;
}
/*
* Contract functions
*/
/// @dev Contract is needed in icoContract address
/// @param _icoContract Address of account which will be mint tokens
function ShiftCashToken(address _icoContract) {
assert(_icoContract != 0x0);
icoContract = _icoContract;
totalSupply = 0;
}
/// @dev Burns tokens from address. It's can be applied by account with address this.icoContract
/// @param _from Address of account, from which will be burned tokens
/// @param _value Amount of tokens, that will be burned
function burnTokens(address _from, uint _value) onlyIcoContract {
assert(_from != 0x0);
require(_value > 0);
balances[_from] = sub(balances[_from], _value);
totalSupply = sub(totalSupply, _value);
}
/// @dev Adds tokens to address. It's can be applied by account with address this.icoContract
/// @param _to Address of account to which the tokens will pass
/// @param _value Amount of tokens
function emitTokens(address _to, uint _value) onlyIcoContract {
assert(_to != 0x0);
require(_value > 0);
balances[_to] = add(balances[_to], _value);
totalSupply = add(totalSupply, _value);
if(!ownerAppended[_to]) {
ownerAppended[_to] = true;
owners.push(_to);
}
Transfer(msg.sender, _to, _value);
}
function getOwner(uint index) constant returns (address, uint256) {
return (owners[index], balances[owners[index]]);
}
function getOwnerCount() constant returns (uint) {
return owners.length;
}
}
contract ShiftCashIco is SafeMath {
/*
* ICO meta data
*/
ShiftCashToken public shiftcashToken;
AbstractToken public preIcoToken;
enum State{
Pause,
Init,
Running,
Stopped,
Migrated
}
State public currentState = State.Pause;
uint public startIcoDate = 0;
// Address of account to which ethers will be tranfered in case of successful ICO
address public escrow;
// Address of manager
address public icoManager;
// Address of a account, that will transfer tokens from pre-ICO
address public tokenImporter = 0x0;
// Addresses of founders and bountyOwner
address public founder1;
address public bountyOwner;
// BASE = 10^18
uint constant BASE = 1000000000000000000;
// 5 778 000 SCASH tokens
uint public constant supplyLimit = 5778000 * BASE;
// 86 670 SCASH is token for bountyOwner
uint public constant bountyOwnersTokens = 86670 * BASE;
// 1 ETH = 450 SCASH
uint public constant PRICE = 450;
// 2018.07.05 07:00 UTC
// founders' reward time
uint public foundersRewardTime = 1530774000;
// Amount of imported tokens from pre-ICO
uint public importedTokens = 0;
// Amount of sold tokens on ICO
uint public soldTokensOnIco = 0;
// Amount of issued tokens on pre-ICO
uint public constant soldTokensOnPreIco = 69990267262342250546086;
// Tokens to founders can be sent only if sentTokensToFounder == false and time > foundersRewardTime
bool public sentTokensToFounder = false;
// Tokens to bounty owner can be sent only after ICO
bool public sentTokensToBountyOwner = false;
uint public etherRaised = 0;
/*
* Modifiers
*/
modifier whenInitialized() {
// only when contract is initialized
require(currentState >= State.Init);
_;
}
modifier onlyManager() {
// only ICO manager can do this action
require(msg.sender == icoManager);
_;
}
modifier onIcoRunning() {
// Checks, if ICO is running and has not been stopped
require(currentState == State.Running);
_;
}
modifier onIcoStopped() {
// Checks if ICO was stopped or deadline is reached
require(currentState == State.Stopped);
_;
}
modifier notMigrated() {
// Checks if base can be migrated
require(currentState != State.Migrated);
_;
}
modifier onlyImporter() {
// only importer contract is allowed to proceed
require(msg.sender == tokenImporter);
_;
}
/// @dev Constructor of ICO. Requires address of icoManager,
/// @param _icoManager Address of ICO manager
/// @param _preIcoToken Address of pre-ICO contract
function ShiftCashIco(address _icoManager, address _preIcoToken) {
assert(_preIcoToken != 0x0);
assert(_icoManager != 0x0);
shiftcashToken = new ShiftCashToken(this);
icoManager = _icoManager;
preIcoToken = AbstractToken(_preIcoToken);
}
/// @dev Initialises addresses of founders, tokens owner, escrow.
/// Initialises balances of tokens owner
/// @param _founder1 Address of founder 1
/// @param _escrow Address of escrow
function init(address _founder1, address _escrow) onlyManager {
assert(currentState != State.Init);
assert(_founder1 != 0x0);
assert(_escrow != 0x0);
founder1 = _founder1;
escrow = _escrow;
currentState = State.Init;
}
/// @dev Sets new state
/// @param _newState Value of new state
function setState(State _newState) public onlyManager
{
currentState = _newState;
if(currentState == State.Running) {
startIcoDate = now;
}
}
/// @dev Sets new manager. Only manager can do it
/// @param _newIcoManager Address of new ICO manager
function setNewManager(address _newIcoManager) onlyManager {
assert(_newIcoManager != 0x0);
icoManager = _newIcoManager;
}
/// @dev Sets bounty owner. Only manager can do it
/// @param _bountyOwner Address of Bounty owner
function setBountyOwner(address _bountyOwner) onlyManager {
assert(_bountyOwner != 0x0);
bountyOwner = _bountyOwner;
}
// saves info if account's tokens were imported from pre-ICO
mapping (address => bool) private importedFromPreIco;
/// @dev Imports account's tokens from pre-ICO. It can be done only by user, ICO manager or token importer
/// @param _account Address of account which tokens will be imported
function importTokens(address _account) {
// only token holder or manager can do migration
require(msg.sender == icoManager || msg.sender == _account);
require(!importedFromPreIco[_account]);
uint preIcoBalance = preIcoToken.balanceOf(_account);
if (preIcoBalance > 0) {
shiftcashToken.emitTokens(_account, preIcoBalance);
importedTokens = add(importedTokens, preIcoBalance);
}
importedFromPreIco[_account] = true;
}
/// @dev Buy quantity of tokens depending on the amount of sent ethers.
/// @param _buyer Address of account which will receive tokens
function buyTokens(address _buyer) private {
assert(_buyer != 0x0);
require(msg.value > 0);
uint tokensToEmit = msg.value * PRICE;
//calculate date bonus
uint bonusPercent = dateBonus(startIcoDate);
//total bonus tokens
if(bonusPercent > 0){
tokensToEmit = tokensToEmit + mulByFraction(tokensToEmit, bonusPercent, 100);
}
require(add(soldTokensOnIco, tokensToEmit) <= supplyLimit);
soldTokensOnIco = add(soldTokensOnIco, tokensToEmit);
//emit tokens to token holder
shiftcashToken.emitTokens(_buyer, tokensToEmit);
etherRaised = add(etherRaised, msg.value);
if(this.balance > 0) {
require(escrow.send(this.balance));
}
}
/// @dev Fall back function
function () payable onIcoRunning {
buyTokens(msg.sender);
}
/// @dev Burn tokens from accounts only in state "not migrated". Only manager can do it
/// @param _from Address of account
function burnTokens(address _from, uint _value) onlyManager notMigrated {
shiftcashToken.burnTokens(_from, _value);
}
/// @dev Partial withdraw. Only manager can do it
function withdrawEther(uint _value) onlyManager {
require(_value > 0);
escrow.transfer(_value);
}
/// @dev Ether withdraw. Only manager can do it
function withdrawAllEther() onlyManager {
if(this.balance > 0) {
escrow.transfer(this.balance);
}
}
///@dev Send tokens to bountyOwner depending on crowdsale results. Can be send only after ICO.
function sendTokensToBountyOwner() onlyManager whenInitialized {
require(!sentTokensToBountyOwner);
//Calculate total tokens sold on pre-ICO and ICO
uint tokensSold = add(soldTokensOnIco, soldTokensOnPreIco);
//Calculate bounty tokens depending on total tokens sold
uint bountyTokens = mulByFraction(tokensSold, 15, 1000); // 1.5%
shiftcashToken.emitTokens(bountyOwner, bountyTokens);
sentTokensToBountyOwner = true;
}
/// @dev Send tokens to founders. Can be sent only after shiftcashToken.rewardTime() (2018.07.05 0:00 UTC)
function sendTokensToFounders() onlyManager whenInitialized {
require(!sentTokensToFounder && now >= foundersRewardTime);
//Calculate total tokens sold on pre-ICO and ICO
uint tokensSold = add(soldTokensOnIco, soldTokensOnPreIco);
//Calculate founder reward depending on total tokens sold
uint totalRewardToFounder = mulByFraction(tokensSold, 1000, 10000); // 10%
shiftcashToken.emitTokens(founder1, totalRewardToFounder);
sentTokensToFounder = true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"soldTokensOnPreIco","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"importedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founder1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supplyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sendTokensToFounders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAllEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newState","type":"uint8"}],"name":"setState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sentTokensToBountyOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preIcoToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenImporter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyOwnersTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundersRewardTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sendTokensToBountyOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sentTokensToFounder","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bountyOwner","type":"address"}],"name":"setBountyOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"shiftcashToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startIcoDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newIcoManager","type":"address"}],"name":"setNewManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"soldTokensOnIco","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escrow","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"importTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_founder1","type":"address"},{"name":"_escrow","type":"address"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_icoManager","type":"address"},{"name":"_preIcoToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]Contract Creation Code
0x60606040526000600160146101000a81548160ff021916908360048111156200002457fe5b021790555060006002556000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550635b3dc1f060085560006009556000600a556000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600c553415620000c957600080fd5b6040516040806200334c8339810160405280805190602001909190805190602001909190505060008173ffffffffffffffffffffffffffffffffffffffff16141515156200011357fe5b60008273ffffffffffffffffffffffffffffffffffffffff16141515156200013757fe5b306200014262000258565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015156200018f57600080fd5b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000269565b6040516115d48062001d7883390190565b611aff80620002796000396000f300606060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a0209d0146101b45780630c3f6acf146101dd5780630c823abe146102145780630d1118ce1461023d578063116b556b1461027f57806319d1997a146102d457806327e7c023146102fd578063319df3bf1461031257806331c91117146103675780633bed33ce1461037c57806356de96db1461039f5780635b1a77fe146103c5578063636fa3c6146103f2578063681d52de146104475780637a1ab4071461049c5780637d61de37146104c55780638d859f3e146104ee578063937ebbd2146105175780639ad4eccf1461052c5780639db069d814610559578063c42791ae146105ae578063c750938e146105e7578063c99d9ef71461063c578063cd72ab6914610665578063d30f945a1461068e578063dd09de33146106c7578063e2fdcc17146106f0578063e3ba339814610745578063f09a40161461077e575b6002600481111561018257fe5b600160149054906101000a900460ff16600481111561019d57fe5b1415156101a957600080fd5b6101b2336107d6565b005b34156101bf57600080fd5b6101c76109fa565b6040518082815260200191505060405180910390f35b34156101e857600080fd5b6101f0610a08565b6040518082600481111561020057fe5b60ff16815260200191505060405180910390f35b341561021f57600080fd5b610227610a1b565b6040518082815260200191505060405180910390f35b341561024857600080fd5b61027d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a21565b005b341561028a57600080fd5b610292610b8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102df57600080fd5b6102e7610bb2565b6040518082815260200191505060405180910390f35b341561030857600080fd5b610310610bc3565b005b341561031d57600080fd5b610325610dc2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037257600080fd5b61037a610de8565b005b341561038757600080fd5b61039d6004808035906020019091905050610ee0565b005b34156103aa57600080fd5b6103c3600480803560ff16906020019091905050610fb0565b005b34156103d057600080fd5b6103d8611068565b604051808215151515815260200191505060405180910390f35b34156103fd57600080fd5b61040561107b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561045257600080fd5b61045a6110a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104a757600080fd5b6104af6110c7565b6040518082815260200191505060405180910390f35b34156104d057600080fd5b6104d86110d8565b6040518082815260200191505060405180910390f35b34156104f957600080fd5b6105016110de565b6040518082815260200191505060405180910390f35b341561052257600080fd5b61052a6110e4565b005b341561053757600080fd5b61053f6112d4565b604051808215151515815260200191505060405180910390f35b341561056457600080fd5b61056c6112e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105b957600080fd5b6105e5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061130d565b005b34156105f257600080fd5b6105fa6113d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561064757600080fd5b61064f6113f5565b6040518082815260200191505060405180910390f35b341561067057600080fd5b6106786113fb565b6040518082815260200191505060405180910390f35b341561069957600080fd5b6106c5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611401565b005b34156106d257600080fd5b6106da6114c4565b6040518082815260200191505060405180910390f35b34156106fb57600080fd5b6107036114ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561075057600080fd5b61077c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114f0565b005b341561078957600080fd5b6107d4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061180e565b005b60008060008373ffffffffffffffffffffffffffffffffffffffff16141515156107fc57fe5b60003411151561080b57600080fd5b6101c23402915061081d60025461198b565b905060008111156108395761083482826064611a22565b820191505b670de0b6b3a764000062582a5002610853600a5484611a40565b1115151561086057600080fd5b61086c600a5483611a40565b600a819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc884846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561093557600080fd5b6102c65a03f1151561094657600080fd5b505050610955600c5434611a40565b600c8190555060003073ffffffffffffffffffffffffffffffffffffffff163111156109f557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156109f457600080fd5b5b505050565b690ed22e13e2c58186c3a681565b600160149054906101000a900460ff1681565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7d57600080fd5b600480811115610a8957fe5b600160149054906101000a900460ff166004811115610aa457fe5b14151515610ab157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d1118ce83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610b7457600080fd5b6102c65a03f11515610b8557600080fd5b5050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000062582a500281565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c2257600080fd5b60016004811115610c2f57fe5b600160149054906101000a900460ff166004811115610c4a57fe5b10151515610c5757600080fd5b600b60009054906101000a900460ff16158015610c7657506008544210155b1515610c8157600080fd5b610c97600a54690ed22e13e2c58186c3a6611a40565b9150610ca8826103e8612710611a22565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc8600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610d8f57600080fd5b6102c65a03f11515610da057600080fd5b5050506001600b60006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e4457600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff16311115610ede57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610edd57600080fd5b5b565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3c57600080fd5b600081111515610f4b57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610fad57600080fd5b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561100c57600080fd5b80600160146101000a81548160ff0219169083600481111561102a57fe5b02179055506002600481111561103c57fe5b600160149054906101000a900460ff16600481111561105757fe5b141561106557426002819055505b50565b600b60019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a76400006201528e0281565b60085481565b6101c281565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114357600080fd5b6001600481111561115057fe5b600160149054906101000a900460ff16600481111561116b57fe5b1015151561117857600080fd5b600b60019054906101000a900460ff1615151561119457600080fd5b6111aa600a54690ed22e13e2c58186c3a6611a40565b91506111ba82600f6103e8611a22565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc8600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156112a157600080fd5b6102c65a03f115156112b257600080fd5b5050506001600b60016101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136957600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561138c57fe5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b600c5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561145d57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561148057fe5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157957508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561158457600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156115dd57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a257600080fd5b6102c65a03f115156116b357600080fd5b50505060405180519050905060008111156117b2576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc883836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561178b57600080fd5b6102c65a03f1151561179c57600080fd5b5050506117ab60095482611a40565b6009819055505b6001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561186a57600080fd5b6001600481111561187757fe5b600160149054906101000a900460ff16600481111561189257fe5b1415151561189c57fe5b60008273ffffffffffffffffffffffffffffffffffffffff16141515156118bf57fe5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156118e257fe5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060146101000a81548160ff0219169083600481111561198257fe5b02179055505050565b6000806001620151808442038115156119a057fe5b04019050600181101580156119b65750600e8111155b156119c45760149150611a1c565b600f81101580156119d65750601c8111155b156119e457600f9150611a1c565b601d81101580156119f65750602a8111155b15611a0457600a9150611a1c565b602b81101515611a175760059150611a1c565b600091505b50919050565b6000611a37611a318585611a5e565b83611a91565b90509392505050565b6000808284019050838110151515611a5457fe5b8091505092915050565b60008082840290506000841480611a7f5750828482811515611a7c57fe5b04145b1515611a8757fe5b8091505092915050565b60008060008314151515611aa157fe5b8284811515611aac57fe5b0490508284811515611aba57fe5b068184020184141515611ac957fe5b80915050929150505600a165627a7a723058205d1b76075a57805f10c5d442a70b85a7d4c05c51219fd1bf1b3dbfa0747b7b38002960606040526000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550341561005157600080fd5b6040516020806115d48339810160405280805190602001909190505060008173ffffffffffffffffffffffffffffffffffffffff161415151561009057fe5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600381905550506114eb806100e96000396000f3006060604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c27146100e057806306fdde0314610143578063095ea7b3146101d15780630d1118ce1461022b57806318160ddd1461026d57806323b872dd14610296578063313ce5671461030f57806370a082311461033857806395d89b4114610385578063a9059cbb14610413578063c41a360a1461046d578063c66e4095146104d7578063dd62ed3e1461052c578063ef18374a14610598578063f11b9fc8146105c1575b600080fd5b34156100eb57600080fd5b6101016004808035906020019091905050610603565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561014e57600080fd5b610156610642565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101dc57600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061067b565b604051808215151515815260200191505060405180910390f35b341561023657600080fd5b61026b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061076d565b005b341561027857600080fd5b61028061089b565b6040518082815260200191505060405180910390f35b34156102a157600080fd5b6102f5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108a1565b604051808215151515815260200191505060405180910390f35b341561031a57600080fd5b610322610ca5565b6040518082815260200191505060405180910390f35b341561034357600080fd5b61036f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610caa565b6040518082815260200191505060405180910390f35b341561039057600080fd5b610398610cf2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d85780820151818401526020810190506103bd565b50505050905090810190601f1680156104055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041e57600080fd5b610453600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d2b565b604051808215151515815260200191505060405180910390f35b341561047857600080fd5b61048e600480803590602001909190505061101c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34156104e257600080fd5b6104ea6110dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053757600080fd5b610582600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611102565b6040518082815260200191505060405180910390f35b34156105a357600080fd5b6105ab611189565b6040518082815260200191505060405180910390f35b34156105cc57600080fd5b610601600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611196565b005b60048181548110151561061257fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600e81526020017f536869667443617368546f6b656e00000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107c957600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141515156107ec57fe5b6000811115156107fb57600080fd5b6108436000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611437565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061089160035482611437565b6003819055505050565b60035481565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561096d575081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156109f657506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b15610c9957816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c2b5760018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060048054806001018281610bdb919061146e565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610c9e565b600090505b9392505050565b601281565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600581526020017f534341534800000000000000000000000000000000000000000000000000000081525081565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610df857506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b1561101157816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610fa35760018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060048054806001018281610f53919061146e565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050611016565b600090505b92915050565b60008060048381548110151561102e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008060048681548110151561106c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491509150915091565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600480549050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111f257600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415151561121557fe5b60008111151561122457600080fd5b61126c6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611450565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112ba60035482611450565b600381905550600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156113ce5760018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004805480600101828161137e919061146e565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600082821115151561144557fe5b818303905092915050565b600080828401905083811015151561146457fe5b8091505092915050565b81548183558181151161149557818360005260206000209182019101611494919061149a565b5b505050565b6114bc91905b808211156114b85760008160009055506001016114a0565b5090565b905600a165627a7a72305820cdac71351403a1a2b0008b89c774b2a796512899f9c1defe3a95f1813195b069002900000000000000000000000037eb84e50ec8fa5cafd6e2c8b811f3ba8a235e79000000000000000000000000d5107e77d5f3b0035d152413c89851cbeafa9a60
Deployed Bytecode
0x606060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a0209d0146101b45780630c3f6acf146101dd5780630c823abe146102145780630d1118ce1461023d578063116b556b1461027f57806319d1997a146102d457806327e7c023146102fd578063319df3bf1461031257806331c91117146103675780633bed33ce1461037c57806356de96db1461039f5780635b1a77fe146103c5578063636fa3c6146103f2578063681d52de146104475780637a1ab4071461049c5780637d61de37146104c55780638d859f3e146104ee578063937ebbd2146105175780639ad4eccf1461052c5780639db069d814610559578063c42791ae146105ae578063c750938e146105e7578063c99d9ef71461063c578063cd72ab6914610665578063d30f945a1461068e578063dd09de33146106c7578063e2fdcc17146106f0578063e3ba339814610745578063f09a40161461077e575b6002600481111561018257fe5b600160149054906101000a900460ff16600481111561019d57fe5b1415156101a957600080fd5b6101b2336107d6565b005b34156101bf57600080fd5b6101c76109fa565b6040518082815260200191505060405180910390f35b34156101e857600080fd5b6101f0610a08565b6040518082600481111561020057fe5b60ff16815260200191505060405180910390f35b341561021f57600080fd5b610227610a1b565b6040518082815260200191505060405180910390f35b341561024857600080fd5b61027d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a21565b005b341561028a57600080fd5b610292610b8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102df57600080fd5b6102e7610bb2565b6040518082815260200191505060405180910390f35b341561030857600080fd5b610310610bc3565b005b341561031d57600080fd5b610325610dc2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037257600080fd5b61037a610de8565b005b341561038757600080fd5b61039d6004808035906020019091905050610ee0565b005b34156103aa57600080fd5b6103c3600480803560ff16906020019091905050610fb0565b005b34156103d057600080fd5b6103d8611068565b604051808215151515815260200191505060405180910390f35b34156103fd57600080fd5b61040561107b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561045257600080fd5b61045a6110a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104a757600080fd5b6104af6110c7565b6040518082815260200191505060405180910390f35b34156104d057600080fd5b6104d86110d8565b6040518082815260200191505060405180910390f35b34156104f957600080fd5b6105016110de565b6040518082815260200191505060405180910390f35b341561052257600080fd5b61052a6110e4565b005b341561053757600080fd5b61053f6112d4565b604051808215151515815260200191505060405180910390f35b341561056457600080fd5b61056c6112e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105b957600080fd5b6105e5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061130d565b005b34156105f257600080fd5b6105fa6113d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561064757600080fd5b61064f6113f5565b6040518082815260200191505060405180910390f35b341561067057600080fd5b6106786113fb565b6040518082815260200191505060405180910390f35b341561069957600080fd5b6106c5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611401565b005b34156106d257600080fd5b6106da6114c4565b6040518082815260200191505060405180910390f35b34156106fb57600080fd5b6107036114ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561075057600080fd5b61077c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114f0565b005b341561078957600080fd5b6107d4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061180e565b005b60008060008373ffffffffffffffffffffffffffffffffffffffff16141515156107fc57fe5b60003411151561080b57600080fd5b6101c23402915061081d60025461198b565b905060008111156108395761083482826064611a22565b820191505b670de0b6b3a764000062582a5002610853600a5484611a40565b1115151561086057600080fd5b61086c600a5483611a40565b600a819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc884846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561093557600080fd5b6102c65a03f1151561094657600080fd5b505050610955600c5434611a40565b600c8190555060003073ffffffffffffffffffffffffffffffffffffffff163111156109f557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156109f457600080fd5b5b505050565b690ed22e13e2c58186c3a681565b600160149054906101000a900460ff1681565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7d57600080fd5b600480811115610a8957fe5b600160149054906101000a900460ff166004811115610aa457fe5b14151515610ab157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d1118ce83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610b7457600080fd5b6102c65a03f11515610b8557600080fd5b5050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000062582a500281565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c2257600080fd5b60016004811115610c2f57fe5b600160149054906101000a900460ff166004811115610c4a57fe5b10151515610c5757600080fd5b600b60009054906101000a900460ff16158015610c7657506008544210155b1515610c8157600080fd5b610c97600a54690ed22e13e2c58186c3a6611a40565b9150610ca8826103e8612710611a22565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc8600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610d8f57600080fd5b6102c65a03f11515610da057600080fd5b5050506001600b60006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e4457600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff16311115610ede57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610edd57600080fd5b5b565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3c57600080fd5b600081111515610f4b57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610fad57600080fd5b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561100c57600080fd5b80600160146101000a81548160ff0219169083600481111561102a57fe5b02179055506002600481111561103c57fe5b600160149054906101000a900460ff16600481111561105757fe5b141561106557426002819055505b50565b600b60019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a76400006201528e0281565b60085481565b6101c281565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114357600080fd5b6001600481111561115057fe5b600160149054906101000a900460ff16600481111561116b57fe5b1015151561117857600080fd5b600b60019054906101000a900460ff1615151561119457600080fd5b6111aa600a54690ed22e13e2c58186c3a6611a40565b91506111ba82600f6103e8611a22565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc8600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156112a157600080fd5b6102c65a03f115156112b257600080fd5b5050506001600b60016101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136957600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561138c57fe5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b600c5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561145d57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561148057fe5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157957508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561158457600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156115dd57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a257600080fd5b6102c65a03f115156116b357600080fd5b50505060405180519050905060008111156117b2576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f11b9fc883836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561178b57600080fd5b6102c65a03f1151561179c57600080fd5b5050506117ab60095482611a40565b6009819055505b6001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561186a57600080fd5b6001600481111561187757fe5b600160149054906101000a900460ff16600481111561189257fe5b1415151561189c57fe5b60008273ffffffffffffffffffffffffffffffffffffffff16141515156118bf57fe5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156118e257fe5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060146101000a81548160ff0219169083600481111561198257fe5b02179055505050565b6000806001620151808442038115156119a057fe5b04019050600181101580156119b65750600e8111155b156119c45760149150611a1c565b600f81101580156119d65750601c8111155b156119e457600f9150611a1c565b601d81101580156119f65750602a8111155b15611a0457600a9150611a1c565b602b81101515611a175760059150611a1c565b600091505b50919050565b6000611a37611a318585611a5e565b83611a91565b90509392505050565b6000808284019050838110151515611a5457fe5b8091505092915050565b60008082840290506000841480611a7f5750828482811515611a7c57fe5b04145b1515611a8757fe5b8091505092915050565b60008060008314151515611aa157fe5b8284811515611aac57fe5b0490508284811515611aba57fe5b068184020184141515611ac957fe5b80915050929150505600a165627a7a723058205d1b76075a57805f10c5d442a70b85a7d4c05c51219fd1bf1b3dbfa0747b7b380029
Swarm Source
bzzr://cdac71351403a1a2b0008b89c774b2a796512899f9c1defe3a95f1813195b069
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.