ERC-20
Communication
Overview
Max Total Supply
300,000,000 VINCI
Holders
3,333 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VinciToken
Compiler Version
v0.5.8+commit.23d335f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-09 */ pragma solidity ^0.5.8; /** * @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 SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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 a / b; } /** * @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) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } /** * @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]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit 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) { return balances[_owner]; } } /** * @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 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); emit 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; emit 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)); emit 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); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract ERC223ReceiverMixin { function tokenFallback(address _from, uint256 _value, bytes memory _data) public; } /// @title Custom implementation of ERC223 contract ERC223Mixin is StandardToken { event Transfer(address indexed from, address indexed to, uint256 value, bytes data); function transferFrom( address _from, address _to, uint256 _value ) public returns (bool) { bytes memory empty; return transferFrom( _from, _to, _value, empty); } function transferFrom( address _from, address _to, uint256 _value, bytes memory _data ) public returns (bool) { require(_value <= allowed[_from][msg.sender], "Reached allowed value"); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); if (isContract(_to)) { return transferToContract( _from, _to, _value, _data); } else { return transferToAddress( _from, _to, _value, _data); } } function transfer(address _to, uint256 _value, bytes memory _data) public returns (bool success) { if (isContract(_to)) { return transferToContract( msg.sender, _to, _value, _data); } else { return transferToAddress( msg.sender, _to, _value, _data); } } function transfer(address _to, uint256 _value) public returns (bool success) { bytes memory empty; return transfer(_to, _value, empty); } function isContract(address _addr) internal view returns (bool) { uint256 length; // solium-disable-next-line security/no-inline-assembly assembly { //retrieve the size of the code on target address, this needs assembly length := extcodesize(_addr) } return (length>0); } function moveTokens(address _from, address _to, uint256 _value) internal returns (bool success) { if (balanceOf(_from) < _value) { revert(); } balances[_from] = balanceOf(_from).sub(_value); balances[_to] = balanceOf(_to).add(_value); return true; } function transferToAddress( address _from, address _to, uint256 _value, bytes memory _data ) internal returns (bool success) { require(moveTokens(_from, _to, _value), "Move is not successful"); emit Transfer(_from, _to, _value); emit Transfer(_from, _to, _value, _data); // solium-disable-line arg-overflow return true; } //function that is called when transaction target is a contract function transferToContract( address _from, address _to, uint256 _value, bytes memory _data ) internal returns (bool success) { require(moveTokens(_from, _to, _value), "Move is not successful"); ERC223ReceiverMixin(_to).tokenFallback(_from, _value, _data); emit Transfer(_from, _to, _value); emit Transfer(_from, _to, _value, _data); // solium-disable-line arg-overflow return true; } } /// @title Role based access control mixin for Vinci Platform /// @dev Ignore DRY approach to achieve readability contract RBACMixin { /// @notice Constant string message to throw on lack of access string constant FORBIDDEN = "Doesn't have enough rights"; string constant DUPLICATE = "Requirement already satisfied"; /// @notice Public owner address public owner; /// @notice Public map of minters mapping (address => bool) public minters; /// @notice The event indicates a set of a new owner /// @param who is address of added owner event SetOwner(address indexed who); /// @notice The event indicates the addition of a new minter /// @param who is address of added minter event AddMinter(address indexed who); /// @notice The event indicates the deletion of a minter /// @param who is address of deleted minter event DeleteMinter(address indexed who); constructor () public { _setOwner(msg.sender); } /// @notice The functional modifier rejects the interaction of sender who is not an owner modifier onlyOwner() { require(isOwner(msg.sender), FORBIDDEN); _; } /// @notice Functional modifier for rejecting the interaction of senders that are not minters modifier onlyMinter() { require(isMinter(msg.sender), FORBIDDEN); _; } /// @notice Look up for the owner role on providen address /// @param _who is address to look up /// @return A boolean of owner role function isOwner(address _who) public view returns (bool) { return owner == _who; } /// @notice Look up for the minter role on providen address /// @param _who is address to look up /// @return A boolean of minter role function isMinter(address _who) public view returns (bool) { return minters[_who]; } /// @notice Adds the owner role to provided address /// @dev Requires owner role to interact /// @param _who is address to add role /// @return A boolean that indicates if the operation was successful. function setOwner(address _who) public onlyOwner returns (bool) { require(_who != address(0)); _setOwner(_who); } /// @notice Adds the minter role to provided address /// @dev Requires owner role to interact /// @param _who is address to add role /// @return A boolean that indicates if the operation was successful. function addMinter(address _who) public onlyOwner returns (bool) { _setMinter(_who, true); } /// @notice Deletes the minter role to provided address /// @dev Requires owner role to interact /// @param _who is address to delete role /// @return A boolean that indicates if the operation was successful. function deleteMinter(address _who) public onlyOwner returns (bool) { _setMinter(_who, false); } /// @notice Changes the owner role to provided address /// @param _who is address to change role /// @param _flag is next role status after success /// @return A boolean that indicates if the operation was successful. function _setOwner(address _who) private returns (bool) { require(owner != _who, DUPLICATE); owner = _who; emit SetOwner(_who); return true; } /// @notice Changes the minter role to provided address /// @param _who is address to change role /// @param _flag is next role status after success /// @return A boolean that indicates if the operation was successful. function _setMinter(address _who, bool _flag) private returns (bool) { require(minters[_who] != _flag, DUPLICATE); minters[_who] = _flag; if (_flag) { emit AddMinter(_who); } else { emit DeleteMinter(_who); } return true; } } contract RBACMintableTokenMixin is StandardToken, RBACMixin { /// @notice Total issued tokens uint256 totalIssued_; event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished, "Minting is finished"); _; } /** * @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 ) onlyMinter canMint public returns (bool) { totalIssued_ = totalIssued_.add(_amount); totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); emit Mint(_to, _amount); emit 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; emit MintFinished(); return true; } } /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is BasicToken { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { _burn(msg.sender, _value); } function _burn(address _who, uint256 _value) internal { require(_value <= balances[_who]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure balances[_who] = balances[_who].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(_who, _value); emit Transfer(_who, address(0), _value); } } /** * @title Standard Burnable Token * @dev Adds burnFrom method to ERC20 implementations */ contract StandardBurnableToken is BurnableToken, StandardToken { /** * @dev Burns a specific amount of tokens from the target address and decrements allowance * @param _from address The address which you want to send tokens from * @param _value uint256 The amount of token to be burned */ function burnFrom(address _from, uint256 _value) public { require(_value <= allowed[_from][msg.sender]); // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted, // this function needs to emit an event with the updated approval. allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); _burn(_from, _value); } } /// @title Vinci token implementation /// @dev Implements ERC20, ERC223 and MintableToken interfaces contract VinciToken is StandardBurnableToken, ERC223Mixin, RBACMintableTokenMixin { /// @notice Constant field with token full name // solium-disable-next-line uppercase string constant public name = "Vinci"; /// @notice Constant field with token symbol string constant public symbol = "VINCI"; // solium-disable-line uppercase /// @notice Constant field with token precision depth uint256 constant public decimals = 18; // solium-disable-line uppercase /// @notice Constant field with token cap (total supply limit) uint256 constant public cap = 1500 * (10 ** 6) * (10 ** decimals); // solium-disable-line uppercase /// @notice Overrides original mint function from MintableToken to limit minting over cap /// @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 ) public returns (bool) { require(totalIssued_.add(_amount) <= cap, "Cap reached"); return super.mint(_to, _amount); } }
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":"_who","type":"address"}],"name":"setOwner","outputs":[{"name":"","type":"bool"}],"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":"_who","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"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":"_who","type":"address"}],"name":"addMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"}],"name":"deleteMinter","outputs":[{"name":"","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":"","type":"address"}],"name":"minters","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"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":[{"indexed":true,"name":"who","type":"address"}],"name":"SetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"AddMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"}],"name":"DeleteMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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
60806040526006805460ff1916905561001e33610024602090811b901c565b5061015f565b60035460408051808201909152601d81527f526571756972656d656e7420616c72656164792073617469736669656400000060208201526000916001600160a01b038481169116141561010f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100d45781810151838201526020016100bc565b50505050905090810190601f1680156101015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600380546001600160a01b0319166001600160a01b0384169081179091556040517f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb590600090a2506001919050565b6118558061016e6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806379cc6790116100de578063aa271e1a11610097578063d73dd62311610071578063d73dd623146105fa578063d82f94a314610626578063dd62ed3e1461064c578063f46eccc41461067a5761018e565b8063aa271e1a14610453578063ab67aa5814610479578063be45fd621461053f5761018e565b806379cc6790146103a15780637d64bcb4146103cd5780638da5cb5b146103d557806395d89b41146103f9578063983b2d5614610401578063a9059cbb146104275761018e565b80632f54bf6e1161014b57806340c10f191161012557806340c10f191461030457806342966c6814610330578063661884631461034f57806370a082311461037b5761018e565b80632f54bf6e146102ce578063313ce567146102f4578063355274ea146102fc5761018e565b806305d2035b1461019357806306fdde03146101af578063095ea7b31461022c57806313af40351461025857806318160ddd1461027e57806323b872dd14610298575b600080fd5b61019b6106a0565b604080519115158252519081900360200190f35b6101b76106a9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f15781810151838201526020016101d9565b50505050905090810190601f16801561021e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b6004803603604081101561024257600080fd5b506001600160a01b0381351690602001356106cd565b61019b6004803603602081101561026e57600080fd5b50356001600160a01b0316610733565b610286610811565b60408051918252519081900360200190f35b61019b600480360360608110156102ae57600080fd5b506001600160a01b03813581169160208101359091169060400135610817565b61019b600480360360208110156102e457600080fd5b50356001600160a01b0316610832565b610286610846565b61028661084b565b61019b6004803603604081101561031a57600080fd5b506001600160a01b03813516906020013561085b565b61034d6004803603602081101561034657600080fd5b50356108d0565b005b61019b6004803603604081101561036557600080fd5b506001600160a01b0381351690602001356108dd565b6102866004803603602081101561039157600080fd5b50356001600160a01b03166109cd565b61034d600480360360408110156103b757600080fd5b506001600160a01b0381351690602001356109e8565b61019b610a7e565b6103dd610b94565b604080516001600160a01b039092168252519081900360200190f35b6101b7610ba3565b61019b6004803603602081101561041757600080fd5b50356001600160a01b0316610bc7565b61019b6004803603604081101561043d57600080fd5b506001600160a01b038135169060200135610c51565b61019b6004803603602081101561046957600080fd5b50356001600160a01b0316610c68565b61019b6004803603608081101561048f57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104ca57600080fd5b8201836020820111156104dc57600080fd5b803590602001918460018302840111640100000000831117156104fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c86945050505050565b61019b6004803603606081101561055557600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561058557600080fd5b82018360208201111561059757600080fd5b803590602001918460018302840111640100000000831117156105b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d86945050505050565b61019b6004803603604081101561061057600080fd5b506001600160a01b038135169060200135610db5565b61019b6004803603602081101561063c57600080fd5b50356001600160a01b0316610e4e565b6102866004803603604081101561066257600080fd5b506001600160a01b0381358116916020013516610ed8565b61019b6004803603602081101561069057600080fd5b50356001600160a01b0316610f03565b60065460ff1681565b604051806040016040528060058152602001600160d81b6456696e63690281525081565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600061073e33610832565b6040518060400160405280601a81526020016000805160206117ea833981519152815250906107ee57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107b357818101518382015260200161079b565b50505050905090810190601f1680156107e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001600160a01b03821661080257600080fd5b61080b82610f18565b50919050565b60015490565b6000606061082785858584610c86565b9150505b9392505050565b6003546001600160a01b0391821691161490565b601281565b6b04d8c55aefb8c05b5c00000081565b6005546000906b04d8c55aefb8c05b5c0000009061087f908463ffffffff610fff16565b11156108c65760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a10d85c081c995858da195902604482015290519081900360640190fd5b61082b8383611012565b6108da33826111c9565b50565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115610932573360009081526002602090815260408083206001600160a01b0388168452909152812055610967565b610942818463ffffffff6112b816565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600260209081526040808320338452909152902054811115610a1857600080fd5b6001600160a01b0382166000908152600260209081526040808320338452909152902054610a4c908263ffffffff6112b816565b6001600160a01b0383166000908152600260209081526040808320338452909152902055610a7a82826111c9565b5050565b6000610a8933610832565b6040518060400160405280601a81526020016000805160206117ea83398151915281525090610afc57604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5060065460ff1615610b585760408051600160e51b62461bcd02815260206004820152601360248201527f4d696e74696e672069732066696e697368656400000000000000000000000000604482015290519081900360640190fd5b6006805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b6003546001600160a01b031681565b604051806040016040528060058152602001600160d81b6456494e43490281525081565b6000610bd233610832565b6040518060400160405280601a81526020016000805160206117ea83398151915281525090610c4557604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5061080b8260016112ca565b60006060610c60848483610d86565b949350505050565b6001600160a01b031660009081526004602052604090205460ff1690565b6001600160a01b0384166000908152600260209081526040808320338452909152812054831115610d015760408051600160e51b62461bcd02815260206004820152601560248201527f5265616368656420616c6c6f7765642076616c75650000000000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600260209081526040808320338452909152902054610d35908463ffffffff6112b816565b6001600160a01b0386166000908152600260209081526040808320338452909152902055610d6284611418565b15610d7a57610d738585858561141e565b9050610c60565b610d7385858585611651565b6000610d9184611418565b15610da957610da23385858561141e565b905061082b565b610da233858585611651565b3360009081526002602090815260408083206001600160a01b0386168452909152812054610de9908363ffffffff610fff16565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000610e5933610832565b6040518060400160405280601a81526020016000805160206117ea83398151915281525090610ecc57604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5061080b8260006112ca565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60046020526000908152604090205460ff1681565b60035460408051808201909152601d81527f526571756972656d656e7420616c72656164792073617469736669656400000060208201526000916001600160a01b0384811691161415610faf57604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b50600380546001600160a01b0319166001600160a01b0384169081179091556040517f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb590600090a2506001919050565b8181018281101561100c57fe5b92915050565b600061101d33610c68565b6040518060400160405280601a81526020016000805160206117ea8339815191528152509061109057604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5060065460ff16156110ec5760408051600160e51b62461bcd02815260206004820152601360248201527f4d696e74696e672069732066696e697368656400000000000000000000000000604482015290519081900360640190fd5b6005546110ff908363ffffffff610fff16565b600555600154611115908363ffffffff610fff16565b6001556001600160a01b038316600090815260208190526040902054611141908363ffffffff610fff16565b6001600160a01b03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a26040805183815290516001600160a01b0385169160009160008051602061180a8339815191529181900360200190a350600192915050565b6001600160a01b0382166000908152602081905260409020548111156111ee57600080fd5b6001600160a01b038216600090815260208190526040902054611217908263ffffffff6112b816565b6001600160a01b038316600090815260208190526040902055600154611243908263ffffffff6112b816565b6001556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000916001600160a01b0385169160008051602061180a8339815191529181900360200190a35050565b6000828211156112c457fe5b50900390565b6001600160a01b0382166000908152600460209081526040808320548151808301909252601d82527f526571756972656d656e7420616c726561647920736174697366696564000000928201929092529060ff161515831515141561137357604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b506001600160a01b0383166000908152600460205260409020805460ff191683158015919091179091556113da576040516001600160a01b038416907f16baa937b08d58713325f93ac58b8a9369a4359bbefb4957d6d9b402735722ab90600090a261140f565b6040516001600160a01b038416907f4a59e6ea1f075b8fb09f3b05c8b3e9c68b31683a887a4d692078957c58a12be390600090a25b50600192915050565b3b151590565b600061142b858585611764565b61147f5760408051600160e51b62461bcd02815260206004820152601660248201527f4d6f7665206973206e6f74207375636365737366756c00000000000000000000604482015290519081900360640190fd5b836001600160a01b031663c0ee0b8a8685856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114fb5781810151838201526020016114e3565b50505050905090810190601f1680156115285780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561154957600080fd5b505af115801561155d573d6000803e3d6000fd5b50506040805186815290516001600160a01b0380891694508916925060008051602061180a8339815191529181900360200190a3836001600160a01b0316856001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561160b5781810151838201526020016115f3565b50505050905090810190601f1680156116385780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3506001949350505050565b600061165e858585611764565b6116b25760408051600160e51b62461bcd02815260206004820152601660248201527f4d6f7665206973206e6f74207375636365737366756c00000000000000000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b031660008051602061180a833981519152856040518082815260200191505060405180910390a3836001600160a01b0316856001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360008381101561160b5781810151838201526020016115f3565b600081611770856109cd565b101561177b57600080fd5b61179482611788866109cd565b9063ffffffff6112b816565b6001600160a01b0385166000908152602081905260409020556117c6826117ba856109cd565b9063ffffffff610fff16565b6001600160a01b038416600090815260208190526040902055506001939250505056fe446f65736e2774206861766520656e6f75676820726967687473000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058201625e9496784afda1543964f9d77ad6cc53a90856ac59bdb1c4d5bb5122149ae0029
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806379cc6790116100de578063aa271e1a11610097578063d73dd62311610071578063d73dd623146105fa578063d82f94a314610626578063dd62ed3e1461064c578063f46eccc41461067a5761018e565b8063aa271e1a14610453578063ab67aa5814610479578063be45fd621461053f5761018e565b806379cc6790146103a15780637d64bcb4146103cd5780638da5cb5b146103d557806395d89b41146103f9578063983b2d5614610401578063a9059cbb146104275761018e565b80632f54bf6e1161014b57806340c10f191161012557806340c10f191461030457806342966c6814610330578063661884631461034f57806370a082311461037b5761018e565b80632f54bf6e146102ce578063313ce567146102f4578063355274ea146102fc5761018e565b806305d2035b1461019357806306fdde03146101af578063095ea7b31461022c57806313af40351461025857806318160ddd1461027e57806323b872dd14610298575b600080fd5b61019b6106a0565b604080519115158252519081900360200190f35b6101b76106a9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f15781810151838201526020016101d9565b50505050905090810190601f16801561021e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b6004803603604081101561024257600080fd5b506001600160a01b0381351690602001356106cd565b61019b6004803603602081101561026e57600080fd5b50356001600160a01b0316610733565b610286610811565b60408051918252519081900360200190f35b61019b600480360360608110156102ae57600080fd5b506001600160a01b03813581169160208101359091169060400135610817565b61019b600480360360208110156102e457600080fd5b50356001600160a01b0316610832565b610286610846565b61028661084b565b61019b6004803603604081101561031a57600080fd5b506001600160a01b03813516906020013561085b565b61034d6004803603602081101561034657600080fd5b50356108d0565b005b61019b6004803603604081101561036557600080fd5b506001600160a01b0381351690602001356108dd565b6102866004803603602081101561039157600080fd5b50356001600160a01b03166109cd565b61034d600480360360408110156103b757600080fd5b506001600160a01b0381351690602001356109e8565b61019b610a7e565b6103dd610b94565b604080516001600160a01b039092168252519081900360200190f35b6101b7610ba3565b61019b6004803603602081101561041757600080fd5b50356001600160a01b0316610bc7565b61019b6004803603604081101561043d57600080fd5b506001600160a01b038135169060200135610c51565b61019b6004803603602081101561046957600080fd5b50356001600160a01b0316610c68565b61019b6004803603608081101561048f57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104ca57600080fd5b8201836020820111156104dc57600080fd5b803590602001918460018302840111640100000000831117156104fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c86945050505050565b61019b6004803603606081101561055557600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561058557600080fd5b82018360208201111561059757600080fd5b803590602001918460018302840111640100000000831117156105b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d86945050505050565b61019b6004803603604081101561061057600080fd5b506001600160a01b038135169060200135610db5565b61019b6004803603602081101561063c57600080fd5b50356001600160a01b0316610e4e565b6102866004803603604081101561066257600080fd5b506001600160a01b0381358116916020013516610ed8565b61019b6004803603602081101561069057600080fd5b50356001600160a01b0316610f03565b60065460ff1681565b604051806040016040528060058152602001600160d81b6456696e63690281525081565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600061073e33610832565b6040518060400160405280601a81526020016000805160206117ea833981519152815250906107ee57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107b357818101518382015260200161079b565b50505050905090810190601f1680156107e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001600160a01b03821661080257600080fd5b61080b82610f18565b50919050565b60015490565b6000606061082785858584610c86565b9150505b9392505050565b6003546001600160a01b0391821691161490565b601281565b6b04d8c55aefb8c05b5c00000081565b6005546000906b04d8c55aefb8c05b5c0000009061087f908463ffffffff610fff16565b11156108c65760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a10d85c081c995858da195902604482015290519081900360640190fd5b61082b8383611012565b6108da33826111c9565b50565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115610932573360009081526002602090815260408083206001600160a01b0388168452909152812055610967565b610942818463ffffffff6112b816565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600260209081526040808320338452909152902054811115610a1857600080fd5b6001600160a01b0382166000908152600260209081526040808320338452909152902054610a4c908263ffffffff6112b816565b6001600160a01b0383166000908152600260209081526040808320338452909152902055610a7a82826111c9565b5050565b6000610a8933610832565b6040518060400160405280601a81526020016000805160206117ea83398151915281525090610afc57604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5060065460ff1615610b585760408051600160e51b62461bcd02815260206004820152601360248201527f4d696e74696e672069732066696e697368656400000000000000000000000000604482015290519081900360640190fd5b6006805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b6003546001600160a01b031681565b604051806040016040528060058152602001600160d81b6456494e43490281525081565b6000610bd233610832565b6040518060400160405280601a81526020016000805160206117ea83398151915281525090610c4557604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5061080b8260016112ca565b60006060610c60848483610d86565b949350505050565b6001600160a01b031660009081526004602052604090205460ff1690565b6001600160a01b0384166000908152600260209081526040808320338452909152812054831115610d015760408051600160e51b62461bcd02815260206004820152601560248201527f5265616368656420616c6c6f7765642076616c75650000000000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600260209081526040808320338452909152902054610d35908463ffffffff6112b816565b6001600160a01b0386166000908152600260209081526040808320338452909152902055610d6284611418565b15610d7a57610d738585858561141e565b9050610c60565b610d7385858585611651565b6000610d9184611418565b15610da957610da23385858561141e565b905061082b565b610da233858585611651565b3360009081526002602090815260408083206001600160a01b0386168452909152812054610de9908363ffffffff610fff16565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000610e5933610832565b6040518060400160405280601a81526020016000805160206117ea83398151915281525090610ecc57604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5061080b8260006112ca565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60046020526000908152604090205460ff1681565b60035460408051808201909152601d81527f526571756972656d656e7420616c72656164792073617469736669656400000060208201526000916001600160a01b0384811691161415610faf57604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b50600380546001600160a01b0319166001600160a01b0384169081179091556040517f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb590600090a2506001919050565b8181018281101561100c57fe5b92915050565b600061101d33610c68565b6040518060400160405280601a81526020016000805160206117ea8339815191528152509061109057604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b5060065460ff16156110ec5760408051600160e51b62461bcd02815260206004820152601360248201527f4d696e74696e672069732066696e697368656400000000000000000000000000604482015290519081900360640190fd5b6005546110ff908363ffffffff610fff16565b600555600154611115908363ffffffff610fff16565b6001556001600160a01b038316600090815260208190526040902054611141908363ffffffff610fff16565b6001600160a01b03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a26040805183815290516001600160a01b0385169160009160008051602061180a8339815191529181900360200190a350600192915050565b6001600160a01b0382166000908152602081905260409020548111156111ee57600080fd5b6001600160a01b038216600090815260208190526040902054611217908263ffffffff6112b816565b6001600160a01b038316600090815260208190526040902055600154611243908263ffffffff6112b816565b6001556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000916001600160a01b0385169160008051602061180a8339815191529181900360200190a35050565b6000828211156112c457fe5b50900390565b6001600160a01b0382166000908152600460209081526040808320548151808301909252601d82527f526571756972656d656e7420616c726561647920736174697366696564000000928201929092529060ff161515831515141561137357604051600160e51b62461bcd0281526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b506001600160a01b0383166000908152600460205260409020805460ff191683158015919091179091556113da576040516001600160a01b038416907f16baa937b08d58713325f93ac58b8a9369a4359bbefb4957d6d9b402735722ab90600090a261140f565b6040516001600160a01b038416907f4a59e6ea1f075b8fb09f3b05c8b3e9c68b31683a887a4d692078957c58a12be390600090a25b50600192915050565b3b151590565b600061142b858585611764565b61147f5760408051600160e51b62461bcd02815260206004820152601660248201527f4d6f7665206973206e6f74207375636365737366756c00000000000000000000604482015290519081900360640190fd5b836001600160a01b031663c0ee0b8a8685856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114fb5781810151838201526020016114e3565b50505050905090810190601f1680156115285780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561154957600080fd5b505af115801561155d573d6000803e3d6000fd5b50506040805186815290516001600160a01b0380891694508916925060008051602061180a8339815191529181900360200190a3836001600160a01b0316856001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561160b5781810151838201526020016115f3565b50505050905090810190601f1680156116385780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3506001949350505050565b600061165e858585611764565b6116b25760408051600160e51b62461bcd02815260206004820152601660248201527f4d6f7665206973206e6f74207375636365737366756c00000000000000000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b031660008051602061180a833981519152856040518082815260200191505060405180910390a3836001600160a01b0316856001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360008381101561160b5781810151838201526020016115f3565b600081611770856109cd565b101561177b57600080fd5b61179482611788866109cd565b9063ffffffff6112b816565b6001600160a01b0385166000908152602081905260409020556117c6826117ba856109cd565b9063ffffffff610fff16565b6001600160a01b038416600090815260208190526040902055506001939250505056fe446f65736e2774206861766520656e6f75676820726967687473000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058201625e9496784afda1543964f9d77ad6cc53a90856ac59bdb1c4d5bb5122149ae0029
Deployed Bytecode Sourcemap
17482:1140:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17482:1140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14727:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;17661:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17661:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5305:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5305:192:0;;;;;;;;:::i;12829:126::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12829:126:0;-1:-1:-1;;;;;12829:126:0;;:::i;2117:85::-;;;:::i;:::-;;;;;;;;;;;;;;;;7982:226;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7982:226:0;;;;;;;;;;;;;;;;;:::i;12276:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12276:91:0;-1:-1:-1;;;;;12276:91:0;;:::i;17886:37::-;;;:::i;18027:65::-;;;:::i;18417:202::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18417:202:0;;;;;;;;:::i;16048:75::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16048:75:0;;:::i;:::-;;7233:440;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7233:440:0;;;;;;;;:::i;2901:101::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2901:101:0;-1:-1:-1;;;;;2901:101:0;;:::i;16996:376::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16996:376:0;;;;;;;;:::i;15587:144::-;;;:::i;11150:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;11150:20:0;;;;;;;;;;;;;;17752:39;;;:::i;13176:100::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13176:100:0;-1:-1:-1;;;;;13176:100:0;;:::i;9128:150::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9128:150:0;;;;;;;;:::i;12517:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12517:92:0;-1:-1:-1;;;;;12517:92:0;;:::i;8214:544::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;8214:544:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8214:544:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8214:544:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8214:544:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8214:544:0;;-1:-1:-1;8214:544:0;;-1:-1:-1;;;;;8214:544:0:i;8764:358::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;8764:358:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8764:358:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8764:358:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8764:358:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8764:358:0;;-1:-1:-1;8764:358:0;;-1:-1:-1;;;;;8764:358:0:i;6455:304::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6455:304:0;;;;;;;;:::i;13503:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13503:104:0;-1:-1:-1;;;;;13503:104:0;;:::i;5824:162::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5824:162:0;;;;;;;;;;:::i;11214:40::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11214:40:0;-1:-1:-1;;;;;11214:40:0;;:::i;14727:35::-;;;;;;:::o;17661:37::-;;;;;;;;;;;;;;-1:-1:-1;;;;;17661:37:0;;;;:::o;5305:192::-;5393:10;5372:4;5385:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5385:29:0;;;;;;;;;;;:38;;;5435;;;;;;;5372:4;;5385:29;;5393:10;;5435:38;;;;;;;;-1:-1:-1;5487:4:0;5305:192;;;;:::o;12829:126::-;12887:4;11897:19;11905:10;11897:7;:19::i;:::-;11918:9;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11918:9:0;;;11889:39;;;;;-1:-1:-1;;;;;11889:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11889:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12908:18:0;;12900:27;;;;;;12934:15;12944:4;12934:9;:15::i;:::-;;12829:126;;;:::o;2117:85::-;2184:12;;2117:85;:::o;7982:226::-;8084:4;8101:18;8133:69;8154:5;8169:3;8181:6;8196:5;8133:12;:69::i;:::-;8126:76;;;7982:226;;;;;;:::o;12276:91::-;12348:5;;-1:-1:-1;;;;;12348:13:0;;;:5;;:13;;12276:91::o;17886:37::-;17921:2;17886:37;:::o;18027:65::-;18057:35;18027:65;:::o;18417:202::-;18527:12;;18502:4;;18057:35;;18527:25;;18544:7;18527:25;:16;:25;:::i;:::-;:32;;18519:56;;;;;-1:-1:-1;;;;;18519:56:0;;;;;;;;;;;;-1:-1:-1;;;;;18519:56:0;;;;;;;;;;;;;;;18589:24;18600:3;18605:7;18589:10;:24::i;16048:75::-;16092:25;16098:10;16110:6;16092:5;:25::i;:::-;16048:75;:::o;7233:440::-;7381:10;7341:4;7373:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7373:29:0;;;;;;;;;;7413:27;;;7409:168;;;7459:10;7483:1;7451:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7451:29:0;;;;;;;;;:33;7409:168;;;7539:30;:8;7552:16;7539:30;:12;:30;:::i;:::-;7515:10;7507:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7507:29:0;;;;;;;;;:62;7409:168;7597:10;7619:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7588:61:0;;7619:29;;;;;;;;;;;7588:61;;;;;;;;;7597:10;7588:61;;;;;;;;;;;-1:-1:-1;7663:4:0;;7233:440;-1:-1:-1;;;7233:440:0:o;2901:101::-;-1:-1:-1;;;;;2980:16:0;2957:7;2980:16;;;;;;;;;;;;2901:101::o;16996:376::-;-1:-1:-1;;;;;17077:14:0;;;;;;:7;:14;;;;;;;;17092:10;17077:26;;;;;;;;17067:36;;;17059:45;;;;;;-1:-1:-1;;;;;17301:14:0;;;;;;:7;:14;;;;;;;;17316:10;17301:26;;;;;;;;:38;;17332:6;17301:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;17272:14:0;;;;;;:7;:14;;;;;;;;17287:10;17272:26;;;;;;;:67;17346:20;17280:5;17359:6;17346:5;:20::i;:::-;16996:376;;:::o;15587:144::-;15646:4;11897:19;11905:10;11897:7;:19::i;:::-;11918:9;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11918:9:0;;;11889:39;;;;;-1:-1:-1;;;;;11889:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11889:39:0;-1:-1:-1;14804:15:0;;;;14803:16;14795:48;;;;;-1:-1:-1;;;;;14795:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15659:15;:22;;-1:-1:-1;;15659:22:0;15677:4;15659:22;;;15693:14;;;;15659:15;;15693:14;-1:-1:-1;15721:4:0;15587:144;:::o;11150:20::-;;;-1:-1:-1;;;;;11150:20:0;;:::o;17752:39::-;;;;;;;;;;;;;;-1:-1:-1;;;;;17752:39:0;;;;:::o;13176:100::-;13235:4;11897:19;11905:10;11897:7;:19::i;:::-;11918:9;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11918:9:0;;;11889:39;;;;;-1:-1:-1;;;;;11889:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11889:39:0;;13248:22;13259:4;13265;13248:10;:22::i;9128:150::-;9191:12;9212:18;9244:28;9253:3;9258:6;9266:5;9244:8;:28::i;:::-;9237:35;9128:150;-1:-1:-1;;;;9128:150:0:o;12517:92::-;-1:-1:-1;;;;;12590:13:0;12570:4;12590:13;;;:7;:13;;;;;;;;;12517:92::o;8214:544::-;-1:-1:-1;;;;;8375:14:0;;8341:4;8375:14;;;:7;:14;;;;;;;;8390:10;8375:26;;;;;;;;8365:36;;;8357:70;;;;;-1:-1:-1;;;;;8357:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8463:14:0;;;;;;:7;:14;;;;;;;;8478:10;8463:26;;;;;;;;:38;;8494:6;8463:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;8434:14:0;;;;;;:7;:14;;;;;;;;8449:10;8434:26;;;;;;;:67;8512:15;8523:3;8512:10;:15::i;:::-;8508:245;;;8545:85;8574:5;8591:3;8606:6;8624:5;8545:18;:85::i;:::-;8538:92;;;;8508:245;8660:84;8688:5;8705:3;8720:6;8738:5;8660:17;:84::i;8764:358::-;8847:12;8872:15;8883:3;8872:10;:15::i;:::-;8868:249;;;8905:87;8934:10;8955:3;8969:6;8986:5;8905:18;:87::i;:::-;8898:94;;;;8868:249;9023:86;9051:10;9072:3;9086:6;9103:5;9023:17;:86::i;6455:304::-;6623:10;6558:4;6615:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6615:29:0;;;;;;;;;;:46;;6649:11;6615:46;:33;:46;:::i;:::-;6582:10;6574:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6574:29:0;;;;;;;;;;;;:88;;;6674:61;;;;;;6574:29;;6674:61;;;;;;;;;;;-1:-1:-1;6749:4:0;6455:304;;;;:::o;13503:104::-;13565:4;11897:19;11905:10;11897:7;:19::i;:::-;11918:9;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11918:9:0;;;11889:39;;;;;-1:-1:-1;;;;;11889:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11889:39:0;;13578:23;13589:4;13595:5;13578:10;:23::i;5824:162::-;-1:-1:-1;;;;;5955:15:0;;;5929:7;5955:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;5824:162::o;11214:40::-;;;;;;;;;;;;;;;:::o;13843:165::-;13914:5;;13929:9;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;13914:13:0;;;:5;;:13;;13906:33;;;;-1:-1:-1;;;;;13906:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;13906:33:0;-1:-1:-1;13946:5:0;:12;;-1:-1:-1;;;;;;13946:12:0;-1:-1:-1;;;;;13946:12:0;;;;;;;;13970:14;;;;-1:-1:-1;;13970:14:0;-1:-1:-1;13998:4:0;13843:165;;;:::o;1688:127::-;1768:5;;;1787:6;;;;1780:14;;;;1688:127;;;;:::o;15101:366::-;15215:4;12082:20;12091:10;12082:8;:20::i;:::-;12104:9;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12104:9:0;;;12074:40;;;;;-1:-1:-1;;;;;12074:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;12074:40:0;-1:-1:-1;14804:15:0;;;;14803:16;14795:48;;;;;-1:-1:-1;;;;;14795:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15246:12;;:25;;15263:7;15246:25;:16;:25;:::i;:::-;15231:12;:40;15293:12;;:25;;15310:7;15293:25;:16;:25;:::i;:::-;15278:12;:40;-1:-1:-1;;;;;15341:13:0;;:8;:13;;;;;;;;;;;:26;;15359:7;15341:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;15325:13:0;;:8;:13;;;;;;;;;;;;:42;;;;15379:18;;;;;;;15325:13;;15379:18;;;;;;;;;15409:34;;;;;;;;-1:-1:-1;;;;;15409:34:0;;;15426:1;;-1:-1:-1;;;;;;;;;;;15409:34:0;;;;;;;;-1:-1:-1;15457:4:0;15101:366;;;;:::o;16129:447::-;-1:-1:-1;;;;;16208:14:0;;:8;:14;;;;;;;;;;;16198:24;;;16190:33;;;;;;-1:-1:-1;;;;;16422:14:0;;:8;:14;;;;;;;;;;;:26;;16441:6;16422:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;16405:14:0;;:8;:14;;;;;;;;;;:43;16470:12;;:24;;16487:6;16470:24;:16;:24;:::i;:::-;16455:12;:39;16506:18;;;;;;;;-1:-1:-1;;;;;16506:18:0;;;;;;;;;;;;;16536:34;;;;;;;;16559:1;;-1:-1:-1;;;;;16536:34:0;;;-1:-1:-1;;;;;;;;;;;16536:34:0;;;;;;;;16129:447;;:::o;1508:113::-;1566:7;1594:1;1589;:6;;1582:14;;;;-1:-1:-1;1610:5:0;;;1508:113::o;14245:270::-;-1:-1:-1;;;;;14329:13:0;;14308:4;14329:13;;;:7;:13;;;;;;;;;14353:9;;;;;;;;;;;;;;;;;;;;14329:13;;:22;;;;;;;14321:42;;;;-1:-1:-1;;;;;14321:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;14321:42:0;-1:-1:-1;;;;;;14370:13:0;;;;;;:7;:13;;;;;:21;;-1:-1:-1;;14370:21:0;;;;;;;;;;;;14398:94;;14423:15;;-1:-1:-1;;;;;14423:15:0;;;;;;;;14398:94;;;14466:18;;-1:-1:-1;;;;;14466:18:0;;;;;;;;14398:94;-1:-1:-1;14505:4:0;14245:270;;;;:::o;9284:315::-;9543:18;9584:8;;;9284:315::o;10343:439::-;10478:12;10511:30;10522:5;10529:3;10534:6;10511:10;:30::i;:::-;10503:65;;;;;-1:-1:-1;;;;;10503:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10595:3;-1:-1:-1;;;;;10575:38:0;;10614:5;10621:6;10629:5;10575:60;;;;;;;;;;;;;-1:-1:-1;;;;;10575:60:0;-1:-1:-1;;;;;10575:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10575:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10575:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10647:28:0;;;;;;;;-1:-1:-1;;;;;10647:28:0;;;;-1:-1:-1;10647:28:0;;;-1:-1:-1;;;;;;;;;;;;10647:28:0;;;;;;;;10703:3;-1:-1:-1;;;;;10687:35:0;10696:5;-1:-1:-1;;;;;10687:35:0;;10708:6;10716:5;10687:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10687:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10772:4:0;10343:439;;;;;;:::o;9897:371::-;10031:12;10064:30;10075:5;10082:3;10087:6;10064:10;:30::i;:::-;10056:65;;;;;-1:-1:-1;;;;;10056:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10149:3;-1:-1:-1;;;;;10133:28:0;10142:5;-1:-1:-1;;;;;10133:28:0;-1:-1:-1;;;;;;;;;;;10154:6:0;10133:28;;;;;;;;;;;;;;;;;;10189:3;-1:-1:-1;;;;;10173:35:0;10182:5;-1:-1:-1;;;;;10173:35:0;;10194:6;10202:5;10173:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;9605:286:0;9687:12;9731:6;9712:16;9722:5;9712:9;:16::i;:::-;:25;9708:56;;;9748:8;;;9708:56;9788:28;9809:6;9788:16;9798:5;9788:9;:16::i;:::-;:20;:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;9770:15:0;;:8;:15;;;;;;;;;;:46;9839:26;9858:6;9839:14;9849:3;9839:9;:14::i;:::-;:18;:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;9823:13:0;;:8;:13;;;;;;;;;;:42;-1:-1:-1;9881:4:0;9605:286;;;;;:::o
Swarm Source
bzzr://1625e9496784afda1543964f9d77ad6cc53a90856ac59bdb1c4d5bb5122149ae
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.