Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 CAKH
Holders
5
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CAKH
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-08-14 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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. * * IMPORTANT: 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); } // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @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) { return a + b; } /** * @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) { return a - b; } /** * @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) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message 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, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { //address msgSender = _msgSender(); // Owner address address msgSender = _msgSender(); // Owner address _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract CAKH is Context, IERC20, IERC20Metadata, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint private _decimals; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor () { _name = "CAKH"; _symbol = "CAKH"; _decimals = 9; _totalSupply = 100000000 * 10**(_decimals); _balances[_msgSender()] = _totalSupply; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override 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. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: 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 virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override 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 virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override onlyOwner() returns (bool) { _approve(_msgSender(), spender, amount); 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 `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - 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 virtual onlyOwner returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + 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 virtual onlyOwner returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - 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 virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += 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. */ /** * No Minting function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function mint(address account, uint256 amount) public onlyOwner { _mint(account, amount); } */ /** * @dev Destroys `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 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } function burn(address account, uint256 amount) public onlyOwner{ _burn(account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This 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 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50600062000024620001e960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600481526020017f43414b4800000000000000000000000000000000000000000000000000000000815250600490805190602001906200010f929190620001f1565b506040518060400160405280600481526020017f43414b4800000000000000000000000000000000000000000000000000000000815250600590805190602001906200015d929190620001f1565b506009600681905550600654600a620001779190620002fc565b6305f5e10062000188919062000439565b60038190555060035460016000620001a5620001e960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000545565b600033905090565b828054620001ff90620004a4565b90600052602060002090601f0160209004810192826200022357600085556200026f565b82601f106200023e57805160ff19168380011785556200026f565b828001600101855582156200026f579182015b828111156200026e57825182559160200191906001019062000251565b5b5090506200027e919062000282565b5090565b5b808211156200029d57600081600090555060010162000283565b5090565b6000808291508390505b6001851115620002f357808604811115620002cb57620002ca620004da565b5b6001851615620002db5780820291505b8081029050620002eb8562000538565b9450620002ab565b94509492505050565b600062000309826200049a565b915062000316836200049a565b9250620003457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200034d565b905092915050565b6000826200035f576001905062000432565b816200036f576000905062000432565b81600181146200038857600281146200039357620003c9565b600191505062000432565b60ff841115620003a857620003a7620004da565b5b8360020a915084821115620003c257620003c1620004da565b5b5062000432565b5060208310610133831016604e8410600b8410161715620004035782820a905083811115620003fd57620003fc620004da565b5b62000432565b620004128484846001620002a1565b925090508184048111156200042c576200042b620004da565b5b81810290505b9392505050565b600062000446826200049a565b915062000453836200049a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200048f576200048e620004da565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620004bd57607f821691505b60208210811415620004d457620004d362000509565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b611d2d80620005556000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d714610276578063a9059cbb146102a6578063dd62ed3e146102d6578063f2fde38b14610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c5780639dc29fac1461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610322565b60405161010f9190611942565b60405180910390f35b610132600480360381019061012d919061141f565b6103b4565b60405161013f9190611927565b60405180910390f35b61015061044e565b60405161015d9190611ac4565b60405180910390f35b610180600480360381019061017b91906113d0565b610458565b60405161018d9190611927565b60405180910390f35b61019e610559565b6040516101ab9190611adf565b60405180910390f35b6101ce60048036038101906101c9919061141f565b610562565b6040516101db9190611927565b60405180910390f35b6101fe60048036038101906101f9919061136b565b61068a565b60405161020b9190611ac4565b60405180910390f35b61021c6106d3565b005b61022661080d565b604051610233919061190c565b60405180910390f35b610244610836565b6040516102519190611942565b60405180910390f35b610274600480360381019061026f919061141f565b6108c8565b005b610290600480360381019061028b919061141f565b610952565b60405161029d9190611927565b60405180910390f35b6102c060048036038101906102bb919061141f565b610ac3565b6040516102cd9190611927565b60405180910390f35b6102f060048036038101906102eb9190611394565b610ae1565b6040516102fd9190611ac4565b60405180910390f35b610320600480360381019061031b919061136b565b610b68565b005b60606004805461033190611c28565b80601f016020809104026020016040519081016040528092919081815260200182805461035d90611c28565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b60006103be610d11565b73ffffffffffffffffffffffffffffffffffffffff166103dc61080d565b73ffffffffffffffffffffffffffffffffffffffff1614610432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990611a24565b60405180910390fd5b61044461043d610d11565b8484610d19565b6001905092915050565b6000600354905090565b6000610465848484610ee4565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104b0610d11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052790611a04565b60405180910390fd5b61054d8561053c610d11565b85846105489190611b6c565b610d19565b60019150509392505050565b60006009905090565b600061056c610d11565b73ffffffffffffffffffffffffffffffffffffffff1661058a61080d565b73ffffffffffffffffffffffffffffffffffffffff16146105e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d790611a24565b60405180910390fd5b6106806105eb610d11565b8484600260006105f9610d11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461067b9190611b16565b610d19565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106db610d11565b73ffffffffffffffffffffffffffffffffffffffff166106f961080d565b73ffffffffffffffffffffffffffffffffffffffff161461074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690611a24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461084590611c28565b80601f016020809104026020016040519081016040528092919081815260200182805461087190611c28565b80156108be5780601f10610893576101008083540402835291602001916108be565b820191906000526020600020905b8154815290600101906020018083116108a157829003601f168201915b5050505050905090565b6108d0610d11565b73ffffffffffffffffffffffffffffffffffffffff166108ee61080d565b73ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90611a24565b60405180910390fd5b61094e8282611166565b5050565b600061095c610d11565b73ffffffffffffffffffffffffffffffffffffffff1661097a61080d565b73ffffffffffffffffffffffffffffffffffffffff16146109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c790611a24565b60405180910390fd5b6000600260006109de610d11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9290611aa4565b60405180910390fd5b610ab8610aa6610d11565b858584610ab39190611b6c565b610d19565b600191505092915050565b6000610ad7610ad0610d11565b8484610ee4565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b70610d11565b73ffffffffffffffffffffffffffffffffffffffff16610b8e61080d565b73ffffffffffffffffffffffffffffffffffffffff1614610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90611a24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b906119a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090611a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df0906119c4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed79190611ac4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611a64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb90611964565b60405180910390fd5b610fcf83838361133c565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906119e4565b60405180910390fd5b81816110629190611b6c565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f49190611b16565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111589190611ac4565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90611a44565b60405180910390fd5b6111e28260008361133c565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126090611984565b60405180910390fd5b81816112759190611b6c565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546112ca9190611b6c565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132f9190611ac4565b60405180910390a3505050565b505050565b60008135905061135081611cc9565b92915050565b60008135905061136581611ce0565b92915050565b60006020828403121561137d57600080fd5b600061138b84828501611341565b91505092915050565b600080604083850312156113a757600080fd5b60006113b585828601611341565b92505060206113c685828601611341565b9150509250929050565b6000806000606084860312156113e557600080fd5b60006113f386828701611341565b935050602061140486828701611341565b925050604061141586828701611356565b9150509250925092565b6000806040838503121561143257600080fd5b600061144085828601611341565b925050602061145185828601611356565b9150509250929050565b61146481611ba0565b82525050565b61147381611bb2565b82525050565b600061148482611afa565b61148e8185611b05565b935061149e818560208601611bf5565b6114a781611cb8565b840191505092915050565b60006114bf602383611b05565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611525602283611b05565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061158b602683611b05565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115f1602283611b05565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611657602683611b05565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116bd602883611b05565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611723602083611b05565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611763602183611b05565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117c9602583611b05565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061182f602483611b05565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611895602583611b05565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6118f781611bde565b82525050565b61190681611be8565b82525050565b6000602082019050611921600083018461145b565b92915050565b600060208201905061193c600083018461146a565b92915050565b6000602082019050818103600083015261195c8184611479565b905092915050565b6000602082019050818103600083015261197d816114b2565b9050919050565b6000602082019050818103600083015261199d81611518565b9050919050565b600060208201905081810360008301526119bd8161157e565b9050919050565b600060208201905081810360008301526119dd816115e4565b9050919050565b600060208201905081810360008301526119fd8161164a565b9050919050565b60006020820190508181036000830152611a1d816116b0565b9050919050565b60006020820190508181036000830152611a3d81611716565b9050919050565b60006020820190508181036000830152611a5d81611756565b9050919050565b60006020820190508181036000830152611a7d816117bc565b9050919050565b60006020820190508181036000830152611a9d81611822565b9050919050565b60006020820190508181036000830152611abd81611888565b9050919050565b6000602082019050611ad960008301846118ee565b92915050565b6000602082019050611af460008301846118fd565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b2182611bde565b9150611b2c83611bde565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b6157611b60611c5a565b5b828201905092915050565b6000611b7782611bde565b9150611b8283611bde565b925082821015611b9557611b94611c5a565b5b828203905092915050565b6000611bab82611bbe565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c13578082015181840152602081019050611bf8565b83811115611c22576000848401525b50505050565b60006002820490506001821680611c4057607f821691505b60208210811415611c5457611c53611c89565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611cd281611ba0565b8114611cdd57600080fd5b50565b611ce981611bde565b8114611cf457600080fd5b5056fea26469706673582212204defade245aa28095985621becb0592dfe3b34ae1e2dab18b8c243b47d1a0d7964736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d714610276578063a9059cbb146102a6578063dd62ed3e146102d6578063f2fde38b14610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c5780639dc29fac1461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610322565b60405161010f9190611942565b60405180910390f35b610132600480360381019061012d919061141f565b6103b4565b60405161013f9190611927565b60405180910390f35b61015061044e565b60405161015d9190611ac4565b60405180910390f35b610180600480360381019061017b91906113d0565b610458565b60405161018d9190611927565b60405180910390f35b61019e610559565b6040516101ab9190611adf565b60405180910390f35b6101ce60048036038101906101c9919061141f565b610562565b6040516101db9190611927565b60405180910390f35b6101fe60048036038101906101f9919061136b565b61068a565b60405161020b9190611ac4565b60405180910390f35b61021c6106d3565b005b61022661080d565b604051610233919061190c565b60405180910390f35b610244610836565b6040516102519190611942565b60405180910390f35b610274600480360381019061026f919061141f565b6108c8565b005b610290600480360381019061028b919061141f565b610952565b60405161029d9190611927565b60405180910390f35b6102c060048036038101906102bb919061141f565b610ac3565b6040516102cd9190611927565b60405180910390f35b6102f060048036038101906102eb9190611394565b610ae1565b6040516102fd9190611ac4565b60405180910390f35b610320600480360381019061031b919061136b565b610b68565b005b60606004805461033190611c28565b80601f016020809104026020016040519081016040528092919081815260200182805461035d90611c28565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b60006103be610d11565b73ffffffffffffffffffffffffffffffffffffffff166103dc61080d565b73ffffffffffffffffffffffffffffffffffffffff1614610432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990611a24565b60405180910390fd5b61044461043d610d11565b8484610d19565b6001905092915050565b6000600354905090565b6000610465848484610ee4565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104b0610d11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052790611a04565b60405180910390fd5b61054d8561053c610d11565b85846105489190611b6c565b610d19565b60019150509392505050565b60006009905090565b600061056c610d11565b73ffffffffffffffffffffffffffffffffffffffff1661058a61080d565b73ffffffffffffffffffffffffffffffffffffffff16146105e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d790611a24565b60405180910390fd5b6106806105eb610d11565b8484600260006105f9610d11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461067b9190611b16565b610d19565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106db610d11565b73ffffffffffffffffffffffffffffffffffffffff166106f961080d565b73ffffffffffffffffffffffffffffffffffffffff161461074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690611a24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461084590611c28565b80601f016020809104026020016040519081016040528092919081815260200182805461087190611c28565b80156108be5780601f10610893576101008083540402835291602001916108be565b820191906000526020600020905b8154815290600101906020018083116108a157829003601f168201915b5050505050905090565b6108d0610d11565b73ffffffffffffffffffffffffffffffffffffffff166108ee61080d565b73ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90611a24565b60405180910390fd5b61094e8282611166565b5050565b600061095c610d11565b73ffffffffffffffffffffffffffffffffffffffff1661097a61080d565b73ffffffffffffffffffffffffffffffffffffffff16146109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c790611a24565b60405180910390fd5b6000600260006109de610d11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9290611aa4565b60405180910390fd5b610ab8610aa6610d11565b858584610ab39190611b6c565b610d19565b600191505092915050565b6000610ad7610ad0610d11565b8484610ee4565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b70610d11565b73ffffffffffffffffffffffffffffffffffffffff16610b8e61080d565b73ffffffffffffffffffffffffffffffffffffffff1614610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90611a24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b906119a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090611a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df0906119c4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed79190611ac4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611a64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb90611964565b60405180910390fd5b610fcf83838361133c565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906119e4565b60405180910390fd5b81816110629190611b6c565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f49190611b16565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111589190611ac4565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90611a44565b60405180910390fd5b6111e28260008361133c565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126090611984565b60405180910390fd5b81816112759190611b6c565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546112ca9190611b6c565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132f9190611ac4565b60405180910390a3505050565b505050565b60008135905061135081611cc9565b92915050565b60008135905061136581611ce0565b92915050565b60006020828403121561137d57600080fd5b600061138b84828501611341565b91505092915050565b600080604083850312156113a757600080fd5b60006113b585828601611341565b92505060206113c685828601611341565b9150509250929050565b6000806000606084860312156113e557600080fd5b60006113f386828701611341565b935050602061140486828701611341565b925050604061141586828701611356565b9150509250925092565b6000806040838503121561143257600080fd5b600061144085828601611341565b925050602061145185828601611356565b9150509250929050565b61146481611ba0565b82525050565b61147381611bb2565b82525050565b600061148482611afa565b61148e8185611b05565b935061149e818560208601611bf5565b6114a781611cb8565b840191505092915050565b60006114bf602383611b05565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611525602283611b05565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061158b602683611b05565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115f1602283611b05565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611657602683611b05565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116bd602883611b05565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611723602083611b05565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611763602183611b05565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117c9602583611b05565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061182f602483611b05565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611895602583611b05565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6118f781611bde565b82525050565b61190681611be8565b82525050565b6000602082019050611921600083018461145b565b92915050565b600060208201905061193c600083018461146a565b92915050565b6000602082019050818103600083015261195c8184611479565b905092915050565b6000602082019050818103600083015261197d816114b2565b9050919050565b6000602082019050818103600083015261199d81611518565b9050919050565b600060208201905081810360008301526119bd8161157e565b9050919050565b600060208201905081810360008301526119dd816115e4565b9050919050565b600060208201905081810360008301526119fd8161164a565b9050919050565b60006020820190508181036000830152611a1d816116b0565b9050919050565b60006020820190508181036000830152611a3d81611716565b9050919050565b60006020820190508181036000830152611a5d81611756565b9050919050565b60006020820190508181036000830152611a7d816117bc565b9050919050565b60006020820190508181036000830152611a9d81611822565b9050919050565b60006020820190508181036000830152611abd81611888565b9050919050565b6000602082019050611ad960008301846118ee565b92915050565b6000602082019050611af460008301846118fd565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b2182611bde565b9150611b2c83611bde565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b6157611b60611c5a565b5b828201905092915050565b6000611b7782611bde565b9150611b8283611bde565b925082821015611b9557611b94611c5a565b5b828203905092915050565b6000611bab82611bbe565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c13578082015181840152602081019050611bf8565b83811115611c22576000848401525b50505050565b60006002820490506001821680611c4057607f821691505b60208210811415611c5457611c53611c89565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611cd281611ba0565b8114611cdd57600080fd5b50565b611ce981611bde565b8114611cf457600080fd5b5056fea26469706673582212204defade245aa28095985621becb0592dfe3b34ae1e2dab18b8c243b47d1a0d7964736f6c63430008000033
Deployed Bytecode Sourcemap
20014:10046:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20999:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23165:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22118:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23828:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21961:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24659:225;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22289:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19454:148;;;:::i;:::-;;18803:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21218:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28474;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25387:387;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22629:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22867:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19757:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20999:100;21053:13;21086:5;21079:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20999:100;:::o;23165:181::-;23260:4;19034:12;:10;:12::i;:::-;19023:23;;:7;:5;:7::i;:::-;:23;;;19015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23277:39:::1;23286:12;:10;:12::i;:::-;23300:7;23309:6;23277:8;:39::i;:::-;23334:4;23327:11;;23165:181:::0;;;;:::o;22118:108::-;22179:7;22206:12;;22199:19;;22118:108;:::o;23828:422::-;23934:4;23951:36;23961:6;23969:9;23980:6;23951:9;:36::i;:::-;24000:24;24027:11;:19;24039:6;24027:19;;;;;;;;;;;;;;;:33;24047:12;:10;:12::i;:::-;24027:33;;;;;;;;;;;;;;;;24000:60;;24099:6;24079:16;:26;;24071:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;24161:57;24170:6;24178:12;:10;:12::i;:::-;24211:6;24192:16;:25;;;;:::i;:::-;24161:8;:57::i;:::-;24238:4;24231:11;;;23828:422;;;;;:::o;21961:92::-;22019:5;22044:1;22037:8;;21961:92;:::o;24659:225::-;24757:4;19034:12;:10;:12::i;:::-;19023:23;;:7;:5;:7::i;:::-;:23;;;19015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24774:80:::1;24783:12;:10;:12::i;:::-;24797:7;24843:10;24806:11;:25;24818:12;:10;:12::i;:::-;24806:25;;;;;;;;;;;;;;;:34;24832:7;24806:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;24774:8;:80::i;:::-;24872:4;24865:11;;24659:225:::0;;;;:::o;22289:127::-;22363:7;22390:9;:18;22400:7;22390:18;;;;;;;;;;;;;;;;22383:25;;22289:127;;;:::o;19454:148::-;19034:12;:10;:12::i;:::-;19023:23;;:7;:5;:7::i;:::-;:23;;;19015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19561:1:::1;19524:40;;19545:6;::::0;::::1;;;;;;;;19524:40;;;;;;;;;;;;19592:1;19575:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;19454:148::o:0;18803:87::-;18849:7;18876:6;;;;;;;;;;;18869:13;;18803:87;:::o;21218:104::-;21274:13;21307:7;21300:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21218:104;:::o;28474:::-;19034:12;:10;:12::i;:::-;19023:23;;:7;:5;:7::i;:::-;:23;;;19015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28548:22:::1;28554:7;28563:6;28548:5;:22::i;:::-;28474:104:::0;;:::o;25387:387::-;25490:4;19034:12;:10;:12::i;:::-;19023:23;;:7;:5;:7::i;:::-;:23;;;19015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25507:24:::1;25534:11;:25;25546:12;:10;:12::i;:::-;25534:25;;;;;;;;;;;;;;;:34;25560:7;25534:34;;;;;;;;;;;;;;;;25507:61;;25607:15;25587:16;:35;;25579:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;25675:67;25684:12;:10;:12::i;:::-;25698:7;25726:15;25707:16;:34;;;;:::i;:::-;25675:8;:67::i;:::-;25762:4;25755:11;;;25387:387:::0;;;;:::o;22629:175::-;22715:4;22732:42;22742:12;:10;:12::i;:::-;22756:9;22767:6;22732:9;:42::i;:::-;22792:4;22785:11;;22629:175;;;;:::o;22867:151::-;22956:7;22983:11;:18;22995:5;22983:18;;;;;;;;;;;;;;;:27;23002:7;22983:27;;;;;;;;;;;;;;;;22976:34;;22867:151;;;;:::o;19757:244::-;19034:12;:10;:12::i;:::-;19023:23;;:7;:5;:7::i;:::-;:23;;;19015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19866:1:::1;19846:22;;:8;:22;;;;19838:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19956:8;19927:38;;19948:6;::::0;::::1;;;;;;;;19927:38;;;;;;;;;;;;19985:8;19976:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;19757:244:::0;:::o;98:100::-;151:7;178:10;171:17;;98:100;:::o;29016:346::-;29135:1;29118:19;;:5;:19;;;;29110:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29216:1;29197:21;;:7;:21;;;;29189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29300:6;29270:11;:18;29282:5;29270:18;;;;;;;;;;;;;;;:27;29289:7;29270:27;;;;;;;;;;;;;;;:36;;;;29338:7;29322:32;;29331:5;29322:32;;;29347:6;29322:32;;;;;;:::i;:::-;;;;;;;;29016:346;;;:::o;26264:604::-;26388:1;26370:20;;:6;:20;;;;26362:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;26472:1;26451:23;;:9;:23;;;;26443:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;26527:47;26548:6;26556:9;26567:6;26527:20;:47::i;:::-;26587:21;26611:9;:17;26621:6;26611:17;;;;;;;;;;;;;;;;26587:41;;26664:6;26647:13;:23;;26639:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;26760:6;26744:13;:22;;;;:::i;:::-;26724:9;:17;26734:6;26724:17;;;;;;;;;;;;;;;:42;;;;26801:6;26777:9;:20;26787:9;26777:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;26842:9;26825:35;;26834:6;26825:35;;;26853:6;26825:35;;;;;;:::i;:::-;;;;;;;;26264:604;;;;:::o;27968:494::-;28071:1;28052:21;;:7;:21;;;;28044:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28124:49;28145:7;28162:1;28166:6;28124:20;:49::i;:::-;28186:22;28211:9;:18;28221:7;28211:18;;;;;;;;;;;;;;;;28186:43;;28266:6;28248:14;:24;;28240:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;28360:6;28343:14;:23;;;;:::i;:::-;28322:9;:18;28332:7;28322:18;;;;;;;;;;;;;;;:44;;;;28393:6;28377:12;;:22;;;;;;;:::i;:::-;;;;;;;;28443:1;28417:37;;28426:7;28417:37;;;28447:6;28417:37;;;;;;:::i;:::-;;;;;;;;27968:494;;;:::o;29965:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:118::-;2036:24;2054:5;2036:24;:::i;:::-;2031:3;2024:37;2014:53;;:::o;2073:109::-;2154:21;2169:5;2154:21;:::i;:::-;2149:3;2142:34;2132:50;;:::o;2188:364::-;;2304:39;2337:5;2304:39;:::i;:::-;2359:71;2423:6;2418:3;2359:71;:::i;:::-;2352:78;;2439:52;2484:6;2479:3;2472:4;2465:5;2461:16;2439:52;:::i;:::-;2516:29;2538:6;2516:29;:::i;:::-;2511:3;2507:39;2500:46;;2280:272;;;;;:::o;2558:367::-;;2721:67;2785:2;2780:3;2721:67;:::i;:::-;2714:74;;2818:34;2814:1;2809:3;2805:11;2798:55;2884:5;2879:2;2874:3;2870:12;2863:27;2916:2;2911:3;2907:12;2900:19;;2704:221;;;:::o;2931:366::-;;3094:67;3158:2;3153:3;3094:67;:::i;:::-;3087:74;;3191:34;3187:1;3182:3;3178:11;3171:55;3257:4;3252:2;3247:3;3243:12;3236:26;3288:2;3283:3;3279:12;3272:19;;3077:220;;;:::o;3303:370::-;;3466:67;3530:2;3525:3;3466:67;:::i;:::-;3459:74;;3563:34;3559:1;3554:3;3550:11;3543:55;3629:8;3624:2;3619:3;3615:12;3608:30;3664:2;3659:3;3655:12;3648:19;;3449:224;;;:::o;3679:366::-;;3842:67;3906:2;3901:3;3842:67;:::i;:::-;3835:74;;3939:34;3935:1;3930:3;3926:11;3919:55;4005:4;4000:2;3995:3;3991:12;3984:26;4036:2;4031:3;4027:12;4020:19;;3825:220;;;:::o;4051:370::-;;4214:67;4278:2;4273:3;4214:67;:::i;:::-;4207:74;;4311:34;4307:1;4302:3;4298:11;4291:55;4377:8;4372:2;4367:3;4363:12;4356:30;4412:2;4407:3;4403:12;4396:19;;4197:224;;;:::o;4427:372::-;;4590:67;4654:2;4649:3;4590:67;:::i;:::-;4583:74;;4687:34;4683:1;4678:3;4674:11;4667:55;4753:10;4748:2;4743:3;4739:12;4732:32;4790:2;4785:3;4781:12;4774:19;;4573:226;;;:::o;4805:330::-;;4968:67;5032:2;5027:3;4968:67;:::i;:::-;4961:74;;5065:34;5061:1;5056:3;5052:11;5045:55;5126:2;5121:3;5117:12;5110:19;;4951:184;;;:::o;5141:365::-;;5304:67;5368:2;5363:3;5304:67;:::i;:::-;5297:74;;5401:34;5397:1;5392:3;5388:11;5381:55;5467:3;5462:2;5457:3;5453:12;5446:25;5497:2;5492:3;5488:12;5481:19;;5287:219;;;:::o;5512:369::-;;5675:67;5739:2;5734:3;5675:67;:::i;:::-;5668:74;;5772:34;5768:1;5763:3;5759:11;5752:55;5838:7;5833:2;5828:3;5824:12;5817:29;5872:2;5867:3;5863:12;5856:19;;5658:223;;;:::o;5887:368::-;;6050:67;6114:2;6109:3;6050:67;:::i;:::-;6043:74;;6147:34;6143:1;6138:3;6134:11;6127:55;6213:6;6208:2;6203:3;6199:12;6192:28;6246:2;6241:3;6237:12;6230:19;;6033:222;;;:::o;6261:369::-;;6424:67;6488:2;6483:3;6424:67;:::i;:::-;6417:74;;6521:34;6517:1;6512:3;6508:11;6501:55;6587:7;6582:2;6577:3;6573:12;6566:29;6621:2;6616:3;6612:12;6605:19;;6407:223;;;:::o;6636:118::-;6723:24;6741:5;6723:24;:::i;:::-;6718:3;6711:37;6701:53;;:::o;6760:112::-;6843:22;6859:5;6843:22;:::i;:::-;6838:3;6831:35;6821:51;;:::o;6878:222::-;;7009:2;6998:9;6994:18;6986:26;;7022:71;7090:1;7079:9;7075:17;7066:6;7022:71;:::i;:::-;6976:124;;;;:::o;7106:210::-;;7231:2;7220:9;7216:18;7208:26;;7244:65;7306:1;7295:9;7291:17;7282:6;7244:65;:::i;:::-;7198:118;;;;:::o;7322:313::-;;7473:2;7462:9;7458:18;7450:26;;7522:9;7516:4;7512:20;7508:1;7497:9;7493:17;7486:47;7550:78;7623:4;7614:6;7550:78;:::i;:::-;7542:86;;7440:195;;;;:::o;7641:419::-;;7845:2;7834:9;7830:18;7822:26;;7894:9;7888:4;7884:20;7880:1;7869:9;7865:17;7858:47;7922:131;8048:4;7922:131;:::i;:::-;7914:139;;7812:248;;;:::o;8066:419::-;;8270:2;8259:9;8255:18;8247:26;;8319:9;8313:4;8309:20;8305:1;8294:9;8290:17;8283:47;8347:131;8473:4;8347:131;:::i;:::-;8339:139;;8237:248;;;:::o;8491:419::-;;8695:2;8684:9;8680:18;8672:26;;8744:9;8738:4;8734:20;8730:1;8719:9;8715:17;8708:47;8772:131;8898:4;8772:131;:::i;:::-;8764:139;;8662:248;;;:::o;8916:419::-;;9120:2;9109:9;9105:18;9097:26;;9169:9;9163:4;9159:20;9155:1;9144:9;9140:17;9133:47;9197:131;9323:4;9197:131;:::i;:::-;9189:139;;9087:248;;;:::o;9341:419::-;;9545:2;9534:9;9530:18;9522:26;;9594:9;9588:4;9584:20;9580:1;9569:9;9565:17;9558:47;9622:131;9748:4;9622:131;:::i;:::-;9614:139;;9512:248;;;:::o;9766:419::-;;9970:2;9959:9;9955:18;9947:26;;10019:9;10013:4;10009:20;10005:1;9994:9;9990:17;9983:47;10047:131;10173:4;10047:131;:::i;:::-;10039:139;;9937:248;;;:::o;10191:419::-;;10395:2;10384:9;10380:18;10372:26;;10444:9;10438:4;10434:20;10430:1;10419:9;10415:17;10408:47;10472:131;10598:4;10472:131;:::i;:::-;10464:139;;10362:248;;;:::o;10616:419::-;;10820:2;10809:9;10805:18;10797:26;;10869:9;10863:4;10859:20;10855:1;10844:9;10840:17;10833:47;10897:131;11023:4;10897:131;:::i;:::-;10889:139;;10787:248;;;:::o;11041:419::-;;11245:2;11234:9;11230:18;11222:26;;11294:9;11288:4;11284:20;11280:1;11269:9;11265:17;11258:47;11322:131;11448:4;11322:131;:::i;:::-;11314:139;;11212:248;;;:::o;11466:419::-;;11670:2;11659:9;11655:18;11647:26;;11719:9;11713:4;11709:20;11705:1;11694:9;11690:17;11683:47;11747:131;11873:4;11747:131;:::i;:::-;11739:139;;11637:248;;;:::o;11891:419::-;;12095:2;12084:9;12080:18;12072:26;;12144:9;12138:4;12134:20;12130:1;12119:9;12115:17;12108:47;12172:131;12298:4;12172:131;:::i;:::-;12164:139;;12062:248;;;:::o;12316:222::-;;12447:2;12436:9;12432:18;12424:26;;12460:71;12528:1;12517:9;12513:17;12504:6;12460:71;:::i;:::-;12414:124;;;;:::o;12544:214::-;;12671:2;12660:9;12656:18;12648:26;;12684:67;12748:1;12737:9;12733:17;12724:6;12684:67;:::i;:::-;12638:120;;;;:::o;12764:99::-;;12850:5;12844:12;12834:22;;12823:40;;;:::o;12869:169::-;;12987:6;12982:3;12975:19;13027:4;13022:3;13018:14;13003:29;;12965:73;;;;:::o;13044:305::-;;13103:20;13121:1;13103:20;:::i;:::-;13098:25;;13137:20;13155:1;13137:20;:::i;:::-;13132:25;;13291:1;13223:66;13219:74;13216:1;13213:81;13210:2;;;13297:18;;:::i;:::-;13210:2;13341:1;13338;13334:9;13327:16;;13088:261;;;;:::o;13355:191::-;;13415:20;13433:1;13415:20;:::i;:::-;13410:25;;13449:20;13467:1;13449:20;:::i;:::-;13444:25;;13488:1;13485;13482:8;13479:2;;;13493:18;;:::i;:::-;13479:2;13538:1;13535;13531:9;13523:17;;13400:146;;;;:::o;13552:96::-;;13618:24;13636:5;13618:24;:::i;:::-;13607:35;;13597:51;;;:::o;13654:90::-;;13731:5;13724:13;13717:21;13706:32;;13696:48;;;:::o;13750:126::-;;13827:42;13820:5;13816:54;13805:65;;13795:81;;;:::o;13882:77::-;;13948:5;13937:16;;13927:32;;;:::o;13965:86::-;;14040:4;14033:5;14029:16;14018:27;;14008:43;;;:::o;14057:307::-;14125:1;14135:113;14149:6;14146:1;14143:13;14135:113;;;14234:1;14229:3;14225:11;14219:18;14215:1;14210:3;14206:11;14199:39;14171:2;14168:1;14164:10;14159:15;;14135:113;;;14266:6;14263:1;14260:13;14257:2;;;14346:1;14337:6;14332:3;14328:16;14321:27;14257:2;14106:258;;;;:::o;14370:320::-;;14451:1;14445:4;14441:12;14431:22;;14498:1;14492:4;14488:12;14519:18;14509:2;;14575:4;14567:6;14563:17;14553:27;;14509:2;14637;14629:6;14626:14;14606:18;14603:38;14600:2;;;14656:18;;:::i;:::-;14600:2;14421:269;;;;:::o;14696:180::-;14744:77;14741:1;14734:88;14841:4;14838:1;14831:15;14865:4;14862:1;14855:15;14882:180;14930:77;14927:1;14920:88;15027:4;15024:1;15017:15;15051:4;15048:1;15041:15;15068:102;;15160:2;15156:7;15151:2;15144:5;15140:14;15136:28;15126:38;;15116:54;;;:::o;15176:122::-;15249:24;15267:5;15249:24;:::i;:::-;15242:5;15239:35;15229:2;;15288:1;15285;15278:12;15229:2;15219:79;:::o;15304:122::-;15377:24;15395:5;15377:24;:::i;:::-;15370:5;15367:35;15357:2;;15416:1;15413;15406:12;15357:2;15347:79;:::o
Swarm Source
ipfs://4defade245aa28095985621becb0592dfe3b34ae1e2dab18b8c243b47d1a0d79
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.