Source Code
Latest 25 from a total of 294 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 6523329 | 2706 days ago | IN | 0.09 ETH | 0.00011851 | ||||
| Transfer | 6523316 | 2706 days ago | IN | 0.09 ETH | 0.000105 | ||||
| Transfer | 6272215 | 2747 days ago | IN | 0.01 ETH | 0.00020626 | ||||
| Wake Up Proxy | 6186755 | 2761 days ago | IN | 0 ETH | 0.00134784 | ||||
| Roll | 6186748 | 2761 days ago | IN | 0 ETH | 0.00229407 | ||||
| Transfer | 6186746 | 2761 days ago | IN | 0.01 ETH | 0.00007089 | ||||
| Transfer | 6186744 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6186744 | 2761 days ago | IN | 0.01 ETH | 0.00009141 | ||||
| Transfer | 6186740 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6186740 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6186738 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6186732 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6186727 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6186723 | 2761 days ago | IN | 0.01 ETH | 0.00008044 | ||||
| Transfer | 6110512 | 2774 days ago | IN | 0.01 ETH | 0.00223058 | ||||
| Transfer | 6105866 | 2775 days ago | IN | 0.01 ETH | 0.00010313 | ||||
| Wake Up Proxy | 6104383 | 2775 days ago | IN | 0 ETH | 0.00134784 | ||||
| Roll | 6104351 | 2775 days ago | IN | 0 ETH | 0.0022903 | ||||
| Roll | 6104107 | 2775 days ago | IN | 0 ETH | 0.00068621 | ||||
| Roll | 6103869 | 2775 days ago | IN | 0 ETH | 0.00068621 | ||||
| Roll | 6103625 | 2775 days ago | IN | 0 ETH | 0.00068621 | ||||
| Roll | 6103396 | 2776 days ago | IN | 0 ETH | 0.00068621 | ||||
| Roll | 6103148 | 2776 days ago | IN | 0 ETH | 0.00068621 | ||||
| Roll | 6102899 | 2776 days ago | IN | 0 ETH | 0.00068621 | ||||
| Roll | 6102650 | 2776 days ago | IN | 0 ETH | 0.00068621 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.0113924 ETH | ||||
| Transfer | 6186755 | 2761 days ago | 0.12531645 ETH | ||||
| Transfer | 6186748 | 2761 days ago | 0.1 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.0113924 ETH | ||||
| Transfer | 6104383 | 2775 days ago | 0.12531645 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Micro
Compiler Version
v0.4.22+commit.4cb486ee
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-04-25
*/
pragma experimental "v0.5.0";
//Micro Etheroll contract
//version 0.8.0
//// minimal Etheroll "interface"
contract Etheroll {
function playerRollDice(uint rollUnder) public payable;
function playerWithdrawPendingTransactions() public returns (bool);
}
//// Proxy contract for Micro Etheroll - providing a cheap and empty payable fallback function
contract Proxy {
address etheroll;
address micro;
address owner;
uint roundID = 0;
event GotFunds(uint indexed roundID, address indexed sender, uint indexed amount);
event SentFunds(uint indexed roundID, uint indexed amount, uint indexed rollUnder);
event WithdrawPendingTransactionsResult(bool indexed result);
constructor(address etherollAddress, address ownerAddress) public {
etheroll = etherollAddress;
owner = ownerAddress;
micro = msg.sender;
roundID = 0;
}
//// Getters
function getBalance() view external returns (uint) {
return address(this).balance;
}
function getRoundID() view external returns (uint) {
return roundID;
}
function getEtherollAddress() view external returns (address) {
return etheroll;
}
//// Secutity modifier
modifier onlyOwner {
require(msg.sender == owner);
_;
}
modifier onlyMicro {
require(msg.sender == micro);
_;
}
//// Insecure public payable fallback function
function () external payable {
emit GotFunds(roundID, msg.sender, msg.value);
}
//// Sending bets and withdrawing winnings
function sendToEtheroll(uint rollUnder, uint newRoundID) external payable
onlyMicro
{
roundID = newRoundID;
Etheroll e = Etheroll(etheroll);
e.playerRollDice.value(msg.value)(rollUnder);
emit SentFunds(roundID, msg.value, rollUnder);
}
function withdrawWinnings() external
onlyMicro
{
Micro m = Micro(micro);
m.withdrawWinnings.value(address(this).balance)();
}
//// Owner security & maintenance functions
function withdrawRefund() external
onlyMicro
{
Micro m = Micro(micro);
m.withdrawRefund.value(address(this).balance)();
}
function withdrawPendingTransactions() external
onlyOwner
{
Etheroll e = Etheroll(etheroll);
emit WithdrawPendingTransactionsResult(e.playerWithdrawPendingTransactions());
}
function ownerWithdraw() external
onlyOwner
{
owner.transfer(address(this).balance);
}
function setEtherollAddress(address etherollAddress) external
onlyOwner
{
etheroll = etherollAddress;
}
}
//// Main Micro Etheroll Contract
contract Micro {
address[110] bets;
address proxy;
address owner;
uint roundID;
bool betsState = true;
bool rolled = false;
bool emergencyBlock = false;
bool betsBlock = false;
uint rollUnder = 90;
uint participants = 10; // Number of effective participants (without extraBets)
uint extraBets = 1;
uint oneBet = 0.01 ether;
uint8 numberOfBets = 0;
uint houseEdgeDivisor = 1000;
uint houseEdge = 990;
uint expectedReturn;
event GotBet(uint indexed roundID, address indexed sender, uint8 indexed numberOfBets);
event BetResult(uint indexed roundID, uint8 indexed result, uint indexed amount);
event ReadyToRoll(uint indexed roundID, uint indexed participants, uint indexed oneBet);
event SendError(uint indexed roundID, address addr, uint amount);
event Emergency(uint indexed roundID);
constructor(address etherollAddress) public {
owner = msg.sender;
proxy = new Proxy(etherollAddress, owner);
setExpectedReturn((((((oneBet*participants) * (100-(rollUnder-1))) / (rollUnder-1)+(oneBet*participants)))*houseEdge/houseEdgeDivisor) / 0.01 ether);
roundID = 0;
}
//// Getters and Setter
function setExpectedReturn(uint rounded) internal {
expectedReturn = rounded * 0.01 ether;
}
function getBetsState() external view returns (bool) {
return betsState;
}
function getRolled() external view returns (bool) {
return rolled;
}
function getExpectedReturn() external view returns (uint) {
return expectedReturn;
}
function getNumberOfBets() external view returns (uint) {
return numberOfBets;
}
function getRollUnder() external view returns (uint) {
return rollUnder;
}
function getOneBet() external view returns (uint) {
return oneBet;
}
function getParticipants() external view returns (uint) {
return participants;
}
function getExtraBets() external view returns (uint) {
return extraBets;
}
function getBetsBlock() external view returns (bool) {
return betsBlock;
}
function getRoundID() view external returns (uint) {
return roundID;
}
function getWaitingState() external view returns (uint) {
if (!betsState && !rolled) return 1; //waiting for roll()
if (!betsState && rolled && (address(proxy).balance > 0)) return 2; //waiting for wakeUpProxy(), but needs a check if funds on proxy are winnings
if (emergencyBlock) return 9; //is in emergency block
if (betsBlock) return 8; //bets block active
if (betsState && !rolled) return 0; //not waiting, accepting bids
return 5; // unknown state, probably waiting for etheroll
}
// Combined "one-request" getState for web-requests optimisation
function getState() external view returns (bool, bool, uint, uint, uint, uint, uint, uint, bool, uint, uint) {
return (this.getBetsState(),
this.getRolled(),
this.getExpectedReturn(),
this.getNumberOfBets(),
this.getRollUnder(),
this.getOneBet(),
this.getParticipants(),
this.getExtraBets(),
this.getBetsBlock(),
this.getRoundID(),
this.getWaitingState());
}
//// Security function modifiers
modifier onlyOwner {
require(msg.sender == owner);
_;
}
modifier onlyProxy {
require(msg.sender == proxy);
_;
}
modifier betsOver {
require (!betsState);
_;
}
modifier betsActive {
require (betsState);
_;
}
modifier noBets {
require (numberOfBets == 0);
_;
}
modifier hasRolled {
require(rolled);
_;
}
modifier hasntRolled {
require(!rolled);
_;
}
modifier hasMoney {
require(address(proxy).balance > 0);
_;
}
modifier noEmergencyBlock {
require(!emergencyBlock);
_;
}
//// Secure payable fallback function - receives bets
function () external payable {
require((msg.value == oneBet) || (msg.sender == owner));
if (msg.sender != owner) {
require(betsState && !emergencyBlock);
require(!betsBlock);
if (numberOfBets < participants+(extraBets-1)) {
bets[numberOfBets] = msg.sender;
numberOfBets++;
emit GotBet(roundID, msg.sender, numberOfBets);
} else {
bets[numberOfBets] = msg.sender;
numberOfBets++;
emit GotBet(roundID, msg.sender, numberOfBets);
betsState = false;
emit ReadyToRoll(roundID, participants+extraBets, oneBet);
}
}
}
//// Main contract callable functions
function roll() external
betsOver
hasntRolled
noEmergencyBlock
{
require(numberOfBets == (participants + extraBets));
rolled = true;
Proxy p = Proxy(proxy);
p.sendToEtheroll.value((participants) * oneBet)(rollUnder, roundID);
}
function wakeUpProxy() external
onlyOwner
betsOver
hasRolled
hasMoney
noEmergencyBlock
{
rolled = false;
Proxy p = Proxy(proxy);
p.withdrawWinnings();
}
//// Withdraw and distribute winnings
function withdrawWinnings() external payable
onlyProxy
{
if ((msg.value > expectedReturn) && !emergencyBlock) {
emit BetResult(roundID, 1, msg.value); // We won! Set 1
distributeWinnings(msg.value);
} else {
emit BetResult(roundID, 0, msg.value); // We lost :( Set 0
}
numberOfBets = 0;
betsState = true;
roundID++;
}
function proxyGetRefund() external
onlyOwner
betsOver
hasRolled
hasMoney
{
rolled = false;
Proxy p = Proxy(proxy);
p.withdrawRefund();
}
function withdrawRefund() external payable
onlyProxy
{
emit BetResult(roundID, 2, msg.value); // Set 2 for Refund
distributeWinnings(msg.value+(oneBet*extraBets)); // Distribute the refund and return extraBets
numberOfBets = 0;
betsState = true;
roundID++;
}
function distributeWinnings(uint value) internal
betsOver
{
require(numberOfBets == (participants + extraBets)); // Check if count of participants+extraBets matches numberOfBets
uint share = value / (numberOfBets); // Calculate the share out of value received div by number of bets
for (uint i = 0; i<(numberOfBets); i++) {
if (!(bets[i].send(share))) emit SendError(roundID, bets[i], share); // Send an SendError event if something goes wrong
}
}
//// Owner security & maintenance functions
function resetState() external
onlyOwner
{
numberOfBets = 0;
betsState = true;
rolled = false;
roundID++;
}
function returnBets() external
onlyOwner
{
require(emergencyBlock || betsBlock);
require(numberOfBets>0);
for (uint i = 0; i<(numberOfBets); i++) {
if (!(bets[i].send(oneBet))) emit SendError(roundID, bets[i], oneBet); // Send an SendError event if something goes wrong
}
numberOfBets = 0;
betsState = true;
rolled = false;
roundID++;
}
function changeParticipants(uint newParticipants) external
onlyOwner
betsActive
{
require((newParticipants <= 100) && (newParticipants > numberOfBets)); //Check that newParticipants don't exceed bets array length and exceed current round existing bets
participants = newParticipants;
setExpectedReturn((((((oneBet*participants) * (100-(rollUnder-1))) / (rollUnder-1)+(oneBet*participants)))*houseEdge/houseEdgeDivisor) / 0.01 ether);
}
function changeExtraBets(uint newExtraBets) external
onlyOwner
betsActive
{
require(participants+newExtraBets < bets.length);
require(participants+newExtraBets > numberOfBets);
extraBets = newExtraBets;
}
function changeOneBet(uint newOneBet) external
onlyOwner
betsActive
noBets
{
require(newOneBet > 0);
oneBet = newOneBet;
setExpectedReturn((((((oneBet*participants) * (100-(rollUnder-1))) / (rollUnder-1)+(oneBet*participants)))*houseEdge/houseEdgeDivisor) / 0.01 ether);
}
function changeRollUnder(uint newRollUnder) external
onlyOwner
betsActive
{
require((newRollUnder > 1) && (newRollUnder < 100));
rollUnder = newRollUnder;
setExpectedReturn((((((oneBet*participants) * (100-(rollUnder-1))) / (rollUnder-1)+(oneBet*participants)))*houseEdge/houseEdgeDivisor) / 0.01 ether);
}
function enableEmergencyBlock() external
onlyOwner
{
emergencyBlock = true;
emit Emergency(roundID);
}
function disableEmergencyBlock() external
onlyOwner
{
emergencyBlock = false;
}
function enableBets() external
onlyOwner
{
betsBlock = false;
}
function disableBets() external
onlyOwner
{
betsBlock = true;
}
function ownerWithdraw() external
onlyOwner
{
owner.transfer(address(this).balance);
}
function ownerkill() external
onlyOwner
{
selfdestruct(owner);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"newOneBet","type":"uint256"}],"name":"changeOneBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawRefund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getRollUnder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getState","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOneBet","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRolled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExpectedReturn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableEmergencyBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBetsBlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ownerWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getWaitingState","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getParticipants","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableEmergencyBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableBets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableBets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRoundID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawWinnings","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newRollUnder","type":"uint256"}],"name":"changeRollUnder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"roll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"proxyGetRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ownerkill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getExtraBets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"returnBets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBetsState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"wakeUpProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newParticipants","type":"uint256"}],"name":"changeParticipants","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newExtraBets","type":"uint256"}],"name":"changeExtraBets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNumberOfBets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resetState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"etherollAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"numberOfBets","type":"uint8"}],"name":"GotBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"result","type":"uint8"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"BetResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"participants","type":"uint256"},{"indexed":true,"name":"oneBet","type":"uint256"}],"name":"ReadyToRoll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"SendError","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"roundID","type":"uint256"}],"name":"Emergency","type":"event"}]Contract Creation Code
60806040526001607160006101000a81548160ff0219169083151502179055506000607160016101000a81548160ff0219169083151502179055506000607160026101000a81548160ff0219169083151502179055506000607160036101000a81548160ff021916908315150217905550605a607255600a6073556001607455662386f26fc100006075556000607660006101000a81548160ff021916908360ff1602179055506103e86077556103de607855348015620000bf57600080fd5b50604051602080620031c18339810180604052810190808051906020019092919050505033606f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000152620002a3565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051809103906000f080158015620001d8573d6000803e3d6000fd5b50606e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000281662386f26fc100006077546078546073546075540260016072540360016072540360640360735460755402028115156200025357fe5b0401028115156200026057fe5b048115156200026b57fe5b0462000290640100000000026401000000009004565b600060708190555050620002b4565b662386f26fc10000810260798190555050565b604051610a3d806200278483390190565b6124c080620002c46000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303bc1e19146104dc578063110f88741461050957806312d96887146105135780631865c57d1461053e5780631a5e6f7d146105bb5780632dbf8bf0146105e657806335c5b475146106155780633c20690014610640578063417a767e146106575780634311de8f146106865780634e84c6141461069d5780635aa68ac0146106c85780635e2a725c146106f3578063adaa3c731461070a578063b60e00b914610721578063c17f23e814610738578063cc42e83a14610763578063cc7b41ec1461076d578063cd5e3c5d1461079a578063cf6b1081146107b1578063d263b7eb146107c8578063d977076e146107df578063e0d751da1461080a578063e4397db114610821578063e8878b1114610850578063ea0d98aa14610867578063ef4f0c5f14610894578063f222d0b9146108c1578063f9e19fa5146108ec575b6075543414806101d25750606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156101dd57600080fd5b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104da57607160009054906101000a900460ff16801561025d5750607160029054906101000a900460ff16155b151561026857600080fd5b607160039054906101000a900460ff1615151561028457600080fd5b60016074540360735401607660009054906101000a900460ff1660ff16101561039857336000607660009054906101000a900460ff1660ff16606e811015156102c957fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506076600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050607660009054906101000a900460ff1660ff163373ffffffffffffffffffffffffffffffffffffffff166070547f8cb70ad58a3ab1e8bb313d26a8d4c854c7f3a3bca9b4033dddbe3ee0af08078160405160405180910390a46104d9565b336000607660009054906101000a900460ff1660ff16606e811015156103ba57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506076600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050607660009054906101000a900460ff1660ff163373ffffffffffffffffffffffffffffffffffffffff166070547f8cb70ad58a3ab1e8bb313d26a8d4c854c7f3a3bca9b4033dddbe3ee0af08078160405160405180910390a46000607160006101000a81548160ff021916908315150217905550607554607454607354016070547f4690c847d8d7b3e0b01c28a7c86d8c58acc250bc0fe81d388a44561b04fc216160405160405180910390a45b5b005b3480156104e857600080fd5b5061050760048036038101908080359060200190929190505050610903565b005b610511610a08565b005b34801561051f57600080fd5b50610528610af2565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b50610553610afc565b604051808c1515151581526020018b1515151581526020018a8152602001898152602001888152602001878152602001868152602001858152602001841515151581526020018381526020018281526020019b50505050505050505050505060405180910390f35b3480156105c757600080fd5b506105d06111ef565b6040518082815260200191505060405180910390f35b3480156105f257600080fd5b506105fb6111f9565b604051808215151515815260200191505060405180910390f35b34801561062157600080fd5b5061062a611210565b6040518082815260200191505060405180910390f35b34801561064c57600080fd5b5061065561121a565b005b34801561066357600080fd5b5061066c611293565b604051808215151515815260200191505060405180910390f35b34801561069257600080fd5b5061069b6112aa565b005b3480156106a957600080fd5b506106b2611388565b6040518082815260200191505060405180910390f35b3480156106d457600080fd5b506106dd6114b9565b6040518082815260200191505060405180910390f35b3480156106ff57600080fd5b506107086114c3565b005b34801561071657600080fd5b5061071f61156b565b005b34801561072d57600080fd5b506107366115e4565b005b34801561074457600080fd5b5061074d61165d565b6040518082815260200191505060405180910390f35b61076b611667565b005b34801561077957600080fd5b50610798600480360381019080803590602001909291905050506117a4565b005b3480156107a657600080fd5b506107af611894565b005b3480156107bd57600080fd5b506107c66119ed565b005b3480156107d457600080fd5b506107dd611b89565b005b3480156107eb57600080fd5b506107f4611c20565b6040518082815260200191505060405180910390f35b34801561081657600080fd5b5061081f611c2a565b005b34801561082d57600080fd5b50610836611e7c565b604051808215151515815260200191505060405180910390f35b34801561085c57600080fd5b50610865611e93565b005b34801561087357600080fd5b506108926004803603810190808035906020019092919050505061204b565b005b3480156108a057600080fd5b506108bf6004803603810190808035906020019092919050505061214d565b005b3480156108cd57600080fd5b506108d6612205565b6040518082815260200191505060405180910390f35b3480156108f857600080fd5b5061090161221f565b005b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095f57600080fd5b607160009054906101000a900460ff16151561097a57600080fd5b6000607660009054906101000a900460ff1660ff1614151561099b57600080fd5b6000811115156109aa57600080fd5b80607581905550610a05662386f26fc100006077546078546073546075540260016072540360016072540360640360735460755402028115156109e957fe5b0401028115156109f557fe5b048115156109ff57fe5b046122e1565b50565b606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a6457600080fd5b3460026070547f76829138d137b963c6cc3f73f1d77c238a38df6d587406a8b6e57af2f61f8b4760405160405180910390a4610aa76074546075540234016122f4565b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff021916908315150217905550607060008154809291906001019190505550565b6000607254905090565b60008060008060008060008060008060003073ffffffffffffffffffffffffffffffffffffffff1663e4397db16040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610b6f57600080fd5b505afa158015610b83573d6000803e3d6000fd5b505050506040513d6020811015610b9957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16632dbf8bf06040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610c0c57600080fd5b505afa158015610c20573d6000803e3d6000fd5b505050506040513d6020811015610c3657600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166335c5b4756040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610ca957600080fd5b505afa158015610cbd573d6000803e3d6000fd5b505050506040513d6020811015610cd357600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663f222d0b96040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610d4657600080fd5b505afa158015610d5a573d6000803e3d6000fd5b505050506040513d6020811015610d7057600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166312d968876040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610de357600080fd5b505afa158015610df7573d6000803e3d6000fd5b505050506040513d6020811015610e0d57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16631a5e6f7d6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610e8057600080fd5b505afa158015610e94573d6000803e3d6000fd5b505050506040513d6020811015610eaa57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16635aa68ac06040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f1d57600080fd5b505afa158015610f31573d6000803e3d6000fd5b505050506040513d6020811015610f4757600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663d977076e6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663417a767e6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561105757600080fd5b505afa15801561106b573d6000803e3d6000fd5b505050506040513d602081101561108157600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663c17f23e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156110f457600080fd5b505afa158015611108573d6000803e3d6000fd5b505050506040513d602081101561111e57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16634e84c6146040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561119157600080fd5b505afa1580156111a5573d6000803e3d6000fd5b505050506040513d60208110156111bb57600080fd5b81019080805190602001909291905050509a509a509a509a509a509a509a509a509a509a509a50909192939495969798999a565b6000607554905090565b6000607160019054906101000a900460ff16905090565b6000607954905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561127657600080fd5b6000607160026101000a81548160ff021916908315150217905550565b6000607160039054906101000a900460ff16905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561130657600080fd5b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611385573d6000803e3d6000fd5b50565b6000607160009054906101000a900460ff161580156113b45750607160019054906101000a900460ff16155b156113c257600190506114b6565b607160009054906101000a900460ff161580156113eb5750607160019054906101000a900460ff165b801561143057506000606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631115b1561143e57600290506114b6565b607160029054906101000a900460ff161561145c57600990506114b6565b607160039054906101000a900460ff161561147a57600890506114b6565b607160009054906101000a900460ff1680156114a35750607160019054906101000a900460ff16155b156114b157600090506114b6565b600590505b90565b6000607354905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561151f57600080fd5b6001607160026101000a81548160ff0219169083151502179055506070547f0f0c0487933e1199a212bfed25849f51525fede817242d8d290c198b73bf0af960405160405180910390a2565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c757600080fd5b6000607160036101000a81548160ff021916908315150217905550565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164057600080fd5b6001607160036101000a81548160ff021916908315150217905550565b6000607054905090565b606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c357600080fd5b607954341180156116e15750607160029054906101000a900460ff16155b15611726573460016070547f76829138d137b963c6cc3f73f1d77c238a38df6d587406a8b6e57af2f61f8b4760405160405180910390a4611721346122f4565b611759565b3460006070547f76829138d137b963c6cc3f73f1d77c238a38df6d587406a8b6e57af2f61f8b4760405160405180910390a45b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff021916908315150217905550607060008154809291906001019190505550565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561180057600080fd5b607160009054906101000a900460ff16151561181b57600080fd5b60018111801561182b5750606481105b151561183657600080fd5b80607281905550611891662386f26fc1000060775460785460735460755402600160725403600160725403606403607354607554020281151561187557fe5b04010281151561188157fe5b0481151561188b57fe5b046122e1565b50565b6000607160009054906101000a900460ff161515156118b257600080fd5b607160019054906101000a900460ff161515156118ce57600080fd5b607160029054906101000a900460ff161515156118ea57600080fd5b60745460735401607660009054906101000a900460ff1660ff1614151561191057600080fd5b6001607160016101000a81548160ff021916908315150217905550606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663923e1b84607554607354026072546070546040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303818588803b1580156119d157600080fd5b505af11580156119e5573d6000803e3d6000fd5b505050505050565b6000606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a4b57600080fd5b607160009054906101000a900460ff16151515611a6757600080fd5b607160019054906101000a900460ff161515611a8257600080fd5b6000606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631111515611aca57600080fd5b6000607160016101000a81548160ff021916908315150217905550606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663110f88746040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611b6e57600080fd5b505af1158015611b82573d6000803e3d6000fd5b5050505050565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611be557600080fd5b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000607454905090565b6000606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c8857600080fd5b607160029054906101000a900460ff1680611caf5750607160039054906101000a900460ff165b1515611cba57600080fd5b6000607660009054906101000a900460ff1660ff16111515611cdb57600080fd5b600090505b607660009054906101000a900460ff1660ff16811015611e1557600081606e81101515611d0957fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6075549081150290604051600060405180830381858888f193505050501515611e08576070547f500cbb2bcc14b80a35ac9fd5275b5e3395d2b95d2e1dae6b2315437441a1de45600083606e81101515611d9a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16607554604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25b8080600101915050611ce0565b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff0219169083151502179055506000607160016101000a81548160ff02191690831515021790555060706000815480929190600101919050555050565b6000607160009054906101000a900460ff16905090565b6000606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef157600080fd5b607160009054906101000a900460ff16151515611f0d57600080fd5b607160019054906101000a900460ff161515611f2857600080fd5b6000606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631111515611f7057600080fd5b607160029054906101000a900460ff16151515611f8c57600080fd5b6000607160016101000a81548160ff021916908315150217905550606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663cc42e83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561203057600080fd5b505af1158015612044573d6000803e3d6000fd5b5050505050565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a757600080fd5b607160009054906101000a900460ff1615156120c257600080fd5b606481111580156120e45750607660009054906101000a900460ff1660ff1681115b15156120ef57600080fd5b8060738190555061214a662386f26fc1000060775460785460735460755402600160725403600160725403606403607354607554020281151561212e57fe5b04010281151561213a57fe5b0481151561214457fe5b046122e1565b50565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121a957600080fd5b607160009054906101000a900460ff1615156121c457600080fd5b606e81607354011015156121d757600080fd5b607660009054906101000a900460ff1660ff1681607354011115156121fb57600080fd5b8060748190555050565b6000607660009054906101000a900460ff1660ff16905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561227b57600080fd5b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff0219169083151502179055506000607160016101000a81548160ff021916908315150217905550607060008154809291906001019190505550565b662386f26fc10000810260798190555050565b600080607160009054906101000a900460ff1615151561231357600080fd5b60745460735401607660009054906101000a900460ff1660ff1614151561233957600080fd5b607660009054906101000a900460ff1660ff168381151561235657fe5b049150600090505b607660009054906101000a900460ff1660ff1681101561248f57600081606e8110151561238757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515612482576070547f500cbb2bcc14b80a35ac9fd5275b5e3395d2b95d2e1dae6b2315437441a1de45600083606e8110151561241657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25b808060010191505061235e565b5050505600a165627a7a723058207b702207a3209d52a94ad2904917693d4d3a80cdc01203c42a717793898a87ac00296080604052600060035534801561001557600080fd5b50604051604080610a3d8339810180604052810190808051906020019092919080519060200190929190505050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060038190555050506109208061011d6000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063110f8874146100e257806312065fe0146100f95780631c949bdf146101245780634311de8f146101675780635d9adc941461017e578063923e1b8414610195578063c17f23e8146101bf578063cc42e83a146101ea578063ee4de75614610201575b343373ffffffffffffffffffffffffffffffffffffffff166003547fc9f11d2202535d137e091400cb9e3900ca174fd883b6e59411e8369cd8a8be1760405160405180910390a4005b3480156100ee57600080fd5b506100f7610258565b005b34801561010557600080fd5b5061010e610372565b6040518082815260200191505060405180910390f35b34801561013057600080fd5b50610165600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610391565b005b34801561017357600080fd5b5061017c610430565b005b34801561018a57600080fd5b5061019361050e565b005b6101bd6004803603810190808035906020019092919080359060200190929190505050610660565b005b3480156101cb57600080fd5b506101d46107a7565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b506101ff6107b1565b005b34801561020d57600080fd5b506102166108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102b657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663110f88743073ffffffffffffffffffffffffffffffffffffffff16316040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b15801561035657600080fd5b505af115801561036a573d6000803e3d6000fd5b505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103ed57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561048c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561050b573d6000803e3d6000fd5b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561056c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a5f4af336040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b505050506040513d602081101561061e57600080fd5b810190808051906020019092919050505015157f3c50b6c04ddf6aee1acb82bfe102bea7fd45e360617735fe516916ae21c5bdb360405160405180910390a250565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106be57600080fd5b816003819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663dc6dd15234856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303818588803b15801561075857600080fd5b505af115801561076c573d6000803e3d6000fd5b505050505082346003547f9ab256f02a6d99ab82ec7daf8edd2f3496d3d5d5366d52d6009ce021010a55ac60405160405180910390a4505050565b6000600354905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080f57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663cc42e83a3073ffffffffffffffffffffffffffffffffffffffff16316040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b1580156108af57600080fd5b505af11580156108c3573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058202f7fdadbf97146ec80caa125814fda42894dfd234787f9bfbb5485d8267d482a0029000000000000000000000000048717ea892f23fb0126f00640e2b18072efd9d2
Deployed Bytecode
0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303bc1e19146104dc578063110f88741461050957806312d96887146105135780631865c57d1461053e5780631a5e6f7d146105bb5780632dbf8bf0146105e657806335c5b475146106155780633c20690014610640578063417a767e146106575780634311de8f146106865780634e84c6141461069d5780635aa68ac0146106c85780635e2a725c146106f3578063adaa3c731461070a578063b60e00b914610721578063c17f23e814610738578063cc42e83a14610763578063cc7b41ec1461076d578063cd5e3c5d1461079a578063cf6b1081146107b1578063d263b7eb146107c8578063d977076e146107df578063e0d751da1461080a578063e4397db114610821578063e8878b1114610850578063ea0d98aa14610867578063ef4f0c5f14610894578063f222d0b9146108c1578063f9e19fa5146108ec575b6075543414806101d25750606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156101dd57600080fd5b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104da57607160009054906101000a900460ff16801561025d5750607160029054906101000a900460ff16155b151561026857600080fd5b607160039054906101000a900460ff1615151561028457600080fd5b60016074540360735401607660009054906101000a900460ff1660ff16101561039857336000607660009054906101000a900460ff1660ff16606e811015156102c957fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506076600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050607660009054906101000a900460ff1660ff163373ffffffffffffffffffffffffffffffffffffffff166070547f8cb70ad58a3ab1e8bb313d26a8d4c854c7f3a3bca9b4033dddbe3ee0af08078160405160405180910390a46104d9565b336000607660009054906101000a900460ff1660ff16606e811015156103ba57fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506076600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050607660009054906101000a900460ff1660ff163373ffffffffffffffffffffffffffffffffffffffff166070547f8cb70ad58a3ab1e8bb313d26a8d4c854c7f3a3bca9b4033dddbe3ee0af08078160405160405180910390a46000607160006101000a81548160ff021916908315150217905550607554607454607354016070547f4690c847d8d7b3e0b01c28a7c86d8c58acc250bc0fe81d388a44561b04fc216160405160405180910390a45b5b005b3480156104e857600080fd5b5061050760048036038101908080359060200190929190505050610903565b005b610511610a08565b005b34801561051f57600080fd5b50610528610af2565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b50610553610afc565b604051808c1515151581526020018b1515151581526020018a8152602001898152602001888152602001878152602001868152602001858152602001841515151581526020018381526020018281526020019b50505050505050505050505060405180910390f35b3480156105c757600080fd5b506105d06111ef565b6040518082815260200191505060405180910390f35b3480156105f257600080fd5b506105fb6111f9565b604051808215151515815260200191505060405180910390f35b34801561062157600080fd5b5061062a611210565b6040518082815260200191505060405180910390f35b34801561064c57600080fd5b5061065561121a565b005b34801561066357600080fd5b5061066c611293565b604051808215151515815260200191505060405180910390f35b34801561069257600080fd5b5061069b6112aa565b005b3480156106a957600080fd5b506106b2611388565b6040518082815260200191505060405180910390f35b3480156106d457600080fd5b506106dd6114b9565b6040518082815260200191505060405180910390f35b3480156106ff57600080fd5b506107086114c3565b005b34801561071657600080fd5b5061071f61156b565b005b34801561072d57600080fd5b506107366115e4565b005b34801561074457600080fd5b5061074d61165d565b6040518082815260200191505060405180910390f35b61076b611667565b005b34801561077957600080fd5b50610798600480360381019080803590602001909291905050506117a4565b005b3480156107a657600080fd5b506107af611894565b005b3480156107bd57600080fd5b506107c66119ed565b005b3480156107d457600080fd5b506107dd611b89565b005b3480156107eb57600080fd5b506107f4611c20565b6040518082815260200191505060405180910390f35b34801561081657600080fd5b5061081f611c2a565b005b34801561082d57600080fd5b50610836611e7c565b604051808215151515815260200191505060405180910390f35b34801561085c57600080fd5b50610865611e93565b005b34801561087357600080fd5b506108926004803603810190808035906020019092919050505061204b565b005b3480156108a057600080fd5b506108bf6004803603810190808035906020019092919050505061214d565b005b3480156108cd57600080fd5b506108d6612205565b6040518082815260200191505060405180910390f35b3480156108f857600080fd5b5061090161221f565b005b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095f57600080fd5b607160009054906101000a900460ff16151561097a57600080fd5b6000607660009054906101000a900460ff1660ff1614151561099b57600080fd5b6000811115156109aa57600080fd5b80607581905550610a05662386f26fc100006077546078546073546075540260016072540360016072540360640360735460755402028115156109e957fe5b0401028115156109f557fe5b048115156109ff57fe5b046122e1565b50565b606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a6457600080fd5b3460026070547f76829138d137b963c6cc3f73f1d77c238a38df6d587406a8b6e57af2f61f8b4760405160405180910390a4610aa76074546075540234016122f4565b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff021916908315150217905550607060008154809291906001019190505550565b6000607254905090565b60008060008060008060008060008060003073ffffffffffffffffffffffffffffffffffffffff1663e4397db16040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610b6f57600080fd5b505afa158015610b83573d6000803e3d6000fd5b505050506040513d6020811015610b9957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16632dbf8bf06040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610c0c57600080fd5b505afa158015610c20573d6000803e3d6000fd5b505050506040513d6020811015610c3657600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166335c5b4756040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610ca957600080fd5b505afa158015610cbd573d6000803e3d6000fd5b505050506040513d6020811015610cd357600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663f222d0b96040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610d4657600080fd5b505afa158015610d5a573d6000803e3d6000fd5b505050506040513d6020811015610d7057600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166312d968876040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610de357600080fd5b505afa158015610df7573d6000803e3d6000fd5b505050506040513d6020811015610e0d57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16631a5e6f7d6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610e8057600080fd5b505afa158015610e94573d6000803e3d6000fd5b505050506040513d6020811015610eaa57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16635aa68ac06040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f1d57600080fd5b505afa158015610f31573d6000803e3d6000fd5b505050506040513d6020811015610f4757600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663d977076e6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663417a767e6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561105757600080fd5b505afa15801561106b573d6000803e3d6000fd5b505050506040513d602081101561108157600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff1663c17f23e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156110f457600080fd5b505afa158015611108573d6000803e3d6000fd5b505050506040513d602081101561111e57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff16634e84c6146040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561119157600080fd5b505afa1580156111a5573d6000803e3d6000fd5b505050506040513d60208110156111bb57600080fd5b81019080805190602001909291905050509a509a509a509a509a509a509a509a509a509a509a50909192939495969798999a565b6000607554905090565b6000607160019054906101000a900460ff16905090565b6000607954905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561127657600080fd5b6000607160026101000a81548160ff021916908315150217905550565b6000607160039054906101000a900460ff16905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561130657600080fd5b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611385573d6000803e3d6000fd5b50565b6000607160009054906101000a900460ff161580156113b45750607160019054906101000a900460ff16155b156113c257600190506114b6565b607160009054906101000a900460ff161580156113eb5750607160019054906101000a900460ff165b801561143057506000606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631115b1561143e57600290506114b6565b607160029054906101000a900460ff161561145c57600990506114b6565b607160039054906101000a900460ff161561147a57600890506114b6565b607160009054906101000a900460ff1680156114a35750607160019054906101000a900460ff16155b156114b157600090506114b6565b600590505b90565b6000607354905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561151f57600080fd5b6001607160026101000a81548160ff0219169083151502179055506070547f0f0c0487933e1199a212bfed25849f51525fede817242d8d290c198b73bf0af960405160405180910390a2565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c757600080fd5b6000607160036101000a81548160ff021916908315150217905550565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164057600080fd5b6001607160036101000a81548160ff021916908315150217905550565b6000607054905090565b606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c357600080fd5b607954341180156116e15750607160029054906101000a900460ff16155b15611726573460016070547f76829138d137b963c6cc3f73f1d77c238a38df6d587406a8b6e57af2f61f8b4760405160405180910390a4611721346122f4565b611759565b3460006070547f76829138d137b963c6cc3f73f1d77c238a38df6d587406a8b6e57af2f61f8b4760405160405180910390a45b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff021916908315150217905550607060008154809291906001019190505550565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561180057600080fd5b607160009054906101000a900460ff16151561181b57600080fd5b60018111801561182b5750606481105b151561183657600080fd5b80607281905550611891662386f26fc1000060775460785460735460755402600160725403600160725403606403607354607554020281151561187557fe5b04010281151561188157fe5b0481151561188b57fe5b046122e1565b50565b6000607160009054906101000a900460ff161515156118b257600080fd5b607160019054906101000a900460ff161515156118ce57600080fd5b607160029054906101000a900460ff161515156118ea57600080fd5b60745460735401607660009054906101000a900460ff1660ff1614151561191057600080fd5b6001607160016101000a81548160ff021916908315150217905550606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663923e1b84607554607354026072546070546040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303818588803b1580156119d157600080fd5b505af11580156119e5573d6000803e3d6000fd5b505050505050565b6000606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a4b57600080fd5b607160009054906101000a900460ff16151515611a6757600080fd5b607160019054906101000a900460ff161515611a8257600080fd5b6000606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631111515611aca57600080fd5b6000607160016101000a81548160ff021916908315150217905550606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663110f88746040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611b6e57600080fd5b505af1158015611b82573d6000803e3d6000fd5b5050505050565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611be557600080fd5b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000607454905090565b6000606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c8857600080fd5b607160029054906101000a900460ff1680611caf5750607160039054906101000a900460ff165b1515611cba57600080fd5b6000607660009054906101000a900460ff1660ff16111515611cdb57600080fd5b600090505b607660009054906101000a900460ff1660ff16811015611e1557600081606e81101515611d0957fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6075549081150290604051600060405180830381858888f193505050501515611e08576070547f500cbb2bcc14b80a35ac9fd5275b5e3395d2b95d2e1dae6b2315437441a1de45600083606e81101515611d9a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16607554604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25b8080600101915050611ce0565b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff0219169083151502179055506000607160016101000a81548160ff02191690831515021790555060706000815480929190600101919050555050565b6000607160009054906101000a900460ff16905090565b6000606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef157600080fd5b607160009054906101000a900460ff16151515611f0d57600080fd5b607160019054906101000a900460ff161515611f2857600080fd5b6000606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631111515611f7057600080fd5b607160029054906101000a900460ff16151515611f8c57600080fd5b6000607160016101000a81548160ff021916908315150217905550606e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663cc42e83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561203057600080fd5b505af1158015612044573d6000803e3d6000fd5b5050505050565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a757600080fd5b607160009054906101000a900460ff1615156120c257600080fd5b606481111580156120e45750607660009054906101000a900460ff1660ff1681115b15156120ef57600080fd5b8060738190555061214a662386f26fc1000060775460785460735460755402600160725403600160725403606403607354607554020281151561212e57fe5b04010281151561213a57fe5b0481151561214457fe5b046122e1565b50565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121a957600080fd5b607160009054906101000a900460ff1615156121c457600080fd5b606e81607354011015156121d757600080fd5b607660009054906101000a900460ff1660ff1681607354011115156121fb57600080fd5b8060748190555050565b6000607660009054906101000a900460ff1660ff16905090565b606f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561227b57600080fd5b6000607660006101000a81548160ff021916908360ff1602179055506001607160006101000a81548160ff0219169083151502179055506000607160016101000a81548160ff021916908315150217905550607060008154809291906001019190505550565b662386f26fc10000810260798190555050565b600080607160009054906101000a900460ff1615151561231357600080fd5b60745460735401607660009054906101000a900460ff1660ff1614151561233957600080fd5b607660009054906101000a900460ff1660ff168381151561235657fe5b049150600090505b607660009054906101000a900460ff1660ff1681101561248f57600081606e8110151561238757fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515612482576070547f500cbb2bcc14b80a35ac9fd5275b5e3395d2b95d2e1dae6b2315437441a1de45600083606e8110151561241657fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25b808060010191505061235e565b5050505600a165627a7a723058207b702207a3209d52a94ad2904917693d4d3a80cdc01203c42a717793898a87ac0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000048717ea892f23fb0126f00640e2b18072efd9d2
-----Decoded View---------------
Arg [0] : etherollAddress (address): 0x048717Ea892F23Fb0126F00640e2b18072efd9D2
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000048717ea892f23fb0126f00640e2b18072efd9d2
Swarm Source
bzzr://2f7fdadbf97146ec80caa125814fda42894dfd234787f9bfbb5485d8267d482a
Loading...
Loading
Loading...
Loading
Net Worth in USD
$415.56
Net Worth in ETH
0.2
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,077.79 | 0.2 | $415.56 |
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.