Overview
Max Total Supply
268,103,766.34955778 GIX
Holders
358 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$134,089.42
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
1 GIXValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GIXToken
Compiler Version
v0.5.0+commit.1d4f565a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-04-29 */ // File: contracts/gix/IERC20.sol pragma solidity ^0.5.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see `ERC20Detailed`. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a `Transfer` event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through `transferFrom`. This is * zero by default. * * This value changes when `approve` or `transferFrom` are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * > 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 * * Emits an `Approval` event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a `Transfer` event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to `approve`. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: contracts/gix/math/SafeMath.sol pragma solidity ^0.5.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } } // File: contracts/gix/ERC20.sol pragma solidity ^0.5.0; /** * @dev Implementation of the `IERC20` interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using `_mint`. * For a generic mechanism see `ERC20Mintable`. * * Functions revert instead of returning `false` on failure. This behavior * is nonetheless conventional and does not conflict with the expectations * of ERC20 applications. * * Additionally, an `Approval` event is emitted on calls to `transferFrom`. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard `decreaseAllowance` and `increaseAllowance` * functions have been added to mitigate the well-known issues around setting * allowances. See `IERC20.approve`. */ contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; /** * @dev See `IERC20.totalSupply`. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev See `IERC20.balanceOf`. */ function balanceOf(address account) public view returns (uint256) { return _balances[account]; } /** * @dev See `IERC20.transfer`. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(msg.sender, recipient, amount); return true; } /** * @dev See `IERC20.allowance`. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } /** * @dev See `IERC20.approve`. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } /** * @dev See `IERC20.transferFrom`. * * Emits an `Approval` event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of `ERC20`; * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `value`. * - the caller must have allowance for `sender`'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount)); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to `approve` that can be used as a mitigation for * problems described in `IERC20.approve`. * * Emits an `Approval` event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to `approve` that can be used as a mitigation for * problems described in `IERC20.approve`. * * Emits an `Approval` event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue)); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to `transfer`, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a `Transfer` event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a `Transfer` event with `from` set to the zero address. * * Requirements * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destoys `amount` tokens from `account`, reducing the * total supply. * * Emits a `Transfer` event with `to` set to the zero address. * * Requirements * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 value) internal { require(account != address(0), "ERC20: burn from the zero address"); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. * * This is internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an `Approval` event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 value) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = value; emit Approval(owner, spender, value); } /** * @dev Destoys `amount` tokens from `account`.`amount` is then deducted * from the caller's allowance. * * See `_burn` and `_approve`. */ function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount)); } } // File: contracts/gix/ERCDetailed.sol pragma solidity ^0.5.0; /** * @dev Optional functions from the ERC20 standard. */ contract ERC20Detailed is ERC20 { string private _name; string private _symbol; uint256 private _decimals; /** * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of * these values are immutable: they can only be set once during * construction. */ constructor (string memory name, string memory symbol, uint256 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. * * > Note that this information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * `IERC20.balanceOf` and `IERC20.transfer`. */ function decimals() public view returns (uint256) { return _decimals; } } // File: contracts/gix/access/Roles.sol pragma solidity ^0.5.0; /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev Give an account access to this role. */ function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } /** * @dev Remove an account's access to this role. */ function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } /** * @dev Check if an account has this role. * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } // File: contracts/gix/access/roles/MinterRole.sol pragma solidity ^0.5.0; contract MinterRole { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); event AccountPaused(address indexed account); event AccountResumed(address indexed account); Roles.Role private _minters; Roles.Role private _pausedAccounts; constructor () internal { _addMinter(msg.sender); } modifier onlyMinter() { require(isMinter(msg.sender), "MinterRole: caller does not have the Minter role"); _; } modifier onlyResumed() { require(!isPaused(msg.sender), "MinterRole: caller has his account paused"); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function isPaused(address account) public view returns (bool) { return _isPaused(account); } function addMinter(address account) public onlyMinter { _addMinter(account); } function pauseAccount(address account) public onlyMinter { _pauseAccount(account); } function renounceMinter() public { _removeMinter(msg.sender); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } function _pauseAccount(address account) internal { _pausedAccounts.add(account); emit AccountPaused(account); } function _resumeAccount(address account) internal { _pausedAccounts.remove(account); emit AccountResumed(account); } function _isPaused(address account) internal view returns (bool) { return _pausedAccounts.has(account); } } // File: contracts/gix/ERC20Mintable.sol pragma solidity ^0.5.0; /** * @dev Extension of `ERC20` that adds a set of accounts with the `MinterRole`, * which have permission to mint (create) new tokens as they see fit. * * At construction, the deployer of the contract is the only minter. */ contract ERC20Mintable is ERC20, MinterRole { /** * @dev See `ERC20._mint`. * * Requirements: * * - the caller must have the `MinterRole`. */ function mint(address account, uint256 amount, bool shouldPause) public onlyMinter returns (bool) { _mint(account, amount); // First time being minted? Then let's ensure // the token will remain paused for now if (shouldPause && !_isPaused(account)) { _pauseAccount(account); } return true; } /** * @dev See `ERC20._mint`. * * Requirements: * * - the caller must have the `MinterRole`. */ function mint(address account, uint256 amount) public onlyMinter returns (bool) { return mint(account, amount, true); } } // File: contracts/gix/ERC20Capped.sol pragma solidity ^0.5.0; /** * @dev Extension of {ERC20Mintable} that adds a cap to the supply of tokens. */ contract ERC20Capped is ERC20Mintable { uint256 private _cap; /** * @dev Sets the value of the `cap`. This value is immutable, it can only be * set once during construction. */ constructor (uint256 cap) public { require(cap > 0, "ERC20Capped: cap is 0"); _cap = cap; } /** * @dev Returns the cap on the token's total supply. */ function cap() public view returns (uint256) { return _cap; } /** * @dev See {ERC20Mintable-mint}. * * Requirements: * * - `value` must not cause the total supply to go over the cap. */ function _mint(address account, uint256 value) internal { require(totalSupply().add(value) <= _cap, "ERC20Capped: cap exceeded"); super._mint(account, value); } } // File: contracts/gix/access/roles/AdminRole.sol pragma solidity ^0.5.0; contract AdminRole is MinterRole { using Roles for Roles.Role; event AdminAdded(address indexed account); event AdminRemoved(address indexed account); Roles.Role private _admins; constructor () internal { _addAdmin(msg.sender); } modifier onlyAdmin() { require(isAdmin(msg.sender), "AdminRole: caller does not have the Admin role"); _; } function isAdmin(address account) public view returns (bool) { return _admins.has(account); } function addAdmin(address account) public onlyAdmin { _addAdmin(account); } function renounceAdmin() public { _removeAdmin(msg.sender); } function resumeAccount(address account) public onlyAdmin { _resumeAccount(account); } function _addAdmin(address account) internal { _admins.add(account); emit AdminAdded(account); } function _removeAdmin(address account) internal { _admins.remove(account); emit AdminRemoved(account); } } // File: contracts/gix/ERC20Resumable.sol pragma solidity ^0.5.0; /** * @title Resumable token * @dev ERC20 modified with whitelistable transfers. */ contract ERC20Resumable is ERC20, AdminRole { function transfer(address to, uint256 value) public onlyResumed returns (bool) { return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public onlyResumed returns (bool) { return super.transferFrom(from, to, value); } function approve(address spender, uint256 value) public onlyResumed returns (bool) { return super.approve(spender, value); } function increaseAllowance(address spender, uint addedValue) public onlyResumed returns (bool) { return super.increaseAllowance(spender, addedValue); } function decreaseAllowance(address spender, uint subtractedValue) public onlyResumed returns (bool) { return super.decreaseAllowance(spender, subtractedValue); } } // File: contracts/gix/ERC20Burnable.sol pragma solidity ^0.5.0; /** * @dev Extension of `ERC20` that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ contract ERC20Burnable is ERC20, AdminRole { /** * @dev Destoys `amount` tokens from the caller. * * See `ERC20._burn`. */ function burn(uint256 amount) public { _burn(msg.sender, amount); } /** * @dev Destoys `amount` tokens of a given account. * * See `ERC20._burn`. */ function burn(address account, uint256 amount) onlyAdmin public { _burn(account, amount); } /** * @dev See `ERC20._burnFrom`. */ function burnFrom(address account, uint256 amount) public { _burnFrom(account, amount); } } // File: contracts/gix/GIXToken.sol pragma solidity ^0.5.0; /** * @title GIXToken * @dev The GIX ERC20 Token that can be * minted and is capped to a maximum allocation. */ contract GIXToken is ERC20Detailed, ERC20Capped, ERC20Resumable, ERC20Burnable { uint256 private constant DECIMALS = 18; uint256 private constant CAP = 1000000000 * (10**18); constructor () public ERC20Detailed("GIX Coin", "GIX", DECIMALS) ERC20Capped(CAP) { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":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":"account","type":"address"}],"name":"isAdmin","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":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"pauseAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"},{"name":"shouldPause","type":"bool"}],"name":"mint","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":false,"inputs":[{"name":"account","type":"address"}],"name":"resumeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AccountPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AccountResumed","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"},{"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506b033b2e3c9fd0803ce80000006040805190810160405280600881526020017f47495820436f696e0000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f474958000000000000000000000000000000000000000000000000000000000081525060128260039080519060200190620000a59291906200046b565b508160049080519060200190620000be9291906200046b565b5080600581905550505050620000e33362000184640100000000026401000000009004565b6000811115156200015c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332304361707065643a206361702069732030000000000000000000000081525060200191505060405180910390fd5b80600881905550506200017e33620001ee640100000000026401000000009004565b6200051a565b620001a8816006620002586401000000000262002589179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b62000212816009620002586401000000000262002589179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b62000273828262000347640100000000026401000000009004565b151515620002e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151562000414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004ae57805160ff1916838001178555620004df565b82800160010185558215620004df579182015b82811115620004de578251825591602001919060010190620004c1565b5b509050620004ee9190620004f2565b5090565b6200051791905b8082111562000513576000816000905550600101620004f9565b5090565b90565b612951806200052a6000396000f3fe608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610159578063095ea7b3146101e957806318160ddd1461025c57806323b872dd1461028757806324d7806c1461031a578063313ce56714610383578063355274ea146103ae57806339509351146103d957806340c10f191461044c57806342966c68146104bf578063484d1ad6146104fa5780635b14f1831461054b57806370480275146105b457806370a082311461060557806379cc67901461066a5780638bad0c0a146106c557806395d89b41146106dc578063983b2d561461076c57806398650275146107bd5780639dc29fac146107d4578063a457c2d71461082f578063a9059cbb146108a2578063aa271e1a14610915578063d1a1beb41461097e578063dd62ed3e146109fd578063f66d982014610a82575b600080fd5b34801561016557600080fd5b5061016e610ad3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ae578082015181840152602081019050610193565b50505050905090810190601f1680156101db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f557600080fd5b506102426004803603604081101561020c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b75565b604051808215151515815260200191505060405180910390f35b34801561026857600080fd5b50610271610c2d565b6040518082815260200191505060405180910390f35b34801561029357600080fd5b50610300600480360360608110156102aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b604051808215151515815260200191505060405180910390f35b34801561032657600080fd5b506103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf1565b604051808215151515815260200191505060405180910390f35b34801561038f57600080fd5b50610398610d0e565b6040518082815260200191505060405180910390f35b3480156103ba57600080fd5b506103c3610d18565b6040518082815260200191505060405180910390f35b3480156103e557600080fd5b50610432600480360360408110156103fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b34801561045857600080fd5b506104a56004803603604081101561046f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dda565b604051808215151515815260200191505060405180910390f35b3480156104cb57600080fd5b506104f8600480360360208110156104e257600080fd5b8101908080359060200190929190505050610e93565b005b34801561050657600080fd5b506105496004803603602081101561051d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea0565b005b34801561055757600080fd5b5061059a6004803603602081101561056e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b604051808215151515815260200191505060405180910390f35b3480156105c057600080fd5b50610603600480360360208110156105d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f61565b005b34801561061157600080fd5b506106546004803603602081101561062857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611010565b6040518082815260200191505060405180910390f35b34801561067657600080fd5b506106c36004803603604081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611058565b005b3480156106d157600080fd5b506106da611066565b005b3480156106e857600080fd5b506106f1611071565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610731578082015181840152602081019050610716565b50505050905090810190601f16801561075e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077857600080fd5b506107bb6004803603602081101561078f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611113565b005b3480156107c957600080fd5b506107d26111c2565b005b3480156107e057600080fd5b5061082d600480360360408110156107f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111cd565b005b34801561083b57600080fd5b506108886004803603604081101561085257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061127e565b604051808215151515815260200191505060405180910390f35b3480156108ae57600080fd5b506108fb600480360360408110156108c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611336565b604051808215151515815260200191505060405180910390f35b34801561092157600080fd5b506109646004803603602081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ee565b604051808215151515815260200191505060405180910390f35b34801561098a57600080fd5b506109e3600480360360608110156109a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080351515906020019092919050505061140b565b604051808215151515815260200191505060405180910390f35b348015610a0957600080fd5b50610a6c60048036036040811015610a2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e7565b6040518082815260200191505060405180910390f35b348015610a8e57600080fd5b50610ad160048036036020811015610aa557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061156e565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b6b5780601f10610b4057610100808354040283529160200191610b6b565b820191906000526020600020905b815481529060010190602001808311610b4e57829003601f168201915b5050505050905090565b6000610b8033610f4f565b151515610c1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c25838361161d565b905092915050565b6000600254905090565b6000610c4233610f4f565b151515610cdd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ce8848484611634565b90509392505050565b6000610d078260096116e590919063ffffffff16565b9050919050565b6000600554905090565b6000600854905090565b6000610d2d33610f4f565b151515610dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610dd28383611808565b905092915050565b6000610de5336113ee565b1515610e7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b610e8b8383600161140b565b905092915050565b610e9d33826118ad565b50565b610ea9336113ee565b1515610f43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b610f4c81611a90565b50565b6000610f5a82611aea565b9050919050565b610f6a33610cf1565b1515611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f41646d696e526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f7468652041646d696e20726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b61100d81611b07565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110628282611b61565b5050565b61106f33611c08565b565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111095780601f106110de57610100808354040283529160200191611109565b820191906000526020600020905b8154815290600101906020018083116110ec57829003601f168201915b5050505050905090565b61111c336113ee565b15156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b6111bf81611c62565b50565b6111cb33611cbc565b565b6111d633610cf1565b1515611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f41646d696e526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f7468652041646d696e20726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b61127a82826118ad565b5050565b600061128933610f4f565b151515611324576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61132e8383611d16565b905092915050565b600061134133610f4f565b1515156113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113e68383611dbb565b905092915050565b60006114048260066116e590919063ffffffff16565b9050919050565b6000611416336113ee565b15156114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b6114ba8484611dd2565b8180156114cd57506114cb84611aea565b155b156114dc576114db84611a90565b5b600190509392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61157733610cf1565b1515611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f41646d696e526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f7468652041646d696e20726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b61161a81611e73565b50565b600061162a338484611ecd565b6001905092915050565b600061164184848461214e565b6116da84336116d585600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b611ecd565b600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006118a3338461189e85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b611ecd565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611978576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f45524332303a206275726e2066726f6d20746865207a65726f2061646472657381526020017f730000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61198d8160025461247490919063ffffffff16565b6002819055506119e4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611aa481600761258990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fae7f60c1b8f645c3beffeb531169cbc446874bbf247698325318879ac850c34660405160405180910390a250565b6000611b008260076116e590919063ffffffff16565b9050919050565b611b1b81600961258990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b611b6b82826118ad565b611c048233611bff84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b611ecd565b5050565b611c1c81600961266690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b611c7681600661258990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b611cd081600661266690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000611db13384611dac85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b611ecd565b6001905092915050565b6000611dc833848461214e565b6001905092915050565b600854611def82611de1610c2d565b6124ff90919063ffffffff16565b11151515611e65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b611e6f8282612768565b5050565b611e8781600761266690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f5f78c7d0c29f5ed7ab23a56c34b5938490570f3a9d12cc15d7dd7d6dbc62b93b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611f98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612063576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612219576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612335816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123c8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111515156124ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015151561257f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b61259382826116e5565b151515612608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61267082826116e5565b151561270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c81526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561280d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612822816002546124ff90919063ffffffff16565b600281905550612879816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fea165627a7a72305820ed74f075d4556420857e0d666d22fd2cc67c84e6573b5fdeb6803c03f8925e6e0029
Deployed Bytecode
0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610159578063095ea7b3146101e957806318160ddd1461025c57806323b872dd1461028757806324d7806c1461031a578063313ce56714610383578063355274ea146103ae57806339509351146103d957806340c10f191461044c57806342966c68146104bf578063484d1ad6146104fa5780635b14f1831461054b57806370480275146105b457806370a082311461060557806379cc67901461066a5780638bad0c0a146106c557806395d89b41146106dc578063983b2d561461076c57806398650275146107bd5780639dc29fac146107d4578063a457c2d71461082f578063a9059cbb146108a2578063aa271e1a14610915578063d1a1beb41461097e578063dd62ed3e146109fd578063f66d982014610a82575b600080fd5b34801561016557600080fd5b5061016e610ad3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ae578082015181840152602081019050610193565b50505050905090810190601f1680156101db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f557600080fd5b506102426004803603604081101561020c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b75565b604051808215151515815260200191505060405180910390f35b34801561026857600080fd5b50610271610c2d565b6040518082815260200191505060405180910390f35b34801561029357600080fd5b50610300600480360360608110156102aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b604051808215151515815260200191505060405180910390f35b34801561032657600080fd5b506103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf1565b604051808215151515815260200191505060405180910390f35b34801561038f57600080fd5b50610398610d0e565b6040518082815260200191505060405180910390f35b3480156103ba57600080fd5b506103c3610d18565b6040518082815260200191505060405180910390f35b3480156103e557600080fd5b50610432600480360360408110156103fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b34801561045857600080fd5b506104a56004803603604081101561046f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dda565b604051808215151515815260200191505060405180910390f35b3480156104cb57600080fd5b506104f8600480360360208110156104e257600080fd5b8101908080359060200190929190505050610e93565b005b34801561050657600080fd5b506105496004803603602081101561051d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea0565b005b34801561055757600080fd5b5061059a6004803603602081101561056e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b604051808215151515815260200191505060405180910390f35b3480156105c057600080fd5b50610603600480360360208110156105d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f61565b005b34801561061157600080fd5b506106546004803603602081101561062857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611010565b6040518082815260200191505060405180910390f35b34801561067657600080fd5b506106c36004803603604081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611058565b005b3480156106d157600080fd5b506106da611066565b005b3480156106e857600080fd5b506106f1611071565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610731578082015181840152602081019050610716565b50505050905090810190601f16801561075e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077857600080fd5b506107bb6004803603602081101561078f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611113565b005b3480156107c957600080fd5b506107d26111c2565b005b3480156107e057600080fd5b5061082d600480360360408110156107f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111cd565b005b34801561083b57600080fd5b506108886004803603604081101561085257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061127e565b604051808215151515815260200191505060405180910390f35b3480156108ae57600080fd5b506108fb600480360360408110156108c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611336565b604051808215151515815260200191505060405180910390f35b34801561092157600080fd5b506109646004803603602081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ee565b604051808215151515815260200191505060405180910390f35b34801561098a57600080fd5b506109e3600480360360608110156109a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080351515906020019092919050505061140b565b604051808215151515815260200191505060405180910390f35b348015610a0957600080fd5b50610a6c60048036036040811015610a2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e7565b6040518082815260200191505060405180910390f35b348015610a8e57600080fd5b50610ad160048036036020811015610aa557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061156e565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b6b5780601f10610b4057610100808354040283529160200191610b6b565b820191906000526020600020905b815481529060010190602001808311610b4e57829003601f168201915b5050505050905090565b6000610b8033610f4f565b151515610c1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c25838361161d565b905092915050565b6000600254905090565b6000610c4233610f4f565b151515610cdd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ce8848484611634565b90509392505050565b6000610d078260096116e590919063ffffffff16565b9050919050565b6000600554905090565b6000600854905090565b6000610d2d33610f4f565b151515610dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610dd28383611808565b905092915050565b6000610de5336113ee565b1515610e7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b610e8b8383600161140b565b905092915050565b610e9d33826118ad565b50565b610ea9336113ee565b1515610f43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b610f4c81611a90565b50565b6000610f5a82611aea565b9050919050565b610f6a33610cf1565b1515611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f41646d696e526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f7468652041646d696e20726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b61100d81611b07565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110628282611b61565b5050565b61106f33611c08565b565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111095780601f106110de57610100808354040283529160200191611109565b820191906000526020600020905b8154815290600101906020018083116110ec57829003601f168201915b5050505050905090565b61111c336113ee565b15156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b6111bf81611c62565b50565b6111cb33611cbc565b565b6111d633610cf1565b1515611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f41646d696e526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f7468652041646d696e20726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b61127a82826118ad565b5050565b600061128933610f4f565b151515611324576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61132e8383611d16565b905092915050565b600061134133610f4f565b1515156113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4d696e746572526f6c653a2063616c6c65722068617320686973206163636f7581526020017f6e7420706175736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113e68383611dbb565b905092915050565b60006114048260066116e590919063ffffffff16565b9050919050565b6000611416336113ee565b15156114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c650000000000000000000000000000000081525060400191505060405180910390fd5b6114ba8484611dd2565b8180156114cd57506114cb84611aea565b155b156114dc576114db84611a90565b5b600190509392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61157733610cf1565b1515611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f41646d696e526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f7468652041646d696e20726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b61161a81611e73565b50565b600061162a338484611ecd565b6001905092915050565b600061164184848461214e565b6116da84336116d585600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b611ecd565b600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006118a3338461189e85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b611ecd565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611978576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f45524332303a206275726e2066726f6d20746865207a65726f2061646472657381526020017f730000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61198d8160025461247490919063ffffffff16565b6002819055506119e4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611aa481600761258990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fae7f60c1b8f645c3beffeb531169cbc446874bbf247698325318879ac850c34660405160405180910390a250565b6000611b008260076116e590919063ffffffff16565b9050919050565b611b1b81600961258990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b611b6b82826118ad565b611c048233611bff84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b611ecd565b5050565b611c1c81600961266690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a250565b611c7681600661258990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b611cd081600661266690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000611db13384611dac85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b611ecd565b6001905092915050565b6000611dc833848461214e565b6001905092915050565b600854611def82611de1610c2d565b6124ff90919063ffffffff16565b11151515611e65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b611e6f8282612768565b5050565b611e8781600761266690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f5f78c7d0c29f5ed7ab23a56c34b5938490570f3a9d12cc15d7dd7d6dbc62b93b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611f98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612063576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612219576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612335816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123c8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111515156124ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015151561257f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b61259382826116e5565b151515612608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61267082826116e5565b151561270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c81526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561280d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612822816002546124ff90919063ffffffff16565b600281905550612879816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fea165627a7a72305820ed74f075d4556420857e0d666d22fd2cc67c84e6573b5fdeb6803c03f8925e6e0029
Deployed Bytecode Sourcemap
24394:302:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14930:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14930:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14930:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22776:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22776:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22776:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7763:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7763:91:0;;;;;;;;;;;;;;;;;;;;;;;22610:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22610:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22610:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21591:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21591:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21591:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15788:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15788:85:0;;;;;;;;;;;;;;;;;;;;;;;20649:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20649:75:0;;;;;;;;;;;;;;;;;;;;;;;22922:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22922:165:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22922:165:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19939:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19939:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19939:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23723:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23723:81:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23723:81:0;;;;;;;;;;;;;;;;;;;;18053:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18053:98:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18053:98:0;;;;;;;;;;;;;;;;;;;;;;17839:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17839:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17839:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21706:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21706:89:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21706:89:0;;;;;;;;;;;;;;;;;;;;;;7917:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7917:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7917:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24089:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24089:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24089:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21803:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21803:75:0;;;;;;15132:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15132:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15132:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17953:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17953:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17953:92:0;;;;;;;;;;;;;;;;;;;;;;18159:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18159:77:0;;;;;;23922:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23922:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23922:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23095:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23095:175:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23095:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22472:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22472:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22472:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17722:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17722:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17722:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19426:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19426:368:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19426:368:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8459:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8459:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8459:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21886:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21886:99:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21886:99:0;;;;;;;;;;;;;;;;;;;;;;14930:83;14967:13;15000:5;14993:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14930:83;:::o;22776:138::-;22853:4;17628:20;17637:10;17628:8;:20::i;:::-;17627:21;17619:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22877:29;22891:7;22900:5;22877:13;:29::i;:::-;22870:36;;22776:138;;;;:::o;7763:91::-;7807:7;7834:12;;7827:19;;7763:91;:::o;22610:158::-;22701:4;17628:20;17637:10;17628:8;:20::i;:::-;17627:21;17619:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22725:35;22744:4;22750:2;22754:5;22725:18;:35::i;:::-;22718:42;;22610:158;;;;;:::o;21591:107::-;21646:4;21670:20;21682:7;21670;:11;;:20;;;;:::i;:::-;21663:27;;21591:107;;;:::o;15788:85::-;15829:7;15856:9;;15849:16;;15788:85;:::o;20649:75::-;20685:7;20712:4;;20705:11;;20649:75;:::o;22922:165::-;23011:4;17628:20;17637:10;17628:8;:20::i;:::-;17627:21;17619:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23035:44;23059:7;23068:10;23035:23;:44::i;:::-;23028:51;;22922:165;;;;:::o;19939:133::-;20013:4;17484:20;17493:10;17484:8;:20::i;:::-;17476:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20037:27;20042:7;20051:6;20059:4;20037;:27::i;:::-;20030:34;;19939:133;;;;:::o;23723:81::-;23771:25;23777:10;23789:6;23771:5;:25::i;:::-;23723:81;:::o;18053:98::-;17484:20;17493:10;17484:8;:20::i;:::-;17476:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18121:22;18135:7;18121:13;:22::i;:::-;18053:98;:::o;17839:106::-;17895:4;17919:18;17929:7;17919:9;:18::i;:::-;17912:25;;17839:106;;;:::o;21706:89::-;21493:19;21501:10;21493:7;:19::i;:::-;21485:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21769:18;21779:7;21769:9;:18::i;:::-;21706:89;:::o;7917:110::-;7974:7;8001:9;:18;8011:7;8001:18;;;;;;;;;;;;;;;;7994:25;;7917:110;;;:::o;24089:103::-;24158:26;24168:7;24177:6;24158:9;:26::i;:::-;24089:103;;:::o;21803:75::-;21846:24;21859:10;21846:12;:24::i;:::-;21803:75::o;15132:87::-;15171:13;15204:7;15197:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15132:87;:::o;17953:92::-;17484:20;17493:10;17484:8;:20::i;:::-;17476:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18018:19;18029:7;18018:10;:19::i;:::-;17953:92;:::o;18159:77::-;18203:25;18217:10;18203:13;:25::i;:::-;18159:77::o;23922:105::-;21493:19;21501:10;21493:7;:19::i;:::-;21485:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23997:22;24003:7;24012:6;23997:5;:22::i;:::-;23922:105;;:::o;23095:175::-;23189:4;17628:20;17637:10;17628:8;:20::i;:::-;17627:21;17619:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23213:49;23237:7;23246:15;23213:23;:49::i;:::-;23206:56;;23095:175;;;;:::o;22472:130::-;22545:4;17628:20;17637:10;17628:8;:20::i;:::-;17627:21;17619:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22569:25;22584:2;22588:5;22569:14;:25::i;:::-;22562:32;;22472:130;;;;:::o;17722:109::-;17778:4;17802:21;17815:7;17802:8;:12;;:21;;;;:::i;:::-;17795:28;;17722:109;;;:::o;19426:368::-;19518:4;17484:20;17493:10;17484:8;:20::i;:::-;17476:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19535:22;19541:7;19550:6;19535:5;:22::i;:::-;19678:11;:34;;;;;19694:18;19704:7;19694:9;:18::i;:::-;19693:19;19678:34;19674:89;;;19729:22;19743:7;19729:13;:22::i;:::-;19674:89;19782:4;19775:11;;19426:368;;;;;:::o;8459:134::-;8531:7;8558:11;:18;8570:5;8558:18;;;;;;;;;;;;;;;:27;8577:7;8558:27;;;;;;;;;;;;;;;;8551:34;;8459:134;;;;:::o;21886:99::-;21493:19;21501:10;21493:7;:19::i;:::-;21485:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21954:23;21969:7;21954:14;:23::i;:::-;21886:99;:::o;8740:148::-;8805:4;8822:36;8831:10;8843:7;8852:5;8822:8;:36::i;:::-;8876:4;8869:11;;8740:148;;;;:::o;9359:256::-;9448:4;9465:36;9475:6;9483:9;9494:6;9465:9;:36::i;:::-;9512:73;9521:6;9529:10;9541:43;9577:6;9541:11;:19;9553:6;9541:19;;;;;;;;;;;;;;;:31;9561:10;9541:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;9512:8;:73::i;:::-;9603:4;9596:11;;9359:256;;;;;:::o;16733:203::-;16805:4;16849:1;16830:21;;:7;:21;;;;16822:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16908:4;:11;;:20;16920:7;16908:20;;;;;;;;;;;;;;;;;;;;;;;;;16901:27;;16733:203;;;;:::o;10024:206::-;10104:4;10121:79;10130:10;10142:7;10151:48;10188:10;10151:11;:23;10163:10;10151:23;;;;;;;;;;;;;;;:32;10175:7;10151:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;10121:8;:79::i;:::-;10218:4;10211:11;;10024:206;;;;:::o;12778:306::-;12872:1;12853:21;;:7;:21;;;;12845:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12940:23;12957:5;12940:12;;:16;;:23;;;;:::i;:::-;12925:12;:38;;;;12995:29;13018:5;12995:9;:18;13005:7;12995:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;12974:9;:18;12984:7;12974:18;;;;;;;;;;;;;;;:50;;;;13066:1;13040:36;;13049:7;13040:36;;;13070:5;13040:36;;;;;;;;;;;;;;;;;;12778:306;;:::o;18512:134::-;18572:28;18592:7;18572:15;:19;;:28;;;;:::i;:::-;18630:7;18616:22;;;;;;;;;;;;18512:134;:::o;18801:119::-;18860:4;18884:28;18904:7;18884:15;:19;;:28;;;;:::i;:::-;18877:35;;18801:119;;;:::o;21993:::-;22049:20;22061:7;22049;:11;;:20;;;;:::i;:::-;22096:7;22085:19;;;;;;;;;;;;21993:119;:::o;14044:188::-;14116:22;14122:7;14131:6;14116:5;:22::i;:::-;14149:75;14158:7;14167:10;14179:44;14216:6;14179:11;:20;14191:7;14179:20;;;;;;;;;;;;;;;:32;14200:10;14179:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;14149:8;:75::i;:::-;14044:188;;:::o;22120:127::-;22179:23;22194:7;22179;:14;;:23;;;;:::i;:::-;22231:7;22218:21;;;;;;;;;;;;22120:127;:::o;18244:122::-;18301:21;18314:7;18301:8;:12;;:21;;;;:::i;:::-;18350:7;18338:20;;;;;;;;;;;;18244:122;:::o;18374:130::-;18434:24;18450:7;18434:8;:15;;:24;;;;:::i;:::-;18488:7;18474:22;;;;;;;;;;;;18374:130;:::o;10733:216::-;10818:4;10835:84;10844:10;10856:7;10865:53;10902:15;10865:11;:23;10877:10;10865:23;;;;;;;;;;;;;;;:32;10889:7;10865:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;10835:8;:84::i;:::-;10937:4;10930:11;;10733:216;;;;:::o;8240:156::-;8309:4;8326:40;8336:10;8348:9;8359:6;8326:9;:40::i;:::-;8384:4;8377:11;;8240:156;;;;:::o;20897:183::-;21000:4;;20972:24;20990:5;20972:13;:11;:13::i;:::-;:17;;:24;;;;:::i;:::-;:32;;20964:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21045:27;21057:7;21066:5;21045:11;:27::i;:::-;20897:183;;:::o;18654:139::-;18715:31;18738:7;18715:15;:22;;:31;;;;:::i;:::-;18777:7;18762:23;;;;;;;;;;;;18654:139;:::o;13524:335::-;13634:1;13617:19;;:5;:19;;;;13609:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13715:1;13696:21;;:7;:21;;;;13688:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13799:5;13769:11;:18;13781:5;13769:18;;;;;;;;;;;;;;;:27;13788:7;13769:27;;;;;;;;;;;;;;;:35;;;;13836:7;13820:31;;13829:5;13820:31;;;13845:5;13820:31;;;;;;;;;;;;;;;;;;13524:335;;;:::o;11439:429::-;11555:1;11537:20;;:6;:20;;;;11529:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11639:1;11618:23;;:9;:23;;;;11610:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:29;11736:6;11714:9;:17;11724:6;11714:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11694:9;:17;11704:6;11694:17;;;;;;;;;;;;;;;:49;;;;11777:32;11802:6;11777:9;:20;11787:9;11777:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11754:9;:20;11764:9;11754:20;;;;;;;;;;;;;;;:55;;;;11842:9;11825:35;;11834:6;11825:35;;;11853:6;11825:35;;;;;;;;;;;;;;;;;;11439:429;;;:::o;4208:184::-;4266:7;4299:1;4294;:6;;4286:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4346:9;4362:1;4358;:5;4346:17;;4383:1;4376:8;;;4208:184;;;;:::o;3752:181::-;3810:7;3830:9;3846:1;3842;:5;3830:17;;3871:1;3866;:6;;3858:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3924:1;3917:8;;;3752:181;;;;:::o;16197:178::-;16275:18;16279:4;16285:7;16275:3;:18::i;:::-;16274:19;16266:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16363:4;16340;:11;;:20;16352:7;16340:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16197:178;;:::o;16455:183::-;16535:18;16539:4;16545:7;16535:3;:18::i;:::-;16527:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16625:5;16602:4;:11;;:20;16614:7;16602:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16455:183;;:::o;12149:308::-;12244:1;12225:21;;:7;:21;;;;12217:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12310:24;12327:6;12310:12;;:16;;:24;;;;:::i;:::-;12295:12;:39;;;;12366:30;12389:6;12366:9;:18;12376:7;12366:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;12345:9;:18;12355:7;12345:18;;;;;;;;;;;;;;;:51;;;;12433:7;12412:37;;12429:1;12412:37;;;12442:6;12412:37;;;;;;;;;;;;;;;;;;12149:308;;:::o
Swarm Source
bzzr://ed74f075d4556420857e0d666d22fd2cc67c84e6573b5fdeb6803c03f8925e6e
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.