Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
5,000,000,000 XMLY
Holders
2,094
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XMLY
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-08-22 */ pragma solidity ^0.4.18; // ---------------------------------------------------------------------------- //喜马拉雅交易所 contract // //喜马拉雅荣耀 // Symbol : XMH // Name : XiMaLaYa Honor // Total supply: 1000 // Decimals : 0 // //喜马拉雅币 // Symbol : XMLY // Name : XiMaLaYa Token // Total supply: 100000000000 // Decimals : 18 // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // Safe maths // ---------------------------------------------------------------------------- contract SafeMath { function safeAdd(uint a, uint b) public pure returns (uint c) { c = a + b; require(c >= a); } function safeSub(uint a, uint b) public pure returns (uint c) { require(b <= a); c = a - b; } function safeMul(uint a, uint b) public pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function safeDiv(uint a, uint b) public pure returns (uint c) { require(b > 0); c = a / b; } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // ---------------------------------------------------------------------------- contract ERC20Interface { function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } // ---------------------------------------------------------------------------- // Contract function to receive approval and execute function in one call // // Borrowed from MiniMeToken // ---------------------------------------------------------------------------- contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) public; } // ---------------------------------------------------------------------------- // Admin contract // ---------------------------------------------------------------------------- contract Administration { event AdminTransferred(address indexed _from, address indexed _to); event Pause(); event Unpause(); address public CEOAddress = 0x5B807E379170d42f3B099C01A5399a2e1e58963B; address public CFOAddress = 0x92cFfCD79E6Ab6B16C7AFb96fbC0a2373bE516A4; bool public paused = false; modifier onlyCEO() { require(msg.sender == CEOAddress); _; } modifier onlyAdmin() { require(msg.sender == CEOAddress || msg.sender == CFOAddress); _; } function setCFO(address _newAdmin) public onlyCEO { require(_newAdmin != address(0)); AdminTransferred(CFOAddress, _newAdmin); CFOAddress = _newAdmin; } function withdrawBalance() external onlyAdmin { CEOAddress.transfer(this.balance); } modifier whenNotPaused() { require(!paused); _; } modifier whenPaused() { require(paused); _; } function pause() public onlyAdmin whenNotPaused returns(bool) { paused = true; Pause(); return true; } function unpause() public onlyAdmin whenPaused returns(bool) { paused = false; Unpause(); return true; } uint oneEth = 1 ether; } contract XMLYBadge is ERC20Interface, Administration, SafeMath { event BadgeTransfer(address indexed from, address indexed to, uint tokens); string public badgeSymbol; string public badgeName; uint8 public badgeDecimals; uint public _badgeTotalSupply; mapping(address => uint) badgeBalances; mapping(address => bool) badgeFreezed; mapping(address => uint) badgeFreezeAmount; mapping(address => uint) badgeUnlockTime; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ function XMLYBadge() public { badgeSymbol = "XMH"; badgeName = "XMLY Honor"; badgeDecimals = 0; _badgeTotalSupply = 1000; badgeBalances[CFOAddress] = _badgeTotalSupply; BadgeTransfer(address(0), CFOAddress, _badgeTotalSupply); } // ------------------------------------------------------------------------ // Total supply // ------------------------------------------------------------------------ function badgeTotalSupply() public constant returns (uint) { return _badgeTotalSupply - badgeBalances[address(0)]; } // ------------------------------------------------------------------------ // Get the token balance for account tokenOwner // ------------------------------------------------------------------------ function badgeBalanceOf(address tokenOwner) public constant returns (uint balance) { return badgeBalances[tokenOwner]; } // ------------------------------------------------------------------------ // Transfer the balance from token owner's account to to account // - Owner's account must have sufficient balance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function badgeTransfer(address to, uint tokens) public whenNotPaused returns (bool success) { if(badgeFreezed[msg.sender] == false){ badgeBalances[msg.sender] = safeSub(badgeBalances[msg.sender], tokens); badgeBalances[to] = safeAdd(badgeBalances[to], tokens); BadgeTransfer(msg.sender, to, tokens); } else { if(badgeBalances[msg.sender] > badgeFreezeAmount[msg.sender]) { require(tokens <= safeSub(badgeBalances[msg.sender], badgeFreezeAmount[msg.sender])); badgeBalances[msg.sender] = safeSub(badgeBalances[msg.sender], tokens); badgeBalances[to] = safeAdd(badgeBalances[to], tokens); BadgeTransfer(msg.sender, to, tokens); } } return true; } // ------------------------------------------------------------------------ // Mint Tokens // ------------------------------------------------------------------------ function mintBadge(uint amount) public onlyAdmin { badgeBalances[msg.sender] = safeAdd(badgeBalances[msg.sender], amount); _badgeTotalSupply = safeAdd(_badgeTotalSupply, amount); } // ------------------------------------------------------------------------ // Burn Tokens // ------------------------------------------------------------------------ function burnBadge(uint amount) public onlyAdmin { badgeBalances[msg.sender] = safeSub(badgeBalances[msg.sender], amount); _badgeTotalSupply = safeSub(_badgeTotalSupply, amount); } // ------------------------------------------------------------------------ // Freeze Tokens // ------------------------------------------------------------------------ function badgeFreeze(address user, uint amount, uint period) public onlyAdmin { require(badgeBalances[user] >= amount); badgeFreezed[user] = true; badgeUnlockTime[user] = uint(now) + period; badgeFreezeAmount[user] = amount; } function _badgeFreeze(uint amount) internal { require(badgeFreezed[msg.sender] == false); require(badgeBalances[msg.sender] >= amount); badgeFreezed[msg.sender] = true; badgeUnlockTime[msg.sender] = uint(-1); badgeFreezeAmount[msg.sender] = amount; } // ------------------------------------------------------------------------ // UnFreeze Tokens // ------------------------------------------------------------------------ function badgeUnFreeze() public whenNotPaused { require(badgeFreezed[msg.sender] == true); require(badgeUnlockTime[msg.sender] < uint(now)); badgeFreezed[msg.sender] = false; badgeFreezeAmount[msg.sender] = 0; } function _badgeUnFreeze(uint _amount) internal { require(badgeFreezed[msg.sender] == true); badgeUnlockTime[msg.sender] = 0; badgeFreezed[msg.sender] = false; badgeFreezeAmount[msg.sender] = safeSub(badgeFreezeAmount[msg.sender], _amount); } function badgeIfFreeze(address user) public view returns ( bool check, uint amount, uint timeLeft ) { check = badgeFreezed[user]; amount = badgeFreezeAmount[user]; timeLeft = badgeUnlockTime[user] - uint(now); } } contract XMLYToken is XMLYBadge { event PartnerCreated(uint indexed partnerId, address indexed partner, uint indexed amount, uint singleTrans, uint durance); event RewardDistribute(uint indexed postId, uint partnerId, address indexed user, uint indexed amount); event VipAgreementSign(uint indexed vipId, address indexed vip, uint durance, uint frequence, uint salar); event SalaryReceived(uint indexed vipId, address indexed vip, uint salary, uint indexed timestamp); string public symbol; string public name; uint8 public decimals; uint public _totalSupply; uint public minePool; struct Partner { address admin; uint tokenPool; uint singleTrans; uint timestamp; uint durance; } struct Poster { address poster; bytes32 hashData; uint reward; } struct Vip { address vip; uint durance; uint frequence; uint salary; uint timestamp; } Partner[] partners; Vip[] vips; modifier onlyPartner(uint _partnerId) { require(partners[_partnerId].admin == msg.sender); require(partners[_partnerId].tokenPool > uint(0)); uint deadline = safeAdd(partners[_partnerId].timestamp, partners[_partnerId].durance); require(deadline > now); _; } modifier onlyVip(uint _vipId) { require(vips[_vipId].vip == msg.sender); require(vips[_vipId].durance > now); require(vips[_vipId].timestamp < now); _; } mapping(address => uint) balances; mapping(address => mapping(address => uint)) allowed; mapping(address => bool) freezed; mapping(address => uint) freezeAmount; mapping(address => uint) unlockTime; mapping(uint => Poster[]) PartnerIdToPosterList; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ function XMLYToken() public { symbol = "XMLY"; name = "XMLY Token"; decimals = 18; _totalSupply = 5000000000000000000000000000; minePool = 95000000000000000000000000000; balances[CFOAddress] = _totalSupply; Transfer(address(0), CFOAddress, _totalSupply); } // ------------------------------------------------------------------------ // Total supply // ------------------------------------------------------------------------ function totalSupply() public constant returns (uint) { return _totalSupply - balances[address(0)]; } // ------------------------------------------------------------------------ // Get the token balance for account tokenOwner // ------------------------------------------------------------------------ function balanceOf(address tokenOwner) public constant returns (uint balance) { return balances[tokenOwner]; } // ------------------------------------------------------------------------ // Transfer the balance from token owner's account to to account // - Owner's account must have sufficient balance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transfer(address to, uint tokens) public returns (bool success) { if(freezed[msg.sender] == false){ balances[msg.sender] = safeSub(balances[msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); Transfer(msg.sender, to, tokens); } else { if(balances[msg.sender] > freezeAmount[msg.sender]) { require(tokens <= safeSub(balances[msg.sender], freezeAmount[msg.sender])); balances[msg.sender] = safeSub(balances[msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); Transfer(msg.sender, to, tokens); } } return true; } // ------------------------------------------------------------------------ // Token owner can approve for spender to transferFrom(...) tokens // from the token owner's account // // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // recommends that there are no checks for the approval double-spend attack // as this should be implemented in user interfaces // ------------------------------------------------------------------------ function approve(address spender, uint tokens) public returns (bool success) { require(freezed[msg.sender] != true); allowed[msg.sender][spender] = tokens; Approval(msg.sender, spender, tokens); return true; } // ------------------------------------------------------------------------ // Transfer tokens from the from account to the to account // // The calling account must already have sufficient tokens approve(...)-d // for spending from the from account and // - From account must have sufficient balance to transfer // - Spender must have sufficient allowance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transferFrom(address from, address to, uint tokens) public returns (bool success) { balances[from] = safeSub(balances[from], tokens); allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); Transfer(from, to, tokens); return true; } // ------------------------------------------------------------------------ // Returns the amount of tokens approved by the owner that can be // transferred to the spender's account // ------------------------------------------------------------------------ function allowance(address tokenOwner, address spender) public constant returns (uint remaining) { require(freezed[msg.sender] != true); return allowed[tokenOwner][spender]; } // ------------------------------------------------------------------------ // Token owner can approve for spender to transferFrom(...) tokens // from the token owner's account. The spender contract function // receiveApproval(...) is then executed // ------------------------------------------------------------------------ function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) { require(freezed[msg.sender] != true); allowed[msg.sender][spender] = tokens; Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data); return true; } // ------------------------------------------------------------------------ // Mint Tokens // ------------------------------------------------------------------------ function _mint(uint amount, address receiver) internal { require(minePool >= amount); minePool = safeSub(minePool, amount); _totalSupply = safeAdd(_totalSupply, amount); balances[receiver] = safeAdd(balances[receiver], amount); Transfer(address(0), receiver, amount); } function mint(uint amount) public onlyAdmin { require(minePool >= amount); minePool = safeSub(minePool, amount); balances[msg.sender] = safeAdd(balances[msg.sender], amount); _totalSupply = safeAdd(_totalSupply, amount); } function burn(uint amount) public onlyAdmin { require(_totalSupply >= amount); balances[msg.sender] = safeSub(balances[msg.sender], amount); _totalSupply = safeSub(_totalSupply, amount); } // ------------------------------------------------------------------------ // Freeze Tokens // ------------------------------------------------------------------------ function freeze(address user, uint amount, uint period) public onlyAdmin { require(balances[user] >= amount); freezed[user] = true; unlockTime[user] = uint(now) + period; freezeAmount[user] = amount; } // ------------------------------------------------------------------------ // UnFreeze Tokens // ------------------------------------------------------------------------ function unFreeze() public whenNotPaused { require(freezed[msg.sender] == true); require(unlockTime[msg.sender] < uint(now)); freezed[msg.sender] = false; freezeAmount[msg.sender] = 0; } function ifFreeze(address user) public view returns ( bool check, uint amount, uint timeLeft ) { check = freezed[user]; amount = freezeAmount[user]; timeLeft = unlockTime[user] - uint(now); } // ------------------------------------------------------------------------ // Partner Authorization // ------------------------------------------------------------------------ function createPartner(address _partner, uint _amount, uint _singleTrans, uint _durance) public onlyAdmin returns (uint) { Partner memory _Partner = Partner({ admin: _partner, tokenPool: _amount, singleTrans: _singleTrans, timestamp: uint(now), durance: _durance }); uint newPartnerId = partners.push(_Partner) - 1; PartnerCreated(newPartnerId, _partner, _amount, _singleTrans, _durance); return newPartnerId; } function partnerTransfer(uint _partnerId, bytes32 _data, address _to, uint _amount) public onlyPartner(_partnerId) whenNotPaused returns (bool) { require(_amount <= partners[_partnerId].singleTrans); partners[_partnerId].tokenPool = safeSub(partners[_partnerId].tokenPool, _amount); Poster memory _Poster = Poster ({ poster: _to, hashData: _data, reward: _amount }); uint newPostId = PartnerIdToPosterList[_partnerId].push(_Poster) - 1; _mint(_amount, _to); RewardDistribute(newPostId, _partnerId, _to, _amount); return true; } function setPartnerPool(uint _partnerId, uint _amount) public onlyAdmin { partners[_partnerId].tokenPool = _amount; } function setPartnerDurance(uint _partnerId, uint _durance) public onlyAdmin { partners[_partnerId].durance = uint(now) + _durance; } function getPartnerInfo(uint _partnerId) public view returns ( address admin, uint tokenPool, uint timeLeft ) { Partner memory _Partner = partners[_partnerId]; admin = _Partner.admin; tokenPool = _Partner.tokenPool; if (_Partner.timestamp + _Partner.durance > uint(now)) { timeLeft = _Partner.timestamp + _Partner.durance - uint(now); } else { timeLeft = 0; } } function getPosterInfo(uint _partnerId, uint _posterId) public view returns ( address poster, bytes32 hashData, uint reward ) { Poster memory _Poster = PartnerIdToPosterList[_partnerId][_posterId]; poster = _Poster.poster; hashData = _Poster.hashData; reward = _Poster.reward; } // ------------------------------------------------------------------------ // Vip Agreement // ------------------------------------------------------------------------ function createVip(address _vip, uint _durance, uint _frequence, uint _salary) public onlyAdmin returns (uint) { Vip memory _Vip = Vip ({ vip: _vip, durance: uint(now) + _durance, frequence: _frequence, salary: _salary, timestamp: now + _frequence }); uint newVipId = vips.push(_Vip) - 1; VipAgreementSign(newVipId, _vip, _durance, _frequence, _salary); return newVipId; } function mineSalary(uint _vipId) public onlyVip(_vipId) whenNotPaused returns (bool) { Vip storage _Vip = vips[_vipId]; _mint(_Vip.salary, _Vip.vip); _Vip.timestamp = safeAdd(_Vip.timestamp, _Vip.frequence); SalaryReceived(_vipId, _Vip.vip, _Vip.salary, _Vip.timestamp); return true; } function deleteVip(uint _vipId) public onlyAdmin { delete vips[_vipId]; } function getVipInfo(uint _vipId) public view returns ( address vip, uint durance, uint frequence, uint salary, uint nextSalary, string log ) { Vip memory _Vip = vips[_vipId]; vip = _Vip.vip; durance = _Vip.durance; frequence = _Vip.frequence; salary = _Vip.salary; if(_Vip.timestamp >= uint(now)) { nextSalary = safeSub(_Vip.timestamp, uint(now)); log = "Please Wait"; } else { nextSalary = 0; log = "Pick Up Your Salary Now"; } } // ------------------------------------------------------------------------ // Accept ETH // ------------------------------------------------------------------------ function () public payable { } // ------------------------------------------------------------------------ // Owner can transfer out any accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyAdmin returns (bool success) { return ERC20Interface(tokenAddress).transfer(CEOAddress, tokens); } } contract XMLY is XMLYToken { event MembershipUpdate(address indexed member, uint indexed level); event MembershipCancel(address indexed member); event XMLYTradeCreated(uint indexed tradeId, bool indexed ifBadge, uint badge, uint token); event TradeCancel(uint indexed tradeId); event TradeComplete(uint indexed tradeId, address indexed buyer, address indexed seller, uint badge, uint token); event Mine(address indexed miner, uint indexed salary); mapping (address => uint) MemberToLevel; mapping (address => uint) MemberToBadge; mapping (address => uint) MemberToToken; mapping (address => uint) MemberToTime; uint public period = 30 days; uint[5] public boardMember =[ 0, 1, 10 ]; uint[5] public salary = [ 0, 10000000000000000000000, 100000000000000000000000 ]; struct XMLYTrade { address seller; bool ifBadge; uint badge; uint token; } XMLYTrade[] xmlyTrades; function boardMemberApply(uint _level) public whenNotPaused { require(_level > 0 && _level <= 4); require(badgeBalances[msg.sender] >= boardMember[_level]); _badgeFreeze(boardMember[_level]); MemberToLevel[msg.sender] = _level; if(MemberToTime[msg.sender] == 0) { MemberToTime[msg.sender] = uint(now); } MembershipUpdate(msg.sender, _level); } function getBoardMember(address _member) public view returns ( uint level, uint timeLeft ) { level = MemberToLevel[_member]; if(MemberToTime[_member] > uint(now)) { timeLeft = safeSub(MemberToTime[_member], uint(now)); } else { timeLeft = 0; } } function boardMemberCancel() public whenNotPaused { require(MemberToLevel[msg.sender] > 0); _badgeUnFreeze(boardMember[MemberToLevel[msg.sender]]); MemberToLevel[msg.sender] = 0; MembershipCancel(msg.sender); } function createXMLYTrade(bool _ifBadge, uint _badge, uint _token) public whenNotPaused returns (uint) { if(_ifBadge) { require(badgeBalances[msg.sender] >= _badge); badgeBalances[msg.sender] = safeSub(badgeBalances[msg.sender], _badge); MemberToBadge[msg.sender] = _badge; XMLYTrade memory xmly = XMLYTrade({ seller: msg.sender, ifBadge:_ifBadge, badge: _badge, token: _token }); uint newBadgeTradeId = xmlyTrades.push(xmly) - 1; XMLYTradeCreated(newBadgeTradeId, _ifBadge, _badge, _token); return newBadgeTradeId; } else { require(balances[msg.sender] >= _token); balances[msg.sender] = safeSub(balances[msg.sender], _token); MemberToToken[msg.sender] = _token; XMLYTrade memory _xmly = XMLYTrade({ seller: msg.sender, ifBadge:_ifBadge, badge: _badge, token: _token }); uint newTokenTradeId = xmlyTrades.push(_xmly) - 1; XMLYTradeCreated(newTokenTradeId, _ifBadge, _badge, _token); return newTokenTradeId; } } function cancelTrade(uint _tradeId) public whenNotPaused { XMLYTrade memory xmly = xmlyTrades[_tradeId]; require(xmly.seller == msg.sender); if(xmly.ifBadge){ badgeBalances[msg.sender] = safeAdd(badgeBalances[msg.sender], xmly.badge); MemberToBadge[msg.sender] = 0; } else { balances[msg.sender] = safeAdd(balances[msg.sender], xmly.token); MemberToToken[msg.sender] = 0; } delete xmlyTrades[_tradeId]; TradeCancel(_tradeId); } function trade(uint _tradeId) public whenNotPaused { XMLYTrade memory xmly = xmlyTrades[_tradeId]; if(xmly.ifBadge){ badgeBalances[msg.sender] = safeAdd(badgeBalances[msg.sender], xmly.badge); MemberToBadge[xmly.seller] = 0; transfer(xmly.seller, xmly.token); delete xmlyTrades[_tradeId]; TradeComplete(_tradeId, msg.sender, xmly.seller, xmly.badge, xmly.token); } else { balances[msg.sender] = safeAdd(balances[msg.sender], xmly.token); MemberToToken[xmly.seller] = 0; badgeTransfer(xmly.seller, xmly.badge); delete xmlyTrades[_tradeId]; TradeComplete(_tradeId, msg.sender, xmly.seller, xmly.badge, xmly.token); } } function mine() public whenNotPaused { uint level = MemberToLevel[msg.sender]; require(MemberToTime[msg.sender] < uint(now)); require(level > 0); _mint(salary[level], msg.sender); MemberToTime[msg.sender] = safeAdd(MemberToTime[msg.sender], period); Mine(msg.sender, salary[level]); } function setBoardMember(uint one, uint two) public onlyAdmin { boardMember[1] = one; boardMember[2] = two; } function setSalary(uint one, uint two) public onlyAdmin { salary[1] = one; salary[2] = two; } function setPeriod(uint time) public onlyAdmin { period = time; } function getTrade(uint _tradeId) public view returns ( address seller, bool ifBadge, uint badge, uint token ) { XMLYTrade memory _xmly = xmlyTrades[_tradeId]; seller = _xmly.seller; ifBadge = _xmly.ifBadge; badge = _xmly.badge; token = _xmly.token; } function WhoIsTheContractMaster() public pure returns (string) { return "Alexander The Exlosion"; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_level","type":"uint256"}],"name":"boardMemberApply","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeId","type":"uint256"}],"name":"cancelTrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"time","type":"uint256"}],"name":"setPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_partner","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_singleTrans","type":"uint256"},{"name":"_durance","type":"uint256"}],"name":"createPartner","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"},{"name":"period","type":"uint256"}],"name":"badgeFreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CFOAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"badgeTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tradeId","type":"uint256"}],"name":"getTrade","outputs":[{"name":"seller","type":"address"},{"name":"ifBadge","type":"bool"},{"name":"badge","type":"uint256"},{"name":"token","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"},{"name":"period","type":"uint256"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_badgeTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_vipId","type":"uint256"}],"name":"getVipInfo","outputs":[{"name":"vip","type":"address"},{"name":"durance","type":"uint256"},{"name":"frequence","type":"uint256"},{"name":"salary","type":"uint256"},{"name":"nextSalary","type":"uint256"},{"name":"log","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"}],"name":"setCFO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_partnerId","type":"uint256"},{"name":"_durance","type":"uint256"}],"name":"setPartnerDurance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_partnerId","type":"uint256"}],"name":"getPartnerInfo","outputs":[{"name":"admin","type":"address"},{"name":"tokenPool","type":"uint256"},{"name":"timeLeft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burnBadge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ifBadge","type":"bool"},{"name":"_badge","type":"uint256"},{"name":"_token","type":"uint256"}],"name":"createXMLYTrade","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CEOAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minePool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"badgeName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_member","type":"address"}],"name":"getBoardMember","outputs":[{"name":"level","type":"uint256"},{"name":"timeLeft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"ifFreeze","outputs":[{"name":"check","type":"bool"},{"name":"amount","type":"uint256"},{"name":"timeLeft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_partnerId","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"setPartnerPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"one","type":"uint256"},{"name":"two","type":"uint256"}],"name":"setSalary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"WhoIsTheContractMaster","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"boardMemberCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unFreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"one","type":"uint256"},{"name":"two","type":"uint256"}],"name":"setBoardMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"badgeIfFreeze","outputs":[{"name":"check","type":"bool"},{"name":"amount","type":"uint256"},{"name":"timeLeft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vipId","type":"uint256"}],"name":"mineSalary","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"badgeDecimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"boardMember","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vipId","type":"uint256"}],"name":"deleteVip","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mine","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeSub","outputs":[{"name":"c","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_partnerId","type":"uint256"},{"name":"_posterId","type":"uint256"}],"name":"getPosterInfo","outputs":[{"name":"poster","type":"address"},{"name":"hashData","type":"bytes32"},{"name":"reward","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"salary","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"badgeSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeDiv","outputs":[{"name":"c","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"mintBadge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"badgeBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vip","type":"address"},{"name":"_durance","type":"uint256"},{"name":"_frequence","type":"uint256"},{"name":"_salary","type":"uint256"}],"name":"createVip","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeMul","outputs":[{"name":"c","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tradeId","type":"uint256"}],"name":"trade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeAdd","outputs":[{"name":"c","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"period","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"badgeUnFreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_partnerId","type":"uint256"},{"name":"_data","type":"bytes32"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"partnerTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"badgeTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"member","type":"address"},{"indexed":true,"name":"level","type":"uint256"}],"name":"MembershipUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"member","type":"address"}],"name":"MembershipCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tradeId","type":"uint256"},{"indexed":true,"name":"ifBadge","type":"bool"},{"indexed":false,"name":"badge","type":"uint256"},{"indexed":false,"name":"token","type":"uint256"}],"name":"XMLYTradeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tradeId","type":"uint256"}],"name":"TradeCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tradeId","type":"uint256"},{"indexed":true,"name":"buyer","type":"address"},{"indexed":true,"name":"seller","type":"address"},{"indexed":false,"name":"badge","type":"uint256"},{"indexed":false,"name":"token","type":"uint256"}],"name":"TradeComplete","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"miner","type":"address"},{"indexed":true,"name":"salary","type":"uint256"}],"name":"Mine","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"partnerId","type":"uint256"},{"indexed":true,"name":"partner","type":"address"},{"indexed":true,"name":"amount","type":"uint256"},{"indexed":false,"name":"singleTrans","type":"uint256"},{"indexed":false,"name":"durance","type":"uint256"}],"name":"PartnerCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"postId","type":"uint256"},{"indexed":false,"name":"partnerId","type":"uint256"},{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"RewardDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"vipId","type":"uint256"},{"indexed":true,"name":"vip","type":"address"},{"indexed":false,"name":"durance","type":"uint256"},{"indexed":false,"name":"frequence","type":"uint256"},{"indexed":false,"name":"salar","type":"uint256"}],"name":"VipAgreementSign","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"vipId","type":"uint256"},{"indexed":true,"name":"vip","type":"address"},{"indexed":false,"name":"salary","type":"uint256"},{"indexed":true,"name":"timestamp","type":"uint256"}],"name":"SalaryReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"BadgeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"AdminTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
6060604081815260008054600160a060020a0319908116735b807e379170d42f3b099c01a5399a2e1e58963b179091556001805460a060020a60ff021992167392cffcd79e6ab6b16c7afb96fbc0a2373be516a417919091169055670de0b6b3a764000060025562278d00601c555190810160409081526000825260016020830152600a908201526200009790601d906003620002fe565b50606060405190810160409081526000825269021e19e0c9bab2400000602083015269152d02c7e14af680000090820152620000d890602290600362000346565b506040805190810160405260038082527f584d48000000000000000000000000000000000000000000000000000000000060208301529080516200012192916020019062000382565b5060408051908101604052600a81527f584d4c5920486f6e6f7200000000000000000000000000000000000000000000602082015260049080516200016b92916020019062000382565b506005805460ff191690556103e8600681905560018054600160a060020a0390811660009081526007602052604080822085905592549091169290917f82de2639fdc3c65a9413c0716d4cbd73c6182095571c159d8cabaee5b16a363191905190815260200160405180910390a360408051908101604052600481527f584d4c59000000000000000000000000000000000000000000000000000000006020820152600b9080516200022292916020019062000382565b5060408051908101604052600a81527f584d4c5920546f6b656e000000000000000000000000000000000000000000006020820152600c9080516200026c92916020019062000382565b50600d805460ff191660129081179091556b1027e72f1f12813088000000600e8190556c0132f6287f4e5f969a18000000600f5560018054600160a060020a039081166000908152602094909452604080852084905591541692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a362000415565b826005810192821562000334579160200282015b8281111562000334578251829060ff1690559160200191906001019062000312565b5062000342929150620003f5565b5090565b826005810192821562000334579160200282015b828111156200033457825182906001605060020a03169055916020019190600101906200035a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003c557805160ff191683800117855562000334565b8280016001018555821562000334579182015b8281111562000334578251825591602001919060010190620003d8565b6200041291905b80821115620003425760008155600101620003fc565b90565b61382b80620004256000396000f3006060604052600436106102f25763ffffffff60e060020a6000350416630486529b81146102f457806306fdde031461030a578063095ea7b31461039457806309ec6cc7146103ca5780630f3a9f65146103e057806318160ddd146103f657806320db91e21461041b57806323b872dd1461044357806327acfff91461046b578063298ad569146104905780632bac276b146104bf5780632db25e05146104e157806330e1e4e51461052d578063313ce567146105525780633a573e021461057b5780633eaaf86b1461058e5780633f4ba83a146105a157806342966c68146105b45780634d65beb1146105ca5780634e0a33791461068d5780634ea611cd146106ac5780635538c964146106c557806355de28ae146107115780635ad5ca74146107275780635c975abb146107455780635fcee7a0146107585780635fd8c7101461076b578063602e66231461077e578063610c300914610791578063637fcf95146107a457806363c454ca146107db5780636509c1951461082057806370a082311461083957806374a37efc1461085857806376637dcd146108715780637c85ab3a146108845780637cf12b9014610897578063808134c8146108aa57806382f4b3a8146108c35780638456cb59146108e2578063876f9795146108f557806387b8963c1461090b5780638a5839111461091e5780638d72f8561461093457806395d89b411461094a57806399f4b2511461095d578063a0712d6814610970578063a293d1e814610986578063a61d68291461099f578063a9059cbb146109e6578063a9b6c43514610a08578063ae479a6314610a1e578063b5931f7c14610a31578063c3c63edc14610a4a578063c681d68d14610a60578063cae9ca5114610a7f578063cdfe281514610ae4578063d05c78da14610b0c578063dc39d06d14610b25578063dd62ed3e14610b47578063df1dd82614610b6c578063e6cb901314610b82578063ef78d4fd14610b9b578063f52ad69014610bae578063fc04c0c414610bc1578063fc24e58914610be9575b005b34156102ff57600080fd5b6102f2600435610bfc565b341561031557600080fd5b61031d610cfb565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610359578082015183820152602001610341565b50505050905090810190601f1680156103865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039f57600080fd5b6103b6600160a060020a0360043516602435610d99565b604051901515815260200160405180910390f35b34156103d557600080fd5b6102f2600435610e2e565b34156103eb57600080fd5b6102f2600435610fe8565b341561040157600080fd5b610409611023565b60405190815260200160405180910390f35b341561042657600080fd5b610409600160a060020a0360043516602435604435606435611056565b341561044e57600080fd5b6103b6600160a060020a036004358116906024351660443561118a565b341561047657600080fd5b6102f2600160a060020a0360043516602435604435611279565b341561049b57600080fd5b6104a3611315565b604051600160a060020a03909116815260200160405180910390f35b34156104ca57600080fd5b6103b6600160a060020a0360043516602435611324565b34156104ec57600080fd5b6104f7600435611529565b604051600160a060020a039094168452911515602084015260408084019190915260608301919091526080909101905180910390f35b341561053857600080fd5b6102f2600160a060020a03600435166024356044356115b6565b341561055d57600080fd5b610565611652565b60405160ff909116815260200160405180910390f35b341561058657600080fd5b61040961165b565b341561059957600080fd5b610409611661565b34156105ac57600080fd5b6103b6611667565b34156105bf57600080fd5b6102f2600435611706565b34156105d557600080fd5b6105e060043561179b565b6040518087600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561064d578082015183820152602001610635565b50505050905090810190601f16801561067a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561069857600080fd5b6102f2600160a060020a03600435166118c7565b34156106b757600080fd5b6102f2600435602435611955565b34156106d057600080fd5b6106db6004356119b6565b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390f35b341561071c57600080fd5b6102f2600435611a61565b341561073257600080fd5b6104096004351515602435604435611ae6565b341561075057600080fd5b6103b6611dff565b341561076357600080fd5b6104a3611e0f565b341561077657600080fd5b6102f2611e1e565b341561078957600080fd5b610409611e8f565b341561079c57600080fd5b61031d611e95565b34156107af57600080fd5b6107c3600160a060020a0360043516611f00565b60405191825260208201526040908101905180910390f35b34156107e657600080fd5b6107fa600160a060020a0360043516611f62565b604051921515835260208301919091526040808301919091526060909101905180910390f35b341561082b57600080fd5b6102f2600435602435611f9b565b341561084457600080fd5b610409600160a060020a0360043516611ffa565b341561086357600080fd5b6102f2600435602435612015565b341561087c57600080fd5b61031d61205c565b341561088f57600080fd5b6102f261209d565b34156108a257600080fd5b6102f2612152565b34156108b557600080fd5b6102f26004356024356121e5565b34156108ce57600080fd5b6107fa600160a060020a036004351661222a565b34156108ed57600080fd5b6103b6612263565b341561090057600080fd5b6103b6600435612307565b341561091657600080fd5b610565612460565b341561092957600080fd5b610409600435612469565b341561093f57600080fd5b6102f260043561247d565b341561095557600080fd5b61031d6124fa565b341561096857600080fd5b6102f2612565565b341561097b57600080fd5b6102f260043561265d565b341561099157600080fd5b6104096004356024356126fb565b34156109aa57600080fd5b6109b8600435602435612710565b604051600160a060020a03909316835260208301919091526040808301919091526060909101905180910390f35b34156109f157600080fd5b6103b6600160a060020a0360043516602435612792565b3415610a1357600080fd5b610409600435612958565b3415610a2957600080fd5b61031d612965565b3415610a3c57600080fd5b6104096004356024356129d0565b3415610a5557600080fd5b6102f26004356129f1565b3415610a6b57600080fd5b610409600160a060020a0360043516612a70565b3415610a8a57600080fd5b6103b660048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650612a8b95505050505050565b3415610aef57600080fd5b610409600160a060020a0360043516602435604435606435612c1a565b3415610b1757600080fd5b610409600435602435612d5e565b3415610b3057600080fd5b6103b6600160a060020a0360043516602435612d83565b3415610b5257600080fd5b610409600160a060020a0360043581169060243516612e41565b3415610b7757600080fd5b6102f2600435612e98565b3415610b8d57600080fd5b610409600435602435613146565b3415610ba657600080fd5b610409613156565b3415610bb957600080fd5b6102f261315c565b3415610bcc57600080fd5b6103b6600435602435600160a060020a03604435166064356131ef565b3415610bf457600080fd5b610409613439565b60015460a060020a900460ff1615610c1357600080fd5b600081118015610c24575060048111155b1515610c2f57600080fd5b601d8160058110610c3c57fe5b0154600160a060020a0333166000908152600760205260409020541015610c6257600080fd5b610c79601d8260058110610c7257fe5b015461346b565b600160a060020a0333166000908152601860209081526040808320849055601b9091529020541515610cc157600160a060020a0333166000908152601b602052604090204290555b8033600160a060020a03167f0cc0076665281ff8398c9431c41b09049a4aa58f50f11b4130ef230ed60adc8760405160405180910390a350565b600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b820191906000526020600020905b815481529060010190602001808311610d7457829003601f168201915b505050505081565b600160a060020a03331660009081526014602052604081205460ff16151560011415610dc457600080fd5b600160a060020a03338116600081815260136020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b610e3661360e565b60015460a060020a900460ff1615610e4d57600080fd5b6027805483908110610e5b57fe5b9060005260206000209060030201608060405190810160409081528254600160a060020a03808216845260a060020a90910460ff16151560208401526001840154918301919091526002909201546060820152915033168151600160a060020a031614610ec757600080fd5b806020015115610f2457600160a060020a0333166000908152600760205260409081902054610ef891830151613146565b600160a060020a0333166000908152600760209081526040808320939093556019905290812055610f73565b600160a060020a033316600090815260126020526040902054610f4b906060830151613146565b600160a060020a033316600090815260126020908152604080832093909355601a9052908120555b6027805483908110610f8157fe5b600091825260208220600390910201805474ffffffffffffffffffffffffffffffffffffffffff191681556001810182905560020155817f223868bda9e47fa465ee1e1401b3bd23888b9b951308671e785b0e890b728a9660405160405180910390a25050565b60005433600160a060020a0390811691161480611013575060015433600160a060020a039081169116145b151561101e57600080fd5b601c55565b6000805260126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b54600e54035b90565b6000611060613635565b6000805433600160a060020a039081169116148061108c575060015433600160a060020a039081169116145b151561109757600080fd5b60a06040519081016040528088600160a060020a031681526020018781526020018681526020014281526020018581525091506001601080548060010182816110e0919061366e565b6000928352602090922085916005020181518154600160a060020a031916600160a060020a03919091161781556020820151816001015560408201518160020155606082015181600301556080820151816004015550500390508587600160a060020a0316827ff2b85b43211ffec4da9402231db708764bd4c87ed2853c3b3e9308ec067ae02a888860405191825260208201526040908101905180910390a49695505050505050565b600160a060020a0383166000908152601260205260408120546111ad90836126fb565b600160a060020a03808616600090815260126020908152604080832094909455601381528382203390931682529190915220546111ea90836126fb565b600160a060020a038086166000908152601360209081526040808320338516845282528083209490945591861681526012909152205461122a9083613146565b600160a060020a03808516600081815260126020526040908190209390935591908616906000805160206137e08339815191529085905190815260200160405180910390a35060019392505050565b60005433600160a060020a03908116911614806112a4575060015433600160a060020a039081169116145b15156112af57600080fd5b600160a060020a038316600090815260076020526040902054829010156112d557600080fd5b600160a060020a039092166000908152600860209081526040808320805460ff19166001179055600a825280832042909501909455600990529190912055565b600154600160a060020a031681565b60015460009060a060020a900460ff161561133e57600080fd5b600160a060020a03331660009081526008602052604090205460ff16151561140f57600160a060020a03331660009081526007602052604090205461138390836126fb565b600160a060020a0333811660009081526007602052604080822093909355908516815220546113b29083613146565b600160a060020a0380851660008181526007602052604090819020939093559133909116907f82de2639fdc3c65a9413c0716d4cbd73c6182095571c159d8cabaee5b16a36319085905190815260200160405180910390a3611520565b600160a060020a033316600090815260096020908152604080832054600790925290912054111561152057600160a060020a03331660009081526007602090815260408083205460099092529091205461146991906126fb565b82111561147557600080fd5b600160a060020a03331660009081526007602052604090205461149890836126fb565b600160a060020a0333811660009081526007602052604080822093909355908516815220546114c79083613146565b600160a060020a0380851660008181526007602052604090819020939093559133909116907f82de2639fdc3c65a9413c0716d4cbd73c6182095571c159d8cabaee5b16a36319085905190815260200160405180910390a35b50600192915050565b60008060008061153761360e565b602780548790811061154557fe5b9060005260206000209060030201608060405190810160409081528254600160a060020a038116835260a060020a900460ff16151560208301526001830154908201526002909101546060820152905080519450806020015193508060400151925080606001519150509193509193565b60005433600160a060020a03908116911614806115e1575060015433600160a060020a039081169116145b15156115ec57600080fd5b600160a060020a0383166000908152601260205260409020548290101561161257600080fd5b600160a060020a039092166000908152601460209081526040808320805460ff191660011790556016825280832042909501909455601590529190912055565b600d5460ff1681565b60065481565b600e5481565b6000805433600160a060020a0390811691161480611693575060015433600160a060020a039081169116145b151561169e57600080fd5b60015460a060020a900460ff1615156116b657600080fd5b6001805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60005433600160a060020a0390811691161480611731575060015433600160a060020a039081169116145b151561173c57600080fd5b600e548190101561174c57600080fd5b600160a060020a03331660009081526012602052604090205461176f90826126fb565b600160a060020a033316600090815260126020526040902055600e5461179590826126fb565b600e5550565b60008060008060006117ab61369f565b6117b3613635565b60118054899081106117c157fe5b906000526020600020906005020160a060405190810160409081528254600160a060020a031682526001830154602083015260028301549082015260038201546060820152600490910154608082015290508051965080602001519550806040015194508060600151935042816080015110611882576118458160800151426126fb565b925060408051908101604052600b81527f506c656173652057616974000000000000000000000000000000000000000000602082015291506118bd565b6000925060408051908101604052601781527f5069636b20557020596f75722053616c617279204e6f77000000000000000000602082015291505b5091939550919395565b60005433600160a060020a039081169116146118e257600080fd5b600160a060020a03811615156118f757600080fd5b600154600160a060020a0380831691167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a360018054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161480611980575060015433600160a060020a039081169116145b151561198b57600080fd5b80420160108381548110151561199d57fe5b9060005260206000209060050201600401819055505050565b60008060006119c3613635565b60108054869081106119d157fe5b906000526020600020906005020160a060405190810160409081528254600160a060020a0316825260018301546020830152600283015490820152600382015460608201526004909101546080820152905080519350806020015192504281608001518260600151011115611a5457428160800151826060015101039150611a59565b600091505b509193909250565b60005433600160a060020a0390811691161480611a8c575060015433600160a060020a039081169116145b1515611a9757600080fd5b600160a060020a033316600090815260076020526040902054611aba90826126fb565b600160a060020a033316600090815260076020526040902055600654611ae090826126fb565b60065550565b6000611af061360e565b6000611afa61360e565b60015460009060a060020a900460ff1615611b1457600080fd5b8715611c8957600160a060020a03331660009081526007602052604090205487901015611b4057600080fd5b600160a060020a033316600090815260076020526040902054611b6390886126fb565b600160a060020a03331660009081526007602090815260408083209390935560199052819020889055608090519081016040528033600160a060020a031681526020018915158152602001888152602001878152509350600160278054806001018281611bd091906136b1565b6000928352602090922087916003020181518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617815560408201518160010155606082015181600201555050039250871515837f163fa711b7e61f884dd700360ed0dc2c369376de0c6a1956fce4171ca0a9cef1898960405191825260208201526040908101905180910390a3829450611df4565b600160a060020a03331660009081526012602052604090205486901015611caf57600080fd5b600160a060020a033316600090815260126020526040902054611cd290876126fb565b600160a060020a033316600090815260126020908152604080832093909355601a9052819020879055608090519081016040528033600160a060020a031681526020018915158152602001888152602001878152509150600160278054806001018281611d3f91906136b1565b6000928352602090922085916003020181518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617815560408201518160010155606082015181600201555050039050871515817f163fa711b7e61f884dd700360ed0dc2c369376de0c6a1956fce4171ca0a9cef1898960405191825260208201526040908101905180910390a38094505b505050509392505050565b60015460a060020a900460ff1681565b600054600160a060020a031681565b60005433600160a060020a0390811691161480611e49575060015433600160a060020a039081169116145b1515611e5457600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515611e8d57600080fd5b565b600f5481565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b600160a060020a038116600090815260186020908152604080832054601b90925282205490919042901115611f5957600160a060020a0383166000908152601b6020526040902054611f5290426126fb565b9050611f5d565b5060005b915091565b600160a060020a03166000908152601460209081526040808320546015835281842054601690935292205460ff90921692909142900390565b60005433600160a060020a0390811691161480611fc6575060015433600160a060020a039081169116145b1515611fd157600080fd5b80601083815481101515611fe157fe5b9060005260206000209060050201600101819055505050565b600160a060020a031660009081526012602052604090205490565b60005433600160a060020a0390811691161480612040575060015433600160a060020a039081169116145b151561204b57600080fd5b602382905580602260025b01555050565b61206461369f565b60408051908101604052601681527f416c6578616e646572205468652045786c6f73696f6e000000000000000000006020820152905090565b60015460a060020a900460ff16156120b457600080fd5b600160a060020a033316600090815260186020526040812054116120d757600080fd5b600160a060020a03331660009081526018602052604090205461210890601d906005811061210157fe5b01546134f3565b600160a060020a033316600081815260186020526040808220919091557f16bfdc1e6dc7f481f073edc603659a221eed08e79f1d7e075d30eced1d10cc11905160405180910390a2565b60015460a060020a900460ff161561216957600080fd5b600160a060020a03331660009081526014602052604090205460ff16151560011461219357600080fd5b600160a060020a0333166000908152601660205260409020544290106121b857600080fd5b600160a060020a0333166000908152601460209081526040808320805460ff191690556015909152812055565b60005433600160a060020a0390811691161480612210575060015433600160a060020a039081169116145b151561221b57600080fd5b601e82905580601d6002612056565b600160a060020a03166000908152600860209081526040808320546009835281842054600a90935292205460ff90921692909142900390565b6000805433600160a060020a039081169116148061228f575060015433600160a060020a039081169116145b151561229a57600080fd5b60015460a060020a900460ff16156122b157600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b6000808233600160a060020a031660118281548110151561232457fe5b6000918252602090912060059091020154600160a060020a03161461234857600080fd5b4260118281548110151561235857fe5b90600052602060002090600502016001015411151561237657600080fd5b4260118281548110151561238657fe5b9060005260206000209060050201600401541015156123a457600080fd5b60015460a060020a900460ff16156123bb57600080fd5b60118054859081106123c957fe5b60009182526020909120600590910201600381015481549193506123f591600160a060020a0316613578565b61240782600401548360020154613146565b6004830181905582546003840154600160a060020a039091169086907fe59c03907eb3e86b26f58d894ce2930fb7654708c75e33e4ae4a8025631ce94d9060405190815260200160405180910390a45060019392505050565b60055460ff1681565b601d816005811061247657fe5b0154905081565b60005433600160a060020a03908116911614806124a8575060015433600160a060020a039081169116145b15156124b357600080fd5b60118054829081106124c157fe5b6000918252602082206005909102018054600160a060020a03191681556001810182905560028101829055600381018290556004015550565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b60015460009060a060020a900460ff161561257f57600080fd5b50600160a060020a033316600090815260186020908152604080832054601b909252909120544290106125b157600080fd5b600081116125be57600080fd5b6125d6602282600581106125ce57fe5b015433613578565b600160a060020a0333166000908152601b6020526040902054601c546125fc9190613146565b600160a060020a0333166000908152601b60205260409020556022816005811061262257fe5b015433600160a060020a03167ff23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d160405160405180910390a350565b60005433600160a060020a0390811691161480612688575060015433600160a060020a039081169116145b151561269357600080fd5b600f54819010156126a357600080fd5b6126af600f54826126fb565b600f55600160a060020a0333166000908152601260205260409020546126d59082613146565b600160a060020a033316600090815260126020526040902055600e546117959082613146565b60008282111561270a57600080fd5b50900390565b600080600061271d6136dd565b600086815260176020526040902080548690811061273757fe5b9060005260206000209060030201606060405190810160409081528254600160a060020a0316825260018301546020830152600290920154918101919091529050805193508060200151925080604001519150509250925092565b600160a060020a03331660009081526014602052604081205460ff16151561285157600160a060020a0333166000908152601260205260409020546127d790836126fb565b600160a060020a0333811660009081526012602052604080822093909355908516815220546128069083613146565b600160a060020a0380851660008181526012602052604090819020939093559133909116906000805160206137e08339815191529085905190815260200160405180910390a3611520565b600160a060020a033316600090815260156020908152604080832054601290925290912054111561152057600160a060020a0333166000908152601260209081526040808320546015909252909120546128ab91906126fb565b8211156128b757600080fd5b600160a060020a0333166000908152601260205260409020546128da90836126fb565b600160a060020a0333811660009081526012602052604080822093909355908516815220546129099083613146565b600160a060020a0380851660008181526012602052604090819020939093559133909116906000805160206137e08339815191529085905190815260200160405180910390a350600192915050565b6022816005811061247657fe5b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b60008082116129de57600080fd5b81838115156129e957fe5b049392505050565b60005433600160a060020a0390811691161480612a1c575060015433600160a060020a039081169116145b1515612a2757600080fd5b600160a060020a033316600090815260076020526040902054612a4a9082613146565b600160a060020a033316600090815260076020526040902055600654611ae09082613146565b600160a060020a031660009081526007602052604090205490565b600160a060020a03331660009081526014602052604081205460ff16151560011415612ab657600080fd5b600160a060020a03338116600081815260136020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612bae578082015183820152602001612b96565b50505050905090810190601f168015612bdb5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515612bfc57600080fd5b6102c65a03f11515612c0d57600080fd5b5060019695505050505050565b6000612c24613635565b6000805433600160a060020a0390811691161480612c50575060015433600160a060020a039081169116145b1515612c5b57600080fd5b60a06040519081016040528088600160a060020a0316815260200187420181526020018681526020018581526020018642018152509150600160118054806001018281612ca8919061366e565b6000928352602090922085916005020181518154600160a060020a031916600160a060020a039190911617815560208201518160010155604082015181600201556060820151816003015560808201518160040155505003905086600160a060020a0316817fe0a25f374c3ccea9b3852380e0d550961e95fb10b5dd9efb7d390e852786ef7088888860405180848152602001838152602001828152602001935050505060405180910390a39695505050505050565b818102821580612d785750818382811515612d7557fe5b04145b1515610e2857600080fd5b6000805433600160a060020a0390811691161480612daf575060015433600160a060020a039081169116145b1515612dba57600080fd5b60008054600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612e2057600080fd5b6102c65a03f11515612e3157600080fd5b5050506040518051949350505050565b600160a060020a03331660009081526014602052604081205460ff16151560011415612e6c57600080fd5b50600160a060020a03918216600090815260136020908152604080832093909416825291909152205490565b612ea061360e565b60015460a060020a900460ff1615612eb757600080fd5b6027805483908110612ec557fe5b9060005260206000209060030201608060405190810160409081528254600160a060020a038116835260a060020a900460ff1615156020830190815260018401549183019190915260029092015460608201529150511561303357600160a060020a0333166000908152600760205260409081902054612f4791830151613146565b600160a060020a0333166000908152600760205260408120919091556019818351600160a060020a03168152602081019190915260400160002055612f9181518260600151612792565b506027805483908110612fa057fe5b600091825260208220600390910201805474ffffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201558051600160a060020a031633600160a060020a0316837f8e5d31db095940719a41f61a733ac177443e93085309b93626db618db0c9f2718460400151856060015160405191825260208201526040908101905180910390a4613142565b600160a060020a03331660009081526012602052604090205461305a906060830151613146565b600160a060020a033316600090815260126020526040812091909155601a818351600160a060020a031681526020810191909152604001600020556130a481518260400151611324565b5060278054839081106130b357fe5b600091825260208220600390910201805474ffffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201558051600160a060020a031633600160a060020a0316837f8e5d31db095940719a41f61a733ac177443e93085309b93626db618db0c9f2718460400151856060015160405191825260208201526040908101905180910390a45b5050565b81810182811015610e2857600080fd5b601c5481565b60015460a060020a900460ff161561317357600080fd5b600160a060020a03331660009081526008602052604090205460ff16151560011461319d57600080fd5b600160a060020a0333166000908152600a60205260409020544290106131c257600080fd5b600160a060020a0333166000908152600860209081526040808320805460ff191690556009909152812055565b60006131f96136dd565b600086600033600160a060020a031660108381548110151561321757fe5b6000918252602090912060059091020154600160a060020a03161461323b57600080fd5b600060108381548110151561324c57fe5b90600052602060002090600502016001015411151561326a57600080fd5b6132b460108381548110151561327c57fe5b90600052602060002090600502016003015460108481548110151561329d57fe5b906000526020600020906005020160040154613146565b90504281116132c257600080fd5b60015460a060020a900460ff16156132d957600080fd5b601080548a9081106132e757fe5b906000526020600020906005020160020154861115151561330757600080fd5b61333160108a81548110151561331957fe5b906000526020600020906005020160010154876126fb565b601080548b90811061333f57fe5b90600052602060002090600502016001018190555060606040519081016040908152600160a060020a038916825260208083018b905281830189905260008c8152601790915220805491955060019180830161339b83826136fd565b6000928352602090922087916003020181518154600160a060020a031916600160a060020a0391909116178155602082015160018201556040820151816002015550500392506133eb8688613578565b8587600160a060020a0316847fdf6fd8077aa2d207937dd80dc1ddb27e974d3420442c7def38ec089f4364b74e8c60405190815260200160405180910390a450600198975050505050505050565b6000805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df546006540390565b600160a060020a03331660009081526008602052604090205460ff161561349157600080fd5b600160a060020a033316600090815260076020526040902054819010156134b757600080fd5b600160a060020a0333166000908152600860209081526040808320805460ff19166001179055600a825280832060001990556009909152902055565b600160a060020a03331660009081526008602052604090205460ff16151560011461351d57600080fd5b600160a060020a0333166000908152600a6020908152604080832083905560088252808320805460ff19169055600990915290205461355c90826126fb565b600160a060020a03331660009081526009602052604090205550565b600f548290101561358857600080fd5b613594600f54836126fb565b600f55600e546135a49083613146565b600e55600160a060020a0381166000908152601260205260409020546135ca9083613146565b600160a060020a0382166000818152601260205260408082209390935590916000805160206137e08339815191529085905190815260200160405180910390a35050565b60806040519081016040908152600080835260208301819052908201819052606082015290565b60a0604051908101604052806000600160a060020a03168152602001600081526020016000815260200160008152602001600081525090565b81548183558181151161369a5760050281600502836000526020600020918201910161369a9190613729565b505050565b60206040519081016040526000815290565b81548183558181151161369a5760030281600302836000526020600020918201910161369a919061376d565b606060405190810160409081526000808352602083018190529082015290565b81548183558181151161369a5760030281600302836000526020600020918201910161369a91906137ad565b61105391905b80821115613769578054600160a060020a03191681556000600182018190556002820181905560038201819055600482015560050161372f565b5090565b61105391905b8082111561376957805474ffffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820155600301613773565b61105391905b80821115613769578054600160a060020a031916815560006001820181905560028201556003016137b35600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582082046e2290510e6518b962bd7c474b806b958e6acba229ebbd5d4255de76eb1a0029
Deployed Bytecode
0x6060604052600436106102f25763ffffffff60e060020a6000350416630486529b81146102f457806306fdde031461030a578063095ea7b31461039457806309ec6cc7146103ca5780630f3a9f65146103e057806318160ddd146103f657806320db91e21461041b57806323b872dd1461044357806327acfff91461046b578063298ad569146104905780632bac276b146104bf5780632db25e05146104e157806330e1e4e51461052d578063313ce567146105525780633a573e021461057b5780633eaaf86b1461058e5780633f4ba83a146105a157806342966c68146105b45780634d65beb1146105ca5780634e0a33791461068d5780634ea611cd146106ac5780635538c964146106c557806355de28ae146107115780635ad5ca74146107275780635c975abb146107455780635fcee7a0146107585780635fd8c7101461076b578063602e66231461077e578063610c300914610791578063637fcf95146107a457806363c454ca146107db5780636509c1951461082057806370a082311461083957806374a37efc1461085857806376637dcd146108715780637c85ab3a146108845780637cf12b9014610897578063808134c8146108aa57806382f4b3a8146108c35780638456cb59146108e2578063876f9795146108f557806387b8963c1461090b5780638a5839111461091e5780638d72f8561461093457806395d89b411461094a57806399f4b2511461095d578063a0712d6814610970578063a293d1e814610986578063a61d68291461099f578063a9059cbb146109e6578063a9b6c43514610a08578063ae479a6314610a1e578063b5931f7c14610a31578063c3c63edc14610a4a578063c681d68d14610a60578063cae9ca5114610a7f578063cdfe281514610ae4578063d05c78da14610b0c578063dc39d06d14610b25578063dd62ed3e14610b47578063df1dd82614610b6c578063e6cb901314610b82578063ef78d4fd14610b9b578063f52ad69014610bae578063fc04c0c414610bc1578063fc24e58914610be9575b005b34156102ff57600080fd5b6102f2600435610bfc565b341561031557600080fd5b61031d610cfb565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610359578082015183820152602001610341565b50505050905090810190601f1680156103865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039f57600080fd5b6103b6600160a060020a0360043516602435610d99565b604051901515815260200160405180910390f35b34156103d557600080fd5b6102f2600435610e2e565b34156103eb57600080fd5b6102f2600435610fe8565b341561040157600080fd5b610409611023565b60405190815260200160405180910390f35b341561042657600080fd5b610409600160a060020a0360043516602435604435606435611056565b341561044e57600080fd5b6103b6600160a060020a036004358116906024351660443561118a565b341561047657600080fd5b6102f2600160a060020a0360043516602435604435611279565b341561049b57600080fd5b6104a3611315565b604051600160a060020a03909116815260200160405180910390f35b34156104ca57600080fd5b6103b6600160a060020a0360043516602435611324565b34156104ec57600080fd5b6104f7600435611529565b604051600160a060020a039094168452911515602084015260408084019190915260608301919091526080909101905180910390f35b341561053857600080fd5b6102f2600160a060020a03600435166024356044356115b6565b341561055d57600080fd5b610565611652565b60405160ff909116815260200160405180910390f35b341561058657600080fd5b61040961165b565b341561059957600080fd5b610409611661565b34156105ac57600080fd5b6103b6611667565b34156105bf57600080fd5b6102f2600435611706565b34156105d557600080fd5b6105e060043561179b565b6040518087600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561064d578082015183820152602001610635565b50505050905090810190601f16801561067a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561069857600080fd5b6102f2600160a060020a03600435166118c7565b34156106b757600080fd5b6102f2600435602435611955565b34156106d057600080fd5b6106db6004356119b6565b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390f35b341561071c57600080fd5b6102f2600435611a61565b341561073257600080fd5b6104096004351515602435604435611ae6565b341561075057600080fd5b6103b6611dff565b341561076357600080fd5b6104a3611e0f565b341561077657600080fd5b6102f2611e1e565b341561078957600080fd5b610409611e8f565b341561079c57600080fd5b61031d611e95565b34156107af57600080fd5b6107c3600160a060020a0360043516611f00565b60405191825260208201526040908101905180910390f35b34156107e657600080fd5b6107fa600160a060020a0360043516611f62565b604051921515835260208301919091526040808301919091526060909101905180910390f35b341561082b57600080fd5b6102f2600435602435611f9b565b341561084457600080fd5b610409600160a060020a0360043516611ffa565b341561086357600080fd5b6102f2600435602435612015565b341561087c57600080fd5b61031d61205c565b341561088f57600080fd5b6102f261209d565b34156108a257600080fd5b6102f2612152565b34156108b557600080fd5b6102f26004356024356121e5565b34156108ce57600080fd5b6107fa600160a060020a036004351661222a565b34156108ed57600080fd5b6103b6612263565b341561090057600080fd5b6103b6600435612307565b341561091657600080fd5b610565612460565b341561092957600080fd5b610409600435612469565b341561093f57600080fd5b6102f260043561247d565b341561095557600080fd5b61031d6124fa565b341561096857600080fd5b6102f2612565565b341561097b57600080fd5b6102f260043561265d565b341561099157600080fd5b6104096004356024356126fb565b34156109aa57600080fd5b6109b8600435602435612710565b604051600160a060020a03909316835260208301919091526040808301919091526060909101905180910390f35b34156109f157600080fd5b6103b6600160a060020a0360043516602435612792565b3415610a1357600080fd5b610409600435612958565b3415610a2957600080fd5b61031d612965565b3415610a3c57600080fd5b6104096004356024356129d0565b3415610a5557600080fd5b6102f26004356129f1565b3415610a6b57600080fd5b610409600160a060020a0360043516612a70565b3415610a8a57600080fd5b6103b660048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650612a8b95505050505050565b3415610aef57600080fd5b610409600160a060020a0360043516602435604435606435612c1a565b3415610b1757600080fd5b610409600435602435612d5e565b3415610b3057600080fd5b6103b6600160a060020a0360043516602435612d83565b3415610b5257600080fd5b610409600160a060020a0360043581169060243516612e41565b3415610b7757600080fd5b6102f2600435612e98565b3415610b8d57600080fd5b610409600435602435613146565b3415610ba657600080fd5b610409613156565b3415610bb957600080fd5b6102f261315c565b3415610bcc57600080fd5b6103b6600435602435600160a060020a03604435166064356131ef565b3415610bf457600080fd5b610409613439565b60015460a060020a900460ff1615610c1357600080fd5b600081118015610c24575060048111155b1515610c2f57600080fd5b601d8160058110610c3c57fe5b0154600160a060020a0333166000908152600760205260409020541015610c6257600080fd5b610c79601d8260058110610c7257fe5b015461346b565b600160a060020a0333166000908152601860209081526040808320849055601b9091529020541515610cc157600160a060020a0333166000908152601b602052604090204290555b8033600160a060020a03167f0cc0076665281ff8398c9431c41b09049a4aa58f50f11b4130ef230ed60adc8760405160405180910390a350565b600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b820191906000526020600020905b815481529060010190602001808311610d7457829003601f168201915b505050505081565b600160a060020a03331660009081526014602052604081205460ff16151560011415610dc457600080fd5b600160a060020a03338116600081815260136020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b610e3661360e565b60015460a060020a900460ff1615610e4d57600080fd5b6027805483908110610e5b57fe5b9060005260206000209060030201608060405190810160409081528254600160a060020a03808216845260a060020a90910460ff16151560208401526001840154918301919091526002909201546060820152915033168151600160a060020a031614610ec757600080fd5b806020015115610f2457600160a060020a0333166000908152600760205260409081902054610ef891830151613146565b600160a060020a0333166000908152600760209081526040808320939093556019905290812055610f73565b600160a060020a033316600090815260126020526040902054610f4b906060830151613146565b600160a060020a033316600090815260126020908152604080832093909355601a9052908120555b6027805483908110610f8157fe5b600091825260208220600390910201805474ffffffffffffffffffffffffffffffffffffffffff191681556001810182905560020155817f223868bda9e47fa465ee1e1401b3bd23888b9b951308671e785b0e890b728a9660405160405180910390a25050565b60005433600160a060020a0390811691161480611013575060015433600160a060020a039081169116145b151561101e57600080fd5b601c55565b6000805260126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b54600e54035b90565b6000611060613635565b6000805433600160a060020a039081169116148061108c575060015433600160a060020a039081169116145b151561109757600080fd5b60a06040519081016040528088600160a060020a031681526020018781526020018681526020014281526020018581525091506001601080548060010182816110e0919061366e565b6000928352602090922085916005020181518154600160a060020a031916600160a060020a03919091161781556020820151816001015560408201518160020155606082015181600301556080820151816004015550500390508587600160a060020a0316827ff2b85b43211ffec4da9402231db708764bd4c87ed2853c3b3e9308ec067ae02a888860405191825260208201526040908101905180910390a49695505050505050565b600160a060020a0383166000908152601260205260408120546111ad90836126fb565b600160a060020a03808616600090815260126020908152604080832094909455601381528382203390931682529190915220546111ea90836126fb565b600160a060020a038086166000908152601360209081526040808320338516845282528083209490945591861681526012909152205461122a9083613146565b600160a060020a03808516600081815260126020526040908190209390935591908616906000805160206137e08339815191529085905190815260200160405180910390a35060019392505050565b60005433600160a060020a03908116911614806112a4575060015433600160a060020a039081169116145b15156112af57600080fd5b600160a060020a038316600090815260076020526040902054829010156112d557600080fd5b600160a060020a039092166000908152600860209081526040808320805460ff19166001179055600a825280832042909501909455600990529190912055565b600154600160a060020a031681565b60015460009060a060020a900460ff161561133e57600080fd5b600160a060020a03331660009081526008602052604090205460ff16151561140f57600160a060020a03331660009081526007602052604090205461138390836126fb565b600160a060020a0333811660009081526007602052604080822093909355908516815220546113b29083613146565b600160a060020a0380851660008181526007602052604090819020939093559133909116907f82de2639fdc3c65a9413c0716d4cbd73c6182095571c159d8cabaee5b16a36319085905190815260200160405180910390a3611520565b600160a060020a033316600090815260096020908152604080832054600790925290912054111561152057600160a060020a03331660009081526007602090815260408083205460099092529091205461146991906126fb565b82111561147557600080fd5b600160a060020a03331660009081526007602052604090205461149890836126fb565b600160a060020a0333811660009081526007602052604080822093909355908516815220546114c79083613146565b600160a060020a0380851660008181526007602052604090819020939093559133909116907f82de2639fdc3c65a9413c0716d4cbd73c6182095571c159d8cabaee5b16a36319085905190815260200160405180910390a35b50600192915050565b60008060008061153761360e565b602780548790811061154557fe5b9060005260206000209060030201608060405190810160409081528254600160a060020a038116835260a060020a900460ff16151560208301526001830154908201526002909101546060820152905080519450806020015193508060400151925080606001519150509193509193565b60005433600160a060020a03908116911614806115e1575060015433600160a060020a039081169116145b15156115ec57600080fd5b600160a060020a0383166000908152601260205260409020548290101561161257600080fd5b600160a060020a039092166000908152601460209081526040808320805460ff191660011790556016825280832042909501909455601590529190912055565b600d5460ff1681565b60065481565b600e5481565b6000805433600160a060020a0390811691161480611693575060015433600160a060020a039081169116145b151561169e57600080fd5b60015460a060020a900460ff1615156116b657600080fd5b6001805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60005433600160a060020a0390811691161480611731575060015433600160a060020a039081169116145b151561173c57600080fd5b600e548190101561174c57600080fd5b600160a060020a03331660009081526012602052604090205461176f90826126fb565b600160a060020a033316600090815260126020526040902055600e5461179590826126fb565b600e5550565b60008060008060006117ab61369f565b6117b3613635565b60118054899081106117c157fe5b906000526020600020906005020160a060405190810160409081528254600160a060020a031682526001830154602083015260028301549082015260038201546060820152600490910154608082015290508051965080602001519550806040015194508060600151935042816080015110611882576118458160800151426126fb565b925060408051908101604052600b81527f506c656173652057616974000000000000000000000000000000000000000000602082015291506118bd565b6000925060408051908101604052601781527f5069636b20557020596f75722053616c617279204e6f77000000000000000000602082015291505b5091939550919395565b60005433600160a060020a039081169116146118e257600080fd5b600160a060020a03811615156118f757600080fd5b600154600160a060020a0380831691167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a360018054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161480611980575060015433600160a060020a039081169116145b151561198b57600080fd5b80420160108381548110151561199d57fe5b9060005260206000209060050201600401819055505050565b60008060006119c3613635565b60108054869081106119d157fe5b906000526020600020906005020160a060405190810160409081528254600160a060020a0316825260018301546020830152600283015490820152600382015460608201526004909101546080820152905080519350806020015192504281608001518260600151011115611a5457428160800151826060015101039150611a59565b600091505b509193909250565b60005433600160a060020a0390811691161480611a8c575060015433600160a060020a039081169116145b1515611a9757600080fd5b600160a060020a033316600090815260076020526040902054611aba90826126fb565b600160a060020a033316600090815260076020526040902055600654611ae090826126fb565b60065550565b6000611af061360e565b6000611afa61360e565b60015460009060a060020a900460ff1615611b1457600080fd5b8715611c8957600160a060020a03331660009081526007602052604090205487901015611b4057600080fd5b600160a060020a033316600090815260076020526040902054611b6390886126fb565b600160a060020a03331660009081526007602090815260408083209390935560199052819020889055608090519081016040528033600160a060020a031681526020018915158152602001888152602001878152509350600160278054806001018281611bd091906136b1565b6000928352602090922087916003020181518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617815560408201518160010155606082015181600201555050039250871515837f163fa711b7e61f884dd700360ed0dc2c369376de0c6a1956fce4171ca0a9cef1898960405191825260208201526040908101905180910390a3829450611df4565b600160a060020a03331660009081526012602052604090205486901015611caf57600080fd5b600160a060020a033316600090815260126020526040902054611cd290876126fb565b600160a060020a033316600090815260126020908152604080832093909355601a9052819020879055608090519081016040528033600160a060020a031681526020018915158152602001888152602001878152509150600160278054806001018281611d3f91906136b1565b6000928352602090922085916003020181518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617815560408201518160010155606082015181600201555050039050871515817f163fa711b7e61f884dd700360ed0dc2c369376de0c6a1956fce4171ca0a9cef1898960405191825260208201526040908101905180910390a38094505b505050509392505050565b60015460a060020a900460ff1681565b600054600160a060020a031681565b60005433600160a060020a0390811691161480611e49575060015433600160a060020a039081169116145b1515611e5457600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515611e8d57600080fd5b565b600f5481565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b600160a060020a038116600090815260186020908152604080832054601b90925282205490919042901115611f5957600160a060020a0383166000908152601b6020526040902054611f5290426126fb565b9050611f5d565b5060005b915091565b600160a060020a03166000908152601460209081526040808320546015835281842054601690935292205460ff90921692909142900390565b60005433600160a060020a0390811691161480611fc6575060015433600160a060020a039081169116145b1515611fd157600080fd5b80601083815481101515611fe157fe5b9060005260206000209060050201600101819055505050565b600160a060020a031660009081526012602052604090205490565b60005433600160a060020a0390811691161480612040575060015433600160a060020a039081169116145b151561204b57600080fd5b602382905580602260025b01555050565b61206461369f565b60408051908101604052601681527f416c6578616e646572205468652045786c6f73696f6e000000000000000000006020820152905090565b60015460a060020a900460ff16156120b457600080fd5b600160a060020a033316600090815260186020526040812054116120d757600080fd5b600160a060020a03331660009081526018602052604090205461210890601d906005811061210157fe5b01546134f3565b600160a060020a033316600081815260186020526040808220919091557f16bfdc1e6dc7f481f073edc603659a221eed08e79f1d7e075d30eced1d10cc11905160405180910390a2565b60015460a060020a900460ff161561216957600080fd5b600160a060020a03331660009081526014602052604090205460ff16151560011461219357600080fd5b600160a060020a0333166000908152601660205260409020544290106121b857600080fd5b600160a060020a0333166000908152601460209081526040808320805460ff191690556015909152812055565b60005433600160a060020a0390811691161480612210575060015433600160a060020a039081169116145b151561221b57600080fd5b601e82905580601d6002612056565b600160a060020a03166000908152600860209081526040808320546009835281842054600a90935292205460ff90921692909142900390565b6000805433600160a060020a039081169116148061228f575060015433600160a060020a039081169116145b151561229a57600080fd5b60015460a060020a900460ff16156122b157600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b6000808233600160a060020a031660118281548110151561232457fe5b6000918252602090912060059091020154600160a060020a03161461234857600080fd5b4260118281548110151561235857fe5b90600052602060002090600502016001015411151561237657600080fd5b4260118281548110151561238657fe5b9060005260206000209060050201600401541015156123a457600080fd5b60015460a060020a900460ff16156123bb57600080fd5b60118054859081106123c957fe5b60009182526020909120600590910201600381015481549193506123f591600160a060020a0316613578565b61240782600401548360020154613146565b6004830181905582546003840154600160a060020a039091169086907fe59c03907eb3e86b26f58d894ce2930fb7654708c75e33e4ae4a8025631ce94d9060405190815260200160405180910390a45060019392505050565b60055460ff1681565b601d816005811061247657fe5b0154905081565b60005433600160a060020a03908116911614806124a8575060015433600160a060020a039081169116145b15156124b357600080fd5b60118054829081106124c157fe5b6000918252602082206005909102018054600160a060020a03191681556001810182905560028101829055600381018290556004015550565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b60015460009060a060020a900460ff161561257f57600080fd5b50600160a060020a033316600090815260186020908152604080832054601b909252909120544290106125b157600080fd5b600081116125be57600080fd5b6125d6602282600581106125ce57fe5b015433613578565b600160a060020a0333166000908152601b6020526040902054601c546125fc9190613146565b600160a060020a0333166000908152601b60205260409020556022816005811061262257fe5b015433600160a060020a03167ff23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d160405160405180910390a350565b60005433600160a060020a0390811691161480612688575060015433600160a060020a039081169116145b151561269357600080fd5b600f54819010156126a357600080fd5b6126af600f54826126fb565b600f55600160a060020a0333166000908152601260205260409020546126d59082613146565b600160a060020a033316600090815260126020526040902055600e546117959082613146565b60008282111561270a57600080fd5b50900390565b600080600061271d6136dd565b600086815260176020526040902080548690811061273757fe5b9060005260206000209060030201606060405190810160409081528254600160a060020a0316825260018301546020830152600290920154918101919091529050805193508060200151925080604001519150509250925092565b600160a060020a03331660009081526014602052604081205460ff16151561285157600160a060020a0333166000908152601260205260409020546127d790836126fb565b600160a060020a0333811660009081526012602052604080822093909355908516815220546128069083613146565b600160a060020a0380851660008181526012602052604090819020939093559133909116906000805160206137e08339815191529085905190815260200160405180910390a3611520565b600160a060020a033316600090815260156020908152604080832054601290925290912054111561152057600160a060020a0333166000908152601260209081526040808320546015909252909120546128ab91906126fb565b8211156128b757600080fd5b600160a060020a0333166000908152601260205260409020546128da90836126fb565b600160a060020a0333811660009081526012602052604080822093909355908516815220546129099083613146565b600160a060020a0380851660008181526012602052604090819020939093559133909116906000805160206137e08339815191529085905190815260200160405180910390a350600192915050565b6022816005811061247657fe5b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d915780601f10610d6657610100808354040283529160200191610d91565b60008082116129de57600080fd5b81838115156129e957fe5b049392505050565b60005433600160a060020a0390811691161480612a1c575060015433600160a060020a039081169116145b1515612a2757600080fd5b600160a060020a033316600090815260076020526040902054612a4a9082613146565b600160a060020a033316600090815260076020526040902055600654611ae09082613146565b600160a060020a031660009081526007602052604090205490565b600160a060020a03331660009081526014602052604081205460ff16151560011415612ab657600080fd5b600160a060020a03338116600081815260136020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612bae578082015183820152602001612b96565b50505050905090810190601f168015612bdb5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515612bfc57600080fd5b6102c65a03f11515612c0d57600080fd5b5060019695505050505050565b6000612c24613635565b6000805433600160a060020a0390811691161480612c50575060015433600160a060020a039081169116145b1515612c5b57600080fd5b60a06040519081016040528088600160a060020a0316815260200187420181526020018681526020018581526020018642018152509150600160118054806001018281612ca8919061366e565b6000928352602090922085916005020181518154600160a060020a031916600160a060020a039190911617815560208201518160010155604082015181600201556060820151816003015560808201518160040155505003905086600160a060020a0316817fe0a25f374c3ccea9b3852380e0d550961e95fb10b5dd9efb7d390e852786ef7088888860405180848152602001838152602001828152602001935050505060405180910390a39695505050505050565b818102821580612d785750818382811515612d7557fe5b04145b1515610e2857600080fd5b6000805433600160a060020a0390811691161480612daf575060015433600160a060020a039081169116145b1515612dba57600080fd5b60008054600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612e2057600080fd5b6102c65a03f11515612e3157600080fd5b5050506040518051949350505050565b600160a060020a03331660009081526014602052604081205460ff16151560011415612e6c57600080fd5b50600160a060020a03918216600090815260136020908152604080832093909416825291909152205490565b612ea061360e565b60015460a060020a900460ff1615612eb757600080fd5b6027805483908110612ec557fe5b9060005260206000209060030201608060405190810160409081528254600160a060020a038116835260a060020a900460ff1615156020830190815260018401549183019190915260029092015460608201529150511561303357600160a060020a0333166000908152600760205260409081902054612f4791830151613146565b600160a060020a0333166000908152600760205260408120919091556019818351600160a060020a03168152602081019190915260400160002055612f9181518260600151612792565b506027805483908110612fa057fe5b600091825260208220600390910201805474ffffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201558051600160a060020a031633600160a060020a0316837f8e5d31db095940719a41f61a733ac177443e93085309b93626db618db0c9f2718460400151856060015160405191825260208201526040908101905180910390a4613142565b600160a060020a03331660009081526012602052604090205461305a906060830151613146565b600160a060020a033316600090815260126020526040812091909155601a818351600160a060020a031681526020810191909152604001600020556130a481518260400151611324565b5060278054839081106130b357fe5b600091825260208220600390910201805474ffffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201558051600160a060020a031633600160a060020a0316837f8e5d31db095940719a41f61a733ac177443e93085309b93626db618db0c9f2718460400151856060015160405191825260208201526040908101905180910390a45b5050565b81810182811015610e2857600080fd5b601c5481565b60015460a060020a900460ff161561317357600080fd5b600160a060020a03331660009081526008602052604090205460ff16151560011461319d57600080fd5b600160a060020a0333166000908152600a60205260409020544290106131c257600080fd5b600160a060020a0333166000908152600860209081526040808320805460ff191690556009909152812055565b60006131f96136dd565b600086600033600160a060020a031660108381548110151561321757fe5b6000918252602090912060059091020154600160a060020a03161461323b57600080fd5b600060108381548110151561324c57fe5b90600052602060002090600502016001015411151561326a57600080fd5b6132b460108381548110151561327c57fe5b90600052602060002090600502016003015460108481548110151561329d57fe5b906000526020600020906005020160040154613146565b90504281116132c257600080fd5b60015460a060020a900460ff16156132d957600080fd5b601080548a9081106132e757fe5b906000526020600020906005020160020154861115151561330757600080fd5b61333160108a81548110151561331957fe5b906000526020600020906005020160010154876126fb565b601080548b90811061333f57fe5b90600052602060002090600502016001018190555060606040519081016040908152600160a060020a038916825260208083018b905281830189905260008c8152601790915220805491955060019180830161339b83826136fd565b6000928352602090922087916003020181518154600160a060020a031916600160a060020a0391909116178155602082015160018201556040820151816002015550500392506133eb8688613578565b8587600160a060020a0316847fdf6fd8077aa2d207937dd80dc1ddb27e974d3420442c7def38ec089f4364b74e8c60405190815260200160405180910390a450600198975050505050505050565b6000805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df546006540390565b600160a060020a03331660009081526008602052604090205460ff161561349157600080fd5b600160a060020a033316600090815260076020526040902054819010156134b757600080fd5b600160a060020a0333166000908152600860209081526040808320805460ff19166001179055600a825280832060001990556009909152902055565b600160a060020a03331660009081526008602052604090205460ff16151560011461351d57600080fd5b600160a060020a0333166000908152600a6020908152604080832083905560088252808320805460ff19169055600990915290205461355c90826126fb565b600160a060020a03331660009081526009602052604090205550565b600f548290101561358857600080fd5b613594600f54836126fb565b600f55600e546135a49083613146565b600e55600160a060020a0381166000908152601260205260409020546135ca9083613146565b600160a060020a0382166000818152601260205260408082209390935590916000805160206137e08339815191529085905190815260200160405180910390a35050565b60806040519081016040908152600080835260208301819052908201819052606082015290565b60a0604051908101604052806000600160a060020a03168152602001600081526020016000815260200160008152602001600081525090565b81548183558181151161369a5760050281600502836000526020600020918201910161369a9190613729565b505050565b60206040519081016040526000815290565b81548183558181151161369a5760030281600302836000526020600020918201910161369a919061376d565b606060405190810160409081526000808352602083018190529082015290565b81548183558181151161369a5760030281600302836000526020600020918201910161369a91906137ad565b61105391905b80821115613769578054600160a060020a03191681556000600182018190556002820181905560038201819055600482015560050161372f565b5090565b61105391905b8082111561376957805474ffffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820155600301613773565b61105391905b80821115613769578054600160a060020a031916815560006001820181905560028201556003016137b35600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582082046e2290510e6518b962bd7c474b806b958e6acba229ebbd5d4255de76eb1a0029
Swarm Source
bzzr://82046e2290510e6518b962bd7c474b806b958e6acba229ebbd5d4255de76eb1a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.