Source Code
Overview
ETH Balance
0.526992040245989998 ETH
Eth Value
$1,102.83 (@ $2,092.68/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 70 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 24452754 | 29 days ago | IN | 0 ETH | 0.00000241 | ||||
| Buy Xid | 24452747 | 29 days ago | IN | 0.000076 ETH | 0.00001473 | ||||
| Re Load Xname | 6191681 | 2762 days ago | IN | 0 ETH | 0.00106616 | ||||
| Re Load Xname | 6191664 | 2762 days ago | IN | 0 ETH | 0.00048654 | ||||
| Buy Xname | 6191661 | 2762 days ago | IN | 0.01 ETH | 0.00091633 | ||||
| Buy Xname | 6191369 | 2762 days ago | IN | 0.01 ETH | 0.00060662 | ||||
| Buy Xname | 6191101 | 2762 days ago | IN | 0.01 ETH | 0.00072658 | ||||
| Buy Xaddr | 6179873 | 2764 days ago | IN | 0.007875 ETH | 0.00032526 | ||||
| Buy Xaddr | 6171149 | 2765 days ago | IN | 0.007875 ETH | 0.00073189 | ||||
| Buy Xaddr | 6171148 | 2765 days ago | IN | 0.007875 ETH | 0.00061237 | ||||
| Register Name Xn... | 6171146 | 2765 days ago | IN | 0.01 ETH | 0.00095641 | ||||
| Re Load Xid | 6171145 | 2765 days ago | IN | 0 ETH | 0.00084748 | ||||
| Re Load Xid | 6171145 | 2765 days ago | IN | 0 ETH | 0.00039201 | ||||
| Re Load Xid | 6171145 | 2765 days ago | IN | 0 ETH | 0.00068194 | ||||
| Re Load Xid | 6171029 | 2765 days ago | IN | 0 ETH | 0.00031288 | ||||
| Register Name Xn... | 6166921 | 2766 days ago | IN | 0.01 ETH | 0.00063777 | ||||
| Buy Xaddr | 6166704 | 2766 days ago | IN | 0.0075 ETH | 0.00847236 | ||||
| Buy Xaddr | 6166704 | 2766 days ago | IN | 0.007875 ETH | 0.00977352 | ||||
| Re Load Xid | 6166703 | 2766 days ago | IN | 0 ETH | 0.00096283 | ||||
| Buy Xaddr | 6166698 | 2766 days ago | IN | 0.00750001 ETH | 0.00015841 | ||||
| Buy Xaddr | 6166697 | 2766 days ago | IN | 0.01500001 ETH | 0.00029526 | ||||
| Buy Xaddr | 6162437 | 2767 days ago | IN | 0.0075 ETH | 0.01868052 | ||||
| Buy Xaddr | 6162304 | 2767 days ago | IN | 0.01 ETH | 0.00885786 | ||||
| Buy Xaddr | 6156712 | 2768 days ago | IN | 0.0075 ETH | 0.00130536 | ||||
| Buy Xaddr | 6156700 | 2768 days ago | IN | 0.01 ETH | 0.00088815 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24452754 | 29 days ago | 0.000076 ETH | ||||
| Transfer | 24452747 | 29 days ago | 0.0001289 ETH | ||||
| Transfer | 6191681 | 2762 days ago | 0.000375 ETH | ||||
| Transfer | 6191664 | 2762 days ago | 0.00016406 ETH | ||||
| Transfer | 6191661 | 2762 days ago | 0.0005 ETH | ||||
| Transfer | 6191369 | 2762 days ago | 0.00042707 ETH | ||||
| Transfer | 6191101 | 2762 days ago | 0.0005 ETH | ||||
| Transfer | 6179873 | 2764 days ago | 0.00277075 ETH | ||||
| Transfer | 6171149 | 2765 days ago | 0.00118125 ETH | ||||
| Transfer | 6171148 | 2765 days ago | 0.00275625 ETH | ||||
| Transfer | 6171146 | 2765 days ago | 0.01 ETH | ||||
| Transfer | 6171145 | 2765 days ago | 0.0015 ETH | ||||
| Transfer | 6171145 | 2765 days ago | 0.00112504 ETH | ||||
| Transfer | 6171145 | 2765 days ago | 0.01800103 ETH | ||||
| Transfer | 6171029 | 2765 days ago | 0.00023734 ETH | ||||
| Transfer | 6166921 | 2766 days ago | 0.01 ETH | ||||
| Transfer | 6166704 | 2766 days ago | 0.001125 ETH | ||||
| Transfer | 6166704 | 2766 days ago | 0.00118125 ETH | ||||
| Transfer | 6166703 | 2766 days ago | 0.001125 ETH | ||||
| Transfer | 6166697 | 2766 days ago | 0.00008598 ETH | ||||
| Transfer | 6162437 | 2767 days ago | 0.001125 ETH | ||||
| Transfer | 6162304 | 2767 days ago | 0.00010989 ETH | ||||
| Transfer | 6156712 | 2768 days ago | 0.001125 ETH | ||||
| Transfer | 6156700 | 2768 days ago | 0.0002326 ETH | ||||
| Transfer | 6156661 | 2768 days ago | 0.0035 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FoMo3Dlong
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-08-14
*/
pragma solidity ^0.4.24;
contract F3Devents {
// 注册
event onNewName
(
uint256 indexed playerID,
address indexed playerAddress,
bytes32 indexed playerName,
bool isNewPlayer,
uint256 affiliateID,
address affiliateAddress,
bytes32 affiliateName,
uint256 amountPaid,
uint256 timeStamp
);
// 购买
event onEndTx
(
uint256 compressedData,
uint256 compressedIDs,
bytes32 playerName,
address playerAddress,
uint256 ethIn,
uint256 keysBought,
address winnerAddr,
bytes32 winnerName,
uint256 amountWon,
uint256 newPot,
uint256 P3DAmount,
uint256 genAmount,
uint256 potAmount,
uint256 airDropPot
);
// 提取
event onWithdraw
(
uint256 indexed playerID,
address playerAddress,
bytes32 playerName,
uint256 ethOut,
uint256 timeStamp
);
// 提取触发结束
event onWithdrawAndDistribute
(
address playerAddress,
bytes32 playerName,
uint256 ethOut,
uint256 compressedData,
uint256 compressedIDs,
address winnerAddr,
bytes32 winnerName,
uint256 amountWon,
uint256 newPot,
uint256 P3DAmount,
uint256 genAmount
);
// 购买触发结束.
event onBuyAndDistribute
(
address playerAddress,
bytes32 playerName,
uint256 ethIn,
uint256 compressedData,
uint256 compressedIDs,
address winnerAddr,
bytes32 winnerName,
uint256 amountWon,
uint256 newPot,
uint256 P3DAmount,
uint256 genAmount
);
// 使用金库购买触发结束.
event onReLoadAndDistribute
(
address playerAddress,
bytes32 playerName,
uint256 compressedData,
uint256 compressedIDs,
address winnerAddr,
bytes32 winnerName,
uint256 amountWon,
uint256 newPot,
uint256 P3DAmount,
uint256 genAmount
);
// 被推荐人付费
event onAffiliatePayout
(
uint256 indexed affiliateID,
address affiliateAddress,
bytes32 affiliateName,
uint256 indexed roundID,
uint256 indexed buyerID,
uint256 amount,
uint256 timeStamp
);
}
contract modularLong is F3Devents {}
contract FoMo3Dlong is modularLong {
using SafeMath for *;
using NameFilter for string;
using F3DKeysCalcLong for uint256;
PlayerBookInterface constant private PlayerBook = PlayerBookInterface(0xa6fd21aa986247357f404aa37a7bc90809da1ad8);
address public ceo;
address public cfo;
string constant public name = "Must Be Hit 4D";
string constant public symbol = "MBT4D";
uint256 private rndExtra_ = 30 seconds;
uint256 private rndGap_ = 30 seconds;
uint256 constant private rndInit_ = 1 hours; // 初始时间
uint256 constant private rndInc_ = 30 seconds; // 每一个完整KEY增加
uint256 constant private rndMax_ = 12 hours; // 最多允许增加到
uint256 public airDropPot_; // 空投
uint256 public airDropTracker_ = 0;
uint256 public rID_;
mapping (address => uint256) public pIDxAddr_; // 玩家地址 =》 玩家ID
mapping (bytes32 => uint256) public pIDxName_; // 玩家用户名=》 玩家ID
mapping (uint256 => F3Ddatasets.Player) public plyr_; // 玩家ID =》 玩家数据
mapping (uint256 => mapping (uint256 => F3Ddatasets.PlayerRounds)) public plyrRnds_; // 玩家ID =》 第几轮 =》 玩家当轮数据
mapping (uint256 => mapping (bytes32 => bool)) public plyrNames_; // 玩家ID =》 玩家用户名 =》 True/False
mapping (uint256 => F3Ddatasets.Round) public round_; // 第几轮 =》 本轮数据
mapping (uint256 => mapping(uint256 => uint256)) public rndTmEth_; // 第几轮=》TeamID=>该组数据
mapping (uint256 => F3Ddatasets.TeamFee) public fees_; // TeamID => 购买分发比例配置
mapping (uint256 => F3Ddatasets.PotSplit) public potSplit_; // TeamID => 结束分发比例配置
constructor()
public
{
ceo = msg.sender;
cfo = msg.sender;
// 青龙 奖池 30%, 所有持KEY玩家 -30%, 推荐 - 30%, 开发团队 - 5%, 空投 - 5%
fees_[0] = F3Ddatasets.TeamFee(30,0);
// 白虎 奖池 25%, 所有持KEY玩家 -60%, 推荐 - 10%, 开发团队 - 5%, 空投 - 5%
fees_[1] = F3Ddatasets.TeamFee(60,0);
// 朱雀 奖池 60%, 所有持KEY玩家 -20%, 推荐 - 10%, 开发团队 - 5%, 空投 - 5%
fees_[2] = F3Ddatasets.TeamFee(20,0);
// 玄武 奖池 40%, 所有持KEY玩家 -40%, 推荐 - 10%, 开发团队 - 5%, 空投 - 5%
fees_[3] = F3Ddatasets.TeamFee(40,0);
// 青龙 55 - 大赢家 25 -> 所有持KEY玩家 15-> 下一轮 5-> 开发团队
potSplit_[0] = F3Ddatasets.PotSplit(25,0);
// 白虎 55 - 大赢家 30 -> 所有持KEY玩家 10-> 下一轮 5-> 开发团队
potSplit_[1] = F3Ddatasets.PotSplit(30,0);
// 朱雀 55 - 大赢家 10 -> 所有持KEY玩家 30-> 下一轮 5-> 开发团队
potSplit_[2] = F3Ddatasets.PotSplit(10,0);
// 玄武 55 - 大赢家 20 -> 所有持KEY玩家 20-> 下一轮 5-> 开发团队
potSplit_[3] = F3Ddatasets.PotSplit(20,0);
}
modifier isActivated() {
require(activated_ == true, "Not Active!");
_;
}
modifier isHuman() {
address _addr = msg.sender;
uint256 _codeLength;
assembly {_codeLength := extcodesize(_addr)}
require(_codeLength == 0, "Not Human");
_;
}
modifier isWithinLimits(uint256 _eth) {
require(_eth >= 1000000000, "Too Less");
require(_eth <= 100000000000000000000000, "Too More");
_;
}
// 使用该玩家最近一次购买数据再次购买
function()
isActivated()
isHuman()
isWithinLimits(msg.value)
public
payable
{
F3Ddatasets.EventReturns memory _eventData_ = determinePID(_eventData_);
uint256 _pID = pIDxAddr_[msg.sender];
buyCore(_pID, plyr_[_pID].laff, 2, _eventData_);
}
function modCEOAddress(address newCEO)
isHuman()
public
{
require(address(0) != newCEO, "CEO Can not be 0");
require(ceo == msg.sender, "only ceo can modify ceo");
ceo = newCEO;
}
function modCFOAddress(address newCFO)
isHuman()
public
{
require(address(0) != newCFO, "CFO Can not be 0");
require(cfo == msg.sender, "only cfo can modify cfo");
cfo = newCFO;
}
// 通过推荐者ID购买
function buyXid(uint256 _affCode, uint256 _team)
isActivated()
isHuman()
isWithinLimits(msg.value)
public
payable
{
F3Ddatasets.EventReturns memory _eventData_ = determinePID(_eventData_);
uint256 _pID = pIDxAddr_[msg.sender];
if (_affCode == 0 || _affCode == _pID)
{
_affCode = plyr_[_pID].laff;
}
else if (_affCode != plyr_[_pID].laff)
{
plyr_[_pID].laff = _affCode;
}
_team = verifyTeam(_team);
buyCore(_pID, _affCode, _team, _eventData_);
}
// 通过推荐者地址购买
function buyXaddr(address _affCode, uint256 _team)
isActivated()
isHuman()
isWithinLimits(msg.value)
public
payable
{
F3Ddatasets.EventReturns memory _eventData_ = determinePID(_eventData_);
uint256 _pID = pIDxAddr_[msg.sender];
uint256 _affID;
if (_affCode == address(0) || _affCode == msg.sender)
{
_affID = plyr_[_pID].laff;
}
else
{
_affID = pIDxAddr_[_affCode];
if (_affID != plyr_[_pID].laff)
{
plyr_[_pID].laff = _affID;
}
}
_team = verifyTeam(_team);
buyCore(_pID, _affID, _team, _eventData_);
}
// 通过推荐者名字购买
function buyXname(bytes32 _affCode, uint256 _team)
isActivated()
isHuman()
isWithinLimits(msg.value)
public
payable
{
F3Ddatasets.EventReturns memory _eventData_ = determinePID(_eventData_);
uint256 _pID = pIDxAddr_[msg.sender];
uint256 _affID;
if (_affCode == '' || _affCode == plyr_[_pID].name)
{
_affID = plyr_[_pID].laff;
}
else
{
_affID = pIDxName_[_affCode];
if (_affID != plyr_[_pID].laff)
{
plyr_[_pID].laff = _affID;
}
}
_team = verifyTeam(_team);
buyCore(_pID, _affID, _team, _eventData_);
}
// 通过小金库和推荐者ID购买
function reLoadXid(uint256 _affCode, uint256 _team, uint256 _eth)
isActivated()
isHuman()
isWithinLimits(_eth)
public
{
F3Ddatasets.EventReturns memory _eventData_;
uint256 _pID = pIDxAddr_[msg.sender];
if (_affCode == 0 || _affCode == _pID)
{
_affCode = plyr_[_pID].laff;
}
else if (_affCode != plyr_[_pID].laff)
{
plyr_[_pID].laff = _affCode;
}
_team = verifyTeam(_team);
reLoadCore(_pID, _affCode, _team, _eth, _eventData_);
}
// 通过小金库和推荐者地址购买
function reLoadXaddr(address _affCode, uint256 _team, uint256 _eth)
isActivated()
isHuman()
isWithinLimits(_eth)
public
{
F3Ddatasets.EventReturns memory _eventData_;
uint256 _pID = pIDxAddr_[msg.sender];
uint256 _affID;
if (_affCode == address(0) || _affCode == msg.sender)
{
_affID = plyr_[_pID].laff;
}
else
{
_affID = pIDxAddr_[_affCode];
if (_affID != plyr_[_pID].laff)
{
plyr_[_pID].laff = _affID;
}
}
_team = verifyTeam(_team);
reLoadCore(_pID, _affID, _team, _eth, _eventData_);
}
// 通过小金库和推荐者名字购买
function reLoadXname(bytes32 _affCode, uint256 _team, uint256 _eth)
isActivated()
isHuman()
isWithinLimits(_eth)
public
{
F3Ddatasets.EventReturns memory _eventData_;
uint256 _pID = pIDxAddr_[msg.sender];
uint256 _affID;
if (_affCode == '' || _affCode == plyr_[_pID].name)
{
_affID = plyr_[_pID].laff;
}
else
{
_affID = pIDxName_[_affCode];
if (_affID != plyr_[_pID].laff)
{
plyr_[_pID].laff = _affID;
}
}
_team = verifyTeam(_team);
reLoadCore(_pID, _affID, _team, _eth, _eventData_);
}
// 提取
function withdraw()
isActivated()
isHuman()
public
{
uint256 _rID = rID_;
uint256 _now = now;
uint256 _pID = pIDxAddr_[msg.sender];
uint256 _eth;
// 是否触发结束
if (_now > round_[_rID].end && round_[_rID].ended == false && round_[_rID].plyr != 0)
{
F3Ddatasets.EventReturns memory _eventData_;
round_[_rID].ended = true;
_eventData_ = endRound(_eventData_);
_eth = withdrawEarnings(_pID);
if (_eth > 0)
plyr_[_pID].addr.transfer(_eth);
_eventData_.compressedData = _eventData_.compressedData + (_now * 1000000000000000000);
_eventData_.compressedIDs = _eventData_.compressedIDs + _pID;
emit F3Devents.onWithdrawAndDistribute
(
msg.sender,
plyr_[_pID].name,
_eth,
_eventData_.compressedData,
_eventData_.compressedIDs,
_eventData_.winnerAddr,
_eventData_.winnerName,
_eventData_.amountWon,
_eventData_.newPot,
_eventData_.P3DAmount,
_eventData_.genAmount
);
}
else
{
_eth = withdrawEarnings(_pID);
if (_eth > 0)
plyr_[_pID].addr.transfer(_eth);
emit F3Devents.onWithdraw(_pID, msg.sender, plyr_[_pID].name, _eth, _now);
}
}
// 通过推荐者ID注册
function registerNameXID(string _nameString, uint256 _affCode, bool _all)
isHuman()
public
payable
{
bytes32 _name = _nameString.nameFilter();
address _addr = msg.sender;
uint256 _paid = msg.value;
(bool _isNewPlayer, uint256 _affID) = PlayerBook.registerNameXIDFromDapp.value(_paid)(_addr, _name, _affCode, _all);
uint256 _pID = pIDxAddr_[_addr];
emit F3Devents.onNewName(_pID, _addr, _name, _isNewPlayer, _affID, plyr_[_affID].addr, plyr_[_affID].name, _paid, now);
}
// 通过推荐者地址注册
function registerNameXaddr(string _nameString, address _affCode, bool _all)
isHuman()
public
payable
{
bytes32 _name = _nameString.nameFilter();
address _addr = msg.sender;
uint256 _paid = msg.value;
(bool _isNewPlayer, uint256 _affID) = PlayerBook.registerNameXaddrFromDapp.value(msg.value)(msg.sender, _name, _affCode, _all);
uint256 _pID = pIDxAddr_[_addr];
emit F3Devents.onNewName(_pID, _addr, _name, _isNewPlayer, _affID, plyr_[_affID].addr, plyr_[_affID].name, _paid, now);
}
// 通过推荐者名字注册
function registerNameXname(string _nameString, bytes32 _affCode, bool _all)
isHuman()
public
payable
{
bytes32 _name = _nameString.nameFilter();
address _addr = msg.sender;
uint256 _paid = msg.value;
(bool _isNewPlayer, uint256 _affID) = PlayerBook.registerNameXnameFromDapp.value(msg.value)(msg.sender, _name, _affCode, _all);
uint256 _pID = pIDxAddr_[_addr];
emit F3Devents.onNewName(_pID, _addr, _name, _isNewPlayer, _affID, plyr_[_affID].addr, plyr_[_affID].name, _paid, now);
}
// 获取单价
function getBuyPrice()
public
view
returns(uint256)
{
uint256 _rID = rID_;
uint256 _now = now;
if (_now > round_[_rID].strt + rndGap_ && (_now <= round_[_rID].end || (_now > round_[_rID].end && round_[_rID].plyr == 0)))
return ( (round_[_rID].keys.add(1000000000000000000)).ethRec(1000000000000000000) );
else
return ( 7500000000000000 );
}
// 获得剩余时间(秒)
function getTimeLeft()
public
view
returns(uint256)
{
uint256 _rID = rID_;
uint256 _now = now;
if (_now < round_[_rID].end)
if (_now > round_[_rID].strt + rndGap_)
return( (round_[_rID].end).sub(_now) );
else
return( (round_[_rID].strt + rndGap_).sub(_now) );
else
return(0);
}
// 查看玩家小金库
function getPlayerVaults(uint256 _pID)
public
view
returns(uint256 ,uint256, uint256)
{
uint256 _rID = rID_;
if (now > round_[_rID].end && round_[_rID].ended == false && round_[_rID].plyr != 0)
{
if (round_[_rID].plyr == _pID)
{
return
(
(plyr_[_pID].win).add( ((round_[_rID].pot).mul(48)) / 100 ),
(plyr_[_pID].gen).add( getPlayerVaultsHelper(_pID, _rID).sub(plyrRnds_[_pID][_rID].mask) ),
plyr_[_pID].aff
);
} else {
return
(
plyr_[_pID].win,
(plyr_[_pID].gen).add( getPlayerVaultsHelper(_pID, _rID).sub(plyrRnds_[_pID][_rID].mask) ),
plyr_[_pID].aff
);
}
} else {
return
(
plyr_[_pID].win,
(plyr_[_pID].gen).add(calcUnMaskedEarnings(_pID, plyr_[_pID].lrnd)),
plyr_[_pID].aff
);
}
}
function getPlayerVaultsHelper(uint256 _pID, uint256 _rID)
private
view
returns(uint256)
{
return( ((((round_[_rID].mask).add(((((round_[_rID].pot).mul(potSplit_[round_[_rID].team].gen)) / 100).mul(1000000000000000000)) / (round_[_rID].keys))).mul(plyrRnds_[_pID][_rID].keys)) / 1000000000000000000) );
}
// 获得当前轮信息
function getCurrentRoundInfo()
public
view
returns(uint256, uint256, uint256, uint256, uint256, uint256, uint256, address, bytes32, uint256, uint256, uint256, uint256, uint256)
{
uint256 _rID = rID_;
return
(
round_[_rID].ico, //0
_rID, //1
round_[_rID].keys, //2
round_[_rID].end, //3
round_[_rID].strt, //4
round_[_rID].pot, //5
(round_[_rID].team + (round_[_rID].plyr * 10)), //6
plyr_[round_[_rID].plyr].addr, //7
plyr_[round_[_rID].plyr].name, //8
rndTmEth_[_rID][0], //9
rndTmEth_[_rID][1], //10
rndTmEth_[_rID][2], //11
rndTmEth_[_rID][3], //12
airDropTracker_ + (airDropPot_ * 1000) //13
);
}
// 获得玩家信息
function getPlayerInfoByAddress(address _addr)
public
view
returns(uint256, bytes32, uint256, uint256, uint256, uint256, uint256)
{
uint256 _rID = rID_;
if (_addr == address(0))
{
_addr == msg.sender;
}
uint256 _pID = pIDxAddr_[_addr];
return
(
_pID, //0
plyr_[_pID].name, //1
plyrRnds_[_pID][_rID].keys, //2
plyr_[_pID].win, //3
(plyr_[_pID].gen).add(calcUnMaskedEarnings(_pID, plyr_[_pID].lrnd)), //4
plyr_[_pID].aff, //5
plyrRnds_[_pID][_rID].eth //6
);
}
// 核心购买逻辑
function buyCore(uint256 _pID, uint256 _affID, uint256 _team, F3Ddatasets.EventReturns memory _eventData_)
private
{
uint256 _rID = rID_;
uint256 _now = now;
// 未结束
if (_now > round_[_rID].strt + rndGap_ && (_now <= round_[_rID].end || (_now > round_[_rID].end && round_[_rID].plyr == 0)))
{
core(_rID, _pID, msg.value, _affID, _team, _eventData_);
}
else
{
// 已结束但未执行
if (_now > round_[_rID].end && round_[_rID].ended == false)
{
round_[_rID].ended = true;
_eventData_ = endRound(_eventData_);
_eventData_.compressedData = _eventData_.compressedData + (_now * 1000000000000000000);
_eventData_.compressedIDs = _eventData_.compressedIDs + _pID;
emit F3Devents.onBuyAndDistribute
(
msg.sender,
plyr_[_pID].name,
msg.value,
_eventData_.compressedData,
_eventData_.compressedIDs,
_eventData_.winnerAddr,
_eventData_.winnerName,
_eventData_.amountWon,
_eventData_.newPot,
_eventData_.P3DAmount,
_eventData_.genAmount
);
}
// 玩家的钱放入小金库
plyr_[_pID].gen = plyr_[_pID].gen.add(msg.value);
}
}
// 使用小金库购买核心逻辑
function reLoadCore(uint256 _pID, uint256 _affID, uint256 _team, uint256 _eth, F3Ddatasets.EventReturns memory _eventData_)
private
{
uint256 _rID = rID_;
uint256 _now = now;
// 未结束
if (_now > round_[_rID].strt + rndGap_ && (_now <= round_[_rID].end || (_now > round_[_rID].end && round_[_rID].plyr == 0)))
{
// 取出玩家小金库
plyr_[_pID].gen = withdrawEarnings(_pID).sub(_eth);
core(_rID, _pID, _eth, _affID, _team, _eventData_);
}
// 已结束但未执行
else if (_now > round_[_rID].end && round_[_rID].ended == false)
{
round_[_rID].ended = true;
_eventData_ = endRound(_eventData_);
_eventData_.compressedData = _eventData_.compressedData + (_now * 1000000000000000000);
_eventData_.compressedIDs = _eventData_.compressedIDs + _pID;
emit F3Devents.onReLoadAndDistribute
(
msg.sender,
plyr_[_pID].name,
_eventData_.compressedData,
_eventData_.compressedIDs,
_eventData_.winnerAddr,
_eventData_.winnerName,
_eventData_.amountWon,
_eventData_.newPot,
_eventData_.P3DAmount,
_eventData_.genAmount
);
}
}
// 真正的购买在这里
function core(uint256 _rID, uint256 _pID, uint256 _eth, uint256 _affID, uint256 _team, F3Ddatasets.EventReturns memory _eventData_)
private
{
if (plyrRnds_[_pID][_rID].keys == 0)
_eventData_ = managePlayer(_pID, _eventData_);
// 前期购买限制
if (round_[_rID].eth < 100000000000000000000 && plyrRnds_[_pID][_rID].eth.add(_eth) > 1000000000000000000)
{
uint256 _availableLimit = (1000000000000000000).sub(plyrRnds_[_pID][_rID].eth);
uint256 _refund = _eth.sub(_availableLimit);
plyr_[_pID].gen = plyr_[_pID].gen.add(_refund);
_eth = _availableLimit;
}
// 最少数额
if (_eth > 1000000000)
{
// 购买的KEY数量
uint256 _keys = (round_[_rID].eth).keysRec(_eth);
// 至少要有一个KEY才可以领头
if (_keys >= 1000000000000000000)
{
updateTimer(_keys, _rID);
if (round_[_rID].plyr != _pID)
round_[_rID].plyr = _pID;
if (round_[_rID].team != _team)
round_[_rID].team = _team;
_eventData_.compressedData = _eventData_.compressedData + 100;
}
// 判断空投
if (_eth >= 100000000000000000)
{
airDropTracker_++;
if (airdrop() == true)
{
uint256 _prize;
if (_eth >= 10000000000000000000)
{
_prize = ((airDropPot_).mul(75)) / 100;
plyr_[_pID].win = (plyr_[_pID].win).add(_prize);
airDropPot_ = (airDropPot_).sub(_prize);
_eventData_.compressedData += 300000000000000000000000000000000;
}
else if (_eth >= 1000000000000000000 && _eth < 10000000000000000000)
{
_prize = ((airDropPot_).mul(50)) / 100;
plyr_[_pID].win = (plyr_[_pID].win).add(_prize);
airDropPot_ = (airDropPot_).sub(_prize);
_eventData_.compressedData += 200000000000000000000000000000000;
}
else if (_eth >= 100000000000000000 && _eth < 1000000000000000000)
{
_prize = ((airDropPot_).mul(25)) / 100;
plyr_[_pID].win = (plyr_[_pID].win).add(_prize);
airDropPot_ = (airDropPot_).sub(_prize);
_eventData_.compressedData += 300000000000000000000000000000000;
}
_eventData_.compressedData += 10000000000000000000000000000000;
_eventData_.compressedData += _prize * 1000000000000000000000000000000000;
airDropTracker_ = 0;
}
}
_eventData_.compressedData = _eventData_.compressedData + (airDropTracker_ * 1000);
// 更新数据
plyrRnds_[_pID][_rID].keys = _keys.add(plyrRnds_[_pID][_rID].keys);
plyrRnds_[_pID][_rID].eth = _eth.add(plyrRnds_[_pID][_rID].eth);
round_[_rID].keys = _keys.add(round_[_rID].keys);
round_[_rID].eth = _eth.add(round_[_rID].eth);
rndTmEth_[_rID][_team] = _eth.add(rndTmEth_[_rID][_team]);
// 各种分成,内部和外部
_eventData_ = distributeExternal(_rID, _pID, _eth, _affID, _team, _eventData_);
_eventData_ = distributeInternal(_rID, _pID, _eth, _team, _keys, _eventData_);
endTx(_pID, _team, _eth, _keys, _eventData_);
}
}
// 计算未统计的分成
function calcUnMaskedEarnings(uint256 _pID, uint256 _rIDlast)
private
view
returns(uint256)
{
return( (((round_[_rIDlast].mask).mul(plyrRnds_[_pID][_rIDlast].keys)) / (1000000000000000000)).sub(plyrRnds_[_pID][_rIDlast].mask) );
}
// 给定以太的数量,返回KEY的数量
function calcKeysReceived(uint256 _rID, uint256 _eth)
public
view
returns(uint256)
{
uint256 _now = now;
if (_now > round_[_rID].strt + rndGap_ && (_now <= round_[_rID].end || (_now > round_[_rID].end && round_[_rID].plyr == 0)))
return ( (round_[_rID].eth).keysRec(_eth) );
else
return ( (_eth).keys() );
}
// 计算X个KEY需要多少ETH
function iWantXKeys(uint256 _keys)
public
view
returns(uint256)
{
uint256 _rID = rID_;
uint256 _now = now;
if (_now > round_[_rID].strt + rndGap_ && (_now <= round_[_rID].end || (_now > round_[_rID].end && round_[_rID].plyr == 0)))
return ( (round_[_rID].keys.add(_keys)).ethRec(_keys) );
else
return ( (_keys).eth() );
}
/* test use only
function setEndAfterSecond(uint256 extraSecond)
isActivated()
isHuman()
public
{
require((extraSecond > 0 && extraSecond <= 86400), "TIME Out Of Range");
require( ceo == msg.sender, "only ceo can setEnd" );
round_[rID_].end = now + extraSecond;
}
*/
function receivePlayerInfo(uint256 _pID, address _addr, bytes32 _name, uint256 _laff)
external
{
require (msg.sender == address(PlayerBook), "your not playerNames contract... hmmm..");
if (pIDxAddr_[_addr] != _pID)
pIDxAddr_[_addr] = _pID;
if (pIDxName_[_name] != _pID)
pIDxName_[_name] = _pID;
if (plyr_[_pID].addr != _addr)
plyr_[_pID].addr = _addr;
if (plyr_[_pID].name != _name)
plyr_[_pID].name = _name;
if (plyr_[_pID].laff != _laff)
plyr_[_pID].laff = _laff;
if (plyrNames_[_pID][_name] == false)
plyrNames_[_pID][_name] = true;
}
function receivePlayerNameList(uint256 _pID, bytes32 _name)
external
{
require (msg.sender == address(PlayerBook), "your not playerNames contract... hmmm..");
if(plyrNames_[_pID][_name] == false)
plyrNames_[_pID][_name] = true;
}
// 获取玩家PID
function determinePID(F3Ddatasets.EventReturns memory _eventData_)
private
returns (F3Ddatasets.EventReturns)
{
uint256 _pID = pIDxAddr_[msg.sender];
if (_pID == 0)
{
_pID = PlayerBook.getPlayerID(msg.sender);
bytes32 _name = PlayerBook.getPlayerName(_pID);
uint256 _laff = PlayerBook.getPlayerLAff(_pID);
pIDxAddr_[msg.sender] = _pID;
plyr_[_pID].addr = msg.sender;
if (_name != "")
{
pIDxName_[_name] = _pID;
plyr_[_pID].name = _name;
plyrNames_[_pID][_name] = true;
}
if (_laff != 0 && _laff != _pID)
plyr_[_pID].laff = _laff;
_eventData_.compressedData = _eventData_.compressedData + 1;
}
return (_eventData_);
}
function verifyTeam(uint256 _team)
private
pure
returns (uint256)
{
if (_team < 0 || _team > 3)
return(2);
else
return(_team);
}
function managePlayer(uint256 _pID, F3Ddatasets.EventReturns memory _eventData_)
private
returns (F3Ddatasets.EventReturns)
{
// 玩家以前玩家。更新一下小金库
if (plyr_[_pID].lrnd != 0)
updateGenVault(_pID, plyr_[_pID].lrnd);
plyr_[_pID].lrnd = rID_;
_eventData_.compressedData = _eventData_.compressedData + 10;
return(_eventData_);
}
// 结束
function endRound(F3Ddatasets.EventReturns memory _eventData_)
private
returns (F3Ddatasets.EventReturns)
{
uint256 _rID = rID_;
uint256 _winPID = round_[_rID].plyr;
uint256 _winTID = round_[_rID].team;
uint256 _pot = round_[_rID].pot;
uint256 _win = (_pot.mul(55)) / 100;
uint256 _com = (_pot / 20);
uint256 _gen = (_pot.mul(potSplit_[_winTID].gen)) / 100;
uint256 _p3d = (_pot.mul(potSplit_[_winTID].p3d)) / 100;
uint256 _res = (((_pot.sub(_win)).sub(_com)).sub(_gen)).sub(_p3d);
uint256 _ppt = (_gen.mul(1000000000000000000)) / (round_[_rID].keys);
uint256 _dust = _gen.sub((_ppt.mul(round_[_rID].keys)) / 1000000000000000000);
if (_dust > 0)
{
_gen = _gen.sub(_dust);
_res = _res.add(_dust);
}
plyr_[_winPID].win = _win.add(plyr_[_winPID].win);
_com = _com.add(_p3d);
cfo.transfer(_com);
round_[_rID].mask = _ppt.add(round_[_rID].mask);
_eventData_.compressedData = _eventData_.compressedData + (round_[_rID].end * 1000000);
_eventData_.compressedIDs = _eventData_.compressedIDs + (_winPID * 100000000000000000000000000) + (_winTID * 100000000000000000);
_eventData_.winnerAddr = plyr_[_winPID].addr;
_eventData_.winnerName = plyr_[_winPID].name;
_eventData_.amountWon = _win;
_eventData_.genAmount = _gen;
_eventData_.P3DAmount = _p3d;
_eventData_.newPot = _res;
rID_++;
_rID++;
round_[_rID].strt = now;
round_[_rID].end = now.add(rndInit_).add(rndGap_);
round_[_rID].pot = _res;
return(_eventData_);
}
// 更新玩家未统计的分成
function updateGenVault(uint256 _pID, uint256 _rIDlast)
private
{
uint256 _earnings = calcUnMaskedEarnings(_pID, _rIDlast);
if (_earnings > 0)
{
plyr_[_pID].gen = _earnings.add(plyr_[_pID].gen);
plyrRnds_[_pID][_rIDlast].mask = _earnings.add(plyrRnds_[_pID][_rIDlast].mask);
}
}
// 更新本轮时间
function updateTimer(uint256 _keys, uint256 _rID)
private
{
uint256 _now = now;
uint256 _newTime;
if (_now > round_[_rID].end && round_[_rID].plyr == 0)
_newTime = (((_keys) / (1000000000000000000)).mul(rndInc_)).add(_now);
else
_newTime = (((_keys) / (1000000000000000000)).mul(rndInc_)).add(round_[_rID].end);
if (_newTime < (rndMax_).add(_now))
round_[_rID].end = _newTime;
else
round_[_rID].end = rndMax_.add(_now);
}
// 空投是否触发判断
function airdrop()
private
view
returns(bool)
{
uint256 seed = uint256(keccak256(abi.encodePacked(
(block.timestamp).add
(block.difficulty).add
((uint256(keccak256(abi.encodePacked(block.coinbase)))) / (now)).add
(block.gaslimit).add
((uint256(keccak256(abi.encodePacked(msg.sender)))) / (now)).add
(block.number)
)));
if((seed - ((seed / 1000) * 1000)) < airDropTracker_)
return(true);
else
return(false);
}
function distributeExternal(uint256 _rID, uint256 _pID, uint256 _eth, uint256 _affID, uint256 _team, F3Ddatasets.EventReturns memory _eventData_)
private
returns(F3Ddatasets.EventReturns)
{
// 5% 开发团队
uint256 _com = _eth / 20;
// 10 推荐人
uint256 _aff = _eth / 10;
// 第一队推荐人分成30%
if (_team == 0 ) {
_aff = _eth.mul(30) / 100;
}
// MODIFY 如果推荐人不存在 10% -> _com
if (_affID != _pID && plyr_[_affID].name != '') {
plyr_[_affID].aff = _aff.add(plyr_[_affID].aff);
emit F3Devents.onAffiliatePayout(_affID, plyr_[_affID].addr, plyr_[_affID].name, _rID, _pID, _aff, now);
} else {
_com = _com.add(_aff);
}
cfo.transfer(_com);
return(_eventData_);
}
function distributeInternal(uint256 _rID, uint256 _pID, uint256 _eth, uint256 _team, uint256 _keys, F3Ddatasets.EventReturns memory _eventData_)
private
returns(F3Ddatasets.EventReturns)
{
uint256 _gen = (_eth.mul(fees_[_team].gen)) / 100;
// 5% 到空投
uint256 _air = (_eth / 20);
airDropPot_ = airDropPot_.add(_air);
if (_team == 0){
_eth = _eth.sub(((_eth.mul(40)) / 100).add((_eth.mul(fees_[_team].p3d)) / 100));
}else{
_eth = _eth.sub(((_eth.mul(20)) / 100).add((_eth.mul(fees_[_team].p3d)) / 100));
}
uint256 _pot = _eth.sub(_gen);
uint256 _dust = updateMasks(_rID, _pID, _gen, _keys);
if (_dust > 0)
_gen = _gen.sub(_dust);
round_[_rID].pot = _pot.add(_dust).add(round_[_rID].pot);
_eventData_.genAmount = _gen.add(_eventData_.genAmount);
_eventData_.potAmount = _pot;
return(_eventData_);
}
// 更新玩家已统计的分成
function updateMasks(uint256 _rID, uint256 _pID, uint256 _gen, uint256 _keys)
private
returns(uint256)
{
uint256 _ppt = (_gen.mul(1000000000000000000)) / (round_[_rID].keys);
round_[_rID].mask = _ppt.add(round_[_rID].mask);
uint256 _pearn = (_ppt.mul(_keys)) / (1000000000000000000);
plyrRnds_[_pID][_rID].mask = (((round_[_rID].mask.mul(_keys)) / (1000000000000000000)).sub(_pearn)).add(plyrRnds_[_pID][_rID].mask);
return(_gen.sub((_ppt.mul(round_[_rID].keys)) / (1000000000000000000)));
}
function withdrawEarnings(uint256 _pID)
private
returns(uint256)
{
updateGenVault(_pID, plyr_[_pID].lrnd);
uint256 _earnings = (plyr_[_pID].win).add(plyr_[_pID].gen).add(plyr_[_pID].aff);
if (_earnings > 0)
{
plyr_[_pID].win = 0;
plyr_[_pID].gen = 0;
plyr_[_pID].aff = 0;
}
return(_earnings);
}
function endTx(uint256 _pID, uint256 _team, uint256 _eth, uint256 _keys, F3Ddatasets.EventReturns memory _eventData_)
private
{
_eventData_.compressedData = _eventData_.compressedData + (now * 1000000000000000000) + (_team * 100000000000000000000000000000);
_eventData_.compressedIDs = _eventData_.compressedIDs + _pID + (rID_ * 10000000000000000000000000000000000000000000000000000);
emit F3Devents.onEndTx
(
_eventData_.compressedData,
_eventData_.compressedIDs,
plyr_[_pID].name,
msg.sender,
_eth,
_keys,
_eventData_.winnerAddr,
_eventData_.winnerName,
_eventData_.amountWon,
_eventData_.newPot,
_eventData_.P3DAmount,
_eventData_.genAmount,
_eventData_.potAmount,
airDropPot_
);
}
bool public activated_ = false;
function activate()
public
{
require( msg.sender == ceo, "ONLY ceo CAN activate" );
require(activated_ == false, "Already Activated");
activated_ = true;
rID_ = 1;
round_[1].strt = now + rndExtra_ - rndGap_;
round_[1].end = now + rndInit_ + rndExtra_;
}
}
library F3Ddatasets {
struct EventReturns {
uint256 compressedData;
uint256 compressedIDs;
address winnerAddr; // winner address
bytes32 winnerName; // winner name
uint256 amountWon; // amount won
uint256 newPot; // amount in new pot
uint256 P3DAmount; // amount distributed to p3d
uint256 genAmount; // amount distributed to gen
uint256 potAmount; // amount added to pot
}
struct Player {
address addr; // player address
bytes32 name; // player name
uint256 win; // winnings vault
uint256 gen; // general vault
uint256 aff; // affiliate vault
uint256 lrnd; // last round played
uint256 laff; // last affiliate id used
}
struct PlayerRounds {
uint256 eth; // eth player has added to round (used for eth limiter)
uint256 keys; // keys
uint256 mask; // player mask
uint256 ico; // ICO phase investment
}
struct Round {
uint256 plyr; // pID of player in lead
uint256 team; // tID of team in lead
uint256 end; // time ends/ended
bool ended; // has round end function been ran
uint256 strt; // time round started
uint256 keys; // keys
uint256 eth; // total eth in
uint256 pot; // eth to pot (during round) / final amount paid to winner (after round ends)
uint256 mask; // global mask
uint256 ico; // total eth sent in during ICO phase
uint256 icoGen; // total eth for gen during ICO phase
uint256 icoAvg; // average key price for ICO phase
}
struct TeamFee {
uint256 gen; // % of buy in thats paid to key holders of current round
uint256 p3d; // % of buy in thats paid to p3d holders
}
struct PotSplit {
uint256 gen; // % of pot thats paid to key holders of current round
uint256 p3d; // % of pot thats paid to p3d holders
}
}
library F3DKeysCalcLong {
using SafeMath for *;
// 根据ETH计算KEY
function keysRec(uint256 _curEth, uint256 _newEth)
internal
pure
returns (uint256)
{
return(keys((_curEth).add(_newEth)).sub(keys(_curEth)));
}
// 根据KEY算ETH
function ethRec(uint256 _curKeys, uint256 _sellKeys)
internal
pure
returns (uint256)
{
return((eth(_curKeys)).sub(eth(_curKeys.sub(_sellKeys))));
}
// 根据ETH算KEY
function keys(uint256 _eth)
internal
pure
returns(uint256)
{
return ((((((_eth).mul(1000000000000000000)).mul(31250000000000000000000000000)).add(56249882812561035156250000000000000000000000000000000000000000000000)).sqrt()).sub(7499992187500000000000000000000000)) / (15625000000);
}
// 根据KEY算ETH
function eth(uint256 _keys)
internal
pure
returns(uint256)
{
return ((7812500000).mul(_keys.sq()).add((7499992187500000).mul(_keys.mul(1000000000000000000)))) / ((1000000000000000000).sq()) ;
}
}
interface PlayerBookInterface {
function getPlayerID(address _addr) external returns (uint256);
function getPlayerName(uint256 _pID) external view returns (bytes32);
function getPlayerLAff(uint256 _pID) external view returns (uint256);
function getPlayerAddr(uint256 _pID) external view returns (address);
function getNameFee() external view returns (uint256);
function registerNameXIDFromDapp(address _addr, bytes32 _name, uint256 _affCode, bool _all) external payable returns(bool, uint256);
function registerNameXaddrFromDapp(address _addr, bytes32 _name, address _affCode, bool _all) external payable returns(bool, uint256);
function registerNameXnameFromDapp(address _addr, bytes32 _name, bytes32 _affCode, bool _all) external payable returns(bool, uint256);
}
library NameFilter {
function nameFilter(string _input)
internal
pure
returns(bytes32)
{
bytes memory _temp = bytes(_input);
uint256 _length = _temp.length;
require (_length <= 32 && _length > 0, "Invalid Length");
require(_temp[0] != 0x20 && _temp[_length-1] != 0x20, "Can NOT start with SPACE");
if (_temp[0] == 0x30)
{
require(_temp[1] != 0x78, "CAN NOT Start With 0x");
require(_temp[1] != 0x58, "CAN NOT Start With 0X");
}
bool _hasNonNumber;
for (uint256 i = 0; i < _length; i++)
{
// 大写转小写
if (_temp[i] > 0x40 && _temp[i] < 0x5b)
{
_temp[i] = byte(uint(_temp[i]) + 32);
if (_hasNonNumber == false)
_hasNonNumber = true;
} else {
require
(
_temp[i] == 0x20 ||
(_temp[i] > 0x60 && _temp[i] < 0x7b) ||
(_temp[i] > 0x2f && _temp[i] < 0x3a),
"Include Illegal Characters!"
);
if (_temp[i] == 0x20)
require( _temp[i+1] != 0x20,
"ONLY One Space Allowed");
if (_hasNonNumber == false && (_temp[i] < 0x30 || _temp[i] > 0x39))
_hasNonNumber = true;
}
}
require(_hasNonNumber == true, "All Numbers Not Allowed");
bytes32 _ret;
assembly {
_ret := mload(add(_temp, 32))
}
return (_ret);
}
}
library SafeMath {
function mul(uint256 a, uint256 b)
internal
pure
returns (uint256 c)
{
if (a == 0) {
return 0;
}
c = a * b;
require(c / a == b, "Mul Failed");
return c;
}
function sub(uint256 a, uint256 b)
internal
pure
returns (uint256)
{
require(b <= a, "Sub Failed");
return a - b;
}
function add(uint256 a, uint256 b)
internal
pure
returns (uint256 c)
{
c = a + b;
require(c >= a, "Add Failed");
return c;
}
function sqrt(uint256 x)
internal
pure
returns (uint256 y)
{
uint256 z = ((add(x,1)) / 2);
y = x;
while (z < y)
{
y = z;
z = ((add((x / z),z)) / 2);
}
}
function sq(uint256 x)
internal
pure
returns (uint256)
{
return (mul(x,x));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"getBuyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_affCode","type":"bytes32"},{"name":"_team","type":"uint256"},{"name":"_eth","type":"uint256"}],"name":"reLoadXname","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pIDxAddr_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airDropTracker_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cfo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"round_","outputs":[{"name":"plyr","type":"uint256"},{"name":"team","type":"uint256"},{"name":"end","type":"uint256"},{"name":"ended","type":"bool"},{"name":"strt","type":"uint256"},{"name":"keys","type":"uint256"},{"name":"eth","type":"uint256"},{"name":"pot","type":"uint256"},{"name":"mask","type":"uint256"},{"name":"ico","type":"uint256"},{"name":"icoGen","type":"uint256"},{"name":"icoAvg","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"bytes32"}],"name":"plyrNames_","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"fees_","outputs":[{"name":"gen","type":"uint256"},{"name":"p3d","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"pIDxName_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_affCode","type":"uint256"},{"name":"_team","type":"uint256"},{"name":"_eth","type":"uint256"}],"name":"reLoadXid","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"},{"name":"_affCode","type":"address"},{"name":"_all","type":"bool"}],"name":"registerNameXaddr","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_pID","type":"uint256"},{"name":"_addr","type":"address"},{"name":"_name","type":"bytes32"},{"name":"_laff","type":"uint256"}],"name":"receivePlayerInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"rndTmEth_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rID_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pID","type":"uint256"}],"name":"getPlayerVaults","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"},{"name":"_affCode","type":"bytes32"},{"name":"_all","type":"bool"}],"name":"registerNameXname","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentRoundInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"bytes32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newCEO","type":"address"}],"name":"modCEOAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_affCode","type":"address"},{"name":"_team","type":"uint256"},{"name":"_eth","type":"uint256"}],"name":"reLoadXaddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_affCode","type":"uint256"},{"name":"_team","type":"uint256"}],"name":"buyXid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_pID","type":"uint256"},{"name":"_name","type":"bytes32"}],"name":"receivePlayerNameList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ceo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"},{"name":"_affCode","type":"uint256"},{"name":"_all","type":"bool"}],"name":"registerNameXID","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_affCode","type":"address"},{"name":"_team","type":"uint256"}],"name":"buyXaddr","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"plyrRnds_","outputs":[{"name":"eth","type":"uint256"},{"name":"keys","type":"uint256"},{"name":"mask","type":"uint256"},{"name":"ico","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_affCode","type":"bytes32"},{"name":"_team","type":"uint256"}],"name":"buyXname","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"potSplit_","outputs":[{"name":"gen","type":"uint256"},{"name":"p3d","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTimeLeft","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_rID","type":"uint256"},{"name":"_eth","type":"uint256"}],"name":"calcKeysReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_keys","type":"uint256"}],"name":"iWantXKeys","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"activated_","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airDropPot_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"plyr_","outputs":[{"name":"addr","type":"address"},{"name":"name","type":"bytes32"},{"name":"win","type":"uint256"},{"name":"gen","type":"uint256"},{"name":"aff","type":"uint256"},{"name":"lrnd","type":"uint256"},{"name":"laff","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getPlayerInfoByAddress","outputs":[{"name":"","type":"uint256"},{"name":"","type":"bytes32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newCFO","type":"address"}],"name":"modCFOAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"playerID","type":"uint256"},{"indexed":true,"name":"playerAddress","type":"address"},{"indexed":true,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"isNewPlayer","type":"bool"},{"indexed":false,"name":"affiliateID","type":"uint256"},{"indexed":false,"name":"affiliateAddress","type":"address"},{"indexed":false,"name":"affiliateName","type":"bytes32"},{"indexed":false,"name":"amountPaid","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"onNewName","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"compressedData","type":"uint256"},{"indexed":false,"name":"compressedIDs","type":"uint256"},{"indexed":false,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"ethIn","type":"uint256"},{"indexed":false,"name":"keysBought","type":"uint256"},{"indexed":false,"name":"winnerAddr","type":"address"},{"indexed":false,"name":"winnerName","type":"bytes32"},{"indexed":false,"name":"amountWon","type":"uint256"},{"indexed":false,"name":"newPot","type":"uint256"},{"indexed":false,"name":"P3DAmount","type":"uint256"},{"indexed":false,"name":"genAmount","type":"uint256"},{"indexed":false,"name":"potAmount","type":"uint256"},{"indexed":false,"name":"airDropPot","type":"uint256"}],"name":"onEndTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"playerID","type":"uint256"},{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"ethOut","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"ethOut","type":"uint256"},{"indexed":false,"name":"compressedData","type":"uint256"},{"indexed":false,"name":"compressedIDs","type":"uint256"},{"indexed":false,"name":"winnerAddr","type":"address"},{"indexed":false,"name":"winnerName","type":"bytes32"},{"indexed":false,"name":"amountWon","type":"uint256"},{"indexed":false,"name":"newPot","type":"uint256"},{"indexed":false,"name":"P3DAmount","type":"uint256"},{"indexed":false,"name":"genAmount","type":"uint256"}],"name":"onWithdrawAndDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"ethIn","type":"uint256"},{"indexed":false,"name":"compressedData","type":"uint256"},{"indexed":false,"name":"compressedIDs","type":"uint256"},{"indexed":false,"name":"winnerAddr","type":"address"},{"indexed":false,"name":"winnerName","type":"bytes32"},{"indexed":false,"name":"amountWon","type":"uint256"},{"indexed":false,"name":"newPot","type":"uint256"},{"indexed":false,"name":"P3DAmount","type":"uint256"},{"indexed":false,"name":"genAmount","type":"uint256"}],"name":"onBuyAndDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"compressedData","type":"uint256"},{"indexed":false,"name":"compressedIDs","type":"uint256"},{"indexed":false,"name":"winnerAddr","type":"address"},{"indexed":false,"name":"winnerName","type":"bytes32"},{"indexed":false,"name":"amountWon","type":"uint256"},{"indexed":false,"name":"newPot","type":"uint256"},{"indexed":false,"name":"P3DAmount","type":"uint256"},{"indexed":false,"name":"genAmount","type":"uint256"}],"name":"onReLoadAndDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"affiliateID","type":"uint256"},{"indexed":false,"name":"affiliateAddress","type":"address"},{"indexed":false,"name":"affiliateName","type":"bytes32"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"buyerID","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"onAffiliatePayout","type":"event"}]Contract Creation Code
6080604052601e600281905560035560006005556010805460ff1916905534801561002957600080fd5b506000805433600160a060020a03199182168117835560018054909216178155604080518082018252601e8082526020808301868152868052600e80835293517fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c55517fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881d5583518085018552603c815280820187815286885284835290517fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be95820755517fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be958208558351808501855260148082528183018881526002808a5286855292517f9adb202b1492743bc00c81d33cdc6423fa8c79109027eb6a845391e8fc1f048155517f9adb202b1492743bc00c81d33cdc6423fa8c79109027eb6a845391e8fc1f04825585518087018752602881528084018981526003808b5296855290517fe0283e559c29e31ee7f56467acc9dd307779c843a883aeeb3bf5c6128c90814455517fe0283e559c29e31ee7f56467acc9dd307779c843a883aeeb3bf5c6128c908145558551808701875260198152808401898152898052600f80865291517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37555517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec376558651808801885294855284840189815297895280845293517f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f5595517f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f8905584518086018652600a8152808301888152918852838352517fa74ba3945261e09fde15ba3db55005b205e61eeb4ad811ac0faa2b315bffeead55517fa74ba3945261e09fde15ba3db55005b205e61eeb4ad811ac0faa2b315bffeeae558351808501909452938352828401858152918552909252517f45f76dafbbad695564362934e24d72eedc57f9fc1a65f39bca62176cc829682855517f45f76dafbbad695564362934e24d72eedc57f9fc1a65f39bca62176cc8296829556152e490819061035590396000f3006080604052600436106101e25763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663018a25e8811461036157806306fdde0314610388578063079ce327146104125780630f15f4c01461043257806310f01eba1461044757806311a09ae7146104685780631ed203471461047d57806324c33d33146104ae5780632660316e146105255780632ce21999146105545780632e19ebdc14610585578063349cdcac1461059d5780633ccfd60b146105bb5780633ddd4698146105d057806349cc635d1461062c5780635893d48114610656578063624ae5c0146106715780636306643414610686578063685ffd83146106bc578063747dff421461070f578063827037d61461079a57806382bfc739146107bb5780638f38f309146107e25780638f7140ea146107f0578063908921fc1461080b578063921dec211461082057806395d89b411461087357806398a0871d14610888578063a2bccae91461089f578063a65b37a1146108e0578063c519500e146108ee578063c7e284b814610906578063ce89c80c1461091b578063cf80800014610936578063d53b26791461094e578063d87574e014610963578063de7874f314610978578063ee0b5d8b146109d2578063f04893c214610a2b575b6101ea6151df565b60105460009060ff16151560011461023a576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015610281576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca008110156102cc576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af680000081111561031c576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b61032585610a4c565b33600090815260076020908152604080832054808452600990925290912060060154919650945061035a908590600288610d00565b5050505050005b34801561036d57600080fd5b50610376610f3a565b60408051918252519081900360200190f35b34801561039457600080fd5b5061039d611000565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d75781810151838201526020016103bf565b50505050905090810190601f1680156104045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041e57600080fd5b50610430600435602435604435611037565b005b34801561043e57600080fd5b50610430611222565b34801561045357600080fd5b50610376600160a060020a0360043516611356565b34801561047457600080fd5b50610376611368565b34801561048957600080fd5b5061049261136e565b60408051600160a060020a039092168252519081900360200190f35b3480156104ba57600080fd5b506104c660043561137d565b604080519c8d5260208d019b909b528b8b019990995296151560608b015260808a019590955260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083015251908190036101800190f35b34801561053157600080fd5b506105406004356024356113e0565b604080519115158252519081900360200190f35b34801561056057600080fd5b5061056c600435611400565b6040805192835260208301919091528051918290030190f35b34801561059157600080fd5b50610376600435611419565b3480156105a957600080fd5b5061043060043560243560443561142b565b3480156105c757600080fd5b506104306115f0565b6040805160206004803580820135601f810184900484028501840190955284845261043094369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050505060200135151561195d565b34801561063857600080fd5b50610430600435600160a060020a0360243516604435606435611b16565b34801561066257600080fd5b50610376600435602435611d07565b34801561067d57600080fd5b50610376611d24565b34801561069257600080fd5b5061069e600435611d2a565b60408051938452602084019290925282820152519081900360600190f35b6040805160206004803580820135601f8101849004840285018401909552848452610430943694929360249392840191908190840183828082843750949750508435955050505050602001351515611ed0565b34801561071b57600080fd5b50610724611fb0565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a0193909352600160a060020a0390911660e08901526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b3480156107a657600080fd5b50610430600160a060020a03600435166121ae565b3480156107c757600080fd5b50610430600160a060020a03600435166024356044356122e8565b6104306004356024356124c3565b3480156107fc57600080fd5b50610430600435602435612689565b34801561081757600080fd5b50610492612766565b6040805160206004803580820135601f8101849004840285018401909552848452610430943694929360249392840191908190840183828082843750949750508435955050505050602001351515612775565b34801561087f57600080fd5b5061039d612855565b610430600160a060020a036004351660243561288c565b3480156108ab57600080fd5b506108ba600435602435612a82565b604080519485526020850193909352838301919091526060830152519081900360800190f35b610430600435602435612ab4565b3480156108fa57600080fd5b5061056c600435612c90565b34801561091257600080fd5b50610376612ca9565b34801561092757600080fd5b50610376600435602435612d38565b34801561094257600080fd5b50610376600435612de0565b34801561095a57600080fd5b50610540612e92565b34801561096f57600080fd5b50610376612e9b565b34801561098457600080fd5b50610990600435612ea1565b60408051600160a060020a0390981688526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b3480156109de57600080fd5b506109f3600160a060020a0360043516612ee8565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a3757600080fd5b50610430600160a060020a0360043516612fbd565b610a546151df565b336000908152600760205260408120549080821515610cf757604080517fe56556a9000000000000000000000000000000000000000000000000000000008152336004820152905173a6fd21aa986247357f404aa37a7bc90809da1ad89163e56556a99160248083019260209291908290030181600087803b158015610ad957600080fd5b505af1158015610aed573d6000803e3d6000fd5b505050506040513d6020811015610b0357600080fd5b5051604080517f82e37b2c00000000000000000000000000000000000000000000000000000000815260048101839052905191945073a6fd21aa986247357f404aa37a7bc90809da1ad8916382e37b2c916024808201926020929091908290030181600087803b158015610b7657600080fd5b505af1158015610b8a573d6000803e3d6000fd5b505050506040513d6020811015610ba057600080fd5b5051604080517fe3c08adf00000000000000000000000000000000000000000000000000000000815260048101869052905191935073a6fd21aa986247357f404aa37a7bc90809da1ad89163e3c08adf916024808201926020929091908290030181600087803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050506040513d6020811015610c3d57600080fd5b505133600081815260076020908152604080832088905587835260099091529020805473ffffffffffffffffffffffffffffffffffffffff1916909117905590508115610cc6576000828152600860209081526040808320869055858352600982528083206001908101869055600b8352818420868552909252909120805460ff191690911790555b8015801590610cd55750828114155b15610cef5760008381526009602052604090206006018190555b845160010185525b50929392505050565b6006546003546000828152600c602052604090206004015442910181118015610d6b57506000828152600c602052604090206002015481111580610d6b57506000828152600c602052604090206002015481118015610d6b57506000828152600c6020526040902054155b15610d8357610d7e8287348888886130f7565b610f32565b6000828152600c602052604090206002015481118015610db557506000828152600c602052604090206003015460ff16155b15610efd576000828152600c60205260409020600301805460ff19166001179055610ddf83613648565b925080670de0b6b3a764000002836000015101836000018181525050858360200151018360200181815250507fa7801a70b37e729a11492aad44fd3dba89b4149f0609dc0f6837bf9e57e2671a3360096000898152602001908152602001600020600101543486600001518760200151886040015189606001518a608001518b60a001518c60c001518d60e00151604051808c600160a060020a0316600160a060020a031681526020018b600019166000191681526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186600019166000191681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390a15b600086815260096020526040902060030154610f1f903463ffffffff613a0216565b6000878152600960205260409020600301555b505050505050565b6006546003546000828152600c602052604081206004015490929142910181118015610fa857506000828152600c602052604090206002015481111580610fa857506000828152600c602052604090206002015481118015610fa857506000828152600c6020526040902054155b15610ff0576000828152600c6020526040902060050154610fe990670de0b6b3a764000090610fdd908263ffffffff613a0216565b9063ffffffff613a6316565b9250610ffb565b661aa535d3d0c00092505b505090565b60408051808201909152600e81527f4d75737420426520486974203444000000000000000000000000000000000000602082015281565b61103f6151df565b601054600090819060ff161515600114611091576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b80156110d8576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b85633b9aca00811015611123576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115611173576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b3360009081526007602052604090205494508815806111a2575060008581526009602052604090206001015489145b156111c05760008581526009602052604090206006015493506111ff565b60008981526008602090815260408083205488845260099092529091206006015490945084146111ff5760008581526009602052604090206006018490555b61120888613a90565b975061121785858a8a8a613ab5565b505050505050505050565b600054600160a060020a03163314611284576040805160e560020a62461bcd02815260206004820152601560248201527f4f4e4c592063656f2043414e2061637469766174650000000000000000000000604482015290519081900360640190fd5b60105460ff16156112df576040805160e560020a62461bcd02815260206004820152601160248201527f416c726561647920416374697661746564000000000000000000000000000000604482015290519081900360640190fd5b6010805460ff191660019081179091556006819055600354600254600092909252600c602052429091019081037fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b6055610e10017fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b5e55565b60076020526000908152604090205481565b60055481565b600154600160a060020a031681565b600c60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a9899979860ff909716979596949593949293919290918c565b600b60209081526000928352604080842090915290825290205460ff1681565b600e602052600090815260409020805460019091015482565b60086020526000908152604090205481565b6114336151df565b60105460009060ff161515600114611483576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b80156114ca576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b84633b9aca00811015611515576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115611565576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b33600090815260076020526040902054935087158061158357508388145b156115a15760008481526009602052604090206006015497506115ce565b60008481526009602052604090206006015488146115ce5760008481526009602052604090206006018890555b6115d787613a90565b96506115e68489898989613ab5565b5050505050505050565b6000806000806115fe6151df565b60105460ff16151560011461164b576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015611692576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b60065433600090815260076020908152604080832054848452600c909252909120600201549198504297509550861180156116df57506000878152600c602052604090206003015460ff16155b80156116f857506000878152600c602052604090205415155b1561189e576000878152600c60205260409020600301805460ff1916600117905561172283613648565b925061172d85613cd1565b9350600084111561177e57600085815260096020526040808220549051600160a060020a039091169186156108fc02918791818181858888f1935050505015801561177c573d6000803e3d6000fd5b505b85670de0b6b3a764000002836000015101836000018181525050848360200151018360200181815250507f0bd0dba8ab932212fa78150cdb7b0275da72e255875967b5cad11464cf71bedc3360096000888152602001908152602001600020600101548686600001518760200151886040015189606001518a608001518b60a001518c60c001518d60e00151604051808c600160a060020a0316600160a060020a031681526020018b600019166000191681526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186600019166000191681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390a1611954565b6118a785613cd1565b935060008411156118f857600085815260096020526040808220549051600160a060020a039091169186156108fc02918791818181858888f193505050501580156118f6573d6000803e3d6000fd5b505b6000858152600960209081526040918290206001015482513381529182015280820186905260608101889052905186917f8f36579a548bc439baa172a6521207464154da77f411e2da3db2f53affe6cc3a919081900360800190a25b50505050505050565b6000808080808033803b80156119ab576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b6119b48b613d58565b604080517faa4d490b000000000000000000000000000000000000000000000000000000008152336004820181905260248201849052600160a060020a038e1660448301528c151560648301528251939b50995034985073a6fd21aa986247357f404aa37a7bc90809da1ad89263aa4d490b928a926084808201939182900301818588803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b50505050506040513d6040811015611a7057600080fd5b508051602091820151600160a060020a03808b1660008181526007865260408082205485835260098852918190208054600190910154825188151581529889018790529416878201526060870193909352608086018c90524260a0870152915193995091975095508a92909186917fdd6176433ff5026bbce96b068584b7bbe3514227e72df9c630b749ae87e64442919081900360c00190a45050505050505050505050565b3373a6fd21aa986247357f404aa37a7bc90809da1ad814611ba7576040805160e560020a62461bcd02815260206004820152602760248201527f796f7572206e6f7420706c617965724e616d657320636f6e74726163742e2e2e60448201527f20686d6d6d2e2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383166000908152600760205260409020548414611be257600160a060020a03831660009081526007602052604090208490555b6000828152600860205260409020548414611c095760008281526008602052604090208490555b600084815260096020526040902054600160a060020a03848116911614611c5f576000848152600960205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161790555b6000848152600960205260409020600101548214611c8c5760008481526009602052604090206001018290555b6000848152600960205260409020600601548114611cb95760008481526009602052604090206006018190555b6000848152600b6020908152604080832085845290915290205460ff161515611d01576000848152600b602090815260408083208584529091529020805460ff191660011790555b50505050565b600d60209081526000928352604080842090915290825290205481565b60065481565b6006546000818152600c60205260408120600201549091829182919042118015611d6657506000818152600c602052604090206003015460ff16155b8015611d7f57506000818152600c602052604090205415155b15611ea0576000818152600c6020526040902054851415611e64576000818152600c6020526040902060070154611ded90606490611dc490603063ffffffff6144d316565b811515611dcd57fe5b60008881526009602052604090206002015491900463ffffffff613a0216565b6000868152600a60209081526040808320858452909152902060020154611e4690611e2890611e1c898661454a565b9063ffffffff61461816565b6000888152600960205260409020600301549063ffffffff613a0216565b60008781526009602052604090206004015491955093509150611ec8565b6000858152600960209081526040808320600290810154600a8452828520868652909352922090910154611e4690611e2890611e1c898661454a565b60008581526009602052604090206002810154600590910154611e4690611e28908890614678565b509193909250565b6000808080808033803b8015611f1e576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b611f278b613d58565b604080517f745ea0c1000000000000000000000000000000000000000000000000000000008152336004820181905260248201849052604482018e90528c151560648301528251939b50995034985073a6fd21aa986247357f404aa37a7bc90809da1ad89263745ea0c1928a926084808201939182900301818588803b158015611a4557600080fd5b60008060008060008060008060008060008060008060006006549050600c60008281526020019081526020016000206009015481600c600084815260200190815260200160002060050154600c600085815260200190815260200160002060020154600c600086815260200190815260200160002060040154600c600087815260200190815260200160002060070154600c600088815260200190815260200160002060000154600a02600c6000898152602001908152602001600020600101540160096000600c60008b815260200190815260200160002060000154815260200190815260200160002060000160009054906101000a9004600160a060020a031660096000600c60008c815260200190815260200160002060000154815260200190815260200160002060010154600d60008b8152602001908152602001600020600080815260200190815260200160002054600d60008c815260200190815260200160002060006001815260200190815260200160002054600d60008d815260200190815260200160002060006002815260200190815260200160002054600d60008e8152602001908152602001600020600060038152602001908152602001600020546004546103e802600554019e509e509e509e509e509e509e509e509e509e509e509e509e509e5050909192939495969798999a9b9c9d565b33803b80156121f5576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b600160a060020a0383161515612255576040805160e560020a62461bcd02815260206004820152601060248201527f43454f2043616e206e6f74206265203000000000000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a031633146122b7576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c792063656f2063616e206d6f646966792063656f000000000000000000604482015290519081900360640190fd5b50506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6122f06151df565b601054600090819060ff161515600114612342576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015612389576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b85633b9aca008110156123d4576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115612424576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b336000908152600760205260409020549450600160a060020a03891615806124545750600160a060020a03891633145b156124725760008581526009602052604090206006015493506111ff565b600160a060020a03891660009081526007602090815260408083205488845260099092529091206006015490945084146111ff57600085815260096020526040902060060184905561120888613a90565b6124cb6151df565b60105460009060ff16151560011461251b576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015612562576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca008110156125ad576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af68000008111156125fd576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b61260685610a4c565b33600090815260076020526040902054909550935086158061262757508387145b15612645576000848152600960205260409020600601549650612672565b60008481526009602052604090206006015487146126725760008481526009602052604090206006018790555b61267b86613a90565b955061195484888888610d00565b3373a6fd21aa986247357f404aa37a7bc90809da1ad81461271a576040805160e560020a62461bcd02815260206004820152602760248201527f796f7572206e6f7420706c617965724e616d657320636f6e74726163742e2e2e60448201527f20686d6d6d2e2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000828152600b6020908152604080832084845290915290205460ff161515612762576000828152600b602090815260408083208484529091529020805460ff191660011790555b5050565b600054600160a060020a031681565b6000808080808033803b80156127c3576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b6127cc8b613d58565b604080517fc0942dfd000000000000000000000000000000000000000000000000000000008152336004820181905260248201849052604482018e90528c151560648301528251939b50995034985073a6fd21aa986247357f404aa37a7bc90809da1ad89263c0942dfd928a926084808201939182900301818588803b158015611a4557600080fd5b60408051808201909152600581527f4d42543444000000000000000000000000000000000000000000000000000000602082015281565b6128946151df565b601054600090819060ff1615156001146128e6576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b801561292d576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca00811015612978576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af68000008111156129c8576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b6129d186610a4c565b336000908152600760205260409020549096509450600160a060020a0388161580612a045750600160a060020a03881633145b15612a22576000858152600960205260409020600601549350612a6b565b600160a060020a0388166000908152600760209081526040808320548884526009909252909120600601549094508414612a6b5760008581526009602052604090206006018490555b612a7487613a90565b96506115e685858989610d00565b600a60209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b612abc6151df565b601054600090819060ff161515600114612b0e576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015612b55576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca00811015612ba0576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115612bf0576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b612bf986610a4c565b336000908152600760205260409020549096509450871580612c2b575060008581526009602052604090206001015488145b15612c49576000858152600960205260409020600601549350612a6b565b6000888152600860209081526040808320548884526009909252909120600601549094508414612a6b576000858152600960205260409020600601849055612a7487613a90565b600f602052600090815260409020805460019091015482565b6006546000818152600c60205260408120600201549091904290811015612d2f576003546000838152600c602052604090206004015401811115612d09576000828152600c6020526040902060020154610fe9908263ffffffff61461816565b6003546000838152600c6020526040902060040154610fe991018263ffffffff61461816565b60009250610ffb565b6003546000838152600c6020526040812060040154909142910181118015612da257506000848152600c602052604090206002015481111580612da257506000848152600c602052604090206002015481118015612da257506000848152600c6020526040902054155b15612dd0576000848152600c6020526040902060060154612dc9908463ffffffff6146d516565b9150612dd9565b612dc9836146f6565b5092915050565b6006546003546000828152600c602052604081206004015490929142910181118015612e4e57506000828152600c602052604090206002015481111580612e4e57506000828152600c602052604090206002015481118015612e4e57506000828152600c6020526040902054155b15612e82576000828152600c6020526040902060050154612e7b908590610fdd908263ffffffff613a0216565b9250612e8b565b612e7b84614772565b5050919050565b60105460ff1681565b60045481565b6009602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154600160a060020a039095169593949293919290919087565b6000806000806000806000806000600654915050600160a060020a0389166000908152600760209081526040808320548084526009808452828520600180820154600a8752858820898952875294872001549583905293526002830154600590930154909384939091612f7e90612f60908690614678565b6000878152600960205260409020600301549063ffffffff613a0216565b600095865260096020908152604080882060040154600a83528189209989529890915290952054939e929d50909b509950919750919550909350915050565b33803b8015613004576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b600160a060020a0383161515613064576040805160e560020a62461bcd02815260206004820152601060248201527f43464f2043616e206e6f74206265203000000000000000000000000000000000604482015290519081900360640190fd5b600154600160a060020a031633146130c6576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c792063666f2063616e206d6f646966792063666f000000000000000000604482015290519081900360640190fd5b50506001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000858152600a60209081526040808320898452909152812060010154819081908190151561312d5761312a89866147d5565b94505b60008a8152600c602052604090206006015468056bc75e2d6310000011801561318757506000898152600a602090815260408083208d8452909152902054670de0b6b3a764000090613185908a63ffffffff613a0216565b115b1561320e576000898152600a602090815260408083208d84529091529020546131bf90670de0b6b3a76400009063ffffffff61461816565b93506131d1888563ffffffff61461816565b60008a8152600960205260409020600301549093506131f6908463ffffffff613a0216565b60008a81526009602052604090206003015592965086925b633b9aca0088111561363c5760008a8152600c602052604090206006015461323c908963ffffffff6146d516565b9150670de0b6b3a764000082106132b357613257828b614835565b60008a8152600c6020526040902054891461327e5760008a8152600c602052604090208990555b60008a8152600c602052604090206001015486146132ab5760008a8152600c602052604090206001018690555b845160640185525b67016345785d8a000088106134f3576005805460010190556132d3614911565b1515600114156134f357678ac7230489e8000088106133745760045460649061330390604b63ffffffff6144d316565b81151561330c57fe5b60008b8152600960205260409020600201549190049150613333908263ffffffff613a0216565b60008a815260096020526040902060020155600454613358908263ffffffff61461816565b60045584516d0eca8847c4129106ce83000000000185526134c8565b670de0b6b3a764000088101580156133935750678ac7230489e8000088105b15613420576004546064906133af90603263ffffffff6144d316565b8115156133b857fe5b60008b81526009602052604090206002015491900491506133df908263ffffffff613a0216565b60008a815260096020526040902060020155600454613404908263ffffffff61461816565b60045584516d09dc5ada82b70b59df02000000000185526134c8565b67016345785d8a0000881015801561343f5750670de0b6b3a764000088105b156134c85760045460649061345b90601963ffffffff6144d316565b81151561346457fe5b60008b815260096020526040902060020154919004915061348b908263ffffffff613a0216565b60008a8152600960205260409020600201556004546134b0908263ffffffff61461816565b60045584516d0eca8847c4129106ce83000000000185525b84516d314dc6448d9338c15b0a000000008202016c7e37be2022c0914b268000000001855260006005555b60055485516103e89091020185526000898152600a602090815260408083208d845290915290206001015461352f90839063ffffffff613a0216565b60008a8152600a602090815260408083208e8452909152902060018101919091555461355c908990613a02565b60008a8152600a602090815260408083208e8452825280832093909355600c9052206005015461359390839063ffffffff613a0216565b60008b8152600c602052604090206005810191909155600601546135be90899063ffffffff613a0216565b60008b8152600c6020908152604080832060060193909355600d8152828220898352905220546135f590899063ffffffff613a0216565b60008b8152600d602090815260408083208a845290915290205561361d8a8a8a8a8a8a614b28565b945061362d8a8a8a89868a614c7a565b945061363c89878a8589614e42565b50505050505050505050565b6136506151df565b6006546000818152600c60205260408120805460018201546007909201549092808080808080606461368989603763ffffffff6144d316565b81151561369257fe5b04965060148860008b8152600f602052604090205491900496506064906136c0908a9063ffffffff6144d316565b8115156136c957fe5b60008b8152600f602052604090206001015491900495506064906136f4908a9063ffffffff6144d316565b8115156136fd57fe5b04935061371884611e1c87818a818e8e63ffffffff61461816565b60008c8152600c602052604090206005015490935061374586670de0b6b3a764000063ffffffff6144d316565b81151561374e57fe5b60008d8152600c6020526040902060050154919004925061379c90670de0b6b3a76400009061378490859063ffffffff6144d316565b81151561378d57fe5b8791900463ffffffff61461816565b905060008111156137cc576137b7858263ffffffff61461816565b94506137c9838263ffffffff613a0216565b92505b60008a8152600960205260409020600201546137ef90889063ffffffff613a0216565b60008b815260096020526040902060020155613811868563ffffffff613a0216565b600154604051919750600160a060020a03169087156108fc029088906000818181858888f1935050505015801561384c573d6000803e3d6000fd5b5060008b8152600c602052604090206008015461387090839063ffffffff613a0216565b600c60008d815260200190815260200160002060080181905550600c60008c815260200190815260200160002060020154620f4240028d60000151018d60000181815250508867016345785d8a0000028a6a52b7d2dcc80cd2e4000000028e6020015101018d6020018181525050600960008b815260200190815260200160002060000160009054906101000a9004600160a060020a03168d60400190600160a060020a03169081600160a060020a031681525050600960008b8152602001908152602001600020600101548d606001906000191690816000191681525050868d6080018181525050848d60e0018181525050838d60c0018181525050828d60a00181815250506006600081548092919060010191905055508a806001019b505042600c60008d8152602001908152602001600020600401819055506139d36003546139c7610e1042613a0290919063ffffffff16565b9063ffffffff613a0216565b60008c8152600c6020526040902060028101919091556007018390558c9b505050505050505050505050919050565b81810182811015613a5d576040805160e560020a62461bcd02815260206004820152600a60248201527f416464204661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b92915050565b6000613a89613a80613a7b858563ffffffff61461816565b614772565b611e1c85614772565b9392505050565b600080821080613aa05750600382115b15613aad57506002613ab0565b50805b919050565b6006546003546000828152600c602052604090206004015442910181118015613b2057506000828152600c602052604090206002015481111580613b2057506000828152600c602052604090206002015481118015613b2057506000828152600c6020526040902054155b15613b5757613b3284611e1c89613cd1565b600088815260096020526040902060030155613b528288868989886130f7565b611954565b6000828152600c602052604090206002015481118015613b8957506000828152600c602052604090206003015460ff16155b15611954576000828152600c60205260409020600301805460ff19166001179055613bb383613648565b925080670de0b6b3a764000002836000015101836000018181525050868360200151018360200181815250507f88261ac70d02d5ea73e54fa6da17043c974de1021109573ec1f6f57111c823dd33600960008a815260200190815260200160002060010154856000015186602001518760400151886060015189608001518a60a001518b60c001518c60e00151604051808b600160a060020a0316600160a060020a031681526020018a6000191660001916815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186600019166000191681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390a150505050505050565b6000818152600960205260408120600501548190613cf0908490614fb0565b600083815260096020526040902060048101546003820154600290920154613d22926139c7919063ffffffff613a0216565b90506000811115613d4e5760008381526009602052604081206002810182905560038101829055600401555b8091505b50919050565b8051600090829082808060208411801590613d735750600084115b1515613dc9576040805160e560020a62461bcd02815260206004820152600e60248201527f496e76616c6964204c656e677468000000000000000000000000000000000000604482015290519081900360640190fd5b846000815181101515613dd857fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214158015613e3f57508460018503815181101515613e1757fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b1515613e95576040805160e560020a62461bcd02815260206004820152601860248201527f43616e204e4f5420737461727420776974682053504143450000000000000000604482015290519081900360640190fd5b846000815181101515613ea457fe5b90602001015160f860020a900460f860020a02600160f860020a031916603060f860020a021415613fe757846001815181101515613ede57fe5b90602001015160f860020a900460f860020a02600160f860020a031916607860f860020a0214151515613f5b576040805160e560020a62461bcd02815260206004820152601560248201527f43414e204e4f5420537461727420576974682030780000000000000000000000604482015290519081900360640190fd5b846001815181101515613f6a57fe5b90602001015160f860020a900460f860020a02600160f860020a031916605860f860020a0214151515613fe7576040805160e560020a62461bcd02815260206004820152601560248201527f43414e204e4f5420537461727420576974682030580000000000000000000000604482015290519081900360640190fd5b600091505b8382101561446b5784517f40000000000000000000000000000000000000000000000000000000000000009086908490811061402457fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015614098575084517f5b000000000000000000000000000000000000000000000000000000000000009086908490811061407957fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b156141055784828151811015156140ab57fe5b90602001015160f860020a900460f860020a0260f860020a900460200160f860020a0285838151811015156140dc57fe5b906020010190600160f860020a031916908160001a90535082151561410057600192505b614460565b848281518110151561411357fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214806141e3575084517f60000000000000000000000000000000000000000000000000000000000000009086908490811061416f57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161180156141e3575084517f7b00000000000000000000000000000000000000000000000000000000000000908690849081106141c457fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b8061428d575084517f2f000000000000000000000000000000000000000000000000000000000000009086908490811061421957fe5b90602001015160f860020a900460f860020a02600160f860020a03191611801561428d575084517f3a000000000000000000000000000000000000000000000000000000000000009086908490811061426e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b15156142e3576040805160e560020a62461bcd02815260206004820152601b60248201527f496e636c75646520496c6c6567616c2043686172616374657273210000000000604482015290519081900360640190fd5b84828151811015156142f157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214156143aa57848260010181518110151561432d57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02141515156143aa576040805160e560020a62461bcd02815260206004820152601660248201527f4f4e4c59204f6e6520537061636520416c6c6f77656400000000000000000000604482015290519081900360640190fd5b82158015614456575084517f3000000000000000000000000000000000000000000000000000000000000000908690849081106143e357fe5b90602001015160f860020a900460f860020a02600160f860020a0319161080614456575084517f39000000000000000000000000000000000000000000000000000000000000009086908490811061443757fe5b90602001015160f860020a900460f860020a02600160f860020a031916115b1561446057600192505b600190910190613fec565b6001831515146144c5576040805160e560020a62461bcd02815260206004820152601760248201527f416c6c204e756d62657273204e6f7420416c6c6f776564000000000000000000604482015290519081900360640190fd5b505050506020015192915050565b60008215156144e457506000613a5d565b508181028183828115156144f457fe5b0414613a5d576040805160e560020a62461bcd02815260206004820152600a60248201527f4d756c204661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828152600a602090815260408083208484528252808320600190810154600c8085528386206005810154938101548752600f8652938620548787529452600790920154670de0b6b3a76400009361460793926145fb9290916145d29187916064916145bc9163ffffffff6144d316565b8115156145c557fe5b049063ffffffff6144d316565b8115156145db57fe5b6000888152600c602052604090206008015491900463ffffffff613a0216565b9063ffffffff6144d316565b81151561461057fe5b049392505050565b600082821115614672576040805160e560020a62461bcd02815260206004820152600a60248201527f537562204661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000828152600a6020908152604080832084845282528083206002810154600190910154600c90935290832060080154613a8992670de0b6b3a7640000916146bf916144d3565b8115156146c857fe5b049063ffffffff61461816565b6000613a896146e3846146f6565b611e1c6146f6868663ffffffff613a0216565b60006403a35294406147626e0171c735c3cc96891d40ef2b800000611e1c61475d7c02161fe403157cb1c72647b1bc2c94dd72bd37503240644000000000006139c76b64f964e68233a76f520000006145fb8a670de0b6b3a764000063ffffffff6144d316565b615047565b81151561476b57fe5b0492915050565b6000614785670de0b6b3a764000061509a565b6147626147b76147a385670de0b6b3a764000063ffffffff6144d316565b661aa534022775e09063ffffffff6144d316565b6139c76147c38661509a565b6401d1a94a209063ffffffff6144d316565b6147dd6151df565b6000838152600960205260409020600501541561481157600083815260096020526040902060050154614811908490614fb0565b506006546000838152600960205260409020600501558051600a0181528092915050565b6000818152600c60205260408120600201544291908211801561486457506000838152600c6020526040902054155b1561488857614881826139c7601e670de0b6b3a7640000886145c5565b90506148b5565b6000838152600c60205260409020600201546148b2906139c7601e670de0b6b3a7640000886145c5565b90505b6148c761a8c08363ffffffff613a0216565b8110156148e7576000838152600c60205260409020600201819055611d01565b6148f961a8c08363ffffffff613a0216565b6000848152600c602052604090206002015550505050565b600080614a82436139c742336040516020018082600160a060020a0316600160a060020a03166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831061498c5780518252601f19909201916020918201910161496d565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120925050508115156149c257fe5b046139c7456139c742416040516020018082600160a060020a0316600160a060020a03166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b60208310614a3b5780518252601f199092019160209182019101614a1c565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912092505050811515614a7157fe5b046139c7424463ffffffff613a0216565b604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310614ad05780518252601f199092019160209182019101614ab1565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060055490945092506103e89150839050046103e80282031015614b1f5760019150614b24565b600091505b5090565b614b306151df565b60148504600a8604841515614b5f576064614b5288601e63ffffffff6144d316565b811515614b5b57fe5b0490505b878614158015614b7f575060008681526009602052604090206001015415155b15614c1f57600086815260096020526040902060040154614ba790829063ffffffff613a0216565b600087815260096020908152604091829020600481019390935582546001909301548251600160a060020a039094168452908301528181018390524260608301525189918b9189917f590bbc0fc16915a85269a48f74783c39842b7ae9eceb7c295c95dbe8b3ec7331919081900360800190a4614c32565b614c2f828263ffffffff613a0216565b91505b600154604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015614c6c573d6000803e3d6000fd5b509298975050505050505050565b614c826151df565b6000848152600e6020526040812054819081908190606490614cab908b9063ffffffff6144d316565b811515614cb457fe5b049350601489049250614cd283600454613a0290919063ffffffff16565b600455871515614d51576000888152600e6020526040902060010154614d4a90614d3d90606490614d0a908d9063ffffffff6144d316565b811515614d1357fe5b046064614d278d602863ffffffff6144d316565b811515614d3057fe5b049063ffffffff613a0216565b8a9063ffffffff61461816565b9850614d9f565b6000888152600e6020526040902060010154614d9c90614d3d90606490614d7f908d9063ffffffff6144d316565b811515614d8857fe5b046064614d278d601463ffffffff6144d316565b98505b614daf898563ffffffff61461816565b9150614dbd8b8b868a6150a6565b90506000811115614ddb57614dd8848263ffffffff61461816565b93505b60008b8152600c6020526040902060070154614e01906139c7848463ffffffff613a0216565b60008c8152600c602052604090206007015560e0860151614e2990859063ffffffff613a0216565b60e0870152506101008501525091979650505050505050565b836c01431e0fae6d7217caa00000000242670de0b6b3a76400000282600001510101816000018181525050600654751aba4714957d300d0e549208b31adb100000000000000285826020015101018160200181815250507f500e72a0e114930aebdbcb371ccdbf43922c49f979794b5de4257ff7e310c7468160000151826020015160096000898152602001908152602001600020600101543387878760400151886060015189608001518a60a001518b60c001518c60e001518d6101000151600454604051808f81526020018e81526020018d600019166000191681526020018c600160a060020a0316600160a060020a031681526020018b81526020018a815260200189600160a060020a0316600160a060020a0316815260200188600019166000191681526020018781526020018681526020018581526020018481526020018381526020018281526020019e50505050505050505050505050505060405180910390a15050505050565b6000614fbc8383614678565b9050600081111561504257600083815260096020526040902060030154614fea90829063ffffffff613a0216565b600084815260096020908152604080832060030193909355600a81528282208583529052206002015461502490829063ffffffff613a0216565b6000848152600a602090815260408083208684529091529020600201555b505050565b6000806002615057846001613a02565b81151561506057fe5b0490508291505b81811015613d52578091506002615089828581151561508257fe5b0483613a02565b81151561509257fe5b049050615067565b6000613a5d82836144d3565b6000848152600c6020526040812060050154819081906150d486670de0b6b3a764000063ffffffff6144d316565b8115156150dd57fe5b6000898152600c6020526040902060080154919004925061510590839063ffffffff613a0216565b6000888152600c6020526040902060080155670de0b6b3a7640000615130838663ffffffff6144d316565b81151561513957fe5b6000888152600a602090815260408083208c8452825280832060020154600c9092529091206008015492909104925061518c916139c7908490670de0b6b3a7640000906146bf908a63ffffffff6144d316565b6000878152600a602090815260408083208b8452825280832060020193909355600c905220600501546151d490670de0b6b3a76400009061378490859063ffffffff6144d316565b979650505050505050565b6101206040519081016040528060008152602001600081526020016000600160a060020a03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152509056004e6f742048756d616e0000000000000000000000000000000000000000000000546f6f204c6573730000000000000000000000000000000000000000000000004e6f742041637469766521000000000000000000000000000000000000000000546f6f204d6f7265000000000000000000000000000000000000000000000000a165627a7a72305820e9b4b68977c8828a4c6d7b594d044db5e0d70f9fc5a23d9079f4d750595f50890029
Deployed Bytecode
0x6080604052600436106101e25763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663018a25e8811461036157806306fdde0314610388578063079ce327146104125780630f15f4c01461043257806310f01eba1461044757806311a09ae7146104685780631ed203471461047d57806324c33d33146104ae5780632660316e146105255780632ce21999146105545780632e19ebdc14610585578063349cdcac1461059d5780633ccfd60b146105bb5780633ddd4698146105d057806349cc635d1461062c5780635893d48114610656578063624ae5c0146106715780636306643414610686578063685ffd83146106bc578063747dff421461070f578063827037d61461079a57806382bfc739146107bb5780638f38f309146107e25780638f7140ea146107f0578063908921fc1461080b578063921dec211461082057806395d89b411461087357806398a0871d14610888578063a2bccae91461089f578063a65b37a1146108e0578063c519500e146108ee578063c7e284b814610906578063ce89c80c1461091b578063cf80800014610936578063d53b26791461094e578063d87574e014610963578063de7874f314610978578063ee0b5d8b146109d2578063f04893c214610a2b575b6101ea6151df565b60105460009060ff16151560011461023a576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015610281576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca008110156102cc576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af680000081111561031c576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b61032585610a4c565b33600090815260076020908152604080832054808452600990925290912060060154919650945061035a908590600288610d00565b5050505050005b34801561036d57600080fd5b50610376610f3a565b60408051918252519081900360200190f35b34801561039457600080fd5b5061039d611000565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d75781810151838201526020016103bf565b50505050905090810190601f1680156104045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041e57600080fd5b50610430600435602435604435611037565b005b34801561043e57600080fd5b50610430611222565b34801561045357600080fd5b50610376600160a060020a0360043516611356565b34801561047457600080fd5b50610376611368565b34801561048957600080fd5b5061049261136e565b60408051600160a060020a039092168252519081900360200190f35b3480156104ba57600080fd5b506104c660043561137d565b604080519c8d5260208d019b909b528b8b019990995296151560608b015260808a019590955260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083015251908190036101800190f35b34801561053157600080fd5b506105406004356024356113e0565b604080519115158252519081900360200190f35b34801561056057600080fd5b5061056c600435611400565b6040805192835260208301919091528051918290030190f35b34801561059157600080fd5b50610376600435611419565b3480156105a957600080fd5b5061043060043560243560443561142b565b3480156105c757600080fd5b506104306115f0565b6040805160206004803580820135601f810184900484028501840190955284845261043094369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050505060200135151561195d565b34801561063857600080fd5b50610430600435600160a060020a0360243516604435606435611b16565b34801561066257600080fd5b50610376600435602435611d07565b34801561067d57600080fd5b50610376611d24565b34801561069257600080fd5b5061069e600435611d2a565b60408051938452602084019290925282820152519081900360600190f35b6040805160206004803580820135601f8101849004840285018401909552848452610430943694929360249392840191908190840183828082843750949750508435955050505050602001351515611ed0565b34801561071b57600080fd5b50610724611fb0565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a0193909352600160a060020a0390911660e08901526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b3480156107a657600080fd5b50610430600160a060020a03600435166121ae565b3480156107c757600080fd5b50610430600160a060020a03600435166024356044356122e8565b6104306004356024356124c3565b3480156107fc57600080fd5b50610430600435602435612689565b34801561081757600080fd5b50610492612766565b6040805160206004803580820135601f8101849004840285018401909552848452610430943694929360249392840191908190840183828082843750949750508435955050505050602001351515612775565b34801561087f57600080fd5b5061039d612855565b610430600160a060020a036004351660243561288c565b3480156108ab57600080fd5b506108ba600435602435612a82565b604080519485526020850193909352838301919091526060830152519081900360800190f35b610430600435602435612ab4565b3480156108fa57600080fd5b5061056c600435612c90565b34801561091257600080fd5b50610376612ca9565b34801561092757600080fd5b50610376600435602435612d38565b34801561094257600080fd5b50610376600435612de0565b34801561095a57600080fd5b50610540612e92565b34801561096f57600080fd5b50610376612e9b565b34801561098457600080fd5b50610990600435612ea1565b60408051600160a060020a0390981688526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b3480156109de57600080fd5b506109f3600160a060020a0360043516612ee8565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a3757600080fd5b50610430600160a060020a0360043516612fbd565b610a546151df565b336000908152600760205260408120549080821515610cf757604080517fe56556a9000000000000000000000000000000000000000000000000000000008152336004820152905173a6fd21aa986247357f404aa37a7bc90809da1ad89163e56556a99160248083019260209291908290030181600087803b158015610ad957600080fd5b505af1158015610aed573d6000803e3d6000fd5b505050506040513d6020811015610b0357600080fd5b5051604080517f82e37b2c00000000000000000000000000000000000000000000000000000000815260048101839052905191945073a6fd21aa986247357f404aa37a7bc90809da1ad8916382e37b2c916024808201926020929091908290030181600087803b158015610b7657600080fd5b505af1158015610b8a573d6000803e3d6000fd5b505050506040513d6020811015610ba057600080fd5b5051604080517fe3c08adf00000000000000000000000000000000000000000000000000000000815260048101869052905191935073a6fd21aa986247357f404aa37a7bc90809da1ad89163e3c08adf916024808201926020929091908290030181600087803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050506040513d6020811015610c3d57600080fd5b505133600081815260076020908152604080832088905587835260099091529020805473ffffffffffffffffffffffffffffffffffffffff1916909117905590508115610cc6576000828152600860209081526040808320869055858352600982528083206001908101869055600b8352818420868552909252909120805460ff191690911790555b8015801590610cd55750828114155b15610cef5760008381526009602052604090206006018190555b845160010185525b50929392505050565b6006546003546000828152600c602052604090206004015442910181118015610d6b57506000828152600c602052604090206002015481111580610d6b57506000828152600c602052604090206002015481118015610d6b57506000828152600c6020526040902054155b15610d8357610d7e8287348888886130f7565b610f32565b6000828152600c602052604090206002015481118015610db557506000828152600c602052604090206003015460ff16155b15610efd576000828152600c60205260409020600301805460ff19166001179055610ddf83613648565b925080670de0b6b3a764000002836000015101836000018181525050858360200151018360200181815250507fa7801a70b37e729a11492aad44fd3dba89b4149f0609dc0f6837bf9e57e2671a3360096000898152602001908152602001600020600101543486600001518760200151886040015189606001518a608001518b60a001518c60c001518d60e00151604051808c600160a060020a0316600160a060020a031681526020018b600019166000191681526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186600019166000191681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390a15b600086815260096020526040902060030154610f1f903463ffffffff613a0216565b6000878152600960205260409020600301555b505050505050565b6006546003546000828152600c602052604081206004015490929142910181118015610fa857506000828152600c602052604090206002015481111580610fa857506000828152600c602052604090206002015481118015610fa857506000828152600c6020526040902054155b15610ff0576000828152600c6020526040902060050154610fe990670de0b6b3a764000090610fdd908263ffffffff613a0216565b9063ffffffff613a6316565b9250610ffb565b661aa535d3d0c00092505b505090565b60408051808201909152600e81527f4d75737420426520486974203444000000000000000000000000000000000000602082015281565b61103f6151df565b601054600090819060ff161515600114611091576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b80156110d8576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b85633b9aca00811015611123576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115611173576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b3360009081526007602052604090205494508815806111a2575060008581526009602052604090206001015489145b156111c05760008581526009602052604090206006015493506111ff565b60008981526008602090815260408083205488845260099092529091206006015490945084146111ff5760008581526009602052604090206006018490555b61120888613a90565b975061121785858a8a8a613ab5565b505050505050505050565b600054600160a060020a03163314611284576040805160e560020a62461bcd02815260206004820152601560248201527f4f4e4c592063656f2043414e2061637469766174650000000000000000000000604482015290519081900360640190fd5b60105460ff16156112df576040805160e560020a62461bcd02815260206004820152601160248201527f416c726561647920416374697661746564000000000000000000000000000000604482015290519081900360640190fd5b6010805460ff191660019081179091556006819055600354600254600092909252600c602052429091019081037fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b6055610e10017fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b5e55565b60076020526000908152604090205481565b60055481565b600154600160a060020a031681565b600c60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a9899979860ff909716979596949593949293919290918c565b600b60209081526000928352604080842090915290825290205460ff1681565b600e602052600090815260409020805460019091015482565b60086020526000908152604090205481565b6114336151df565b60105460009060ff161515600114611483576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b80156114ca576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b84633b9aca00811015611515576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115611565576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b33600090815260076020526040902054935087158061158357508388145b156115a15760008481526009602052604090206006015497506115ce565b60008481526009602052604090206006015488146115ce5760008481526009602052604090206006018890555b6115d787613a90565b96506115e68489898989613ab5565b5050505050505050565b6000806000806115fe6151df565b60105460ff16151560011461164b576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015611692576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b60065433600090815260076020908152604080832054848452600c909252909120600201549198504297509550861180156116df57506000878152600c602052604090206003015460ff16155b80156116f857506000878152600c602052604090205415155b1561189e576000878152600c60205260409020600301805460ff1916600117905561172283613648565b925061172d85613cd1565b9350600084111561177e57600085815260096020526040808220549051600160a060020a039091169186156108fc02918791818181858888f1935050505015801561177c573d6000803e3d6000fd5b505b85670de0b6b3a764000002836000015101836000018181525050848360200151018360200181815250507f0bd0dba8ab932212fa78150cdb7b0275da72e255875967b5cad11464cf71bedc3360096000888152602001908152602001600020600101548686600001518760200151886040015189606001518a608001518b60a001518c60c001518d60e00151604051808c600160a060020a0316600160a060020a031681526020018b600019166000191681526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186600019166000191681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390a1611954565b6118a785613cd1565b935060008411156118f857600085815260096020526040808220549051600160a060020a039091169186156108fc02918791818181858888f193505050501580156118f6573d6000803e3d6000fd5b505b6000858152600960209081526040918290206001015482513381529182015280820186905260608101889052905186917f8f36579a548bc439baa172a6521207464154da77f411e2da3db2f53affe6cc3a919081900360800190a25b50505050505050565b6000808080808033803b80156119ab576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b6119b48b613d58565b604080517faa4d490b000000000000000000000000000000000000000000000000000000008152336004820181905260248201849052600160a060020a038e1660448301528c151560648301528251939b50995034985073a6fd21aa986247357f404aa37a7bc90809da1ad89263aa4d490b928a926084808201939182900301818588803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b50505050506040513d6040811015611a7057600080fd5b508051602091820151600160a060020a03808b1660008181526007865260408082205485835260098852918190208054600190910154825188151581529889018790529416878201526060870193909352608086018c90524260a0870152915193995091975095508a92909186917fdd6176433ff5026bbce96b068584b7bbe3514227e72df9c630b749ae87e64442919081900360c00190a45050505050505050505050565b3373a6fd21aa986247357f404aa37a7bc90809da1ad814611ba7576040805160e560020a62461bcd02815260206004820152602760248201527f796f7572206e6f7420706c617965724e616d657320636f6e74726163742e2e2e60448201527f20686d6d6d2e2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383166000908152600760205260409020548414611be257600160a060020a03831660009081526007602052604090208490555b6000828152600860205260409020548414611c095760008281526008602052604090208490555b600084815260096020526040902054600160a060020a03848116911614611c5f576000848152600960205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161790555b6000848152600960205260409020600101548214611c8c5760008481526009602052604090206001018290555b6000848152600960205260409020600601548114611cb95760008481526009602052604090206006018190555b6000848152600b6020908152604080832085845290915290205460ff161515611d01576000848152600b602090815260408083208584529091529020805460ff191660011790555b50505050565b600d60209081526000928352604080842090915290825290205481565b60065481565b6006546000818152600c60205260408120600201549091829182919042118015611d6657506000818152600c602052604090206003015460ff16155b8015611d7f57506000818152600c602052604090205415155b15611ea0576000818152600c6020526040902054851415611e64576000818152600c6020526040902060070154611ded90606490611dc490603063ffffffff6144d316565b811515611dcd57fe5b60008881526009602052604090206002015491900463ffffffff613a0216565b6000868152600a60209081526040808320858452909152902060020154611e4690611e2890611e1c898661454a565b9063ffffffff61461816565b6000888152600960205260409020600301549063ffffffff613a0216565b60008781526009602052604090206004015491955093509150611ec8565b6000858152600960209081526040808320600290810154600a8452828520868652909352922090910154611e4690611e2890611e1c898661454a565b60008581526009602052604090206002810154600590910154611e4690611e28908890614678565b509193909250565b6000808080808033803b8015611f1e576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b611f278b613d58565b604080517f745ea0c1000000000000000000000000000000000000000000000000000000008152336004820181905260248201849052604482018e90528c151560648301528251939b50995034985073a6fd21aa986247357f404aa37a7bc90809da1ad89263745ea0c1928a926084808201939182900301818588803b158015611a4557600080fd5b60008060008060008060008060008060008060008060006006549050600c60008281526020019081526020016000206009015481600c600084815260200190815260200160002060050154600c600085815260200190815260200160002060020154600c600086815260200190815260200160002060040154600c600087815260200190815260200160002060070154600c600088815260200190815260200160002060000154600a02600c6000898152602001908152602001600020600101540160096000600c60008b815260200190815260200160002060000154815260200190815260200160002060000160009054906101000a9004600160a060020a031660096000600c60008c815260200190815260200160002060000154815260200190815260200160002060010154600d60008b8152602001908152602001600020600080815260200190815260200160002054600d60008c815260200190815260200160002060006001815260200190815260200160002054600d60008d815260200190815260200160002060006002815260200190815260200160002054600d60008e8152602001908152602001600020600060038152602001908152602001600020546004546103e802600554019e509e509e509e509e509e509e509e509e509e509e509e509e509e5050909192939495969798999a9b9c9d565b33803b80156121f5576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b600160a060020a0383161515612255576040805160e560020a62461bcd02815260206004820152601060248201527f43454f2043616e206e6f74206265203000000000000000000000000000000000604482015290519081900360640190fd5b600054600160a060020a031633146122b7576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c792063656f2063616e206d6f646966792063656f000000000000000000604482015290519081900360640190fd5b50506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6122f06151df565b601054600090819060ff161515600114612342576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015612389576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b85633b9aca008110156123d4576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115612424576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b336000908152600760205260409020549450600160a060020a03891615806124545750600160a060020a03891633145b156124725760008581526009602052604090206006015493506111ff565b600160a060020a03891660009081526007602090815260408083205488845260099092529091206006015490945084146111ff57600085815260096020526040902060060184905561120888613a90565b6124cb6151df565b60105460009060ff16151560011461251b576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015612562576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca008110156125ad576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af68000008111156125fd576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b61260685610a4c565b33600090815260076020526040902054909550935086158061262757508387145b15612645576000848152600960205260409020600601549650612672565b60008481526009602052604090206006015487146126725760008481526009602052604090206006018790555b61267b86613a90565b955061195484888888610d00565b3373a6fd21aa986247357f404aa37a7bc90809da1ad81461271a576040805160e560020a62461bcd02815260206004820152602760248201527f796f7572206e6f7420706c617965724e616d657320636f6e74726163742e2e2e60448201527f20686d6d6d2e2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000828152600b6020908152604080832084845290915290205460ff161515612762576000828152600b602090815260408083208484529091529020805460ff191660011790555b5050565b600054600160a060020a031681565b6000808080808033803b80156127c3576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b6127cc8b613d58565b604080517fc0942dfd000000000000000000000000000000000000000000000000000000008152336004820181905260248201849052604482018e90528c151560648301528251939b50995034985073a6fd21aa986247357f404aa37a7bc90809da1ad89263c0942dfd928a926084808201939182900301818588803b158015611a4557600080fd5b60408051808201909152600581527f4d42543444000000000000000000000000000000000000000000000000000000602082015281565b6128946151df565b601054600090819060ff1615156001146128e6576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b801561292d576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca00811015612978576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af68000008111156129c8576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b6129d186610a4c565b336000908152600760205260409020549096509450600160a060020a0388161580612a045750600160a060020a03881633145b15612a22576000858152600960205260409020600601549350612a6b565b600160a060020a0388166000908152600760209081526040808320548884526009909252909120600601549094508414612a6b5760008581526009602052604090206006018490555b612a7487613a90565b96506115e685858989610d00565b600a60209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b612abc6151df565b601054600090819060ff161515600114612b0e576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020615279833981519152604482015290519081900360640190fd5b33803b8015612b55576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b34633b9aca00811015612ba0576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615259833981519152604482015290519081900360640190fd5b69152d02c7e14af6800000811115612bf0576040805160e560020a62461bcd0281526020600482015260086024820152600080516020615299833981519152604482015290519081900360640190fd5b612bf986610a4c565b336000908152600760205260409020549096509450871580612c2b575060008581526009602052604090206001015488145b15612c49576000858152600960205260409020600601549350612a6b565b6000888152600860209081526040808320548884526009909252909120600601549094508414612a6b576000858152600960205260409020600601849055612a7487613a90565b600f602052600090815260409020805460019091015482565b6006546000818152600c60205260408120600201549091904290811015612d2f576003546000838152600c602052604090206004015401811115612d09576000828152600c6020526040902060020154610fe9908263ffffffff61461816565b6003546000838152600c6020526040902060040154610fe991018263ffffffff61461816565b60009250610ffb565b6003546000838152600c6020526040812060040154909142910181118015612da257506000848152600c602052604090206002015481111580612da257506000848152600c602052604090206002015481118015612da257506000848152600c6020526040902054155b15612dd0576000848152600c6020526040902060060154612dc9908463ffffffff6146d516565b9150612dd9565b612dc9836146f6565b5092915050565b6006546003546000828152600c602052604081206004015490929142910181118015612e4e57506000828152600c602052604090206002015481111580612e4e57506000828152600c602052604090206002015481118015612e4e57506000828152600c6020526040902054155b15612e82576000828152600c6020526040902060050154612e7b908590610fdd908263ffffffff613a0216565b9250612e8b565b612e7b84614772565b5050919050565b60105460ff1681565b60045481565b6009602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154600160a060020a039095169593949293919290919087565b6000806000806000806000806000600654915050600160a060020a0389166000908152600760209081526040808320548084526009808452828520600180820154600a8752858820898952875294872001549583905293526002830154600590930154909384939091612f7e90612f60908690614678565b6000878152600960205260409020600301549063ffffffff613a0216565b600095865260096020908152604080882060040154600a83528189209989529890915290952054939e929d50909b509950919750919550909350915050565b33803b8015613004576040805160e560020a62461bcd0281526020600482015260096024820152600080516020615239833981519152604482015290519081900360640190fd5b600160a060020a0383161515613064576040805160e560020a62461bcd02815260206004820152601060248201527f43464f2043616e206e6f74206265203000000000000000000000000000000000604482015290519081900360640190fd5b600154600160a060020a031633146130c6576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c792063666f2063616e206d6f646966792063666f000000000000000000604482015290519081900360640190fd5b50506001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000858152600a60209081526040808320898452909152812060010154819081908190151561312d5761312a89866147d5565b94505b60008a8152600c602052604090206006015468056bc75e2d6310000011801561318757506000898152600a602090815260408083208d8452909152902054670de0b6b3a764000090613185908a63ffffffff613a0216565b115b1561320e576000898152600a602090815260408083208d84529091529020546131bf90670de0b6b3a76400009063ffffffff61461816565b93506131d1888563ffffffff61461816565b60008a8152600960205260409020600301549093506131f6908463ffffffff613a0216565b60008a81526009602052604090206003015592965086925b633b9aca0088111561363c5760008a8152600c602052604090206006015461323c908963ffffffff6146d516565b9150670de0b6b3a764000082106132b357613257828b614835565b60008a8152600c6020526040902054891461327e5760008a8152600c602052604090208990555b60008a8152600c602052604090206001015486146132ab5760008a8152600c602052604090206001018690555b845160640185525b67016345785d8a000088106134f3576005805460010190556132d3614911565b1515600114156134f357678ac7230489e8000088106133745760045460649061330390604b63ffffffff6144d316565b81151561330c57fe5b60008b8152600960205260409020600201549190049150613333908263ffffffff613a0216565b60008a815260096020526040902060020155600454613358908263ffffffff61461816565b60045584516d0eca8847c4129106ce83000000000185526134c8565b670de0b6b3a764000088101580156133935750678ac7230489e8000088105b15613420576004546064906133af90603263ffffffff6144d316565b8115156133b857fe5b60008b81526009602052604090206002015491900491506133df908263ffffffff613a0216565b60008a815260096020526040902060020155600454613404908263ffffffff61461816565b60045584516d09dc5ada82b70b59df02000000000185526134c8565b67016345785d8a0000881015801561343f5750670de0b6b3a764000088105b156134c85760045460649061345b90601963ffffffff6144d316565b81151561346457fe5b60008b815260096020526040902060020154919004915061348b908263ffffffff613a0216565b60008a8152600960205260409020600201556004546134b0908263ffffffff61461816565b60045584516d0eca8847c4129106ce83000000000185525b84516d314dc6448d9338c15b0a000000008202016c7e37be2022c0914b268000000001855260006005555b60055485516103e89091020185526000898152600a602090815260408083208d845290915290206001015461352f90839063ffffffff613a0216565b60008a8152600a602090815260408083208e8452909152902060018101919091555461355c908990613a02565b60008a8152600a602090815260408083208e8452825280832093909355600c9052206005015461359390839063ffffffff613a0216565b60008b8152600c602052604090206005810191909155600601546135be90899063ffffffff613a0216565b60008b8152600c6020908152604080832060060193909355600d8152828220898352905220546135f590899063ffffffff613a0216565b60008b8152600d602090815260408083208a845290915290205561361d8a8a8a8a8a8a614b28565b945061362d8a8a8a89868a614c7a565b945061363c89878a8589614e42565b50505050505050505050565b6136506151df565b6006546000818152600c60205260408120805460018201546007909201549092808080808080606461368989603763ffffffff6144d316565b81151561369257fe5b04965060148860008b8152600f602052604090205491900496506064906136c0908a9063ffffffff6144d316565b8115156136c957fe5b60008b8152600f602052604090206001015491900495506064906136f4908a9063ffffffff6144d316565b8115156136fd57fe5b04935061371884611e1c87818a818e8e63ffffffff61461816565b60008c8152600c602052604090206005015490935061374586670de0b6b3a764000063ffffffff6144d316565b81151561374e57fe5b60008d8152600c6020526040902060050154919004925061379c90670de0b6b3a76400009061378490859063ffffffff6144d316565b81151561378d57fe5b8791900463ffffffff61461816565b905060008111156137cc576137b7858263ffffffff61461816565b94506137c9838263ffffffff613a0216565b92505b60008a8152600960205260409020600201546137ef90889063ffffffff613a0216565b60008b815260096020526040902060020155613811868563ffffffff613a0216565b600154604051919750600160a060020a03169087156108fc029088906000818181858888f1935050505015801561384c573d6000803e3d6000fd5b5060008b8152600c602052604090206008015461387090839063ffffffff613a0216565b600c60008d815260200190815260200160002060080181905550600c60008c815260200190815260200160002060020154620f4240028d60000151018d60000181815250508867016345785d8a0000028a6a52b7d2dcc80cd2e4000000028e6020015101018d6020018181525050600960008b815260200190815260200160002060000160009054906101000a9004600160a060020a03168d60400190600160a060020a03169081600160a060020a031681525050600960008b8152602001908152602001600020600101548d606001906000191690816000191681525050868d6080018181525050848d60e0018181525050838d60c0018181525050828d60a00181815250506006600081548092919060010191905055508a806001019b505042600c60008d8152602001908152602001600020600401819055506139d36003546139c7610e1042613a0290919063ffffffff16565b9063ffffffff613a0216565b60008c8152600c6020526040902060028101919091556007018390558c9b505050505050505050505050919050565b81810182811015613a5d576040805160e560020a62461bcd02815260206004820152600a60248201527f416464204661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b92915050565b6000613a89613a80613a7b858563ffffffff61461816565b614772565b611e1c85614772565b9392505050565b600080821080613aa05750600382115b15613aad57506002613ab0565b50805b919050565b6006546003546000828152600c602052604090206004015442910181118015613b2057506000828152600c602052604090206002015481111580613b2057506000828152600c602052604090206002015481118015613b2057506000828152600c6020526040902054155b15613b5757613b3284611e1c89613cd1565b600088815260096020526040902060030155613b528288868989886130f7565b611954565b6000828152600c602052604090206002015481118015613b8957506000828152600c602052604090206003015460ff16155b15611954576000828152600c60205260409020600301805460ff19166001179055613bb383613648565b925080670de0b6b3a764000002836000015101836000018181525050868360200151018360200181815250507f88261ac70d02d5ea73e54fa6da17043c974de1021109573ec1f6f57111c823dd33600960008a815260200190815260200160002060010154856000015186602001518760400151886060015189608001518a60a001518b60c001518c60e00151604051808b600160a060020a0316600160a060020a031681526020018a6000191660001916815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186600019166000191681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390a150505050505050565b6000818152600960205260408120600501548190613cf0908490614fb0565b600083815260096020526040902060048101546003820154600290920154613d22926139c7919063ffffffff613a0216565b90506000811115613d4e5760008381526009602052604081206002810182905560038101829055600401555b8091505b50919050565b8051600090829082808060208411801590613d735750600084115b1515613dc9576040805160e560020a62461bcd02815260206004820152600e60248201527f496e76616c6964204c656e677468000000000000000000000000000000000000604482015290519081900360640190fd5b846000815181101515613dd857fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214158015613e3f57508460018503815181101515613e1757fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b1515613e95576040805160e560020a62461bcd02815260206004820152601860248201527f43616e204e4f5420737461727420776974682053504143450000000000000000604482015290519081900360640190fd5b846000815181101515613ea457fe5b90602001015160f860020a900460f860020a02600160f860020a031916603060f860020a021415613fe757846001815181101515613ede57fe5b90602001015160f860020a900460f860020a02600160f860020a031916607860f860020a0214151515613f5b576040805160e560020a62461bcd02815260206004820152601560248201527f43414e204e4f5420537461727420576974682030780000000000000000000000604482015290519081900360640190fd5b846001815181101515613f6a57fe5b90602001015160f860020a900460f860020a02600160f860020a031916605860f860020a0214151515613fe7576040805160e560020a62461bcd02815260206004820152601560248201527f43414e204e4f5420537461727420576974682030580000000000000000000000604482015290519081900360640190fd5b600091505b8382101561446b5784517f40000000000000000000000000000000000000000000000000000000000000009086908490811061402457fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015614098575084517f5b000000000000000000000000000000000000000000000000000000000000009086908490811061407957fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b156141055784828151811015156140ab57fe5b90602001015160f860020a900460f860020a0260f860020a900460200160f860020a0285838151811015156140dc57fe5b906020010190600160f860020a031916908160001a90535082151561410057600192505b614460565b848281518110151561411357fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214806141e3575084517f60000000000000000000000000000000000000000000000000000000000000009086908490811061416f57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161180156141e3575084517f7b00000000000000000000000000000000000000000000000000000000000000908690849081106141c457fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b8061428d575084517f2f000000000000000000000000000000000000000000000000000000000000009086908490811061421957fe5b90602001015160f860020a900460f860020a02600160f860020a03191611801561428d575084517f3a000000000000000000000000000000000000000000000000000000000000009086908490811061426e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b15156142e3576040805160e560020a62461bcd02815260206004820152601b60248201527f496e636c75646520496c6c6567616c2043686172616374657273210000000000604482015290519081900360640190fd5b84828151811015156142f157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214156143aa57848260010181518110151561432d57fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02141515156143aa576040805160e560020a62461bcd02815260206004820152601660248201527f4f4e4c59204f6e6520537061636520416c6c6f77656400000000000000000000604482015290519081900360640190fd5b82158015614456575084517f3000000000000000000000000000000000000000000000000000000000000000908690849081106143e357fe5b90602001015160f860020a900460f860020a02600160f860020a0319161080614456575084517f39000000000000000000000000000000000000000000000000000000000000009086908490811061443757fe5b90602001015160f860020a900460f860020a02600160f860020a031916115b1561446057600192505b600190910190613fec565b6001831515146144c5576040805160e560020a62461bcd02815260206004820152601760248201527f416c6c204e756d62657273204e6f7420416c6c6f776564000000000000000000604482015290519081900360640190fd5b505050506020015192915050565b60008215156144e457506000613a5d565b508181028183828115156144f457fe5b0414613a5d576040805160e560020a62461bcd02815260206004820152600a60248201527f4d756c204661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828152600a602090815260408083208484528252808320600190810154600c8085528386206005810154938101548752600f8652938620548787529452600790920154670de0b6b3a76400009361460793926145fb9290916145d29187916064916145bc9163ffffffff6144d316565b8115156145c557fe5b049063ffffffff6144d316565b8115156145db57fe5b6000888152600c602052604090206008015491900463ffffffff613a0216565b9063ffffffff6144d316565b81151561461057fe5b049392505050565b600082821115614672576040805160e560020a62461bcd02815260206004820152600a60248201527f537562204661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000828152600a6020908152604080832084845282528083206002810154600190910154600c90935290832060080154613a8992670de0b6b3a7640000916146bf916144d3565b8115156146c857fe5b049063ffffffff61461816565b6000613a896146e3846146f6565b611e1c6146f6868663ffffffff613a0216565b60006403a35294406147626e0171c735c3cc96891d40ef2b800000611e1c61475d7c02161fe403157cb1c72647b1bc2c94dd72bd37503240644000000000006139c76b64f964e68233a76f520000006145fb8a670de0b6b3a764000063ffffffff6144d316565b615047565b81151561476b57fe5b0492915050565b6000614785670de0b6b3a764000061509a565b6147626147b76147a385670de0b6b3a764000063ffffffff6144d316565b661aa534022775e09063ffffffff6144d316565b6139c76147c38661509a565b6401d1a94a209063ffffffff6144d316565b6147dd6151df565b6000838152600960205260409020600501541561481157600083815260096020526040902060050154614811908490614fb0565b506006546000838152600960205260409020600501558051600a0181528092915050565b6000818152600c60205260408120600201544291908211801561486457506000838152600c6020526040902054155b1561488857614881826139c7601e670de0b6b3a7640000886145c5565b90506148b5565b6000838152600c60205260409020600201546148b2906139c7601e670de0b6b3a7640000886145c5565b90505b6148c761a8c08363ffffffff613a0216565b8110156148e7576000838152600c60205260409020600201819055611d01565b6148f961a8c08363ffffffff613a0216565b6000848152600c602052604090206002015550505050565b600080614a82436139c742336040516020018082600160a060020a0316600160a060020a03166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831061498c5780518252601f19909201916020918201910161496d565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120925050508115156149c257fe5b046139c7456139c742416040516020018082600160a060020a0316600160a060020a03166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b60208310614a3b5780518252601f199092019160209182019101614a1c565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912092505050811515614a7157fe5b046139c7424463ffffffff613a0216565b604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310614ad05780518252601f199092019160209182019101614ab1565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060055490945092506103e89150839050046103e80282031015614b1f5760019150614b24565b600091505b5090565b614b306151df565b60148504600a8604841515614b5f576064614b5288601e63ffffffff6144d316565b811515614b5b57fe5b0490505b878614158015614b7f575060008681526009602052604090206001015415155b15614c1f57600086815260096020526040902060040154614ba790829063ffffffff613a0216565b600087815260096020908152604091829020600481019390935582546001909301548251600160a060020a039094168452908301528181018390524260608301525189918b9189917f590bbc0fc16915a85269a48f74783c39842b7ae9eceb7c295c95dbe8b3ec7331919081900360800190a4614c32565b614c2f828263ffffffff613a0216565b91505b600154604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015614c6c573d6000803e3d6000fd5b509298975050505050505050565b614c826151df565b6000848152600e6020526040812054819081908190606490614cab908b9063ffffffff6144d316565b811515614cb457fe5b049350601489049250614cd283600454613a0290919063ffffffff16565b600455871515614d51576000888152600e6020526040902060010154614d4a90614d3d90606490614d0a908d9063ffffffff6144d316565b811515614d1357fe5b046064614d278d602863ffffffff6144d316565b811515614d3057fe5b049063ffffffff613a0216565b8a9063ffffffff61461816565b9850614d9f565b6000888152600e6020526040902060010154614d9c90614d3d90606490614d7f908d9063ffffffff6144d316565b811515614d8857fe5b046064614d278d601463ffffffff6144d316565b98505b614daf898563ffffffff61461816565b9150614dbd8b8b868a6150a6565b90506000811115614ddb57614dd8848263ffffffff61461816565b93505b60008b8152600c6020526040902060070154614e01906139c7848463ffffffff613a0216565b60008c8152600c602052604090206007015560e0860151614e2990859063ffffffff613a0216565b60e0870152506101008501525091979650505050505050565b836c01431e0fae6d7217caa00000000242670de0b6b3a76400000282600001510101816000018181525050600654751aba4714957d300d0e549208b31adb100000000000000285826020015101018160200181815250507f500e72a0e114930aebdbcb371ccdbf43922c49f979794b5de4257ff7e310c7468160000151826020015160096000898152602001908152602001600020600101543387878760400151886060015189608001518a60a001518b60c001518c60e001518d6101000151600454604051808f81526020018e81526020018d600019166000191681526020018c600160a060020a0316600160a060020a031681526020018b81526020018a815260200189600160a060020a0316600160a060020a0316815260200188600019166000191681526020018781526020018681526020018581526020018481526020018381526020018281526020019e50505050505050505050505050505060405180910390a15050505050565b6000614fbc8383614678565b9050600081111561504257600083815260096020526040902060030154614fea90829063ffffffff613a0216565b600084815260096020908152604080832060030193909355600a81528282208583529052206002015461502490829063ffffffff613a0216565b6000848152600a602090815260408083208684529091529020600201555b505050565b6000806002615057846001613a02565b81151561506057fe5b0490508291505b81811015613d52578091506002615089828581151561508257fe5b0483613a02565b81151561509257fe5b049050615067565b6000613a5d82836144d3565b6000848152600c6020526040812060050154819081906150d486670de0b6b3a764000063ffffffff6144d316565b8115156150dd57fe5b6000898152600c6020526040902060080154919004925061510590839063ffffffff613a0216565b6000888152600c6020526040902060080155670de0b6b3a7640000615130838663ffffffff6144d316565b81151561513957fe5b6000888152600a602090815260408083208c8452825280832060020154600c9092529091206008015492909104925061518c916139c7908490670de0b6b3a7640000906146bf908a63ffffffff6144d316565b6000878152600a602090815260408083208b8452825280832060020193909355600c905220600501546151d490670de0b6b3a76400009061378490859063ffffffff6144d316565b979650505050505050565b6101206040519081016040528060008152602001600081526020016000600160a060020a03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152509056004e6f742048756d616e0000000000000000000000000000000000000000000000546f6f204c6573730000000000000000000000000000000000000000000000004e6f742041637469766521000000000000000000000000000000000000000000546f6f204d6f7265000000000000000000000000000000000000000000000000a165627a7a72305820e9b4b68977c8828a4c6d7b594d044db5e0d70f9fc5a23d9079f4d750595f50890029
Swarm Source
bzzr://e9b4b68977c8828a4c6d7b594d044db5e0d70f9fc5a23d9079f4d750595f5089
Loading...
Loading
Loading...
Loading
Net Worth in USD
$1,102.66
Net Worth in ETH
0.526914
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,092.37 | 0.527 | $1,102.66 |
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.