ERC-20
Exchange
Overview
Max Total Supply
40,000,000,000 GEX
Holders
284 (0.00%)
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-05 */ pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title Mintable token * @dev Simple ERC20 Token example, with mintable token creation * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol */ contract MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(address(0), _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner canMint public returns (bool) { mintingFinished = true; MintFinished(); return true; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; Unpause(); } } contract DividendToken is StandardToken, Ownable { event PayDividend(address indexed to, uint256 amount); event HangingDividend(address indexed to, uint256 amount) ; event PayHangingDividend(uint256 amount) ; event Deposit(address indexed sender, uint256 value); /// @dev parameters of an extra token emission struct EmissionInfo { // new totalSupply after emission happened uint256 totalSupply; // total balance of Ether stored at the contract when emission happened uint256 totalBalanceWas; } constructor () public { m_emissions.push(EmissionInfo({ totalSupply: totalSupply(), totalBalanceWas: 0 })); } function() external payable { if (msg.value > 0) { emit Deposit(msg.sender, msg.value); m_totalDividends = m_totalDividends.add(msg.value); } } /// @notice Request dividends for current account. function requestDividends() public { payDividendsTo(msg.sender); } /// @notice Request hanging dividends to pwner. function requestHangingDividends() onlyOwner public { owner.transfer(m_totalHangingDividends); emit PayHangingDividend(m_totalHangingDividends); m_totalHangingDividends = 0; } /// @notice hook on standard ERC20#transfer to pay dividends function transfer(address _to, uint256 _value) public returns (bool) { payDividendsTo(msg.sender); payDividendsTo(_to); return super.transfer(_to, _value); } /// @notice hook on standard ERC20#transferFrom to pay dividends function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { payDividendsTo(_from); payDividendsTo(_to); return super.transferFrom(_from, _to, _value); } /// @dev adds dividends to the account _to function payDividendsTo(address _to) internal { (bool hasNewDividends, uint256 dividends, uint256 lastProcessedEmissionNum) = calculateDividendsFor(_to); if (!hasNewDividends) return; if (0 != dividends) { bool res = _to.send(dividends); if (res) { emit PayDividend(_to, dividends); } else{ // _to probably is a contract not able to receive ether emit HangingDividend(_to, dividends); m_totalHangingDividends = m_totalHangingDividends.add(dividends); } } m_lastAccountEmission[_to] = lastProcessedEmissionNum; if (lastProcessedEmissionNum == getLastEmissionNum()) { m_lastDividends[_to] = m_totalDividends; } else { m_lastDividends[_to] = m_emissions[lastProcessedEmissionNum.add(1)].totalBalanceWas; } } /// @dev calculates dividends for the account _for /// @return (true if state has to be updated, dividend amount (could be 0!), lastProcessedEmissionNum) function calculateDividendsFor(address _for) view internal returns ( bool hasNewDividends, uint256 dividends, uint256 lastProcessedEmissionNum ) { uint256 lastEmissionNum = getLastEmissionNum(); uint256 lastAccountEmissionNum = m_lastAccountEmission[_for]; assert(lastAccountEmissionNum <= lastEmissionNum); uint256 totalBalanceWasWhenLastPay = m_lastDividends[_for]; assert(m_totalDividends >= totalBalanceWasWhenLastPay); // If no new ether was collected since last dividends claim if (m_totalDividends == totalBalanceWasWhenLastPay) return (false, 0, lastAccountEmissionNum); uint256 initialBalance = balances[_for]; // beware of recursion! // if no tokens owned by account if (0 == initialBalance) return (true, 0, lastEmissionNum); // We start with last processed emission because some ether could be collected before next emission // we pay all remaining ether collected and continue with all the next emissions uint256 iter = 0; uint256 iterMax = getMaxIterationsForRequestDividends(); for (uint256 emissionToProcess = lastAccountEmissionNum; emissionToProcess <= lastEmissionNum; emissionToProcess++) { if (iter++ > iterMax) break; lastAccountEmissionNum = emissionToProcess; EmissionInfo storage emission = m_emissions[emissionToProcess]; if (0 == emission.totalSupply) continue; uint256 totalEtherDuringEmission; // last emission we stopped on if (emissionToProcess == lastEmissionNum) { totalEtherDuringEmission = m_totalDividends.sub(totalBalanceWasWhenLastPay); } else { totalEtherDuringEmission = m_emissions[emissionToProcess.add(1)].totalBalanceWas.sub(totalBalanceWasWhenLastPay); totalBalanceWasWhenLastPay = m_emissions[emissionToProcess.add(1)].totalBalanceWas; } uint256 dividend = totalEtherDuringEmission.mul(initialBalance).div(emission.totalSupply); dividends = dividends.add(dividend); } return (true, dividends, lastAccountEmissionNum); } function getLastEmissionNum() private view returns (uint256) { return m_emissions.length - 1; } /// @dev to prevent gasLimit problems with many mintings function getMaxIterationsForRequestDividends() internal pure returns (uint256) { return 200; } /// @notice record of issued dividend emissions EmissionInfo[] public m_emissions; /// @dev for each token holder: last emission (index in m_emissions) which was processed for this holder mapping(address => uint256) public m_lastAccountEmission; /// @dev for each token holder: last ether balance was when requested dividends mapping(address => uint256) public m_lastDividends; uint256 public m_totalHangingDividends; uint256 public m_totalDividends; } contract MintableDividendToken is DividendToken, MintableToken { event EmissionHappened(uint256 totalSupply, uint256 totalBalanceWas); function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { payDividendsTo(_to); bool res = super.mint(_to, _amount); m_emissions.push(EmissionInfo({ totalSupply: totalSupply_, totalBalanceWas: m_totalDividends })); emit EmissionHappened(totalSupply(), m_totalDividends); return res; } } contract CappedDividendToken is MintableDividendToken { uint256 public cap; function CappedDividendToken(uint256 _cap) public { require(_cap > 0); cap = _cap; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { require(totalSupply_.add(_amount) <= cap); return super.mint(_to, _amount); } } contract PausableDividendToken is DividendToken, Pausable { /// @notice Request dividends for current account. function requestDividends() whenNotPaused public { super.requestDividends(); } function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transferFrom(_from, _to, _value); } function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { return super.approve(_spender, _value); } function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) { return super.increaseApproval(_spender, _addedValue); } function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) { return super.decreaseApproval(_spender, _subtractedValue); } } contract PausableMintableDividendToken is PausableDividendToken, MintableDividendToken { function mint(address _to, uint256 _amount) whenNotPaused public returns (bool) { return super.mint(_to, _amount); } } contract PausableCappedDividendToken is PausableDividendToken, CappedDividendToken { function PausableCappedDividendToken(uint256 _cap) public CappedDividendToken(_cap) { } function mint(address _to, uint256 _amount) whenNotPaused public returns (bool) { return super.mint(_to, _amount); } } contract Token is DividendToken , PausableMintableDividendToken { string public constant name = 'Globex'; string public constant symbol = 'GEX'; uint8 public constant decimals = 8; function Token() public payable { uint premintAmount = 20000000000*10**uint(decimals); totalSupply_ = totalSupply_.add(premintAmount); balances[msg.sender] = balances[msg.sender].add(premintAmount); Transfer(address(0), msg.sender, premintAmount); m_emissions.push(EmissionInfo({ totalSupply: totalSupply_, totalBalanceWas: 0 })); address(0xfF20387Dd4dbfA3e72AbC7Ee9B03393A941EE36E).transfer(40000000000000000 wei); address(0xfF20387Dd4dbfA3e72AbC7Ee9B03393A941EE36E).transfer(160000000000000000 wei); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"requestHangingDividends","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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"m_lastDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"m_lastAccountEmission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"m_emissions","outputs":[{"name":"totalSupply","type":"uint256"},{"name":"totalBalanceWas","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"requestDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_totalDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_totalHangingDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalSupply","type":"uint256"},{"indexed":false,"name":"totalBalanceWas","type":"uint256"}],"name":"EmissionHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PayDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"HangingDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"PayHangingDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
6009805461ffff1916905560038054600160a060020a0319163317905560c0604052600060046080806200003b6401000000006200020a810204565b8152600060209182018190528354600181810186559482529082902083516002909202019081559101519082015554671bc16d674ec8000091506200008f9082640100000000620005586200021082021704565b60015533600090815260208190526040902054620000bc9082640100000000620005586200021082021704565b336000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3604080518082018252600180548252600060208301818152600480549384018155825292517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60029093029283015591517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c90910155905173ff20387dd4dbfa3e72abc7ee9b03393a941ee36e9190668e1bc9bf0400009082818181858883f19350505050158015620001bc573d6000803e3d6000fd5b5060405173ff20387dd4dbfa3e72abc7ee9b03393a941ee36e906000906702386f26fc1000009082818181858883f1935050505015801562000202573d6000803e3d6000fd5b505062000227565b60015490565b6000828201838110156200022057fe5b9392505050565b6114a080620002376000396000f3006080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101ab57806306fdde03146101d4578063095ea7b31461025e57806314c8e5f41461028257806318160ddd1461029757806323b872dd146102be578063313ce567146102e85780633f4ba83a1461031357806340c10f191461032857806353d467781461034c5780635c975abb1461036d5780636467d4431461038257806366188463146103a357806370a08231146103c75780637d64bcb4146103e85780638456cb59146103fd5780638da5cb5b1461041257806395d89b4114610443578063a9059cbb14610458578063af1077491461047c578063d4a9991f146104ad578063d73dd623146104c2578063dd62ed3e146104e6578063e04ed2ff1461050d578063f1c653de14610522578063f2fde38b14610537575b60003411156101a95760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a26008546101a5903463ffffffff61055816565b6008555b005b3480156101b757600080fd5b506101c0610572565b604080519115158252519081900360200190f35b3480156101e057600080fd5b506101e9610580565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022357818101518382015260200161020b565b50505050905090810190601f1680156102505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026a57600080fd5b506101c0600160a060020a03600435166024356105b7565b34801561028e57600080fd5b506101a96105db565b3480156102a357600080fd5b506102ac61066b565b60408051918252519081900360200190f35b3480156102ca57600080fd5b506101c0600160a060020a0360043581169060243516604435610671565b3480156102f457600080fd5b506102fd610697565b6040805160ff9092168252519081900360200190f35b34801561031f57600080fd5b506101a961069c565b34801561033457600080fd5b506101c0600160a060020a03600435166024356106f9565b34801561035857600080fd5b506102ac600160a060020a0360043516610716565b34801561037957600080fd5b506101c0610728565b34801561038e57600080fd5b506102ac600160a060020a0360043516610731565b3480156103af57600080fd5b506101c0600160a060020a0360043516602435610743565b3480156103d357600080fd5b506102ac600160a060020a0360043516610760565b3480156103f457600080fd5b506101c061077b565b34801561040957600080fd5b506101a96107e8565b34801561041e57600080fd5b50610427610847565b60408051600160a060020a039092168252519081900360200190f35b34801561044f57600080fd5b506101e9610856565b34801561046457600080fd5b506101c0600160a060020a036004351660243561088d565b34801561048857600080fd5b506104946004356108aa565b6040805192835260208301919091528051918290030190f35b3480156104b957600080fd5b506101a96108d6565b3480156104ce57600080fd5b506101c0600160a060020a03600435166024356108f0565b3480156104f257600080fd5b506102ac600160a060020a036004358116906024351661090d565b34801561051957600080fd5b506102ac610938565b34801561052e57600080fd5b506102ac61093e565b34801561054357600080fd5b506101a9600160a060020a0360043516610944565b60008282018381101561056757fe5b8091505b5092915050565b600954610100900460ff1681565b60408051808201909152600681527f476c6f6265780000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156105ca57600080fd5b6105d483836109d9565b9392505050565b600354600160a060020a031633146105f257600080fd5b600354600754604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561062e573d6000803e3d6000fd5b5060075460408051918252517faad07d22ebcaba769512847d0d30b1c8acccdbb404df29da293fd21f2adc9e679181900360200190a16000600755565b60015490565b60095460009060ff161561068457600080fd5b61068f848484610a3f565b949350505050565b600881565b600354600160a060020a031633146106b357600080fd5b60095460ff1615156106c457600080fd5b6009805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60095460009060ff161561070c57600080fd5b6105d48383610a5e565b60066020526000908152604090205481565b60095460ff1681565b60056020526000908152604090205481565b60095460009060ff161561075657600080fd5b6105d48383610b68565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a0316331461079557600080fd5b600954610100900460ff16156107aa57600080fd5b6009805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600354600160a060020a031633146107ff57600080fd5b60095460ff161561080f57600080fd5b6009805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b60408051808201909152600381527f4745580000000000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156108a057600080fd5b6105d48383610c58565b60048054829081106108b857fe5b60009182526020909120600290910201805460019091015490915082565b60095460ff16156108e657600080fd5b6108ee610c76565b565b60095460009060ff161561090357600080fd5b6105d48383610c7f565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085481565b60075481565b600354600160a060020a0316331461095b57600080fd5b600160a060020a038116151561097057600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000610a4a84610d18565b610a5383610d18565b61068f848484610ea4565b6003546000908190600160a060020a03163314610a7a57600080fd5b600954610100900460ff1615610a8f57600080fd5b610a9884610d18565b610aa2848461101b565b604080518082019091526001805482526008546020830190815260048054928301815560005291517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60029092029182015590517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c9091015590507f3d896744603f73cf2a71599411a31225750fde80c81bd20712440bcc27b319ba610b4661066b565b6008546040805192835260208301919091528051918290030190a19392505050565b336000908152600260209081526040808320600160a060020a038616845290915281205480831115610bbd57336000908152600260209081526040808320600160a060020a0388168452909152812055610bf2565b610bcd818463ffffffff61112316565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000610c6333610d18565b610c6c83610d18565b6105d48383611135565b6108ee33610d18565b336000908152600260209081526040808320600160a060020a0386168452909152812054610cb3908363ffffffff61055816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600080600080610d2785611216565b935093509350831515610d3957610e9d565b8215610e0657604051600160a060020a0386169084156108fc029085906000818181858888f1935050505090508015610db057604080518481529051600160a060020a038716917f55f99cf5888d21cc6aa594ea424a83ee8a1cb46af85645f4818c8948cb6b1091919081900360200190a2610e06565b604080518481529051600160a060020a038716917f1ac3034227278be4ec52473d6da993476d1eb2da7ed053c096ef992fb910ceb4919081900360200190a2600754610e02908463ffffffff61055816565b6007555b600160a060020a0385166000908152600560205260409020829055610e29611423565b821415610e5157600854600160a060020a038616600090815260066020526040902055610e9d565b6004610e6483600163ffffffff61055816565b81548110610e6e57fe5b6000918252602080832060016002909302019190910154600160a060020a038816835260069091526040909120555b5050505050565b6000600160a060020a0383161515610ebb57600080fd5b600160a060020a038416600090815260208190526040902054821115610ee057600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610f1057600080fd5b600160a060020a038416600090815260208190526040902054610f39908363ffffffff61112316565b600160a060020a038086166000908152602081905260408082209390935590851681522054610f6e908363ffffffff61055816565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610fb0908363ffffffff61112316565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600354600090600160a060020a0316331461103557600080fd5b600954610100900460ff161561104a57600080fd5b60015461105d908363ffffffff61055816565b600155600160a060020a038316600090815260208190526040902054611089908363ffffffff61055816565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60008282111561112f57fe5b50900390565b6000600160a060020a038316151561114c57600080fd5b3360009081526020819052604090205482111561116857600080fd5b33600090815260208190526040902054611188908363ffffffff61112316565b3360009081526020819052604080822092909255600160a060020a038516815220546111ba908363ffffffff61055816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6000806000806000806000806000806000806000611232611423565b600160a060020a038f16600090815260056020526040902054909a5098508989111561125a57fe5b600160a060020a038e1660009081526006602052604090205460085490985088111561128257fe5b87600854141561129d5760009c508c9b509799508997611412565b600160a060020a038e1660009081526020819052604090205496508615156112d15760019c5060009b509899508998611412565b600095506112dd61142d565b94508893505b8984116114085760018601958510156112fb57611408565b83985060048481548110151561130d57fe5b9060005260206000209060020201925082600001546000141561132f576113fd565b898414156113515760085461134a908963ffffffff61112316565b91506113c6565b61139288600461136887600163ffffffff61055816565b8154811061137257fe5b90600052602060002090600202016001015461112390919063ffffffff16565b915060046113a785600163ffffffff61055816565b815481106113b157fe5b90600052602060002090600202016001015497505b82546113e8906113dc848a63ffffffff61143216565b9063ffffffff61145d16565b90506113fa8c8263ffffffff61055816565b9b505b6001909301926112e3565b60019c5097995089975b505050505050505050509193909250565b6004546000190190565b60c890565b600080831515611445576000915061056b565b5082820282848281151561145557fe5b041461056757fe5b600080828481151561146b57fe5b049493505050505600a165627a7a72305820653bb198780af12b460fc734be2e5401613c126fd58dc7485fbec225a2e9ebf70029
Deployed Bytecode
0x6080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101ab57806306fdde03146101d4578063095ea7b31461025e57806314c8e5f41461028257806318160ddd1461029757806323b872dd146102be578063313ce567146102e85780633f4ba83a1461031357806340c10f191461032857806353d467781461034c5780635c975abb1461036d5780636467d4431461038257806366188463146103a357806370a08231146103c75780637d64bcb4146103e85780638456cb59146103fd5780638da5cb5b1461041257806395d89b4114610443578063a9059cbb14610458578063af1077491461047c578063d4a9991f146104ad578063d73dd623146104c2578063dd62ed3e146104e6578063e04ed2ff1461050d578063f1c653de14610522578063f2fde38b14610537575b60003411156101a95760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a26008546101a5903463ffffffff61055816565b6008555b005b3480156101b757600080fd5b506101c0610572565b604080519115158252519081900360200190f35b3480156101e057600080fd5b506101e9610580565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022357818101518382015260200161020b565b50505050905090810190601f1680156102505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026a57600080fd5b506101c0600160a060020a03600435166024356105b7565b34801561028e57600080fd5b506101a96105db565b3480156102a357600080fd5b506102ac61066b565b60408051918252519081900360200190f35b3480156102ca57600080fd5b506101c0600160a060020a0360043581169060243516604435610671565b3480156102f457600080fd5b506102fd610697565b6040805160ff9092168252519081900360200190f35b34801561031f57600080fd5b506101a961069c565b34801561033457600080fd5b506101c0600160a060020a03600435166024356106f9565b34801561035857600080fd5b506102ac600160a060020a0360043516610716565b34801561037957600080fd5b506101c0610728565b34801561038e57600080fd5b506102ac600160a060020a0360043516610731565b3480156103af57600080fd5b506101c0600160a060020a0360043516602435610743565b3480156103d357600080fd5b506102ac600160a060020a0360043516610760565b3480156103f457600080fd5b506101c061077b565b34801561040957600080fd5b506101a96107e8565b34801561041e57600080fd5b50610427610847565b60408051600160a060020a039092168252519081900360200190f35b34801561044f57600080fd5b506101e9610856565b34801561046457600080fd5b506101c0600160a060020a036004351660243561088d565b34801561048857600080fd5b506104946004356108aa565b6040805192835260208301919091528051918290030190f35b3480156104b957600080fd5b506101a96108d6565b3480156104ce57600080fd5b506101c0600160a060020a03600435166024356108f0565b3480156104f257600080fd5b506102ac600160a060020a036004358116906024351661090d565b34801561051957600080fd5b506102ac610938565b34801561052e57600080fd5b506102ac61093e565b34801561054357600080fd5b506101a9600160a060020a0360043516610944565b60008282018381101561056757fe5b8091505b5092915050565b600954610100900460ff1681565b60408051808201909152600681527f476c6f6265780000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156105ca57600080fd5b6105d483836109d9565b9392505050565b600354600160a060020a031633146105f257600080fd5b600354600754604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561062e573d6000803e3d6000fd5b5060075460408051918252517faad07d22ebcaba769512847d0d30b1c8acccdbb404df29da293fd21f2adc9e679181900360200190a16000600755565b60015490565b60095460009060ff161561068457600080fd5b61068f848484610a3f565b949350505050565b600881565b600354600160a060020a031633146106b357600080fd5b60095460ff1615156106c457600080fd5b6009805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60095460009060ff161561070c57600080fd5b6105d48383610a5e565b60066020526000908152604090205481565b60095460ff1681565b60056020526000908152604090205481565b60095460009060ff161561075657600080fd5b6105d48383610b68565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a0316331461079557600080fd5b600954610100900460ff16156107aa57600080fd5b6009805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600354600160a060020a031633146107ff57600080fd5b60095460ff161561080f57600080fd5b6009805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b60408051808201909152600381527f4745580000000000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156108a057600080fd5b6105d48383610c58565b60048054829081106108b857fe5b60009182526020909120600290910201805460019091015490915082565b60095460ff16156108e657600080fd5b6108ee610c76565b565b60095460009060ff161561090357600080fd5b6105d48383610c7f565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085481565b60075481565b600354600160a060020a0316331461095b57600080fd5b600160a060020a038116151561097057600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000610a4a84610d18565b610a5383610d18565b61068f848484610ea4565b6003546000908190600160a060020a03163314610a7a57600080fd5b600954610100900460ff1615610a8f57600080fd5b610a9884610d18565b610aa2848461101b565b604080518082019091526001805482526008546020830190815260048054928301815560005291517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60029092029182015590517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c9091015590507f3d896744603f73cf2a71599411a31225750fde80c81bd20712440bcc27b319ba610b4661066b565b6008546040805192835260208301919091528051918290030190a19392505050565b336000908152600260209081526040808320600160a060020a038616845290915281205480831115610bbd57336000908152600260209081526040808320600160a060020a0388168452909152812055610bf2565b610bcd818463ffffffff61112316565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000610c6333610d18565b610c6c83610d18565b6105d48383611135565b6108ee33610d18565b336000908152600260209081526040808320600160a060020a0386168452909152812054610cb3908363ffffffff61055816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600080600080610d2785611216565b935093509350831515610d3957610e9d565b8215610e0657604051600160a060020a0386169084156108fc029085906000818181858888f1935050505090508015610db057604080518481529051600160a060020a038716917f55f99cf5888d21cc6aa594ea424a83ee8a1cb46af85645f4818c8948cb6b1091919081900360200190a2610e06565b604080518481529051600160a060020a038716917f1ac3034227278be4ec52473d6da993476d1eb2da7ed053c096ef992fb910ceb4919081900360200190a2600754610e02908463ffffffff61055816565b6007555b600160a060020a0385166000908152600560205260409020829055610e29611423565b821415610e5157600854600160a060020a038616600090815260066020526040902055610e9d565b6004610e6483600163ffffffff61055816565b81548110610e6e57fe5b6000918252602080832060016002909302019190910154600160a060020a038816835260069091526040909120555b5050505050565b6000600160a060020a0383161515610ebb57600080fd5b600160a060020a038416600090815260208190526040902054821115610ee057600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610f1057600080fd5b600160a060020a038416600090815260208190526040902054610f39908363ffffffff61112316565b600160a060020a038086166000908152602081905260408082209390935590851681522054610f6e908363ffffffff61055816565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610fb0908363ffffffff61112316565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600354600090600160a060020a0316331461103557600080fd5b600954610100900460ff161561104a57600080fd5b60015461105d908363ffffffff61055816565b600155600160a060020a038316600090815260208190526040902054611089908363ffffffff61055816565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60008282111561112f57fe5b50900390565b6000600160a060020a038316151561114c57600080fd5b3360009081526020819052604090205482111561116857600080fd5b33600090815260208190526040902054611188908363ffffffff61112316565b3360009081526020819052604080822092909255600160a060020a038516815220546111ba908363ffffffff61055816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6000806000806000806000806000806000806000611232611423565b600160a060020a038f16600090815260056020526040902054909a5098508989111561125a57fe5b600160a060020a038e1660009081526006602052604090205460085490985088111561128257fe5b87600854141561129d5760009c508c9b509799508997611412565b600160a060020a038e1660009081526020819052604090205496508615156112d15760019c5060009b509899508998611412565b600095506112dd61142d565b94508893505b8984116114085760018601958510156112fb57611408565b83985060048481548110151561130d57fe5b9060005260206000209060020201925082600001546000141561132f576113fd565b898414156113515760085461134a908963ffffffff61112316565b91506113c6565b61139288600461136887600163ffffffff61055816565b8154811061137257fe5b90600052602060002090600202016001015461112390919063ffffffff16565b915060046113a785600163ffffffff61055816565b815481106113b157fe5b90600052602060002090600202016001015497505b82546113e8906113dc848a63ffffffff61143216565b9063ffffffff61145d16565b90506113fa8c8263ffffffff61055816565b9b505b6001909301926112e3565b60019c5097995089975b505050505050505050509193909250565b6004546000190190565b60c890565b600080831515611445576000915061056b565b5082820282848281151561145557fe5b041461056757fe5b600080828481151561146b57fe5b049493505050505600a165627a7a72305820653bb198780af12b460fc734be2e5401613c126fd58dc7485fbec225a2e9ebf70029
Deployed Bytecode Sourcemap
19458:963:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11105:1;11093:9;:13;11089:146;;;11128:30;;;11148:9;11128:30;;;;11136:10;;11128:30;;;;;;;;;;11192:16;;:31;;11213:9;11192:31;:20;:31;:::i;:::-;11173:16;:50;11089:146;19458:963;8495:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8495:35:0;;;;;;;;;;;;;;;;;;;;;;19529:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19529:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19529:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18326:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18326:144:0;-1:-1:-1;;;;;18326:144:0;;;;;;;11447:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11447:207:0;;;;3077:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3077:85:0;;;;;;;;;;;;;;;;;;;;18152:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18152:166:0;-1:-1:-1;;;;;18152:166:0;;;;;;;;;;;;19618:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19618:34:0;;;;;;;;;;;;;;;;;;;;;;;10203:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10203:90:0;;;;18961:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18961:130:0;-1:-1:-1;;;;;18961:130:0;;;;;;;16410:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16410:50:0;-1:-1:-1;;;;;16410:50:0;;;;;9587:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9587:26:0;;;;16260:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16260:56:0;-1:-1:-1;;;;;16260:56:0;;;;;18667:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18667:187:0;-1:-1:-1;;;;;18667:187:0;;;;;;;3920:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3920:109:0;-1:-1:-1;;;;;3920:109:0;;;;;9248:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9248:139:0;;;;10028:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10028:88:0;;;;1086:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1086:20:0;;;;;;;;-1:-1:-1;;;;;1086:20:0;;;;;;;;;;;;;;19574:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19574:37:0;;;;18008:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18008:136:0;-1:-1:-1;;;;;18008:136:0;;;;;;;16108:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16108:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17908:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17908:92:0;;;;18478:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18478:177:0;-1:-1:-1;;;;;18478:177:0;;;;;;;6315:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6315:128:0;-1:-1:-1;;;;;6315:128:0;;;;;;;;;;16516:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16516:31:0;;;;16471:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16471:38:0;;;;1706:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1706:173:0;-1:-1:-1;;;;;1706:173:0;;;;;727:133;785:7;813:5;;;832:6;;;;825:14;;;;853:1;846:8;;727:133;;;;;;:::o;8495:35::-;;;;;;;;;:::o;19529:38::-;;;;;;;;;;;;;;;;;;;:::o;18326:144::-;9763:6;;18407:4;;9763:6;;9762:7;9754:16;;;;;;18431:31;18445:8;18455:6;18431:13;:31::i;:::-;18424:38;18326:144;-1:-1:-1;;;18326:144:0:o;11447:207::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;11510:5;;11525:23;;11510:39;;-1:-1:-1;;;;;11510:5:0;;;;:39;;;;;11525:23;11510:5;:39;:5;:39;11525:23;11510:5;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11584:23:0;;11565:43;;;;;;;;;;;;;;;;11645:1;11619:23;:27;11447:207::o;3077:85::-;3144:12;;3077:85;:::o;18152:166::-;9763:6;;18248:4;;9763:6;;9762:7;9754:16;;;;;;18272:38;18291:5;18298:3;18303:6;18272:18;:38::i;:::-;18265:45;18152:166;-1:-1:-1;;;;18152:166:0:o;19618:34::-;19651:1;19618:34;:::o;10203:90::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;9923:6;;;;9915:15;;;;;;;;10257:6;:14;;-1:-1:-1;;10257:14:0;;;10278:9;;;;10266:5;;10278:9;10203:90::o;18961:130::-;9763:6;;19035:4;;9763:6;;9762:7;9754:16;;;;;;19059:24;19070:3;19075:7;19059:10;:24::i;16410:50::-;;;;;;;;;;;;;:::o;9587:26::-;;;;;;:::o;16260:56::-;;;;;;;;;;;;;:::o;18667:187::-;9763:6;;18764:12;;9763:6;;9762:7;9754:16;;;;;;18796:50;18819:8;18829:16;18796:22;:50::i;3920:109::-;-1:-1:-1;;;;;4007:16:0;3976:15;4007:16;;;;;;;;;;;;3920:109::o;9248:139::-;1519:5;;9307:4;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;9320:15;:22;;-1:-1:-1;;9320:22:0;;;;;9349:14;;;;9320:22;;9349:14;-1:-1:-1;9377:4:0;9248:139;:::o;10028:88::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;9763:6;;;;9762:7;9754:16;;;;;;10083:6;:13;;-1:-1:-1;;10083:13:0;10092:4;10083:13;;;10103:7;;;;10083:6;;10103:7;10028:88::o;1086:20::-;;;-1:-1:-1;;;;;1086:20:0;;:::o;19574:37::-;;;;;;;;;;;;;;;;;;;:::o;18008:136::-;9763:6;;18085:4;;9763:6;;9762:7;9754:16;;;;;;18109:27;18124:3;18129:6;18109:14;:27::i;16108:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16108:33:0;:::o;17908:92::-;9763:6;;;;9762:7;9754:16;;;;;;17968:24;:22;:24::i;:::-;17908:92::o;18478:177::-;9763:6;;18570:12;;9763:6;;9762:7;9754:16;;;;;;18602:45;18625:8;18635:11;18602:22;:45::i;6315:128::-;-1:-1:-1;;;;;6412:15:0;;;6389:7;6412:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6315:128::o;16516:31::-;;;;:::o;16471:38::-;;;;:::o;1706:173::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;-1:-1:-1;;;;;1783:22:0;;;;1775:31;;;;;;1834:5;;1813:37;;-1:-1:-1;;;;;1813:37:0;;;;1834:5;;1813:37;;1834:5;;1813:37;1857:5;:16;;-1:-1:-1;;1857:16:0;-1:-1:-1;;;;;1857:16:0;;;;;;;;;;1706:173::o;5801:187::-;5889:10;5868:4;5881:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5881:29:0;;;;;;;;;;;:38;;;5926;;;;;;;5868:4;;5881:29;;5889:10;;5926:38;;;;;;;;-1:-1:-1;5978:4:0;5801:187;;;;:::o;11995:214::-;12077:4;12094:21;12109:5;12094:14;:21::i;:::-;12126:19;12141:3;12126:14;:19::i;:::-;12163:38;12182:5;12189:3;12194:6;12163:18;:38::i;16704:418::-;1519:5;;16782:4;;;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;16799:19;16814:3;16799:14;:19::i;:::-;16850:24;16861:3;16866:7;16850:10;:24::i;:::-;16904:113;;;;;;;;;16945:12;;;16904:113;;16989:16;;16904:113;;;;;;16887:11;27:10:-1;;23:18;;;45:23;;-1:-1;16887:131:0;;;;;;;;;;;;;;;;;;;16839:35;-1:-1:-1;17036:49:0;17053:13;:11;:13::i;:::-;17068:16;;17036:49;;;;;;;;;;;;;;;;;;;;;;17111:3;16704:418;-1:-1:-1;;;16704:418:0:o;7647:407::-;7767:10;7730:4;7759:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7759:29:0;;;;;;;;;;7799:27;;;7795:168;;;7845:10;7869:1;7837:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7837:29:0;;;;;;;;;:33;7795:168;;;7925:30;:8;7938:16;7925:30;:12;:30;:::i;:::-;7901:10;7893:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7893:29:0;;;;;;;;;:62;7795:168;7978:10;8000:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7969:61:0;;8000:29;;;;;;;;;;;7969:61;;;;;;;;;7978:10;7969:61;;;;;;;;;;;-1:-1:-1;8044:4:0;;7647:407;-1:-1:-1;;;7647:407:0:o;11728:189::-;11791:4;11808:26;11823:10;11808:14;:26::i;:::-;11845:19;11860:3;11845:14;:19::i;:::-;11882:27;11897:3;11902:6;11882:14;:27::i;11306:80::-;11352:26;11367:10;11352:14;:26::i;6912:261::-;7043:10;6990:4;7035:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7035:29:0;;;;;;;;;;:46;;7069:11;7035:46;:33;:46;:::i;:::-;7011:10;7003:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7003:29:0;;;;;;;;;;;;:78;;;7088:61;;;;;;7003:29;;7088:61;;;;;;;;;;;-1:-1:-1;7163:4:0;6912:261;;;;:::o;12265:966::-;12323:20;12345:17;12364:32;12526:8;12400:26;12422:3;12400:21;:26::i;:::-;12322:104;;;;;;12442:15;12441:16;12437:42;;;12472:7;;12437:42;12495:14;;12491:412;;12537:19;;-1:-1:-1;;;;;12537:8:0;;;:19;;;;;12546:9;;12537:19;;;;12546:9;12537:8;:19;;;;;;;12526:30;;12575:3;12571:321;;;12604:27;;;;;;;;-1:-1:-1;;;;;12604:27:0;;;;;;;;;;;;;12571:321;;;12762:31;;;;;;;;-1:-1:-1;;;;;12762:31:0;;;;;;;;;;;;;12838:23;;:38;;12866:9;12838:38;:27;:38;:::i;:::-;12812:23;:64;12571:321;-1:-1:-1;;;;;12915:26:0;;;;;;:21;:26;;;;;:53;;;13011:20;:18;:20::i;:::-;12983:24;:48;12979:245;;;13071:16;;-1:-1:-1;;;;;13048:20:0;;;;;;:15;:20;;;;;:39;12979:245;;;13152:11;13164:31;:24;13193:1;13164:31;:28;:31;:::i;:::-;13152:44;;;;;;;;;;;;;;;;:60;:44;;;;;:60;;;;;-1:-1:-1;;;;;13129:20:0;;;;:15;:20;;;;;;;:83;12979:245;12265:966;;;;;:::o;4717:449::-;4799:4;-1:-1:-1;;;;;4820:17:0;;;;4812:26;;;;;;-1:-1:-1;;;;;4863:15:0;;:8;:15;;;;;;;;;;;4853:25;;;4845:34;;;;;;-1:-1:-1;;;;;4904:14:0;;;;;;:7;:14;;;;;;;;4919:10;4904:26;;;;;;;;4894:36;;;4886:45;;;;;;-1:-1:-1;;;;;4958:15:0;;:8;:15;;;;;;;;;;;:27;;4978:6;4958:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;4940:15:0;;;:8;:15;;;;;;;;;;;:45;;;;5008:13;;;;;;;:25;;5026:6;5008:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4992:13:0;;;:8;:13;;;;;;;;;;;:41;;;;5069:14;;;;;:7;:14;;;;;5084:10;5069:26;;;;;;;:38;;5100:6;5069:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;5040:14:0;;;;;;;:7;:14;;;;;;;;5055:10;5040:26;;;;;;;;:67;;;;5114:28;;;;;;;;;;;5040:14;;5114:28;;;;;;;;;;;-1:-1:-1;5156:4:0;4717:449;;;;;:::o;8848:280::-;1519:5;;8926:4;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;8954:12;;:25;;8971:7;8954:25;:16;:25;:::i;:::-;8939:12;:40;-1:-1:-1;;;;;9002:13:0;;:8;:13;;;;;;;;;;;:26;;9020:7;9002:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;8986:13:0;;:8;:13;;;;;;;;;;;;:42;;;;9035:18;;;;;;;8986:13;;9035:18;;;;;;;;;9060:34;;;;;;;;-1:-1:-1;;;;;9060:34:0;;;9077:1;;9060:34;;;;;;;;;-1:-1:-1;9118:4:0;8848:280;;;;:::o;608:113::-;666:7;689:6;;;;682:14;;;;-1:-1:-1;710:5:0;;;608:113::o;3323:388::-;3386:4;-1:-1:-1;;;;;3407:17:0;;;;3399:26;;;;;;3459:10;3450:8;:20;;;;;;;;;;;3440:30;;;3432:39;;;;;;3576:10;3567:8;:20;;;;;;;;;;;:32;;3592:6;3567:32;:24;:32;:::i;:::-;3553:10;3544:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;3622:13:0;;;;;;:25;;3640:6;3622:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;3606:13:0;;:8;:13;;;;;;;;;;;;:41;;;;3654:33;;;;;;;3606:13;;3663:10;;3654:33;;;;;;;;;;-1:-1:-1;3701:4:0;3323:388;;;;:::o;13403:2349::-;13481:20;13512:17;13540:32;13591:23;13648:30;13781:34;14107:22;14511:12;14538:15;14611:25;14855:29;15007:32;15533:16;13617:20;:18;:20::i;:::-;-1:-1:-1;;;;;13681:27:0;;;;;;:21;:27;;;;;;13591:46;;-1:-1:-1;13681:27:0;-1:-1:-1;13726:41:0;;;;13719:49;;;;-1:-1:-1;;;;;13818:21:0;;;;;;:15;:21;;;;;;13859:16;;13818:21;;-1:-1:-1;13859:46:0;-1:-1:-1;13859:46:0;13852:54;;;;14012:26;13992:16;;:46;13988:106;;;14061:5;;-1:-1:-1;14061:5:0;;-1:-1:-1;14071:22:0;;-1:-1:-1;14071:22:0;;14053:41;;13988:106;-1:-1:-1;;;;;14132:14:0;;:8;:14;;;;;;;;;;;;-1:-1:-1;14232:19:0;;14228:71;;;14274:4;;-1:-1:-1;14280:1:0;;-1:-1:-1;14283:15:0;;-1:-1:-1;14283:15:0;;14266:33;;14228:71;14526:1;14511:16;;14556:37;:35;:37::i;:::-;14538:55;;14639:22;14611:50;;14606:1078;14663:36;;;14606:1078;;14741:6;;;;:16;-1:-1:-1;14737:44:0;;;14776:5;;14737:44;14823:17;14798:42;;14887:11;14899:17;14887:30;;;;;;;;;;;;;;;;;;;;14855:62;;14943:8;:20;;;14938:1;:25;14934:56;;;14982:8;;14934:56;15123:15;15102:17;:36;15098:419;;;15186:16;;:48;;15207:26;15186:48;:20;:48;:::i;:::-;15159:75;;15098:419;;;15315:85;15373:26;15315:11;15327:24;:17;15349:1;15327:24;:21;:24;:::i;:::-;15315:37;;;;;;;;;;;;;;;;;;:53;;;:57;;:85;;;;:::i;:::-;15288:112;-1:-1:-1;15448:11:0;15460:24;:17;15482:1;15460:24;:21;:24;:::i;:::-;15448:37;;;;;;;;;;;;;;;;;;:53;;;15419:82;;15098:419;15601:20;;15552:70;;:44;:24;15581:14;15552:44;:28;:44;:::i;:::-;:48;:70;:48;:70;:::i;:::-;15533:89;-1:-1:-1;15649:23:0;:9;15533:89;15649:23;:13;:23;:::i;:::-;15637:35;;14606:1078;14701:19;;;;;14606:1078;;;15704:4;;-1:-1:-1;15721:22:0;;-1:-1:-1;15721:22:0;;13403:2349;;;;;;;;;;;;;;;;:::o;15760:109::-;15839:11;:18;-1:-1:-1;;15839:22:0;15760:109;:::o;15939:108::-;16036:3;15939:108;:::o;146:180::-;204:7;;224:6;;220:37;;;248:1;241:8;;;;220:37;-1:-1:-1;275:5:0;;;279:1;275;:5;294;;;;;;;;:10;287:18;;;332:270;390:7;481:9;497:1;493;:5;;;;;;;;;332:270;-1:-1:-1;;;;332:270:0:o
Swarm Source
bzzr://653bb198780af12b460fc734be2e5401613c126fd58dc7485fbec225a2e9ebf7
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.