Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register Name Xn... | 6360813 | 2283 days ago | IN | 0 ETH | 0.00150551 | ||||
Register Name Xn... | 6340858 | 2286 days ago | IN | 0 ETH | 0.00095498 | ||||
Register Name Xn... | 6315587 | 2291 days ago | IN | 0 ETH | 0.00150551 | ||||
Register Name Xn... | 6311846 | 2291 days ago | IN | 0 ETH | 0.0007613 | ||||
Register Name Xn... | 6311763 | 2291 days ago | IN | 0 ETH | 0.0007613 | ||||
Register Name Xn... | 6291339 | 2295 days ago | IN | 0 ETH | 0.00055815 | ||||
Register Name Xn... | 6289942 | 2295 days ago | IN | 0 ETH | 0.00076986 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 7 internal transactions
Advanced mode:
Loading...
Loading
Contract Name:
UserDataManager
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-09-07 */ pragma solidity ^0.4.24; /* * ___ * |三三三i * |三三三| * 神さま かなえて happy-end ノ三三三.廴 * 从ノ_八ム_}ノ * __}ヽ__ ヽ‐个‐ア. © Team EC Present. * `ヒy ノ三ニ==ェ- ___ ィェ=ァ='フ)ヽ-''Lヽ * `‐⌒L三ニ=ニ三三三三三三三〈oi 人 )o〉三ニ、 * ` ̄ ̄ ̄ ̄`弌三三}. ! r三三三ij * ,': ::三三|. ! ,'三三三刈、 * ,': : :::`i三|人|三三ハ三j: ; * ,': : : : : 比| |三三i |三|: ', * ,': : : : : : :Vi| |三三i |三|: : ', * , ': : : : : : : ノ }乂{三三| |三|: : :; * UserDataManager v0.1 ,': : : : : : : : ::j三三三三|: |三i: : ::, * ,': : : : : : : : :/三三三三〈: :!三!: : ::; * ,': : : : : : : : /三三三三三!, |三!: : : , * ,': : : : : : : : ::j三三八三三Y {⌒i: : : :, * ,': : : : : : : : : /三//: }三三j: : ー': : : : , * ,': : : : : : : : :.//三/: : |三三|: : : : : : : : :; * ,': : : : : : : : ://三/: : : |三三|: : : : : : : : ; * ,': : : : : : : : :/三ii/ : : : :|三三|: : : : : : : : :; * ,': : : : : : : : /三//: : : : ::!三三!: : : : : : : : ; * ,': : : : : : : : :j三// : : : : ::|三三!: : : : : : : : :; * ,': : : : : : : : : |三ij: : : : : : ::l三ニ:j: : : : : : : : : ; * ,': : : : : : : : ::::|三ij: : : : : : : !三刈: : : : : : : : : ; * ,': : : : : : : : : : :|三ij: : : : : : ::j三iiテ: : : : : : : : : :; * ,': : : : : : : : : : : |三ij: : : : : : ::|三iiリ: : : : : : : : : : ; * ,':: : : : : : : : : : : :|三ij::: : :: :: :::|三リ: : : : : : : : : : :; * ,': : : : : : : : : : : : :|三ij : : : : : ::l三iリ: : : : : : : : : : : ', * r'三三jiY, : : : : : ::|三ij : : : : : : : : : : : ', * |三 j´ `', signature: * |三三k、 * `ー≠='. 93511761c3aa73c0a197c55537328f7f797c4429 */ interface UserDataManagerReceiverInterface { function receivePlayerInfo(uint256 _pID, address _addr, bytes32 _name, uint256 _laff) external; function receivePlayerNameList(uint256 _pID, bytes32 _name) external; } contract UserDataManager { using NameFilter for string; using SafeMath for uint256; address private admin = msg.sender; uint256 public registrationFee_ = 0; mapping(uint256 => UserDataManagerReceiverInterface) public games_; mapping(address => bytes32) public gameNames_; mapping(address => uint256) public gameIDs_; uint256 public gID_; uint256 public pID_; mapping (address => uint256) public pIDxAddr_; mapping (bytes32 => uint256) public pIDxName_; mapping (uint256 => Player) public plyr_; mapping (uint256 => mapping (bytes32 => bool)) public plyrNames_; mapping (uint256 => mapping (uint256 => bytes32)) public plyrNameList_; struct Player { address addr; bytes32 name; uint256 laff; uint256 names; } constructor() public { // premine the dev names plyr_[1].addr = 0xe27c188521248a49adfc61090d3c8ab7c3754e0a; plyr_[1].name = "matt"; plyr_[1].names = 1; pIDxAddr_[0xe27c188521248a49adfc61090d3c8ab7c3754e0a] = 1; pIDxName_["matt"] = 1; plyrNames_[1]["matt"] = true; plyrNameList_[1][1] = "matt"; pID_ = 1; } modifier isHuman() { address _addr = msg.sender; uint256 _codeLength; assembly {_codeLength := extcodesize(_addr)} require(_codeLength == 0, "sorry humans only"); _; } modifier onlyDevs() { require(admin == msg.sender, "msg sender is not a dev"); _; } modifier isRegisteredGame() { require(gameIDs_[msg.sender] != 0); _; } event onNewName ( uint256 indexed playerID, address indexed playerAddress, bytes32 indexed playerName, bool isNewPlayer, uint256 affiliateID, address affiliateAddress, bytes32 affiliateName, uint256 amountPaid, uint256 timeStamp ); function checkIfNameValid(string _nameStr) public view returns(bool) { bytes32 _name = _nameStr.nameFilter(); if (pIDxName_[_name] == 0) return (true); else return (false); } function registerNameXID(string _nameString, uint256 _affCode, bool _all) isHuman() public payable { require (msg.value >= registrationFee_, "umm..... you have to pay the name fee"); bytes32 _name = NameFilter.nameFilter(_nameString); address _addr = msg.sender; bool _isNewPlayer = determinePID(_addr); uint256 _pID = pIDxAddr_[_addr]; if (_affCode != 0 && _affCode != plyr_[_pID].laff && _affCode != _pID) { plyr_[_pID].laff = _affCode; } else if (_affCode == _pID) { _affCode = 0; } registerNameCore(_pID, _addr, _affCode, _name, _isNewPlayer, _all); } function registerNameXaddr(string _nameString, address _affCode, bool _all) isHuman() public payable { require (msg.value >= registrationFee_, "umm..... you have to pay the name fee"); bytes32 _name = NameFilter.nameFilter(_nameString); address _addr = msg.sender; bool _isNewPlayer = determinePID(_addr); uint256 _pID = pIDxAddr_[_addr]; uint256 _affID; if (_affCode != address(0) && _affCode != _addr) { _affID = pIDxAddr_[_affCode]; if (_affID != plyr_[_pID].laff) { plyr_[_pID].laff = _affID; } } registerNameCore(_pID, _addr, _affID, _name, _isNewPlayer, _all); } function registerNameXname(string _nameString, bytes32 _affCode, bool _all) isHuman() public payable { require (msg.value >= registrationFee_, "umm..... you have to pay the name fee"); bytes32 _name = NameFilter.nameFilter(_nameString); address _addr = msg.sender; bool _isNewPlayer = determinePID(_addr); uint256 _pID = pIDxAddr_[_addr]; uint256 _affID; if (_affCode != "" && _affCode != _name) { _affID = pIDxName_[_affCode]; if (_affID != plyr_[_pID].laff) { plyr_[_pID].laff = _affID; } } registerNameCore(_pID, _addr, _affID, _name, _isNewPlayer, _all); } function addMeToGame(uint256 _gameID) isHuman() public { require(_gameID <= gID_, "that game doesn't exist yet"); address _addr = msg.sender; uint256 _pID = pIDxAddr_[_addr]; require(_pID != 0, "player dont even have an account"); uint256 _totalNames = plyr_[_pID].names; games_[_gameID].receivePlayerInfo(_pID, _addr, plyr_[_pID].name, plyr_[_pID].laff); // add list of all names if (_totalNames > 1) for (uint256 ii = 1; ii <= _totalNames; ii++) games_[_gameID].receivePlayerNameList(_pID, plyrNameList_[_pID][ii]); } function addMeToAllGames() isHuman() public { address _addr = msg.sender; uint256 _pID = pIDxAddr_[_addr]; require(_pID != 0, "player dont even have an account"); uint256 _laff = plyr_[_pID].laff; uint256 _totalNames = plyr_[_pID].names; bytes32 _name = plyr_[_pID].name; for (uint256 i = 1; i <= gID_; i++) { games_[i].receivePlayerInfo(_pID, _addr, _name, _laff); if (_totalNames > 1) for (uint256 ii = 1; ii <= _totalNames; ii++) games_[i].receivePlayerNameList(_pID, plyrNameList_[_pID][ii]); } } function useMyOldName(string _nameString) isHuman() public { bytes32 _name = _nameString.nameFilter(); uint256 _pID = pIDxAddr_[msg.sender]; require(plyrNames_[_pID][_name] == true, "thats not a name you own"); plyr_[_pID].name = _name; } function registerNameCore(uint256 _pID, address _addr, uint256 _affID, bytes32 _name, bool _isNewPlayer, bool _all) private { // if names already has been used, require that current msg sender owns the name if (pIDxName_[_name] != 0) require(plyrNames_[_pID][_name] == true, "sorry that names already taken"); // add name to player profile, registry, and name book plyr_[_pID].name = _name; pIDxName_[_name] = _pID; if (plyrNames_[_pID][_name] == false) { plyrNames_[_pID][_name] = true; plyr_[_pID].names++; plyrNameList_[_pID][plyr_[_pID].names] = _name; } // registration fee goes directly to community rewards admin.transfer(address(this).balance); // push player info to games if (_all == true) for (uint256 i = 1; i <= gID_; i++) games_[i].receivePlayerInfo(_pID, _addr, _name, _affID); // fire event emit onNewName(_pID, _addr, _name, _isNewPlayer, _affID, plyr_[_affID].addr, plyr_[_affID].name, msg.value, now); } function determinePID(address _addr) private returns (bool) { if (pIDxAddr_[_addr] == 0) { pID_++; pIDxAddr_[_addr] = pID_; plyr_[pID_].addr = _addr; // set the new player bool to true return (true); } else { return (false); } } function getPlayerID(address _addr) isRegisteredGame() external returns (uint256) { determinePID(_addr); return (pIDxAddr_[_addr]); } function getPlayerName(uint256 _pID) external view returns (bytes32) { return (plyr_[_pID].name); } function getPlayerLAff(uint256 _pID) external view returns (uint256) { return (plyr_[_pID].laff); } function getPlayerAddr(uint256 _pID) external view returns (address) { return (plyr_[_pID].addr); } function getNameFee() external view returns (uint256) { return(registrationFee_); } function registerNameXIDFromDapp(address _addr, bytes32 _name, uint256 _affCode, bool _all) isRegisteredGame() external payable returns(bool, uint256) { // make sure name fees paid require (msg.value >= registrationFee_, "umm..... you have to pay the name fee"); // set up our tx event data and determine if player is new or not bool _isNewPlayer = determinePID(_addr); // fetch player id uint256 _pID = pIDxAddr_[_addr]; uint256 _affID = _affCode; if (_affID != 0 && _affID != plyr_[_pID].laff && _affID != _pID) { // update last affiliate plyr_[_pID].laff = _affID; } else if (_affID == _pID) { _affID = 0; } // register name registerNameCore(_pID, _addr, _affID, _name, _isNewPlayer, _all); return(_isNewPlayer, _affID); } function registerNameXaddrFromDapp(address _addr, bytes32 _name, address _affCode, bool _all) isRegisteredGame() external payable returns(bool, uint256) { // make sure name fees paid require (msg.value >= registrationFee_, "umm..... you have to pay the name fee"); // set up our tx event data and determine if player is new or not bool _isNewPlayer = determinePID(_addr); // fetch player id uint256 _pID = pIDxAddr_[_addr]; // manage affiliate residuals // if no affiliate code was given or player tried to use their own, lolz uint256 _affID; if (_affCode != address(0) && _affCode != _addr) { // get affiliate ID from aff Code _affID = pIDxAddr_[_affCode]; // if affID is not the same as previously stored if (_affID != plyr_[_pID].laff) { // update last affiliate plyr_[_pID].laff = _affID; } } // register name registerNameCore(_pID, _addr, _affID, _name, _isNewPlayer, _all); return(_isNewPlayer, _affID); } function registerNameXnameFromDapp(address _addr, bytes32 _name, bytes32 _affCode, bool _all) isRegisteredGame() external payable returns(bool, uint256) { // make sure name fees paid require (msg.value >= registrationFee_, "umm..... you have to pay the name fee"); // set up our tx event data and determine if player is new or not bool _isNewPlayer = determinePID(_addr); // fetch player id uint256 _pID = pIDxAddr_[_addr]; // manage affiliate residuals // if no affiliate code was given or player tried to use their own, lolz uint256 _affID; if (_affCode != "" && _affCode != _name) { // get affiliate ID from aff Code _affID = pIDxName_[_affCode]; // if affID is not the same as previously stored if (_affID != plyr_[_pID].laff) { // update last affiliate plyr_[_pID].laff = _affID; } } // register name registerNameCore(_pID, _addr, _affID, _name, _isNewPlayer, _all); return(_isNewPlayer, _affID); } function addGame(address _gameAddress, string _gameNameStr) onlyDevs() public { require(gameIDs_[_gameAddress] == 0, "derp, that games already been registered"); gID_++; bytes32 _name = _gameNameStr.nameFilter(); gameIDs_[_gameAddress] = gID_; gameNames_[_gameAddress] = _name; games_[gID_] = UserDataManagerReceiverInterface(_gameAddress); games_[gID_].receivePlayerInfo(1, plyr_[1].addr, plyr_[1].name, 0); games_[gID_].receivePlayerInfo(2, plyr_[2].addr, plyr_[2].name, 0); games_[gID_].receivePlayerInfo(3, plyr_[3].addr, plyr_[3].name, 0); games_[gID_].receivePlayerInfo(4, plyr_[4].addr, plyr_[4].name, 0); } function setRegistrationFee(uint256 _fee) onlyDevs() public { registrationFee_ = _fee; } } library NameFilter { function nameFilter(string _input) internal pure returns(bytes32) { bytes memory _temp = bytes(_input); uint256 _length = _temp.length; //sorry limited to 32 characters require (_length <= 32 && _length > 0, "string must be between 1 and 32 characters"); // make sure it doesnt start with or end with space require(_temp[0] != 0x20 && _temp[_length-1] != 0x20, "string cannot start or end with space"); // make sure first two characters are not 0x if (_temp[0] == 0x30) { require(_temp[1] != 0x78, "string cannot start with 0x"); require(_temp[1] != 0x58, "string cannot start with 0X"); } // create a bool to track if we have a non number character bool _hasNonNumber; // convert & check for (uint256 i = 0; i < _length; i++) { // if its uppercase A-Z if (_temp[i] > 0x40 && _temp[i] < 0x5b) { // convert to lower case a-z _temp[i] = byte(uint(_temp[i]) + 32); // we have a non number if (_hasNonNumber == false) _hasNonNumber = true; } else { require ( // require character is a space _temp[i] == 0x20 || // OR lowercase a-z (_temp[i] > 0x60 && _temp[i] < 0x7b) || // or 0-9 (_temp[i] > 0x2f && _temp[i] < 0x3a), "string contains invalid characters" ); // make sure theres not 2x spaces in a row if (_temp[i] == 0x20) require( _temp[i+1] != 0x20, "string cannot contain consecutive spaces"); // see if we have a character other than a number if (_hasNonNumber == false && (_temp[i] < 0x30 || _temp[i] > 0x39)) _hasNonNumber = true; } } require(_hasNonNumber == true, "string cannot be only numbers"); bytes32 _ret; assembly { _ret := mload(add(_temp, 32)) } return (_ret); } } library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; require(c / a == b, "SafeMath mul failed"); return c; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath sub failed"); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; require(c >= a, "SafeMath add failed"); return c; } /** * @dev gives square root of given x. */ function sqrt(uint256 x) internal pure returns (uint256 y) { uint256 z = ((add(x,1)) / 2); y = x; while (z < y) { y = z; z = ((add((x / z),z)) / 2); } } /** * @dev gives square. multiplies x by x */ function sq(uint256 x) internal pure returns (uint256) { return (mul(x,x)); } /** * @dev x to the power of y */ function pwr(uint256 x, uint256 y) internal pure returns (uint256) { if (x==0) return (0); else if (y==0) return (1); else { uint256 z = x; for (uint256 i=1; i < y; i++) z = mul(z,x); return (z); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"addMeToAllGames","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pIDxAddr_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registrationFee_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNameFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"bytes32"}],"name":"plyrNames_","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"gameNames_","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"pIDxName_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"},{"name":"_affCode","type":"address"},{"name":"_all","type":"bool"}],"name":"registerNameXaddr","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_gameAddress","type":"address"},{"name":"_gameNameStr","type":"string"}],"name":"addGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pID_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pID","type":"uint256"}],"name":"getPlayerAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"},{"name":"_affCode","type":"bytes32"},{"name":"_all","type":"bool"}],"name":"registerNameXname","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_nameStr","type":"string"}],"name":"checkIfNameValid","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_name","type":"bytes32"},{"name":"_affCode","type":"bytes32"},{"name":"_all","type":"bool"}],"name":"registerNameXnameFromDapp","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_gameID","type":"uint256"}],"name":"addMeToGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_pID","type":"uint256"}],"name":"getPlayerName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"},{"name":"_affCode","type":"uint256"},{"name":"_all","type":"bool"}],"name":"registerNameXID","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"plyrNameList_","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_name","type":"bytes32"},{"name":"_affCode","type":"address"},{"name":"_all","type":"bool"}],"name":"registerNameXaddrFromDapp","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_nameString","type":"string"}],"name":"useMyOldName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gID_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_name","type":"bytes32"},{"name":"_affCode","type":"uint256"},{"name":"_all","type":"bool"}],"name":"registerNameXIDFromDapp","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint256"}],"name":"setRegistrationFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"games_","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"gameIDs_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"plyr_","outputs":[{"name":"addr","type":"address"},{"name":"name","type":"bytes32"},{"name":"laff","type":"uint256"},{"name":"names","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pID","type":"uint256"}],"name":"getPlayerLAff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"getPlayerID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"playerID","type":"uint256"},{"indexed":true,"name":"playerAddress","type":"address"},{"indexed":true,"name":"playerName","type":"bytes32"},{"indexed":false,"name":"isNewPlayer","type":"bool"},{"indexed":false,"name":"affiliateID","type":"uint256"},{"indexed":false,"name":"affiliateAddress","type":"address"},{"indexed":false,"name":"affiliateName","type":"bytes32"},{"indexed":false,"name":"amountPaid","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"onNewName","type":"event"}]
Contract Creation Code
608060405260008054600160a060020a0319163317815560015534801561002557600080fd5b507f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a368054600160a060020a03191673e27c188521248a49adfc61090d3c8ab7c3754e0a1790557f6d617474000000000000000000000000000000000000000000000000000000007f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a3781905560017f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a398190557f7c0b195f6f756050ac7a0eae36a5cdda8a7adcade07f3a0e39f6c546c2815cd48190557f682d31351c69b11f25c3ddfdf8598b3a9bf6e4d40a9c707c4f8f60694b00ca688190557f8b24f0e0041c5251bf6f7e051ec546ffe699ef2961a1080ebc544a1268ebcc21805460ff19168217905560008190527f72c6bfb7988af3a1efa6568f02a999bc52252641c659d85961ca3d372b57d5cf6020527f6bd9ce7c7c44b510ee825857e9b7d0dbc77ffc0dcbb487d9763a092e420c9a189190915560065561259d806101a96000396000f3006080604052600436106101695763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c6940ea811461016e57806310f01eba14610185578063180603eb146101b85780632614195f146101cd5780632660316e146101e257806327249e61146102115780632e19ebdc146102325780633ddd46981461024a5780633fda926e146102a65780634b2271761461030d5780634d0d35ff14610322578063685ffd83146103565780636c52660d146103a9578063745ea0c11461040257806381c5b2061461043c57806382e37b2c14610454578063921dec211461046c578063a448ed4b146104bf578063aa4d490b146104da578063b9291296146104fd578063b9eca0c814610556578063c0942dfd1461056b578063c320c7271461058a578063d5241279146105a2578063dbbcaa97146105ba578063de7874f3146105db578063e3c08adf14610623578063e56556a91461063b575b600080fd5b34801561017a57600080fd5b5061018361065c565b005b34801561019157600080fd5b506101a6600160a060020a03600435166108a4565b60408051918252519081900360200190f35b3480156101c457600080fd5b506101a66108b6565b3480156101d957600080fd5b506101a66108bc565b3480156101ee57600080fd5b506101fd6004356024356108c2565b604080519115158252519081900360200190f35b34801561021d57600080fd5b506101a6600160a060020a03600435166108e2565b34801561023e57600080fd5b506101a66004356108f4565b6040805160206004803580820135601f810184900484028501840190955284845261018394369492936024939284019190819084018382808284375094975050600160a060020a03853516955050505050602001351515610906565b3480156102b257600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610183958335600160a060020a0316953695604494919390910191908190840183828082843750949750610a709650505050505050565b34801561031957600080fd5b506101a6610f16565b34801561032e57600080fd5b5061033a600435610f1c565b60408051600160a060020a039092168252519081900360200190f35b6040805160206004803580820135601f8101849004840285018401909552848452610183943694929360249392840191908190840183828082843750949750508435955050505050602001351515610f3a565b3480156103b557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fd9436949293602493928401919081908401838280828437509497506110789650505050505050565b610421600160a060020a036004351660243560443560643515156110b0565b60408051921515835260208301919091528051918290030190f35b34801561044857600080fd5b506101836004356111c4565b34801561046057600080fd5b506101a6600435611445565b6040805160206004803580820135601f810184900484028501840190955284845261018394369492936024939284019190819084018382808284375094975050843595505050505060200135151561145a565b3480156104cb57600080fd5b506101a660043560243561159c565b610421600160a060020a03600435811690602435906044351660643515156115b9565b34801561050957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101839436949293602493928401919081908401838280828437509497506116dc9650505050505050565b34801561056257600080fd5b506101a66117ce565b610421600160a060020a036004351660243560443560643515156117d4565b34801561059657600080fd5b506101836004356118e0565b3480156105ae57600080fd5b5061033a600435611947565b3480156105c657600080fd5b506101a6600160a060020a0360043516611962565b3480156105e757600080fd5b506105f3600435611974565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561062f57600080fd5b506101a66004356119a5565b34801561064757600080fd5b506101a6600160a060020a03600435166119ba565b600080808080808033803b80156106ab576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b336000818152600760205260409020549099509750871515610717576040805160e560020a62461bcd02815260206004820181905260248201527f706c6179657220646f6e74206576656e206861766520616e206163636f756e74604482015290519081900360640190fd5b6000888152600960205260409020600281015460038201546001928301549199509750955093505b60055484116108995760008481526002602052604080822054815160e060020a6349cc635d028152600481018c9052600160a060020a038d81166024830152604482018a9052606482018c9052925192909116926349cc635d9260848084019382900301818387803b1580156107b457600080fd5b505af11580156107c8573d6000803e3d6000fd5b50505050600186111561088e57600192505b85831161088e576000848152600260209081526040808320548b8452600b83528184208785529092528083205481517f8f7140ea000000000000000000000000000000000000000000000000000000008152600481018d905260248101919091529051600160a060020a0390921692638f7140ea9260448084019382900301818387803b15801561086a57600080fd5b505af115801561087e573d6000803e3d6000fd5b5050600190940193506107da9050565b60019093019261073f565b505050505050505050565b60076020526000908152604090205481565b60015481565b60015490565b600a60209081526000928352604080842090915290825290205460ff1681565b60036020526000908152604090205481565b60086020526000908152604090205481565b60008080808033803b8015610953576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b6001543410156109af576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b6109b88a6119fb565b96503395506109c68661220e565b600160a060020a03808816600090815260076020526040902054919650909450891615801590610a08575085600160a060020a031689600160a060020a031614155b15610a5657600160a060020a0389166000908152600760209081526040808320548784526009909252909120600201549093508314610a565760008481526009602052604090206002018390555b610a648487858a898d612290565b50505050505050505050565b60008054600160a060020a03163314610ad3576040805160e560020a62461bcd02815260206004820152601760248201527f6d73672073656e646572206973206e6f74206120646576000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526004602052604090205415610b67576040805160e560020a62461bcd02815260206004820152602860248201527f646572702c20746861742067616d657320616c7265616479206265656e20726560448201527f6769737465726564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600580546001019055610b79826119fb565b60058054600160a060020a03808716600081815260046020818152604080842096909655600381528583208890558654835260028152858320805473ffffffffffffffffffffffffffffffffffffffff19169094179093559454815283812054600180835260099093527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36547f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a3754865160e060020a6349cc635d0281529788019490945284166024870152604486019290925260648501819052925194955016926349cc635d92608480820193929182900301818387803b158015610c7d57600080fd5b505af1158015610c91573d6000803e3d6000fd5b505060055460009081526002602081815260408084205483855260099092527f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3547f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c454825160e060020a6349cc635d0281526004810195909552600160a060020a0391821660248601526044850152606484018590529051911694506349cc635d93506084808301939282900301818387803b158015610d5057600080fd5b505af1158015610d64573d6000803e3d6000fd5b5050600554600090815260026020908152604080832054600380855260099093527fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7547fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e854835160e060020a6349cc635d0281526004810195909552600160a060020a0391821660248601526044850152606484018590529151911694506349cc635d93506084808301939282900301818387803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600554600090815260026020908152604080832054600480855260099093527f8dc18c4ccfd75f5c815b63770fa542fd953e8fef7e0e44bbdd4913470ce7e9cb547f8dc18c4ccfd75f5c815b63770fa542fd953e8fef7e0e44bbdd4913470ce7e9cc54835160e060020a6349cc635d02815280860195909552600160a060020a0391821660248601526044850152606484018590529151911694506349cc635d93506084808301939282900301818387803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b50505050505050565b60065481565b600081815260096020526040902054600160a060020a03165b919050565b60008080808033803b8015610f87576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b600154341015610fe3576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b610fec8a6119fb565b9650339550610ffa8661220e565b600160a060020a038716600090815260076020526040902054909550935088158015906110275750888714155b15610a56576000898152600860209081526040808320548784526009909252909120600201549093508314610a56576000848152600960205260409020600201839055610a648487858a898d612290565b600080611084836119fb565b60008181526008602052604090205490915015156110a557600191506110aa565b600091505b50919050565b33600090815260046020526040812054819081908190819015156110d357600080fd5b60015434101561112f576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b6111388961220e565b600160a060020a038a16600090815260076020526040902054909350915086158015906111655750868814155b156111a7575060008681526008602090815260408083205484845260099092529091206002015481146111a75760008281526009602052604090206002018190555b6111b5828a838b878b612290565b91989197509095505050505050565b600080808033803b8015611210576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b60055487111561126a576040805160e560020a62461bcd02815260206004820152601b60248201527f746861742067616d6520646f65736e2774206578697374207965740000000000604482015290519081900360640190fd5b3360008181526007602052604090205490965094508415156112d6576040805160e560020a62461bcd02815260206004820181905260248201527f706c6179657220646f6e74206576656e206861766520616e206163636f756e74604482015290519081900360640190fd5b600085815260096020818152604080842060038101548c86526002808552838720548c88529590945260018201549390910154825160e060020a6349cc635d028152600481018c9052600160a060020a038d8116602483015260448201959095526064810191909152915190985091909216926349cc635d926084808201939182900301818387803b15801561136b57600080fd5b505af115801561137f573d6000803e3d6000fd5b505050506001841115610f0d57600192505b838311610f0d57600087815260026020908152604080832054888452600b83528184208785529092528083205481517f8f7140ea000000000000000000000000000000000000000000000000000000008152600481018a905260248101919091529051600160a060020a0390921692638f7140ea9260448084019382900301818387803b15801561142157600080fd5b505af1158015611435573d6000803e3d6000fd5b5050600190940193506113919050565b60009081526009602052604090206001015490565b600080808033803b80156114a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b600154341015611502576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b61150b896119fb565b95503394506115198561220e565b600160a060020a0386166000908152600760205260409020549094509250871580159061155757506000838152600960205260409020600201548814155b80156115635750828814155b1561158157600083815260096020526040902060020188905561158e565b8288141561158e57600097505b61089983868a89888c612290565b600b60209081526000928352604080842090915290825290205481565b33600090815260046020526040812054819081908190819015156115dc57600080fd5b600154341015611638576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b6116418961220e565b600160a060020a03808b16600090815260076020526040902054919450909250871615801590611683575088600160a060020a031687600160a060020a031614155b156111a75750600160a060020a03861660009081526007602090815260408083205484845260099092529091206002015481146111a75760008281526009602052604090206002018190556111b5828a838b878b612290565b60008033803b8015611726576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b61172f856119fb565b33600090815260076020908152604080832054808452600a835281842085855290925290912054919550935060ff1615156001146117b7576040805160e560020a62461bcd02815260206004820152601860248201527f7468617473206e6f742061206e616d6520796f75206f776e0000000000000000604482015290519081900360640190fd5b505060009081526009602052604090206001015550565b60055481565b33600090815260046020526040812054819081908190819015156117f757600080fd5b600154341015611853576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b61185c8961220e565b600160a060020a038a166000908152600760205260409020549093509150869050801580159061189d57506000828152600960205260409020600201548114155b80156118a95750818114155b156118c75760008281526009602052604090206002018190556111a7565b818114156111a7575060006111b5828a838b878b612290565b600054600160a060020a03163314611942576040805160e560020a62461bcd02815260206004820152601760248201527f6d73672073656e646572206973206e6f74206120646576000000000000000000604482015290519081900360640190fd5b600155565b600260205260009081526040902054600160a060020a031681565b60046020526000908152604090205481565b6009602052600090815260409020805460018201546002830154600390930154600160a060020a0390921692909184565b60009081526009602052604090206002015490565b3360009081526004602052604081205415156119d557600080fd5b6119de8261220e565b5050600160a060020a031660009081526007602052604090205490565b8051600090829082808060208411801590611a165750600084115b1515611a92576040805160e560020a62461bcd02815260206004820152602a60248201527f737472696e67206d757374206265206265747765656e203120616e642033322060448201527f6368617261637465727300000000000000000000000000000000000000000000606482015290519081900360840190fd5b846000815181101515611aa157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214158015611b0857508460018503815181101515611ae057fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b1515611b84576040805160e560020a62461bcd02815260206004820152602560248201527f737472696e672063616e6e6f74207374617274206f7220656e6420776974682060448201527f7370616365000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b846000815181101515611b9357fe5b90602001015160f860020a900460f860020a02600160f860020a031916603060f860020a021415611cd657846001815181101515611bcd57fe5b90602001015160f860020a900460f860020a02600160f860020a031916607860f860020a0214151515611c4a576040805160e560020a62461bcd02815260206004820152601b60248201527f737472696e672063616e6e6f7420737461727420776974682030780000000000604482015290519081900360640190fd5b846001815181101515611c5957fe5b90602001015160f860020a900460f860020a02600160f860020a031916605860f860020a0214151515611cd6576040805160e560020a62461bcd02815260206004820152601b60248201527f737472696e672063616e6e6f7420737461727420776974682030580000000000604482015290519081900360640190fd5b600091505b838210156121a65784517f400000000000000000000000000000000000000000000000000000000000000090869084908110611d1357fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611d87575084517f5b0000000000000000000000000000000000000000000000000000000000000090869084908110611d6857fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b15611df4578482815181101515611d9a57fe5b90602001015160f860020a900460f860020a0260f860020a900460200160f860020a028583815181101515611dcb57fe5b906020010190600160f860020a031916908160001a905350821515611def57600192505b61219b565b8482815181101515611e0257fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a021480611ed2575084517f600000000000000000000000000000000000000000000000000000000000000090869084908110611e5e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611ed2575084517f7b0000000000000000000000000000000000000000000000000000000000000090869084908110611eb357fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b80611f7c575084517f2f0000000000000000000000000000000000000000000000000000000000000090869084908110611f0857fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611f7c575084517f3a0000000000000000000000000000000000000000000000000000000000000090869084908110611f5d57fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b1515611ff8576040805160e560020a62461bcd02815260206004820152602260248201527f737472696e6720636f6e7461696e7320696e76616c696420636861726163746560448201527f7273000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b848281518110151561200657fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214156120e557848260010181518110151561204257fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02141515156120e5576040805160e560020a62461bcd02815260206004820152602860248201527f737472696e672063616e6e6f7420636f6e7461696e20636f6e7365637574697660448201527f6520737061636573000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b82158015612191575084517f30000000000000000000000000000000000000000000000000000000000000009086908490811061211e57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161080612191575084517f39000000000000000000000000000000000000000000000000000000000000009086908490811061217257fe5b90602001015160f860020a900460f860020a02600160f860020a031916115b1561219b57600192505b600190910190611cdb565b600183151514612200576040805160e560020a62461bcd02815260206004820152601d60248201527f737472696e672063616e6e6f74206265206f6e6c79206e756d62657273000000604482015290519081900360640190fd5b505050506020015192915050565b600160a060020a0381166000908152600760205260408120541515612288575060068054600190810191829055600160a060020a03831660008181526007602090815260408083208690559482526009905292909220805473ffffffffffffffffffffffffffffffffffffffff1916909217909155610f35565b506000610f35565b6000838152600860205260408120541561231a576000878152600a6020908152604080832087845290915290205460ff16151560011461231a576040805160e560020a62461bcd02815260206004820152601e60248201527f736f7272792074686174206e616d657320616c72656164792074616b656e0000604482015290519081900360640190fd5b6000878152600960209081526040808320600101879055868352600882528083208a9055898352600a825280832087845290915290205460ff1615156123aa576000878152600a602090815260408083208784528252808320805460ff191660019081179091558a845260098352818420600301805490910190819055600b835281842090845290915290208490555b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156123e5573d6000803e3d6000fd5b506001821515141561248e575060015b600554811161248e5760008181526002602052604080822054815160e060020a6349cc635d028152600481018b9052600160a060020a038a8116602483015260448201899052606482018a9052925192909116926349cc635d9260848084019382900301818387803b15801561246a57600080fd5b505af115801561247e573d6000803e3d6000fd5b5050600190920191506123f59050565b600085815260096020908152604091829020805460019091015483518715158152928301899052600160a060020a039182168385015260608301523460808301524260a0830152915186928916918a917fdd6176433ff5026bbce96b068584b7bbe3514227e72df9c630b749ae87e644429181900360c00190a4505050505050505600756d6d2e2e2e2e2e2020796f75206861766520746f2070617920746865206e616d65206665650000000000000000000000000000000000000000000000000000736f7272792068756d616e73206f6e6c79000000000000000000000000000000a165627a7a7230582039696b47b3e2c8f51627b5c23df02c4b40a6b2d95cee69707adc556f6795f41e0029
Deployed Bytecode
0x6080604052600436106101695763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c6940ea811461016e57806310f01eba14610185578063180603eb146101b85780632614195f146101cd5780632660316e146101e257806327249e61146102115780632e19ebdc146102325780633ddd46981461024a5780633fda926e146102a65780634b2271761461030d5780634d0d35ff14610322578063685ffd83146103565780636c52660d146103a9578063745ea0c11461040257806381c5b2061461043c57806382e37b2c14610454578063921dec211461046c578063a448ed4b146104bf578063aa4d490b146104da578063b9291296146104fd578063b9eca0c814610556578063c0942dfd1461056b578063c320c7271461058a578063d5241279146105a2578063dbbcaa97146105ba578063de7874f3146105db578063e3c08adf14610623578063e56556a91461063b575b600080fd5b34801561017a57600080fd5b5061018361065c565b005b34801561019157600080fd5b506101a6600160a060020a03600435166108a4565b60408051918252519081900360200190f35b3480156101c457600080fd5b506101a66108b6565b3480156101d957600080fd5b506101a66108bc565b3480156101ee57600080fd5b506101fd6004356024356108c2565b604080519115158252519081900360200190f35b34801561021d57600080fd5b506101a6600160a060020a03600435166108e2565b34801561023e57600080fd5b506101a66004356108f4565b6040805160206004803580820135601f810184900484028501840190955284845261018394369492936024939284019190819084018382808284375094975050600160a060020a03853516955050505050602001351515610906565b3480156102b257600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610183958335600160a060020a0316953695604494919390910191908190840183828082843750949750610a709650505050505050565b34801561031957600080fd5b506101a6610f16565b34801561032e57600080fd5b5061033a600435610f1c565b60408051600160a060020a039092168252519081900360200190f35b6040805160206004803580820135601f8101849004840285018401909552848452610183943694929360249392840191908190840183828082843750949750508435955050505050602001351515610f3a565b3480156103b557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fd9436949293602493928401919081908401838280828437509497506110789650505050505050565b610421600160a060020a036004351660243560443560643515156110b0565b60408051921515835260208301919091528051918290030190f35b34801561044857600080fd5b506101836004356111c4565b34801561046057600080fd5b506101a6600435611445565b6040805160206004803580820135601f810184900484028501840190955284845261018394369492936024939284019190819084018382808284375094975050843595505050505060200135151561145a565b3480156104cb57600080fd5b506101a660043560243561159c565b610421600160a060020a03600435811690602435906044351660643515156115b9565b34801561050957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101839436949293602493928401919081908401838280828437509497506116dc9650505050505050565b34801561056257600080fd5b506101a66117ce565b610421600160a060020a036004351660243560443560643515156117d4565b34801561059657600080fd5b506101836004356118e0565b3480156105ae57600080fd5b5061033a600435611947565b3480156105c657600080fd5b506101a6600160a060020a0360043516611962565b3480156105e757600080fd5b506105f3600435611974565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561062f57600080fd5b506101a66004356119a5565b34801561064757600080fd5b506101a6600160a060020a03600435166119ba565b600080808080808033803b80156106ab576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b336000818152600760205260409020549099509750871515610717576040805160e560020a62461bcd02815260206004820181905260248201527f706c6179657220646f6e74206576656e206861766520616e206163636f756e74604482015290519081900360640190fd5b6000888152600960205260409020600281015460038201546001928301549199509750955093505b60055484116108995760008481526002602052604080822054815160e060020a6349cc635d028152600481018c9052600160a060020a038d81166024830152604482018a9052606482018c9052925192909116926349cc635d9260848084019382900301818387803b1580156107b457600080fd5b505af11580156107c8573d6000803e3d6000fd5b50505050600186111561088e57600192505b85831161088e576000848152600260209081526040808320548b8452600b83528184208785529092528083205481517f8f7140ea000000000000000000000000000000000000000000000000000000008152600481018d905260248101919091529051600160a060020a0390921692638f7140ea9260448084019382900301818387803b15801561086a57600080fd5b505af115801561087e573d6000803e3d6000fd5b5050600190940193506107da9050565b60019093019261073f565b505050505050505050565b60076020526000908152604090205481565b60015481565b60015490565b600a60209081526000928352604080842090915290825290205460ff1681565b60036020526000908152604090205481565b60086020526000908152604090205481565b60008080808033803b8015610953576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b6001543410156109af576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b6109b88a6119fb565b96503395506109c68661220e565b600160a060020a03808816600090815260076020526040902054919650909450891615801590610a08575085600160a060020a031689600160a060020a031614155b15610a5657600160a060020a0389166000908152600760209081526040808320548784526009909252909120600201549093508314610a565760008481526009602052604090206002018390555b610a648487858a898d612290565b50505050505050505050565b60008054600160a060020a03163314610ad3576040805160e560020a62461bcd02815260206004820152601760248201527f6d73672073656e646572206973206e6f74206120646576000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526004602052604090205415610b67576040805160e560020a62461bcd02815260206004820152602860248201527f646572702c20746861742067616d657320616c7265616479206265656e20726560448201527f6769737465726564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600580546001019055610b79826119fb565b60058054600160a060020a03808716600081815260046020818152604080842096909655600381528583208890558654835260028152858320805473ffffffffffffffffffffffffffffffffffffffff19169094179093559454815283812054600180835260099093527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36547f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a3754865160e060020a6349cc635d0281529788019490945284166024870152604486019290925260648501819052925194955016926349cc635d92608480820193929182900301818387803b158015610c7d57600080fd5b505af1158015610c91573d6000803e3d6000fd5b505060055460009081526002602081815260408084205483855260099092527f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3547f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c454825160e060020a6349cc635d0281526004810195909552600160a060020a0391821660248601526044850152606484018590529051911694506349cc635d93506084808301939282900301818387803b158015610d5057600080fd5b505af1158015610d64573d6000803e3d6000fd5b5050600554600090815260026020908152604080832054600380855260099093527fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7547fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e854835160e060020a6349cc635d0281526004810195909552600160a060020a0391821660248601526044850152606484018590529151911694506349cc635d93506084808301939282900301818387803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600554600090815260026020908152604080832054600480855260099093527f8dc18c4ccfd75f5c815b63770fa542fd953e8fef7e0e44bbdd4913470ce7e9cb547f8dc18c4ccfd75f5c815b63770fa542fd953e8fef7e0e44bbdd4913470ce7e9cc54835160e060020a6349cc635d02815280860195909552600160a060020a0391821660248601526044850152606484018590529151911694506349cc635d93506084808301939282900301818387803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b50505050505050565b60065481565b600081815260096020526040902054600160a060020a03165b919050565b60008080808033803b8015610f87576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b600154341015610fe3576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b610fec8a6119fb565b9650339550610ffa8661220e565b600160a060020a038716600090815260076020526040902054909550935088158015906110275750888714155b15610a56576000898152600860209081526040808320548784526009909252909120600201549093508314610a56576000848152600960205260409020600201839055610a648487858a898d612290565b600080611084836119fb565b60008181526008602052604090205490915015156110a557600191506110aa565b600091505b50919050565b33600090815260046020526040812054819081908190819015156110d357600080fd5b60015434101561112f576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b6111388961220e565b600160a060020a038a16600090815260076020526040902054909350915086158015906111655750868814155b156111a7575060008681526008602090815260408083205484845260099092529091206002015481146111a75760008281526009602052604090206002018190555b6111b5828a838b878b612290565b91989197509095505050505050565b600080808033803b8015611210576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b60055487111561126a576040805160e560020a62461bcd02815260206004820152601b60248201527f746861742067616d6520646f65736e2774206578697374207965740000000000604482015290519081900360640190fd5b3360008181526007602052604090205490965094508415156112d6576040805160e560020a62461bcd02815260206004820181905260248201527f706c6179657220646f6e74206576656e206861766520616e206163636f756e74604482015290519081900360640190fd5b600085815260096020818152604080842060038101548c86526002808552838720548c88529590945260018201549390910154825160e060020a6349cc635d028152600481018c9052600160a060020a038d8116602483015260448201959095526064810191909152915190985091909216926349cc635d926084808201939182900301818387803b15801561136b57600080fd5b505af115801561137f573d6000803e3d6000fd5b505050506001841115610f0d57600192505b838311610f0d57600087815260026020908152604080832054888452600b83528184208785529092528083205481517f8f7140ea000000000000000000000000000000000000000000000000000000008152600481018a905260248101919091529051600160a060020a0390921692638f7140ea9260448084019382900301818387803b15801561142157600080fd5b505af1158015611435573d6000803e3d6000fd5b5050600190940193506113919050565b60009081526009602052604090206001015490565b600080808033803b80156114a6576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b600154341015611502576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b61150b896119fb565b95503394506115198561220e565b600160a060020a0386166000908152600760205260409020549094509250871580159061155757506000838152600960205260409020600201548814155b80156115635750828814155b1561158157600083815260096020526040902060020188905561158e565b8288141561158e57600097505b61089983868a89888c612290565b600b60209081526000928352604080842090915290825290205481565b33600090815260046020526040812054819081908190819015156115dc57600080fd5b600154341015611638576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b6116418961220e565b600160a060020a03808b16600090815260076020526040902054919450909250871615801590611683575088600160a060020a031687600160a060020a031614155b156111a75750600160a060020a03861660009081526007602090815260408083205484845260099092529091206002015481146111a75760008281526009602052604090206002018190556111b5828a838b878b612290565b60008033803b8015611726576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612552833981519152604482015290519081900360640190fd5b61172f856119fb565b33600090815260076020908152604080832054808452600a835281842085855290925290912054919550935060ff1615156001146117b7576040805160e560020a62461bcd02815260206004820152601860248201527f7468617473206e6f742061206e616d6520796f75206f776e0000000000000000604482015290519081900360640190fd5b505060009081526009602052604090206001015550565b60055481565b33600090815260046020526040812054819081908190819015156117f757600080fd5b600154341015611853576040805160e560020a62461bcd02815260206004820152602660248201526000805160206125128339815191526044820152600080516020612532833981519152606482015290519081900360840190fd5b61185c8961220e565b600160a060020a038a166000908152600760205260409020549093509150869050801580159061189d57506000828152600960205260409020600201548114155b80156118a95750818114155b156118c75760008281526009602052604090206002018190556111a7565b818114156111a7575060006111b5828a838b878b612290565b600054600160a060020a03163314611942576040805160e560020a62461bcd02815260206004820152601760248201527f6d73672073656e646572206973206e6f74206120646576000000000000000000604482015290519081900360640190fd5b600155565b600260205260009081526040902054600160a060020a031681565b60046020526000908152604090205481565b6009602052600090815260409020805460018201546002830154600390930154600160a060020a0390921692909184565b60009081526009602052604090206002015490565b3360009081526004602052604081205415156119d557600080fd5b6119de8261220e565b5050600160a060020a031660009081526007602052604090205490565b8051600090829082808060208411801590611a165750600084115b1515611a92576040805160e560020a62461bcd02815260206004820152602a60248201527f737472696e67206d757374206265206265747765656e203120616e642033322060448201527f6368617261637465727300000000000000000000000000000000000000000000606482015290519081900360840190fd5b846000815181101515611aa157fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214158015611b0857508460018503815181101515611ae057fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214155b1515611b84576040805160e560020a62461bcd02815260206004820152602560248201527f737472696e672063616e6e6f74207374617274206f7220656e6420776974682060448201527f7370616365000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b846000815181101515611b9357fe5b90602001015160f860020a900460f860020a02600160f860020a031916603060f860020a021415611cd657846001815181101515611bcd57fe5b90602001015160f860020a900460f860020a02600160f860020a031916607860f860020a0214151515611c4a576040805160e560020a62461bcd02815260206004820152601b60248201527f737472696e672063616e6e6f7420737461727420776974682030780000000000604482015290519081900360640190fd5b846001815181101515611c5957fe5b90602001015160f860020a900460f860020a02600160f860020a031916605860f860020a0214151515611cd6576040805160e560020a62461bcd02815260206004820152601b60248201527f737472696e672063616e6e6f7420737461727420776974682030580000000000604482015290519081900360640190fd5b600091505b838210156121a65784517f400000000000000000000000000000000000000000000000000000000000000090869084908110611d1357fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611d87575084517f5b0000000000000000000000000000000000000000000000000000000000000090869084908110611d6857fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b15611df4578482815181101515611d9a57fe5b90602001015160f860020a900460f860020a0260f860020a900460200160f860020a028583815181101515611dcb57fe5b906020010190600160f860020a031916908160001a905350821515611def57600192505b61219b565b8482815181101515611e0257fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a021480611ed2575084517f600000000000000000000000000000000000000000000000000000000000000090869084908110611e5e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611ed2575084517f7b0000000000000000000000000000000000000000000000000000000000000090869084908110611eb357fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b80611f7c575084517f2f0000000000000000000000000000000000000000000000000000000000000090869084908110611f0857fe5b90602001015160f860020a900460f860020a02600160f860020a031916118015611f7c575084517f3a0000000000000000000000000000000000000000000000000000000000000090869084908110611f5d57fe5b90602001015160f860020a900460f860020a02600160f860020a031916105b1515611ff8576040805160e560020a62461bcd02815260206004820152602260248201527f737472696e6720636f6e7461696e7320696e76616c696420636861726163746560448201527f7273000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b848281518110151561200657fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a0214156120e557848260010181518110151561204257fe5b90602001015160f860020a900460f860020a02600160f860020a031916602060f860020a02141515156120e5576040805160e560020a62461bcd02815260206004820152602860248201527f737472696e672063616e6e6f7420636f6e7461696e20636f6e7365637574697660448201527f6520737061636573000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b82158015612191575084517f30000000000000000000000000000000000000000000000000000000000000009086908490811061211e57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161080612191575084517f39000000000000000000000000000000000000000000000000000000000000009086908490811061217257fe5b90602001015160f860020a900460f860020a02600160f860020a031916115b1561219b57600192505b600190910190611cdb565b600183151514612200576040805160e560020a62461bcd02815260206004820152601d60248201527f737472696e672063616e6e6f74206265206f6e6c79206e756d62657273000000604482015290519081900360640190fd5b505050506020015192915050565b600160a060020a0381166000908152600760205260408120541515612288575060068054600190810191829055600160a060020a03831660008181526007602090815260408083208690559482526009905292909220805473ffffffffffffffffffffffffffffffffffffffff1916909217909155610f35565b506000610f35565b6000838152600860205260408120541561231a576000878152600a6020908152604080832087845290915290205460ff16151560011461231a576040805160e560020a62461bcd02815260206004820152601e60248201527f736f7272792074686174206e616d657320616c72656164792074616b656e0000604482015290519081900360640190fd5b6000878152600960209081526040808320600101879055868352600882528083208a9055898352600a825280832087845290915290205460ff1615156123aa576000878152600a602090815260408083208784528252808320805460ff191660019081179091558a845260098352818420600301805490910190819055600b835281842090845290915290208490555b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156123e5573d6000803e3d6000fd5b506001821515141561248e575060015b600554811161248e5760008181526002602052604080822054815160e060020a6349cc635d028152600481018b9052600160a060020a038a8116602483015260448201899052606482018a9052925192909116926349cc635d9260848084019382900301818387803b15801561246a57600080fd5b505af115801561247e573d6000803e3d6000fd5b5050600190920191506123f59050565b600085815260096020908152604091829020805460019091015483518715158152928301899052600160a060020a039182168385015260608301523460808301524260a0830152915186928916918a917fdd6176433ff5026bbce96b068584b7bbe3514227e72df9c630b749ae87e644429181900360c00190a4505050505050505600756d6d2e2e2e2e2e2020796f75206861766520746f2070617920746865206e616d65206665650000000000000000000000000000000000000000000000000000736f7272792068756d616e73206f6e6c79000000000000000000000000000000a165627a7a7230582039696b47b3e2c8f51627b5c23df02c4b40a6b2d95cee69707adc556f6795f41e0029
Swarm Source
bzzr://39696b47b3e2c8f51627b5c23df02c4b40a6b2d95cee69707adc556f6795f41e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.