Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
68.829090909090917 MUS
Holders
33
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 15 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
MUSystem
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-08-23
*/
// MUSystem is based of the mathematical algorithm created
// by the Mavrodi brothers - Sergey and Vyacheslav.
// The solidity code was written by the enthusiast and devoted MMM participant Andrew from Russia.
// According to these rules MMM worked in Russia in the nineties.
// Today you help someone — Tomorrow you will be helped out!
// Mutual Uniting System (MUSystem) email: mutualunitingsystem@gmail.com
// http:// Musystem.online
// Hello from Russia with love! ;) Привет из России! ;)
// "MMM IS A FINANCIAL NUCLEAR WEAPON.
// They say Baba Vanga predicted, “Pyramid from Russia will travel the world.”
// When Sergey Mavrodi passed away, many people thought this prediction
// wasn't going to come true. What if it's just started to materialize?"
// Financial apocalypse is inevitable! Together we can do a lot!
// Thank you Sergey Mavrodi. You've opened my eyes.
pragma solidity ^0.4.21;
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
contract MUSystem {
using SafeMath for uint;
string public constant name = "Mutual Uniting System";
string public constant symbol = "MUS";
uint public constant decimals = 15;
uint public totalSupply;
address private creatorOwner;
address private userAddr;
mapping (address => uint) balances;
struct UserWhoBuy {
uint UserAmt;
uint UserTokenObtain;
uint UserBuyDate;
uint UserBuyFirstDate;
uint UserBuyTokenPackNum;
uint UserFirstAmt;
uint UserContinued;
uint UserTotalAmtDepositCurrentPack;
}
mapping (address => UserWhoBuy) usersWhoBuy;
address[] private userWhoBuyDatas;
struct UserWhoSell {
uint UserAmtWithdrawal;
uint UserTokenSell;
uint UserSellDate;
uint UserSellTokenPackNum;
uint UserTotalAmtWithdrawal;
uint UserTotalAmtWithdrawalCurrentPack;
}
mapping (address => UserWhoSell) usersWhoSell;
address[] private userWhoSellDatas;
// The basic parameters of MUSystem that determine
// the participant's income per package,
// the initial price of one token,
// the number of tokens in pack, Disparity mode percentage
// and another internal constants.
uint private CoMargin = 101;
uint private CoOverlap = 110;
uint private Disparity = 70;
bool private DisparityMode;
uint private RestartModeDate;
bool private RestartMode;
uint private PackVolume = 50;
uint private FirstPackTokenPriceSellout = 50;
uint private BigAmt = 250 * 1 ether;
bool private feeTransfered;
uint private PrevPrevPackTokenPriceSellout;
uint private PrevPackTokenPriceSellout;
uint private PrevPackTokenPriceBuyout;
uint private PrevPackDelta;
uint private PrevPackCost;
uint private PrevPackTotalAmt;
uint private CurrentPackYield;
uint private CurrentPackDelta;
uint private CurrentPackCost;
uint private CurrentPackTotalToPay;
uint private CurrentPackTotalAmt;
uint private CurrentPackRestAmt;
uint private CurrentPackFee;
uint private CurrentPackTotalToPayDisparity;
uint private CurrentPackNumber;
uint private CurrentPackStartDate;
uint private CurrentPackTokenPriceSellout;
uint private CurrentPackTokenPriceBuyout;
uint private CurrentPackTokenAvailablePercent;
uint private NextPackTokenPriceBuyout;
uint private NextPackYield;
uint private NextPackDelta;
uint private userContinued;
uint private userAmt;
uint private userFirstAmt;
uint private userTotalAmtDepositCurrentPack;
uint private userBuyFirstDate;
uint private userTotalAmtWithdrawal;
uint private userTotalAmtWithdrawalCurrentPack;
uint private UserTokensReturn;
bool private returnTokenInCurrentPack;
uint private withdrawAmtToCurrentPack;
uint private withdrawAmtAboveCurrentPack;
uint private UserTokensReturnToCurrentPack;
uint private UserTokensReturnAboveCurrentPack;
uint private bonus;
uint private userAmtOverloadToSend;
// MUSystem is launched at the time of the contract deployment.
// It all starts with the first package.
// Settings are applied and the number of tokens is released.
constructor () public payable {
creatorOwner = msg.sender;
PackVolume = (10 ** decimals).mul(PackVolume);
DisparityMode = false;
RestartMode = false;
CurrentPackNumber = 1;
CurrentPackStartDate = now;
mint(PackVolume);
packSettings(CurrentPackNumber);
}
// Write down participants who make deposits.
function addUserWhoBuy (
address _address,
uint _UserAmt,
uint _UserTokenObtain,
uint _UserBuyDate,
uint _UserBuyFirstDate,
uint _UserBuyTokenPackNum,
uint _UserFirstAmt,
uint _UserContinued,
uint _UserTotalAmtDepositCurrentPack) internal {
UserWhoBuy storage userWhoBuy = usersWhoBuy[_address];
userWhoBuy.UserAmt = _UserAmt;
userWhoBuy.UserTokenObtain = _UserTokenObtain;
userWhoBuy.UserBuyDate = _UserBuyDate;
userWhoBuy.UserBuyFirstDate = _UserBuyFirstDate;
userWhoBuy.UserBuyTokenPackNum = _UserBuyTokenPackNum;
userWhoBuy.UserFirstAmt = _UserFirstAmt;
userWhoBuy.UserContinued = _UserContinued;
userWhoBuy.UserTotalAmtDepositCurrentPack = _UserTotalAmtDepositCurrentPack;
userWhoBuyDatas.push(_address) -1;
}
// Write down also participants who make withdrawals.
function addUserWhoSell (
address _address,
uint _UserAmtWithdrawal,
uint _UserTokenSell,
uint _UserSellDate,
uint _UserSellTokenPackNum,
uint _UserTotalAmtWithdrawal,
uint _UserTotalAmtWithdrawalCurrentPack) internal {
UserWhoSell storage userWhoSell = usersWhoSell[_address];
userWhoSell.UserAmtWithdrawal = _UserAmtWithdrawal;
userWhoSell.UserTokenSell = _UserTokenSell;
userWhoSell.UserSellDate = _UserSellDate;
userWhoSell.UserSellTokenPackNum = _UserSellTokenPackNum;
userWhoSell.UserTotalAmtWithdrawal = _UserTotalAmtWithdrawal;
userWhoSell.UserTotalAmtWithdrawalCurrentPack = _UserTotalAmtWithdrawalCurrentPack;
userWhoSellDatas.push(_address) -1;
}
// Calculation of pack's parameters "on the fly".
// Course (price) of tokens is growing by a special technique,
// which designed increases with the passage of time the size
// of a possible return donations for the participants,
// subject to a maximum system stability.
function packSettings (uint _currentPackNumber) internal {
CurrentPackNumber = _currentPackNumber;
if(CurrentPackNumber == 1){
PrevPackDelta = 0;
PrevPackCost = 0;
PrevPackTotalAmt = 0;
CurrentPackStartDate = now;
CurrentPackTokenPriceSellout = FirstPackTokenPriceSellout;
CurrentPackTokenPriceBuyout = FirstPackTokenPriceSellout;
CurrentPackCost = PackVolume.mul(CurrentPackTokenPriceSellout);
CurrentPackTotalToPay = 0;
CurrentPackTotalToPayDisparity = 0;
CurrentPackYield = 0;
CurrentPackDelta = 0;
CurrentPackTotalAmt = CurrentPackCost;
CurrentPackFee = 0;
CurrentPackRestAmt = CurrentPackCost.sub(CurrentPackTotalToPay);
if (FirstPackTokenPriceSellout == 50){NextPackTokenPriceBuyout = 60;}else{NextPackTokenPriceBuyout = FirstPackTokenPriceSellout+5;}
}
if(CurrentPackNumber == 2){
PrevPrevPackTokenPriceSellout = 0;
PrevPackTokenPriceSellout = CurrentPackTokenPriceSellout;
PrevPackTokenPriceBuyout = CurrentPackTokenPriceBuyout;
PrevPackDelta = CurrentPackDelta;
PrevPackCost = CurrentPackCost;
PrevPackTotalAmt = CurrentPackTotalAmt;
CurrentPackYield = 0;
CurrentPackDelta = 0;
NextPackTokenPriceBuyout = PrevPackTokenPriceSellout.mul(CoOverlap).div(100);
NextPackYield = NextPackTokenPriceBuyout.sub(PrevPackTokenPriceSellout);
NextPackDelta = NextPackYield;
CurrentPackTokenPriceSellout = NextPackTokenPriceBuyout.add(NextPackDelta);
CurrentPackTokenPriceBuyout = CurrentPackTokenPriceSellout;
CurrentPackCost = PackVolume.mul(CurrentPackTokenPriceSellout);
CurrentPackTotalToPay = 0;
CurrentPackTotalAmt = CurrentPackCost.add(PrevPackTotalAmt);
CurrentPackFee = 0;
CurrentPackTotalToPayDisparity = PrevPackCost.mul(Disparity).div(100);
CurrentPackRestAmt = CurrentPackCost.sub(CurrentPackTotalToPay);
}
if(CurrentPackNumber > 2){
PrevPackTokenPriceSellout = CurrentPackTokenPriceSellout;
PrevPackTokenPriceBuyout = CurrentPackTokenPriceBuyout;
PrevPackDelta = CurrentPackDelta;
PrevPackCost = CurrentPackCost;
PrevPackTotalAmt = CurrentPackTotalAmt;
CurrentPackYield = NextPackYield;
CurrentPackDelta = NextPackDelta;
CurrentPackTokenPriceBuyout = NextPackTokenPriceBuyout;
NextPackTokenPriceBuyout = PrevPackTokenPriceSellout.mul(CoOverlap);
if(NextPackTokenPriceBuyout<=100){
NextPackTokenPriceBuyout=PrevPackTokenPriceSellout.mul(CoOverlap).div(100);
}
if(NextPackTokenPriceBuyout>100){
NextPackTokenPriceBuyout=NextPackTokenPriceBuyout*10**3;
NextPackTokenPriceBuyout=((NextPackTokenPriceBuyout/10000)+5)/10;
}
NextPackYield = NextPackTokenPriceBuyout.sub(PrevPackTokenPriceSellout);
NextPackDelta = NextPackYield.mul(CoMargin);
if(NextPackDelta <= 100){
NextPackDelta = CurrentPackDelta.add(NextPackYield.mul(CoMargin).div(100));
}
if(NextPackDelta > 100){
NextPackDelta = NextPackDelta*10**3;
NextPackDelta = ((NextPackDelta/10000)+5)/10;
NextPackDelta = CurrentPackDelta.add(NextPackDelta);
}
CurrentPackTokenPriceSellout = NextPackTokenPriceBuyout.add(NextPackDelta);
CurrentPackCost = PackVolume.mul(CurrentPackTokenPriceSellout);
CurrentPackTotalToPay = PackVolume.mul(CurrentPackTokenPriceBuyout);
CurrentPackTotalToPayDisparity = PrevPackCost.mul(Disparity).div(100);
CurrentPackRestAmt = CurrentPackCost.sub(CurrentPackTotalToPay);
CurrentPackTotalAmt = CurrentPackRestAmt.add(PrevPackTotalAmt);
CurrentPackFee = PrevPackTotalAmt.sub(CurrentPackTotalToPay).sub(CurrentPackTotalToPayDisparity);
}
CurrentPackTokenAvailablePercent = balances[address(this)].mul(100).div(PackVolume);
emit NextPack(CurrentPackTokenPriceSellout, CurrentPackTokenPriceBuyout);
}
// The data of the current package can be obtained
// by performing this function.
// Available tokens - the remaining number of available
// tokens in the current package.
// At onetime you can not buy more than this number of tokens.
// Available tokens in percentage - the percentage of
// remaining available tokens in the current package.
// Available amount to deposit in wei - the maximum amount
// that can be deposited in the current package.
// Attempt to exceed this amount too much
// (i.e., an attempt to buy more tokens than the Available tokens
// in the current package) will be rejected.
// In case of a small excess of the amount, the unused leftover
// will return to your Ethereum account.
// Current pack token price sellout - the price at which
// tokens are bought by a participant.
// Current pack token price buyout - the price at which
// tokens are sold by a participant (are bought by the system).
function aboutCurrentPack () public constant returns (uint availableTokens, uint availableTokensInPercentage, uint availableAmountToDepositInWei, uint tokenPriceSellout, uint tokenPriceBuyout){
uint _availableTokens = balances[address(this)];
uint _availableAmountToDepositInWei = _availableTokens.mul(CurrentPackTokenPriceSellout);
return (_availableTokens, CurrentPackTokenAvailablePercent, _availableAmountToDepositInWei, CurrentPackTokenPriceSellout, CurrentPackTokenPriceBuyout);
}
// Move to the next package. Sending a reward to the owner.
// Minting of new tokens.
function nextPack (uint _currentPackNumber) internal {
transferFee();
feeTransfered = false;
CurrentPackNumber=_currentPackNumber.add(1);
CurrentPackStartDate = now;
mint(PackVolume);
packSettings(CurrentPackNumber);
}
// Restart occurs if the Disparity mode is enabled and
// there were no new donations within 14 days.
// Everything will start with the first package.
// After restart, the system saves the participant's tokens.
// Moreover, by participating from the very beginning
// (starting from the first package of the new cycle),
// the participant can easily compensate for his
// insignificant losses. And quickly achieve a good profit!
function restart(bool _dm)internal{
if(_dm==true){if(RestartMode==false){RestartMode=true;RestartModeDate=now;}
else{if(now>RestartModeDate+14*1 days){RestartMode=false;DisparityMode=false;nextPack(0);}}}
else{if(RestartMode==true){RestartMode=false;RestartModeDate=0;}}
}
// Sending reward to the owner.
// No more and no less - just as much as it does not hurt.
// Exactly as much as provided by the algorithm.
function transferFee()internal{
if(CurrentPackNumber > 2 && feeTransfered == false){
if(address(this).balance>=CurrentPackFee){
creatorOwner.transfer(CurrentPackFee);
feeTransfered = true;
}
}
}
// Receiving a donation and calculating the number of participant tokens.
// Bonuses, penalties.
function deposit() public payable returns (uint UserTokenObtain){
require(msg.sender != 0x0 && msg.sender != 0);
require(msg.value < BigAmt);
uint availableTokens = balances[address(this)];
require(msg.value <= availableTokens.mul(CurrentPackTokenPriceSellout).add(availableTokens.mul(CurrentPackTokenPriceSellout).mul(10).div(100)).add(10*1 finney));
require(msg.value.div(CurrentPackTokenPriceSellout) > 0);
userAddr = msg.sender;
userAmt = msg.value;
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == CurrentPackNumber){
userTotalAmtDepositCurrentPack = usersWhoBuy[userAddr].UserTotalAmtDepositCurrentPack;
}
else{
userTotalAmtDepositCurrentPack = 0;
}
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == CurrentPackNumber){
require(userTotalAmtDepositCurrentPack.add(userAmt) < BigAmt);
}
// If the participant making a donation in the current package
// has already received a backward donation in the same package,
// the amount of the new donation is reduced by 5% of the amount
// of the received donation; a kind of "penalty" is imposed in
// the amount of 5% of the amount received earlier
// by the participant in the same package.
if(usersWhoSell[userAddr].UserSellTokenPackNum == CurrentPackNumber){
uint penalty = usersWhoSell[userAddr].UserTotalAmtWithdrawalCurrentPack.mul(5).div(100);
userAmt = userAmt.sub(penalty);
require(userAmt.div(CurrentPackTokenPriceSellout) > 0);
penalty=0;
}
UserTokenObtain = userAmt.div(CurrentPackTokenPriceSellout);
bonus = 0;
// Participants who made donation amounting to at least 0.1 ether:
// In the 1st day of the current package is entitled to receive
// the amount of possible backward donation to 0.75% more than usual.
// In the 2nd day of the current package - 0.5% more than usual.
// In the 3rd day of the current package - 0.25% more than usual.
if(userAmt >= 100*1 finney){
if(now <= (CurrentPackStartDate + 1*1 days)){
bonus = UserTokenObtain.mul(75).div(10000);
}
if(now > (CurrentPackStartDate + 1*1 days) && now <= (CurrentPackStartDate + 2*1 days)){
bonus = UserTokenObtain.mul(50).div(10000);
}
if(now > (CurrentPackStartDate + 2*1 days) && now <= (CurrentPackStartDate + 3*1 days)){
bonus = UserTokenObtain.mul(25).div(10000);
}
}
// For continuous long-time participation,
// starting from the second week of participation
// (starting from the 4th participation package),
// bonus incentives for the continuous participation
// of 1% of the contributed amount for each subsequent
// "own" package are accrued for the participant.
if(userContinued > 4 && now > (userBuyFirstDate + 1 * 1 weeks)){
bonus = bonus.add(UserTokenObtain.mul(1).div(100));
}
UserTokenObtain = UserTokenObtain.add(bonus);
if(UserTokenObtain > availableTokens){
userAmtOverloadToSend = CurrentPackTokenPriceSellout.mul(UserTokenObtain.sub(availableTokens));
transfer(address(this), userAddr, availableTokens);
UserTokenObtain = availableTokens;
if(address(this).balance>=userAmtOverloadToSend){
userAddr.transfer(userAmtOverloadToSend);
}
}
else{
transfer(address(this), userAddr, UserTokenObtain);
}
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == 0){
userFirstAmt = userAmt;
userBuyFirstDate = now;
}
else{
userFirstAmt = usersWhoBuy[userAddr].UserFirstAmt;
userBuyFirstDate = usersWhoBuy[userAddr].UserBuyFirstDate;
}
if(usersWhoBuy[userAddr].UserContinued == 0){
userContinued = 1;
}
else{
if(usersWhoBuy[userAddr].UserBuyTokenPackNum == CurrentPackNumber.sub(1)){
userContinued = userContinued.add(1);
}
else{
userContinued = 1;
}
}
userTotalAmtDepositCurrentPack = userTotalAmtDepositCurrentPack.add(userAmt);
addUserWhoBuy(userAddr, userAmt, UserTokenObtain, now, userBuyFirstDate, CurrentPackNumber, userFirstAmt, userContinued, userTotalAmtDepositCurrentPack);
CurrentPackTokenAvailablePercent = balances[address(this)].mul(100).div(PackVolume);
bonus = 0;
availableTokens = 0;
userAmtOverloadToSend = 0;
userAddr = 0;
userAmt = 0;
restart(false);
DisparityMode = false;
// Move to the next pack, if all the tokens of the current one are over.
if(balances[address(this)] == 0){nextPack(CurrentPackNumber);}
return UserTokenObtain;
}
// And here the participant decided to sell his tokens (some or all at once) and sends us his withdrawal request.
function withdraw(uint WithdrawAmount, uint WithdrawTokens) public returns (uint withdrawAmt){
require(msg.sender != 0x0 && msg.sender != 0);
require(WithdrawTokens > 0 || WithdrawAmount > 0);
require(WithdrawTokens<=balances[msg.sender]);
require(WithdrawAmount.mul(1 finney)<=balances[msg.sender].mul(CurrentPackTokenPriceSellout).add(balances[msg.sender].mul(CurrentPackTokenPriceSellout).mul(5).div(100)));
// If the normal work is braked then Disparity mode is turning on.
// If Disparity mode is already enabled, then we check whether it's time to restart.
if(RestartMode==true){restart(true);}
if(address(this).balance<=CurrentPackTotalToPayDisparity){
DisparityMode=true;}else{DisparityMode=false;}
// The participant can apply at any time for the selling
// his tokens at the buyout price of the last realized (current) package.
// Let calculate how much tokens are returned in the current package,
// and how much was purchased earlier.
userTotalAmtWithdrawal = usersWhoSell[msg.sender].UserTotalAmtWithdrawal;
if(usersWhoSell[msg.sender].UserSellTokenPackNum == CurrentPackNumber){
userTotalAmtWithdrawalCurrentPack = usersWhoSell[msg.sender].UserTotalAmtWithdrawalCurrentPack;
}
else{
userTotalAmtWithdrawalCurrentPack = 0;
}
if(usersWhoBuy[msg.sender].UserBuyTokenPackNum == CurrentPackNumber && userTotalAmtWithdrawalCurrentPack < usersWhoBuy[msg.sender].UserTotalAmtDepositCurrentPack){
returnTokenInCurrentPack = true;
withdrawAmtToCurrentPack = usersWhoBuy[msg.sender].UserTotalAmtDepositCurrentPack.sub(userTotalAmtWithdrawalCurrentPack);
}
else{
returnTokenInCurrentPack = false;
}
if(WithdrawAmount > 0){
withdrawAmt = WithdrawAmount.mul(1 finney);
if(returnTokenInCurrentPack == true){
UserTokensReturnToCurrentPack = withdrawAmtToCurrentPack.div(CurrentPackTokenPriceSellout);
if(withdrawAmt>withdrawAmtToCurrentPack){
withdrawAmtAboveCurrentPack = withdrawAmt.sub(withdrawAmtToCurrentPack);
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
}
else{
withdrawAmtToCurrentPack = withdrawAmt;
UserTokensReturnToCurrentPack = withdrawAmtToCurrentPack.div(CurrentPackTokenPriceSellout);
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
}
}
else{
withdrawAmtToCurrentPack = 0;
UserTokensReturnToCurrentPack = 0;
withdrawAmtAboveCurrentPack = withdrawAmt;
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
}
}
else{
UserTokensReturn = WithdrawTokens;
if(returnTokenInCurrentPack == true){
UserTokensReturnToCurrentPack = withdrawAmtToCurrentPack.div(CurrentPackTokenPriceSellout);
if(UserTokensReturn>UserTokensReturnToCurrentPack){
UserTokensReturnAboveCurrentPack = UserTokensReturn.sub(UserTokensReturnToCurrentPack);
withdrawAmtAboveCurrentPack = UserTokensReturnAboveCurrentPack.mul(CurrentPackTokenPriceBuyout);
}
else{
withdrawAmtToCurrentPack = UserTokensReturn.mul(CurrentPackTokenPriceSellout);
UserTokensReturnToCurrentPack = UserTokensReturn;
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
}
}
else{
withdrawAmtToCurrentPack = 0;
UserTokensReturnToCurrentPack = 0;
UserTokensReturnAboveCurrentPack = UserTokensReturn;
withdrawAmtAboveCurrentPack = UserTokensReturnAboveCurrentPack.mul(CurrentPackTokenPriceBuyout);
}
}
withdrawAmt = withdrawAmtToCurrentPack.add(withdrawAmtAboveCurrentPack);
// When applying for a donation, if the remaining number
// of available tokens of the current package is less than 10%,
// participants are entitled to withdraw of 1% more than usual.
if(balances[address(this)]<=(PackVolume.mul(10).div(100))){
withdrawAmtAboveCurrentPack = withdrawAmtAboveCurrentPack.add(withdrawAmt.mul(1).div(100));
}
// With each withdrawal, the system checks the total balance
// and if the system is on the verge, when it can pay to each participant
// 70% of his initial donation, the protection mode called "Disparity mode" is activated.
// In disparity mode: participant who made a donation in the current package
// can withdraw up to 100% of his initial donation amount,
// participant who made a donation earlier (in previous packs)
// can withdraw up to 70% of his initial donation amount.
if(address(this).balance<CurrentPackTotalToPayDisparity || withdrawAmt > address(this).balance || DisparityMode == true){
uint disparityAmt = usersWhoBuy[msg.sender].UserFirstAmt.mul(Disparity).div(100);
if(userTotalAmtWithdrawal >= disparityAmt){
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
}
else{
if(withdrawAmtAboveCurrentPack.add(userTotalAmtWithdrawal) >= disparityAmt){
withdrawAmtAboveCurrentPack = disparityAmt.sub(userTotalAmtWithdrawal);
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
}
}
DisparityMode = true;
if(CurrentPackNumber>2){restart(true);}
}
if(withdrawAmt>address(this).balance){
withdrawAmt = address(this).balance;
withdrawAmtAboveCurrentPack = address(this).balance.sub(withdrawAmtToCurrentPack);
UserTokensReturnAboveCurrentPack = withdrawAmtAboveCurrentPack.div(CurrentPackTokenPriceBuyout);
if(CurrentPackNumber>2){restart(true);}
}
withdrawAmt = withdrawAmtToCurrentPack.add(withdrawAmtAboveCurrentPack);
UserTokensReturn = UserTokensReturnToCurrentPack.add(UserTokensReturnAboveCurrentPack);
require(UserTokensReturn<=balances[msg.sender]);
transfer(msg.sender, address(this), UserTokensReturn);
msg.sender.transfer(withdrawAmt);
userTotalAmtWithdrawal = userTotalAmtWithdrawal.add(withdrawAmt);
userTotalAmtWithdrawalCurrentPack = userTotalAmtWithdrawalCurrentPack.add(withdrawAmt);
addUserWhoSell(msg.sender, withdrawAmt, UserTokensReturn, now, CurrentPackNumber, userTotalAmtWithdrawal, userTotalAmtWithdrawalCurrentPack);
CurrentPackTokenAvailablePercent = balances[address(this)].mul(100).div(PackVolume);
withdrawAmtToCurrentPack = 0;
withdrawAmtAboveCurrentPack = 0;
UserTokensReturnToCurrentPack = 0;
UserTokensReturnAboveCurrentPack = 0;
return withdrawAmt;
}
// If tokens purchased in the current package are returned,
// they are again available for purchase by other participants.
// If tokens purchased in previous packages are returned,
// then such tokens are no longer available to anyone.
function transfer(address _from, address _to, uint _value) internal returns (bool success) {
balances[_from] = balances[_from].sub(_value);
if(_to == address(this)){
if(returnTokenInCurrentPack == true){
balances[_to] = balances[_to].add(UserTokensReturnToCurrentPack);
}
else{
balances[_to] = balances[_to];
}
totalSupply = totalSupply.sub(UserTokensReturnAboveCurrentPack);
}
else{
balances[_to] = balances[_to].add(_value);
}
emit Transfer(_from, _to, _value);
return true;
}
// BalanceOf — get balance of tokens.
function balanceOf(address tokenOwner) public constant returns (uint balance) {
return balances[tokenOwner];
}
// Minting new tokens if the moving to a new package occurred.
function mint(uint _value) internal returns (bool) {
balances[address(this)] = balances[address(this)].add(_value);
totalSupply = totalSupply.add(_value);
return true;
}
event Transfer(address indexed _from, address indexed _to, uint _value);
event NextPack(uint indexed CurrentPackTokenPriceSellout, uint indexed CurrentPackTokenPriceBuyout);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"WithdrawAmount","type":"uint256"},{"name":"WithdrawTokens","type":"uint256"}],"name":"withdraw","outputs":[{"name":"withdrawAmt","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"name":"UserTokenObtain","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"aboutCurrentPack","outputs":[{"name":"availableTokens","type":"uint256"},{"name":"availableTokensInPercentage","type":"uint256"},{"name":"availableAmountToDepositInWei","type":"uint256"},{"name":"tokenPriceSellout","type":"uint256"},{"name":"tokenPriceBuyout","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"CurrentPackTokenPriceSellout","type":"uint256"},{"indexed":true,"name":"CurrentPackTokenPriceBuyout","type":"uint256"}],"name":"NextPack","type":"event"}]Contract Creation Code
60806040526065600855606e6009556046600a556032600e556032600f55680d8d726b7177a8000060105533600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000094600e54600f600a0a6200011e6401000000000262001a98179091906401000000009004565b600e819055506000600b60006101000a81548160ff0219169083151502179055506000600d60006101000a81548160ff021916908315150217905550600160208190555042602181905550620000fb600e546200015a640100000000026401000000009004565b506200011860205462000235640100000000026401000000009004565b62000a21565b60008083141562000133576000905062000154565b81830290508183828115156200014557fe5b041415156200015057fe5b8090505b92915050565b6000620001be82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620009d06401000000000262001ae9179091906401000000009004565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200022682600054620009d06401000000000262001ae9179091906401000000009004565b60008190555060019050919050565b80602081905550600160205414156200032c5760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f54602381905550620002a0602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e81905550620002fe601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d819055506032600f5414156200031e57603c6025819055506200032b565b6005600f54016025819055505b5b6002602054141562000521576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c5460178190555060006018819055506000601981905550620003c76064620003aa6009546013546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b602581905550620003f4601354602554620009ed6401000000000262001bef179091906401000000009004565b6026819055506026546027819055506200042a602754602554620009d06401000000000262001ae9179091906401000000009004565b60228190555060225460238190555062000460602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506000601b8190555062000495601754601a54620009d06401000000000262001ae9179091906401000000009004565b601c819055506000601e81905550620004ed6064620004d0600a546016546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601f819055506200051a601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d819055505b600260205411156200090e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506200059c6009546013546200011e6401000000000262001a98179091906401000000009004565b60258190555060646025541115156200060057620005f96064620005dc6009546013546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b6025819055505b6064602554111562000641576103e860255402602581905550600a60056127106025548115156200062d57fe5b04018115156200063957fe5b046025819055505b62000668601354602554620009ed6401000000000262001bef179091906401000000009004565b602681905550620006956008546026546200011e6401000000000262001a98179091906401000000009004565b60278190555060646027541115156200071d5762000716620006f66064620006d96008546026546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601954620009d06401000000000262001ae9179091906401000000009004565b6027819055505b606460275411156200078b576103e860275402602781905550600a60056127106027548115156200074a57fe5b04018115156200075657fe5b0460278190555062000784602754601954620009d06401000000000262001ae9179091906401000000009004565b6027819055505b620007b2602754602554620009d06401000000000262001ae9179091906401000000009004565b602281905550620007df602254600e546200011e6401000000000262001a98179091906401000000009004565b601a819055506200080c602354600e546200011e6401000000000262001a98179091906401000000009004565b601b819055506200085c60646200083f600a546016546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b601f8190555062000889601b54601a54620009ed6401000000000262001bef179091906401000000009004565b601d81905550620008b6601754601d54620009d06401000000000262001ae9179091906401000000009004565b601c8190555062000907601f54620008ea601b54601754620009ed6401000000000262001bef179091906401000000009004565b620009ed6401000000000262001bef179091906401000000009004565b601e819055505b62000995600e54620009786064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200011e6401000000000262001a98179091906401000000009004565b62000a076401000000000262001ad0179091906401000000009004565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a350565b60008183019050828110151515620009e457fe5b80905092915050565b6000828211151515620009fc57fe5b818303905092915050565b6000818381151562000a1557fe5b04905080905092915050565b6128dc8062000a316000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009357806318160ddd14610123578063313ce5671461014e578063441a3e701461017957806370a08231146101c457806395d89b411461021b578063d0e30db0146102ab578063d89fec58146102c9575b600080fd5b34801561009f57600080fd5b506100a8610310565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b50610138610349565b6040518082815260200191505060405180910390f35b34801561015a57600080fd5b5061016361034f565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b506101ae6004803603810190808035906020019092919080359060200190929190505050610354565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b50610205600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6b565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b50610230610eb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610270578082015181840152602081019050610255565b50505050905090810190601f16801561029d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3610eed565b6040518082815260200191505060405180910390f35b3480156102d557600080fd5b506102de611a16565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6040805190810160405280601581526020017f4d757475616c20556e6974696e672053797374656d000000000000000000000081525081565b60005481565b600f81565b60008060003373ffffffffffffffffffffffffffffffffffffffff1614158015610395575060003373ffffffffffffffffffffffffffffffffffffffff1614155b15156103a057600080fd5b60008311806103af5750600084115b15156103ba57600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561040857600080fd5b6104e761048560646104776005610469602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b6104d9602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ae990919063ffffffff16565b61050166038d7ea4c6800086611a9890919063ffffffff16565b1115151561050e57600080fd5b60011515600d60009054906101000a900460ff1615151415610535576105346001611b05565b5b601f543073ffffffffffffffffffffffffffffffffffffffff1631111515610577576001600b60006101000a81548160ff021916908315150217905550610593565b6000600b60006101000a81548160ff0219169083151502179055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154602d81905550602054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561067657600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602e8190555061067f565b6000602e819055505b602054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541480156107155750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602e54105b15610797576001603060006101000a81548160ff02191690831515021790555061078c602e54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154611bef90919063ffffffff16565b6031819055506107b3565b6000603060006101000a81548160ff0219169083151502179055505b60008411156108cc576107d666038d7ea4c6800085611a9890919063ffffffff16565b915060011515603060009054906101000a900460ff16151514156108925761080b602254603154611ad090919063ffffffff16565b6033819055506031548211156108585761083060315483611bef90919063ffffffff16565b60328190555061084d602354603254611ad090919063ffffffff16565b60348190555061088d565b81603181905550610876602254603154611ad090919063ffffffff16565b603381905550600060328190555060006034819055505b6108c7565b60006031819055506000603381905550816032819055506108c0602354603254611ad090919063ffffffff16565b6034819055505b6109cb565b82602f8190555060011515603060009054906101000a900460ff161515141561099357610906602254603154611ad090919063ffffffff16565b603381905550603354602f5411156109575761092f603354602f54611bef90919063ffffffff16565b60348190555061094c602354603454611a9890919063ffffffff16565b60328190555061098e565b61096e602254602f54611a9890919063ffffffff16565b603181905550602f54603381905550600060328190555060006034819055505b6109ca565b60006031819055506000603381905550602f546034819055506109c3602354603454611a9890919063ffffffff16565b6032819055505b5b6109e2603254603154611ae990919063ffffffff16565b9150610a0d60646109ff600a600e54611a9890919063ffffffff16565b611ad090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610a9657610a8f610a7e6064610a70600186611a9890919063ffffffff16565b611ad090919063ffffffff16565b603254611ae990919063ffffffff16565b6032819055505b601f543073ffffffffffffffffffffffffffffffffffffffff16311080610ad357503073ffffffffffffffffffffffffffffffffffffffff163182115b80610af1575060011515600b60009054906101000a900460ff161515145b15610c0d57610b606064610b52600a54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905080602d54101515610b825760006032819055506000603481905550610bdb565b80610b9a602d54603254611ae990919063ffffffff16565b101515610bda57610bb6602d5482611bef90919063ffffffff16565b603281905550610bd3602354603254611ad090919063ffffffff16565b6034819055505b5b6001600b60006101000a81548160ff02191690831515021790555060026020541115610c0c57610c0b6001611b05565b5b5b3073ffffffffffffffffffffffffffffffffffffffff1631821115610cac573073ffffffffffffffffffffffffffffffffffffffff16319150610c726031543073ffffffffffffffffffffffffffffffffffffffff1631611bef90919063ffffffff16565b603281905550610c8f602354603254611ad090919063ffffffff16565b60348190555060026020541115610cab57610caa6001611b05565b5b5b610cc3603254603154611ae990919063ffffffff16565b9150610cdc603454603354611ae990919063ffffffff16565b602f81905550600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602f5411151515610d3257600080fd5b610d3f3330602f54611c08565b503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d86573d6000803e3d6000fd5b50610d9c82602d54611ae990919063ffffffff16565b602d81905550610db782602e54611ae990919063ffffffff16565b602e81905550610dd43383602f5442602054602d54602e54611f37565b610e3b600e54610e2d6064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006031819055506000603281905550600060338190555060006034819055508191505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4d5553000000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1614158015610f2f575060003373ffffffffffffffffffffffffffffffffffffffff1614155b1515610f3a57600080fd5b60105434101515610f4a57600080fd5b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611006662386f26fc10000610ff8610fd56064610fc7600a610fb96022548a611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b610fea60225487611a9890919063ffffffff16565b611ae990919063ffffffff16565b611ae990919063ffffffff16565b341115151561101457600080fd5b600061102b60225434611ad090919063ffffffff16565b11151561103757600080fd5b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460298190555060205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561115d5760046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602b81905550611166565b6000602b819055505b60205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156111fb576010546111ee602954602b54611ae990919063ffffffff16565b1015156111fa57600080fd5b5b60205460066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561133b576112f460646112e6600560066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905061130b81602954611bef90919063ffffffff16565b602981905550600061132a602254602954611ad090919063ffffffff16565b11151561133657600080fd5b600090505b611352602254602954611ad090919063ffffffff16565b9250600060358190555067016345785d8a0000602954101515611451576201518060215401421115156113ae576113a7612710611399604b86611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6201518060215401421180156113cb57506202a300602154014211155b156113ff576113f86127106113ea603286611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6202a300602154014211801561141c57506203f480602154014211155b156114505761144961271061143b601986611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b5b6004602854118015611469575062093a80602c540142115b156114b0576114a9611498606461148a600187611a9890919063ffffffff16565b611ad090919063ffffffff16565b603554611ae990919063ffffffff16565b6035819055505b6114c560355484611ae990919063ffffffff16565b9250818311156115c0576114f66114e58385611bef90919063ffffffff16565b602254611a9890919063ffffffff16565b60368190555061152930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c08565b508192506036543073ffffffffffffffffffffffffffffffffffffffff16311015156115bb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6036549081150290604051600060405180830381858888f193505050501580156115b9573d6000803e3d6000fd5b505b6115ef565b6115ed30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611c08565b505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561167157602954602a8190555042602c81905550611748565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602a8190555060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154602c819055505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015414156117c257600160288190555061186e565b6117d86001602054611bef90919063ffffffff16565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541415611864576118596001602854611ae990919063ffffffff16565b60288190555061186d565b60016028819055505b5b611885602954602b54611ae990919063ffffffff16565b602b819055506118ca600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166029548542602c54602054602a54602854602b54612023565b611931600e546119236064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006035819055506000915060006036819055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060298190555061199f6000611b05565b6000600b60006101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a0e57611a0d602054612123565b5b829250505090565b6000806000806000806000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611a7860225483611a9890919063ffffffff16565b905081602454826022546023549650965096509650965050509091929394565b600080831415611aab5760009050611aca565b8183029050818382811515611abc57fe5b04141515611ac657fe5b8090505b92915050565b60008183811515611add57fe5b04905080905092915050565b60008183019050828110151515611afc57fe5b80905092915050565b600115158115151415611bab5760001515600d60009054906101000a900460ff1615151415611b55576001600d60006101000a81548160ff02191690831515021790555042600c81905550611ba6565b62127500600c5401421115611ba5576000600d60006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff021916908315150217905550611ba46000612123565b5b5b611bec565b60011515600d60009054906101000a900460ff1615151415611beb576000600d60006101000a81548160ff0219169083151502179055506000600c819055505b5b50565b6000828211151515611bfd57fe5b818303905092915050565b6000611c5c82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bef90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e315760011515603060009054906101000a900460ff1615151415611d8b57611d43603354600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611e26603454600054611bef90919063ffffffff16565b600081905550611ec7565b611e8382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050868160000181905550858160010181905550848160020181905550838160030181905550828160040181905550818160050181905550600160078990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050565b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050888160000181905550878160010181905550868160020181905550858160030181905550848160040181905550838160050181905550828160060181905550818160070181905550600160058b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050505050565b61212b612181565b6000601160006101000a81548160ff02191690831515021790555061215a600182611ae990919063ffffffff16565b60208190555042602181905550612172600e54612257565b5061217e602054612312565b50565b60026020541180156121a6575060001515601160009054906101000a900460ff161515145b1561225557601e543073ffffffffffffffffffffffffffffffffffffffff163110151561225457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601e549081150290604051600060405180830381858888f19350505050158015612237573d6000803e3d6000fd5b506001601160006101000a81548160ff0219169083151502179055505b5b565b60006122ab82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230382600054611ae990919063ffffffff16565b60008190555060019050919050565b80602081905550600160205414156123e65760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f5460238190555061236c602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e819055506123ba601b54601a54611bef90919063ffffffff16565b601d819055506032600f5414156123d857603c6025819055506123e5565b6005600f54016025819055505b5b6002602054141561254a576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c54601781905550600060188190555060006019819055506124606064612452600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b60258190555061247d601354602554611bef90919063ffffffff16565b6026819055506026546027819055506124a3602754602554611ae990919063ffffffff16565b6022819055506022546023819055506124c9602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506124ee601754601a54611ae990919063ffffffff16565b601c819055506000601e819055506125266064612518600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f81905550612543601b54601a54611bef90919063ffffffff16565b601d819055505b6002602054111561280e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506125b4600954601354611a9890919063ffffffff16565b60258190555060646025541115156125f7576125f060646125e2600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b6025819055505b60646025541115612635576103e860255402602581905550600a600561271060255481151561262257fe5b040181151561262d57fe5b046025819055505b61264c601354602554611bef90919063ffffffff16565b602681905550612669600854602654611a9890919063ffffffff16565b60278190555060646027541115156126c0576126b96126a8606461269a600854602654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601954611ae990919063ffffffff16565b6027819055505b6064602754111561271b576103e860275402602781905550600a60056127106027548115156126eb57fe5b04018115156126f657fe5b04602781905550612714602754601954611ae990919063ffffffff16565b6027819055505b612732602754602554611ae990919063ffffffff16565b60228190555061274f602254600e54611a9890919063ffffffff16565b601a8190555061276c602354600e54611a9890919063ffffffff16565b601b8190555061279c606461278e600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f819055506127b9601b54601a54611bef90919063ffffffff16565b601d819055506127d6601754601d54611ae990919063ffffffff16565b601c81905550612807601f546127f9601b54601754611bef90919063ffffffff16565b611bef90919063ffffffff16565b601e819055505b612875600e546128676064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a3505600a165627a7a723058203ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a80029
Deployed Bytecode
0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461009357806318160ddd14610123578063313ce5671461014e578063441a3e701461017957806370a08231146101c457806395d89b411461021b578063d0e30db0146102ab578063d89fec58146102c9575b600080fd5b34801561009f57600080fd5b506100a8610310565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b50610138610349565b6040518082815260200191505060405180910390f35b34801561015a57600080fd5b5061016361034f565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b506101ae6004803603810190808035906020019092919080359060200190929190505050610354565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b50610205600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6b565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b50610230610eb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610270578082015181840152602081019050610255565b50505050905090810190601f16801561029d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3610eed565b6040518082815260200191505060405180910390f35b3480156102d557600080fd5b506102de611a16565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6040805190810160405280601581526020017f4d757475616c20556e6974696e672053797374656d000000000000000000000081525081565b60005481565b600f81565b60008060003373ffffffffffffffffffffffffffffffffffffffff1614158015610395575060003373ffffffffffffffffffffffffffffffffffffffff1614155b15156103a057600080fd5b60008311806103af5750600084115b15156103ba57600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561040857600080fd5b6104e761048560646104776005610469602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b6104d9602254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ae990919063ffffffff16565b61050166038d7ea4c6800086611a9890919063ffffffff16565b1115151561050e57600080fd5b60011515600d60009054906101000a900460ff1615151415610535576105346001611b05565b5b601f543073ffffffffffffffffffffffffffffffffffffffff1631111515610577576001600b60006101000a81548160ff021916908315150217905550610593565b6000600b60006101000a81548160ff0219169083151502179055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154602d81905550602054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561067657600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602e8190555061067f565b6000602e819055505b602054600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541480156107155750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602e54105b15610797576001603060006101000a81548160ff02191690831515021790555061078c602e54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154611bef90919063ffffffff16565b6031819055506107b3565b6000603060006101000a81548160ff0219169083151502179055505b60008411156108cc576107d666038d7ea4c6800085611a9890919063ffffffff16565b915060011515603060009054906101000a900460ff16151514156108925761080b602254603154611ad090919063ffffffff16565b6033819055506031548211156108585761083060315483611bef90919063ffffffff16565b60328190555061084d602354603254611ad090919063ffffffff16565b60348190555061088d565b81603181905550610876602254603154611ad090919063ffffffff16565b603381905550600060328190555060006034819055505b6108c7565b60006031819055506000603381905550816032819055506108c0602354603254611ad090919063ffffffff16565b6034819055505b6109cb565b82602f8190555060011515603060009054906101000a900460ff161515141561099357610906602254603154611ad090919063ffffffff16565b603381905550603354602f5411156109575761092f603354602f54611bef90919063ffffffff16565b60348190555061094c602354603454611a9890919063ffffffff16565b60328190555061098e565b61096e602254602f54611a9890919063ffffffff16565b603181905550602f54603381905550600060328190555060006034819055505b6109ca565b60006031819055506000603381905550602f546034819055506109c3602354603454611a9890919063ffffffff16565b6032819055505b5b6109e2603254603154611ae990919063ffffffff16565b9150610a0d60646109ff600a600e54611a9890919063ffffffff16565b611ad090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610a9657610a8f610a7e6064610a70600186611a9890919063ffffffff16565b611ad090919063ffffffff16565b603254611ae990919063ffffffff16565b6032819055505b601f543073ffffffffffffffffffffffffffffffffffffffff16311080610ad357503073ffffffffffffffffffffffffffffffffffffffff163182115b80610af1575060011515600b60009054906101000a900460ff161515145b15610c0d57610b606064610b52600a54600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905080602d54101515610b825760006032819055506000603481905550610bdb565b80610b9a602d54603254611ae990919063ffffffff16565b101515610bda57610bb6602d5482611bef90919063ffffffff16565b603281905550610bd3602354603254611ad090919063ffffffff16565b6034819055505b5b6001600b60006101000a81548160ff02191690831515021790555060026020541115610c0c57610c0b6001611b05565b5b5b3073ffffffffffffffffffffffffffffffffffffffff1631821115610cac573073ffffffffffffffffffffffffffffffffffffffff16319150610c726031543073ffffffffffffffffffffffffffffffffffffffff1631611bef90919063ffffffff16565b603281905550610c8f602354603254611ad090919063ffffffff16565b60348190555060026020541115610cab57610caa6001611b05565b5b5b610cc3603254603154611ae990919063ffffffff16565b9150610cdc603454603354611ae990919063ffffffff16565b602f81905550600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054602f5411151515610d3257600080fd5b610d3f3330602f54611c08565b503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d86573d6000803e3d6000fd5b50610d9c82602d54611ae990919063ffffffff16565b602d81905550610db782602e54611ae990919063ffffffff16565b602e81905550610dd43383602f5442602054602d54602e54611f37565b610e3b600e54610e2d6064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006031819055506000603281905550600060338190555060006034819055508191505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4d5553000000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1614158015610f2f575060003373ffffffffffffffffffffffffffffffffffffffff1614155b1515610f3a57600080fd5b60105434101515610f4a57600080fd5b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611006662386f26fc10000610ff8610fd56064610fc7600a610fb96022548a611a9890919063ffffffff16565b611a9890919063ffffffff16565b611ad090919063ffffffff16565b610fea60225487611a9890919063ffffffff16565b611ae990919063ffffffff16565b611ae990919063ffffffff16565b341115151561101457600080fd5b600061102b60225434611ad090919063ffffffff16565b11151561103757600080fd5b33600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460298190555060205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561115d5760046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154602b81905550611166565b6000602b819055505b60205460046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156111fb576010546111ee602954602b54611ae990919063ffffffff16565b1015156111fa57600080fd5b5b60205460066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154141561133b576112f460646112e6600560066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154611a9890919063ffffffff16565b611ad090919063ffffffff16565b905061130b81602954611bef90919063ffffffff16565b602981905550600061132a602254602954611ad090919063ffffffff16565b11151561133657600080fd5b600090505b611352602254602954611ad090919063ffffffff16565b9250600060358190555067016345785d8a0000602954101515611451576201518060215401421115156113ae576113a7612710611399604b86611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6201518060215401421180156113cb57506202a300602154014211155b156113ff576113f86127106113ea603286611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b6202a300602154014211801561141c57506203f480602154014211155b156114505761144961271061143b601986611a9890919063ffffffff16565b611ad090919063ffffffff16565b6035819055505b5b6004602854118015611469575062093a80602c540142115b156114b0576114a9611498606461148a600187611a9890919063ffffffff16565b611ad090919063ffffffff16565b603554611ae990919063ffffffff16565b6035819055505b6114c560355484611ae990919063ffffffff16565b9250818311156115c0576114f66114e58385611bef90919063ffffffff16565b602254611a9890919063ffffffff16565b60368190555061152930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c08565b508192506036543073ffffffffffffffffffffffffffffffffffffffff16311015156115bb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6036549081150290604051600060405180830381858888f193505050501580156115b9573d6000803e3d6000fd5b505b6115ef565b6115ed30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611c08565b505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561167157602954602a8190555042602c81905550611748565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154602a8190555060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154602c819055505b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015414156117c257600160288190555061186e565b6117d86001602054611bef90919063ffffffff16565b60046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401541415611864576118596001602854611ae990919063ffffffff16565b60288190555061186d565b60016028819055505b5b611885602954602b54611ae990919063ffffffff16565b602b819055506118ca600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166029548542602c54602054602a54602854602b54612023565b611931600e546119236064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b60248190555060006035819055506000915060006036819055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060298190555061199f6000611b05565b6000600b60006101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a0e57611a0d602054612123565b5b829250505090565b6000806000806000806000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150611a7860225483611a9890919063ffffffff16565b905081602454826022546023549650965096509650965050509091929394565b600080831415611aab5760009050611aca565b8183029050818382811515611abc57fe5b04141515611ac657fe5b8090505b92915050565b60008183811515611add57fe5b04905080905092915050565b60008183019050828110151515611afc57fe5b80905092915050565b600115158115151415611bab5760001515600d60009054906101000a900460ff1615151415611b55576001600d60006101000a81548160ff02191690831515021790555042600c81905550611ba6565b62127500600c5401421115611ba5576000600d60006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff021916908315150217905550611ba46000612123565b5b5b611bec565b60011515600d60009054906101000a900460ff1615151415611beb576000600d60006101000a81548160ff0219169083151502179055506000600c819055505b5b50565b6000828211151515611bfd57fe5b818303905092915050565b6000611c5c82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bef90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e315760011515603060009054906101000a900460ff1615151415611d8b57611d43603354600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611e26603454600054611bef90919063ffffffff16565b600081905550611ec7565b611e8382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050868160000181905550858160010181905550848160020181905550838160030181905550828160040181905550818160050181905550600160078990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050565b6000600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050888160000181905550878160010181905550868160020181905550858160030181905550848160040181905550838160050181905550828160060181905550818160070181905550600160058b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505050505050565b61212b612181565b6000601160006101000a81548160ff02191690831515021790555061215a600182611ae990919063ffffffff16565b60208190555042602181905550612172600e54612257565b5061217e602054612312565b50565b60026020541180156121a6575060001515601160009054906101000a900460ff161515145b1561225557601e543073ffffffffffffffffffffffffffffffffffffffff163110151561225457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601e549081150290604051600060405180830381858888f19350505050158015612237573d6000803e3d6000fd5b506001601160006101000a81548160ff0219169083151502179055505b5b565b60006122ab82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae990919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230382600054611ae990919063ffffffff16565b60008190555060019050919050565b80602081905550600160205414156123e65760006015819055506000601681905550600060178190555042602181905550600f54602281905550600f5460238190555061236c602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506000601f8190555060006018819055506000601981905550601a54601c819055506000601e819055506123ba601b54601a54611bef90919063ffffffff16565b601d819055506032600f5414156123d857603c6025819055506123e5565b6005600f54016025819055505b5b6002602054141561254a576000601281905550602254601381905550602354601481905550601954601581905550601a54601681905550601c54601781905550600060188190555060006019819055506124606064612452600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b60258190555061247d601354602554611bef90919063ffffffff16565b6026819055506026546027819055506124a3602754602554611ae990919063ffffffff16565b6022819055506022546023819055506124c9602254600e54611a9890919063ffffffff16565b601a819055506000601b819055506124ee601754601a54611ae990919063ffffffff16565b601c819055506000601e819055506125266064612518600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f81905550612543601b54601a54611bef90919063ffffffff16565b601d819055505b6002602054111561280e57602254601381905550602354601481905550601954601581905550601a54601681905550601c546017819055506026546018819055506027546019819055506025546023819055506125b4600954601354611a9890919063ffffffff16565b60258190555060646025541115156125f7576125f060646125e2600954601354611a9890919063ffffffff16565b611ad090919063ffffffff16565b6025819055505b60646025541115612635576103e860255402602581905550600a600561271060255481151561262257fe5b040181151561262d57fe5b046025819055505b61264c601354602554611bef90919063ffffffff16565b602681905550612669600854602654611a9890919063ffffffff16565b60278190555060646027541115156126c0576126b96126a8606461269a600854602654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601954611ae990919063ffffffff16565b6027819055505b6064602754111561271b576103e860275402602781905550600a60056127106027548115156126eb57fe5b04018115156126f657fe5b04602781905550612714602754601954611ae990919063ffffffff16565b6027819055505b612732602754602554611ae990919063ffffffff16565b60228190555061274f602254600e54611a9890919063ffffffff16565b601a8190555061276c602354600e54611a9890919063ffffffff16565b601b8190555061279c606461278e600a54601654611a9890919063ffffffff16565b611ad090919063ffffffff16565b601f819055506127b9601b54601a54611bef90919063ffffffff16565b601d819055506127d6601754601d54611ae990919063ffffffff16565b601c81905550612807601f546127f9601b54601754611bef90919063ffffffff16565b611bef90919063ffffffff16565b601e819055505b612875600e546128676064600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9890919063ffffffff16565b611ad090919063ffffffff16565b6024819055506023546022547f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d860405160405180910390a3505600a165627a7a723058203ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a80029
Swarm Source
bzzr://3ce2a4aa512e887637a71fb6db38d20eb9fc84a658f60a5eef2a7c364857c9a8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)