Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 16,652 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 38492349 | 84 days ago | IN | 0 ETH | 0.00000026 | ||||
| Approve | 37386790 | 110 days ago | IN | 0 ETH | 0.0000003 | ||||
| Transfer | 36742682 | 125 days ago | IN | 0 ETH | 0.00000419 | ||||
| Approve | 36742437 | 125 days ago | IN | 0 ETH | 0.00000085 | ||||
| Approve | 36742282 | 125 days ago | IN | 0 ETH | 0.00000071 | ||||
| Approve | 36741576 | 125 days ago | IN | 0 ETH | 0.00000052 | ||||
| Approve | 36741471 | 125 days ago | IN | 0 ETH | 0.00000057 | ||||
| Approve | 36741448 | 125 days ago | IN | 0 ETH | 0.00000059 | ||||
| Approve | 36741436 | 125 days ago | IN | 0 ETH | 0.00000059 | ||||
| Approve | 36741416 | 125 days ago | IN | 0 ETH | 0.00000061 | ||||
| Approve | 36741310 | 125 days ago | IN | 0 ETH | 0.00000058 | ||||
| Approve | 36741286 | 125 days ago | IN | 0 ETH | 0.00000055 | ||||
| Approve | 36740479 | 125 days ago | IN | 0 ETH | 0.00000035 | ||||
| Approve | 36740451 | 125 days ago | IN | 0 ETH | 0.00000034 | ||||
| Approve | 36740428 | 125 days ago | IN | 0 ETH | 0.00000034 | ||||
| Approve | 36740309 | 125 days ago | IN | 0 ETH | 0.00000032 | ||||
| Approve | 36740287 | 125 days ago | IN | 0 ETH | 0.00000034 | ||||
| Approve | 36740183 | 125 days ago | IN | 0 ETH | 0.00000029 | ||||
| Transfer | 36740180 | 125 days ago | IN | 0 ETH | 0.00000028 | ||||
| Approve | 36739509 | 125 days ago | IN | 0 ETH | 0.00000064 | ||||
| Approve | 36730751 | 125 days ago | IN | 0 ETH | 0.00000023 | ||||
| Transfer | 36729799 | 125 days ago | IN | 0 ETH | 0.00000419 | ||||
| Transfer | 36729799 | 125 days ago | IN | 0 ETH | 0.00000419 | ||||
| Transfer | 36729798 | 125 days ago | IN | 0 ETH | 0.00000419 | ||||
| Approve | 36729405 | 125 days ago | IN | 0 ETH | 0.00000032 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
EMOKING
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2025-07-06
*/
// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/token/ERC20/IERC20.sol
// OpenZeppelin Contracts (last updated v4.9.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 amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/token/ERC20/extensions/IERC20Metadata.sol
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
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: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/Context.sol
// OpenZeppelin Contracts v4.4.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;
}
}
// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/token/ERC20/ERC20.sol
// OpenZeppelin Contracts (last updated v4.9.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}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* 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.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @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_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the 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 override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `amount` 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 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* 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 `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `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.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(address from, address to, uint256 amount) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(address owner, address spender, uint256 amount) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}
// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v4.9.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.
*
* By default, the owner account will be the one that deploys the contract. 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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @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 {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @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 {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_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: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/security/ReentrancyGuard.sol
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be _NOT_ENTERED
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == _ENTERED;
}
}
// File: EMOKING-KING.sol
pragma solidity ^0.8.24;
contract EMOKING is ERC20, Ownable, ReentrancyGuard {
uint256 private constant TOTAL_SUPPLY = 1_000_000_000 * 10**18;
uint256 private constant ANTI_SNIPER_WINDOW_DURATION = 10 minutes; // Defined for clarity
address public liquidityWallet;
address public marketingWallet;
address public devWallet;
address public partnershipWallet;
address public deployerWallet;
address public lpPairAddress; // Can be 0x0 at deployment, set later by owner
uint256 public launchTime; // This will store the timestamp when anti-sniper window starts
mapping(address => bool) public isBlacklisted;
bool public antiSniperTriggered = false; // New flag to ensure anti-sniper only triggers once
// Events for better transparency
event AntiSniperActivated(uint256 windowStartTime);
event UserBlacklisted(address user);
event LPPairAddressUpdated(address newAddress);
/**
* @dev Constructor to initialize the token and distribute initial supply.
* @param _liquidityWallet Address for the liquidity pool tokens (70%).
* @param _marketingWallet Address for marketing funds (10%).
* @param _devWallet Address for development funds (10%).
* @param _partnershipWallet Address for partnership allocations (5%).
* @param _deployerWallet Address of the contract deployer (5%), also the initial owner.
* @param _lpPairAddress The initial (possibly dummy) LP pair address.
*/
constructor(
address _liquidityWallet,
address _marketingWallet,
address _devWallet,
address _partnershipWallet,
address _deployerWallet,
address _lpPairAddress // This can be 0x0000...000 at deployment
)
ERC20("EMOKING", "KING") // TOKEN NAME: EMOKING, TICKER: KING
Ownable() // Make deployer the owner (FIXED: NO ARGUMENT FOR OWNABLE IN OZ 4.9.3)
{
// Basic sanity checks for wallet addresses
require(_liquidityWallet != address(0), "Liquidity wallet cannot be zero address");
require(_marketingWallet != address(0), "Marketing wallet cannot be zero address");
require(_devWallet != address(0), "Dev wallet cannot be zero address");
require(_partnershipWallet != address(0), "Partnership wallet cannot be zero address");
require(_deployerWallet != address(0), "Deployer wallet cannot be zero address");
// Removed: require(_lpPairAddress != address(0), "LP pair cannot be zero address");
// This allows _lpPairAddress to be 0x0 at deployment. It MUST be set later.
liquidityWallet = _liquidityWallet;
marketingWallet = _marketingWallet;
devWallet = _devWallet;
partnershipWallet = _partnershipWallet;
deployerWallet = _deployerWallet;
lpPairAddress = _lpPairAddress; // Assigns the initial (possibly dummy) LP address
launchTime = 0; // Initialize launchTime to 0
// Mint initial supply to respective wallets based on allocation
_mint(liquidityWallet, (TOTAL_SUPPLY * 70) / 100);
_mint(marketingWallet, (TOTAL_SUPPLY * 10) / 100);
_mint(devWallet, (TOTAL_SUPPLY * 10) / 100);
_mint(partnershipWallet, (TOTAL_SUPPLY * 5) / 100);
_mint(deployerWallet, (TOTAL_SUPPLY * 5) / 100); // 5% to the deployer wallet
}
/**
* @dev Allows the owner to set the LP pair address after contract deployment.
* This is crucial if the LP pair address was 0x0 at deployment.
* Can only be called once to prevent accidental changes.
* @param _newLPAddress The actual address of the liquidity pool pair.
*/
function setLPPairAddress(address _newLPAddress) external onlyOwner {
require(_newLPAddress != address(0), "New LP Pair address cannot be zero");
require(lpPairAddress == address(0) || lpPairAddress == _newLPAddress, "LP Pair address already set or different");
lpPairAddress = _newLPAddress;
emit LPPairAddressUpdated(_newLPAddress);
}
/**
* @dev Allows the owner to blacklist or unblacklist a user.
* Core wallets (liquidity, marketing, dev, partnership, deployer, LP pair) cannot be blacklisted.
* @param user The address to blacklist or unblacklist.
* @param value True to blacklist, false to unblacklist.
*/
function blacklist(address user, bool value) external onlyOwner {
require(
user != liquidityWallet &&
user != marketingWallet &&
user != devWallet &&
user != partnershipWallet &&
user != deployerWallet &&
user != lpPairAddress, // Prevent blacklisting the LP pair itself
"Cannot blacklist core wallets"
);
isBlacklisted[user] = value;
emit UserBlacklisted(user); // Emit event
}
/**
* @dev Overrides the standard ERC20 transfer function to include anti-sniper and blacklist logic.
*/
function transfer(address to, uint256 amount) public override nonReentrant returns (bool) {
// ANTI-SNIPER TRIGGER (One-time only):
// Triggers when antiSniperTriggered is false, LP pair address is set,
// and liquidity is being added for the first time from liquidityWallet to lpPairAddress.
if (!antiSniperTriggered && lpPairAddress != address(0) && msg.sender == liquidityWallet && to == lpPairAddress && amount > 0) {
launchTime = block.timestamp; // Set the start time of the anti-sniper window
antiSniperTriggered = true; // Mark as triggered (prevents re-triggering)
emit AntiSniperActivated(launchTime); // Emit event for activation
}
// ANTI-SNIPER BLACKLISTING:
// If the anti-sniper window is active (antiSniperTriggered is true and within 10 minutes)
// and tokens are being sent FROM the LP pair (i.e., a buy transaction).
if (antiSniperTriggered && block.timestamp < launchTime + ANTI_SNIPER_WINDOW_DURATION) {
// Check if the sender is the LP pair (identifies a 'buy' from the pool)
if (msg.sender == lpPairAddress) {
isBlacklisted[to] = true; // Blacklist the buyer
emit UserBlacklisted(to); // Emit event for blacklisting
}
}
// ENFORCE BLACKLIST: Prevent transfers to/from blacklisted users
require(!isBlacklisted[msg.sender], "Sender is blacklisted");
require(!isBlacklisted[to], "Recipient is blacklisted");
return super.transfer(to, amount); // Execute the actual token transfer
}
/**
* @dev Overrides the standard ERC20 transferFrom function to include anti-sniper and blacklist logic.
*/
function transferFrom(address from, address to, uint256 amount) public override nonReentrant returns (bool) {
// ANTI-SNIPER TRIGGER (One-time only):
// Same trigger logic as in `transfer`
if (!antiSniperTriggered && lpPairAddress != address(0) && from == liquidityWallet && to == lpPairAddress && amount > 0) {
launchTime = block.timestamp; // Set the start time of the anti-sniper window
antiSniperTriggered = true; // Mark as triggered (prevents re-triggering)
emit AntiSniperActivated(launchTime); // Emit event for activation
}
// ANTI-SNIPER BLACKLISTING:
// Same blacklisting logic as in `transfer`
if (antiSniperTriggered && block.timestamp < launchTime + ANTI_SNIPER_WINDOW_DURATION) {
// Check if the sender is the LP pair (identifies a 'buy' from the pool)
if (from == lpPairAddress) {
isBlacklisted[to] = true; // Blacklist the buyer
emit UserBlacklisted(to); // Emit event for blacklisting
}
}
// ENFORCE BLACKLIST: Prevent transfers to/from blacklisted users
require(!isBlacklisted[from], "Sender is blacklisted");
require(!isBlacklisted[to], "Recipient is blacklisted");
return super.transferFrom(from, to, amount); // Execute the actual token transfer
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_liquidityWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_partnershipWallet","type":"address"},{"internalType":"address","name":"_deployerWallet","type":"address"},{"internalType":"address","name":"_lpPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"windowStartTime","type":"uint256"}],"name":"AntiSniperActivated","type":"event"},{"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":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"LPPairAddressUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"UserBlacklisted","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiSniperTriggered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"partnershipWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newLPAddress","type":"address"}],"name":"setLPPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040525f600f5f6101000a81548160ff02191690831515021790555034801562000029575f80fd5b50604051620039ee380380620039ee83398181016040528101906200004f919062000936565b6040518060400160405280600781526020017f454d4f4b494e47000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4b494e47000000000000000000000000000000000000000000000000000000008152508160039081620000cc919062000c32565b508060049081620000de919062000c32565b50505062000101620000f56200069860201b60201c565b6200069f60201b60201c565b60016006819055505f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200017a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001719062000d9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e29062000e2e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200025c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002539062000ec2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620002cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c49062000f56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200033e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003359062000fea565b60405180910390fd5b8560075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600d819055506200052060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460466b033b2e3c9fd0803ce800000062000508919062001037565b620005149190620010ae565b6200076260201b60201c565b6200057b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a6b033b2e3c9fd0803ce800000062000563919062001037565b6200056f9190620010ae565b6200076260201b60201c565b620005d660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a6b033b2e3c9fd0803ce8000000620005be919062001037565b620005ca9190620010ae565b6200076260201b60201c565b62000631600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460056b033b2e3c9fd0803ce800000062000619919062001037565b620006259190620010ae565b6200076260201b60201c565b6200068c600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460056b033b2e3c9fd0803ce800000062000674919062001037565b620006809190620010ae565b6200076260201b60201c565b505050505050620011b9565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ca9062001133565b60405180910390fd5b620007e65f8383620008c760201b60201c565b8060025f828254620007f9919062001153565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008a891906200119e565b60405180910390a3620008c35f8383620008cc60201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200090082620008d5565b9050919050565b6200091281620008f4565b81146200091d575f80fd5b50565b5f81519050620009308162000907565b92915050565b5f805f805f8060c08789031215620009535762000952620008d1565b5b5f6200096289828a0162000920565b96505060206200097589828a0162000920565b95505060406200098889828a0162000920565b94505060606200099b89828a0162000920565b9350506080620009ae89828a0162000920565b92505060a0620009c189828a0162000920565b9150509295509295509295565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a4a57607f821691505b60208210810362000a605762000a5f62000a05565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000ac47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a87565b62000ad0868362000a87565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b1a62000b1462000b0e8462000ae8565b62000af1565b62000ae8565b9050919050565b5f819050919050565b62000b358362000afa565b62000b4d62000b448262000b21565b84845462000a93565b825550505050565b5f90565b62000b6362000b55565b62000b7081848462000b2a565b505050565b5b8181101562000b975762000b8b5f8262000b59565b60018101905062000b76565b5050565b601f82111562000be65762000bb08162000a66565b62000bbb8462000a78565b8101602085101562000bcb578190505b62000be362000bda8562000a78565b83018262000b75565b50505b505050565b5f82821c905092915050565b5f62000c085f198460080262000beb565b1980831691505092915050565b5f62000c22838362000bf7565b9150826002028217905092915050565b62000c3d82620009ce565b67ffffffffffffffff81111562000c595762000c58620009d8565b5b62000c65825462000a32565b62000c7282828562000b9b565b5f60209050601f83116001811462000ca8575f841562000c93578287015190505b62000c9f858262000c15565b86555062000d0e565b601f19841662000cb88662000a66565b5f5b8281101562000ce15784890151825560018201915060208501945060208101905062000cba565b8683101562000d01578489015162000cfd601f89168262000bf7565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f4c69717569646974792077616c6c65742063616e6e6f74206265207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f62000d8260278362000d16565b915062000d8f8262000d26565b604082019050919050565b5f6020820190508181035f83015262000db38162000d74565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f62000e1660278362000d16565b915062000e238262000dba565b604082019050919050565b5f6020820190508181035f83015262000e478162000e08565b9050919050565b7f4465762077616c6c65742063616e6e6f74206265207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000eaa60218362000d16565b915062000eb78262000e4e565b604082019050919050565b5f6020820190508181035f83015262000edb8162000e9c565b9050919050565b7f506172746e6572736869702077616c6c65742063616e6e6f74206265207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f62000f3e60298362000d16565b915062000f4b8262000ee2565b604082019050919050565b5f6020820190508181035f83015262000f6f8162000f30565b9050919050565b7f4465706c6f7965722077616c6c65742063616e6e6f74206265207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f62000fd260268362000d16565b915062000fdf8262000f76565b604082019050919050565b5f6020820190508181035f830152620010038162000fc4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620010438262000ae8565b9150620010508362000ae8565b9250828202620010608162000ae8565b915082820484148315176200107a57620010796200100a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620010ba8262000ae8565b9150620010c78362000ae8565b925082620010da57620010d962001081565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6200111b601f8362000d16565b91506200112882620010e5565b602082019050919050565b5f6020820190508181035f8301526200114c816200110d565b9050919050565b5f6200115f8262000ae8565b91506200116c8362000ae8565b92508282019050808211156200118757620011866200100a565b5b92915050565b620011988162000ae8565b82525050565b5f602082019050620011b35f8301846200118d565b92915050565b61282780620011c75f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063715018a6116100dc578063a457c2d711610095578063d46980161161006f578063d46980161461043f578063dd62ed3e1461045d578063f2fde38b1461048d578063fe575a87146104a957610171565b8063a457c2d7146103c1578063a9059cbb146103f1578063c5a0e72e1461042157610171565b8063715018a61461032157806375f0a8741461032b578063790ca413146103495780638da5cb5b146103675780638ea5220f1461038557806395d89b41146103a357610171565b8063367d53bc1161012e578063367d53bc1461024d578063395093511461026b578063404e51291461029b5780635761ef2c146102b75780635d60c7be146102d357806370a08231146102f157610171565b806304d2be771461017557806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e157806323b872dd146101ff578063313ce5671461022f575b5f80fd5b61017d6104d9565b60405161018a9190611cb4565b60405180910390f35b61019b6104fe565b6040516101a89190611d57565b60405180910390f35b6101cb60048036038101906101c69190611dd8565b61058e565b6040516101d89190611e30565b60405180910390f35b6101e96105b0565b6040516101f69190611e58565b60405180910390f35b61021960048036038101906102149190611e71565b6105b9565b6040516102269190611e30565b60405180910390f35b610237610986565b6040516102449190611edc565b60405180910390f35b61025561098e565b6040516102629190611cb4565b60405180910390f35b61028560048036038101906102809190611dd8565b6109b3565b6040516102929190611e30565b60405180910390f35b6102b560048036038101906102b09190611f1f565b6109e9565b005b6102d160048036038101906102cc9190611f5d565b610ccd565b005b6102db610ea3565b6040516102e89190611cb4565b60405180910390f35b61030b60048036038101906103069190611f5d565b610ec8565b6040516103189190611e58565b60405180910390f35b610329610f0d565b005b610333610f20565b6040516103409190611cb4565b60405180910390f35b610351610f45565b60405161035e9190611e58565b60405180910390f35b61036f610f4b565b60405161037c9190611cb4565b60405180910390f35b61038d610f73565b60405161039a9190611cb4565b60405180910390f35b6103ab610f98565b6040516103b89190611d57565b60405180910390f35b6103db60048036038101906103d69190611dd8565b611028565b6040516103e89190611e30565b60405180910390f35b61040b60048036038101906104069190611dd8565b61109d565b6040516104189190611e30565b60405180910390f35b610429611468565b6040516104369190611e30565b60405180910390f35b61044761147a565b6040516104549190611cb4565b60405180910390f35b61047760048036038101906104729190611f88565b61149f565b6040516104849190611e58565b60405180910390f35b6104a760048036038101906104a29190611f5d565b611521565b005b6104c360048036038101906104be9190611f5d565b6115a3565b6040516104d09190611e30565b60405180910390f35b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606003805461050d90611ff3565b80601f016020809104026020016040519081016040528092919081815260200182805461053990611ff3565b80156105845780601f1061055b57610100808354040283529160200191610584565b820191905f5260205f20905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b5f806105986115c0565b90506105a58185856115c7565b600191505092915050565b5f600254905090565b5f6105c261178a565b600f5f9054906101000a900460ff1615801561062b57505f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015610683575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156106db5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156106e657505f82115b156107465742600d819055506001600f5f6101000a81548160ff0219169083151502179055507fab9a1ffcf1ba2d2ace100c1fa14fc26255ee5bcd52c0431ba83e509c85d1147d600d5460405161073d9190611e58565b60405180910390a15b600f5f9054906101000a900460ff16801561076f5750610258600d5461076c9190612050565b42105b1561085657600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610855576001600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f7f8b7dc89dae85811a7a85800b892b5816ad5d381c856f1b56490f8fc470c9cb8360405161084c9190611cb4565b60405180910390a15b5b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d7906120cd565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096190612135565b60405180910390fd5b6109758484846117d9565b905061097f611807565b9392505050565b5f6012905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f806109bd6115c0565b90506109de8185856109cf858961149f565b6109d99190612050565b6115c7565b600191505092915050565b6109f1611811565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610a9b575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610af4575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610b4d5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610ba65750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610bff5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c359061219d565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f7f8b7dc89dae85811a7a85800b892b5816ad5d381c856f1b56490f8fc470c9cb82604051610cc19190611cb4565b60405180910390a15050565b610cd5611811565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a9061222b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610dea57508073ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e20906122b9565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f98874087819ef549ce5ce963a227b99a8002353030e3be36ad09abc59ff1c56481604051610e989190611cb4565b60405180910390a150565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f15611811565b610f1e5f61188f565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610fa790611ff3565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd390611ff3565b801561101e5780601f10610ff55761010080835404028352916020019161101e565b820191905f5260205f20905b81548152906001019060200180831161100157829003601f168201915b5050505050905090565b5f806110326115c0565b90505f61103f828661149f565b905083811015611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612347565b60405180910390fd5b61109182868684036115c7565b60019250505092915050565b5f6110a661178a565b600f5f9054906101000a900460ff1615801561110f57505f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015611167575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80156111bf5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156111ca57505f82115b1561122a5742600d819055506001600f5f6101000a81548160ff0219169083151502179055507fab9a1ffcf1ba2d2ace100c1fa14fc26255ee5bcd52c0431ba83e509c85d1147d600d546040516112219190611e58565b60405180910390a15b600f5f9054906101000a900460ff1680156112535750610258600d546112509190612050565b42105b1561133a57600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611339576001600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f7f8b7dc89dae85811a7a85800b892b5816ad5d381c856f1b56490f8fc470c9cb836040516113309190611cb4565b60405180910390a15b5b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb906120cd565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612135565b60405180910390fd5b6114588383611952565b9050611462611807565b92915050565b600f5f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611529611811565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158e906123d5565b60405180910390fd5b6115a08161188f565b50565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90612463565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906124f1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177d9190611e58565b60405180910390a3505050565b6002600654036117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c690612559565b60405180910390fd5b6002600681905550565b5f806117e36115c0565b90506117f0858285611974565b6117fb8585856119ff565b60019150509392505050565b6001600681905550565b6118196115c0565b73ffffffffffffffffffffffffffffffffffffffff16611837610f4b565b73ffffffffffffffffffffffffffffffffffffffff161461188d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611884906125c1565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8061195c6115c0565b90506119698185856119ff565b600191505092915050565b5f61197f848461149f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119f957818110156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e290612629565b60405180910390fd5b6119f884848484036115c7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a64906126b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad290612745565b60405180910390fd5b611ae6838383611c6b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906127d3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c529190611e58565b60405180910390a3611c65848484611c70565b50505050565b505050565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c9e82611c75565b9050919050565b611cae81611c94565b82525050565b5f602082019050611cc75f830184611ca5565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d04578082015181840152602081019050611ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d2982611ccd565b611d338185611cd7565b9350611d43818560208601611ce7565b611d4c81611d0f565b840191505092915050565b5f6020820190508181035f830152611d6f8184611d1f565b905092915050565b5f80fd5b611d8481611c94565b8114611d8e575f80fd5b50565b5f81359050611d9f81611d7b565b92915050565b5f819050919050565b611db781611da5565b8114611dc1575f80fd5b50565b5f81359050611dd281611dae565b92915050565b5f8060408385031215611dee57611ded611d77565b5b5f611dfb85828601611d91565b9250506020611e0c85828601611dc4565b9150509250929050565b5f8115159050919050565b611e2a81611e16565b82525050565b5f602082019050611e435f830184611e21565b92915050565b611e5281611da5565b82525050565b5f602082019050611e6b5f830184611e49565b92915050565b5f805f60608486031215611e8857611e87611d77565b5b5f611e9586828701611d91565b9350506020611ea686828701611d91565b9250506040611eb786828701611dc4565b9150509250925092565b5f60ff82169050919050565b611ed681611ec1565b82525050565b5f602082019050611eef5f830184611ecd565b92915050565b611efe81611e16565b8114611f08575f80fd5b50565b5f81359050611f1981611ef5565b92915050565b5f8060408385031215611f3557611f34611d77565b5b5f611f4285828601611d91565b9250506020611f5385828601611f0b565b9150509250929050565b5f60208284031215611f7257611f71611d77565b5b5f611f7f84828501611d91565b91505092915050565b5f8060408385031215611f9e57611f9d611d77565b5b5f611fab85828601611d91565b9250506020611fbc85828601611d91565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061200a57607f821691505b60208210810361201d5761201c611fc6565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61205a82611da5565b915061206583611da5565b925082820190508082111561207d5761207c612023565b5b92915050565b7f53656e64657220697320626c61636b6c697374656400000000000000000000005f82015250565b5f6120b7601583611cd7565b91506120c282612083565b602082019050919050565b5f6020820190508181035f8301526120e4816120ab565b9050919050565b7f526563697069656e7420697320626c61636b6c697374656400000000000000005f82015250565b5f61211f601883611cd7565b915061212a826120eb565b602082019050919050565b5f6020820190508181035f83015261214c81612113565b9050919050565b7f43616e6e6f7420626c61636b6c69737420636f72652077616c6c6574730000005f82015250565b5f612187601d83611cd7565b915061219282612153565b602082019050919050565b5f6020820190508181035f8301526121b48161217b565b9050919050565b7f4e6577204c50205061697220616464726573732063616e6e6f74206265207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612215602283611cd7565b9150612220826121bb565b604082019050919050565b5f6020820190508181035f83015261224281612209565b9050919050565b7f4c502050616972206164647265737320616c726561647920736574206f7220645f8201527f6966666572656e74000000000000000000000000000000000000000000000000602082015250565b5f6122a3602883611cd7565b91506122ae82612249565b604082019050919050565b5f6020820190508181035f8301526122d081612297565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612331602583611cd7565b915061233c826122d7565b604082019050919050565b5f6020820190508181035f83015261235e81612325565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123bf602683611cd7565b91506123ca82612365565b604082019050919050565b5f6020820190508181035f8301526123ec816123b3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61244d602483611cd7565b9150612458826123f3565b604082019050919050565b5f6020820190508181035f83015261247a81612441565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124db602283611cd7565b91506124e682612481565b604082019050919050565b5f6020820190508181035f830152612508816124cf565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612543601f83611cd7565b915061254e8261250f565b602082019050919050565b5f6020820190508181035f83015261257081612537565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125ab602083611cd7565b91506125b682612577565b602082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612613601d83611cd7565b915061261e826125df565b602082019050919050565b5f6020820190508181035f83015261264081612607565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126a1602583611cd7565b91506126ac82612647565b604082019050919050565b5f6020820190508181035f8301526126ce81612695565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61272f602383611cd7565b915061273a826126d5565b604082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6127bd602683611cd7565b91506127c882612763565b604082019050919050565b5f6020820190508181035f8301526127ea816127b1565b905091905056fea264697066735822122056875024a49f2f03bc991e54530c9f8d8089017e0e31155164b9b0c8dcb76e3364736f6c63430008180033000000000000000000000000abfbfc8ee73eec6523fb088206ce8b8b51eb913b0000000000000000000000004a68622f6508cc99c51813fca10b50027c05b9eb0000000000000000000000007c64f3c1323f0f9ae69a73eb6e90764ab2a03c0d0000000000000000000000006f9282fe4cd10bcca8e2562c6884750f0e58da820000000000000000000000002e86bcb8f6d54fd13de283773acd75018e8049260000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063715018a6116100dc578063a457c2d711610095578063d46980161161006f578063d46980161461043f578063dd62ed3e1461045d578063f2fde38b1461048d578063fe575a87146104a957610171565b8063a457c2d7146103c1578063a9059cbb146103f1578063c5a0e72e1461042157610171565b8063715018a61461032157806375f0a8741461032b578063790ca413146103495780638da5cb5b146103675780638ea5220f1461038557806395d89b41146103a357610171565b8063367d53bc1161012e578063367d53bc1461024d578063395093511461026b578063404e51291461029b5780635761ef2c146102b75780635d60c7be146102d357806370a08231146102f157610171565b806304d2be771461017557806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e157806323b872dd146101ff578063313ce5671461022f575b5f80fd5b61017d6104d9565b60405161018a9190611cb4565b60405180910390f35b61019b6104fe565b6040516101a89190611d57565b60405180910390f35b6101cb60048036038101906101c69190611dd8565b61058e565b6040516101d89190611e30565b60405180910390f35b6101e96105b0565b6040516101f69190611e58565b60405180910390f35b61021960048036038101906102149190611e71565b6105b9565b6040516102269190611e30565b60405180910390f35b610237610986565b6040516102449190611edc565b60405180910390f35b61025561098e565b6040516102629190611cb4565b60405180910390f35b61028560048036038101906102809190611dd8565b6109b3565b6040516102929190611e30565b60405180910390f35b6102b560048036038101906102b09190611f1f565b6109e9565b005b6102d160048036038101906102cc9190611f5d565b610ccd565b005b6102db610ea3565b6040516102e89190611cb4565b60405180910390f35b61030b60048036038101906103069190611f5d565b610ec8565b6040516103189190611e58565b60405180910390f35b610329610f0d565b005b610333610f20565b6040516103409190611cb4565b60405180910390f35b610351610f45565b60405161035e9190611e58565b60405180910390f35b61036f610f4b565b60405161037c9190611cb4565b60405180910390f35b61038d610f73565b60405161039a9190611cb4565b60405180910390f35b6103ab610f98565b6040516103b89190611d57565b60405180910390f35b6103db60048036038101906103d69190611dd8565b611028565b6040516103e89190611e30565b60405180910390f35b61040b60048036038101906104069190611dd8565b61109d565b6040516104189190611e30565b60405180910390f35b610429611468565b6040516104369190611e30565b60405180910390f35b61044761147a565b6040516104549190611cb4565b60405180910390f35b61047760048036038101906104729190611f88565b61149f565b6040516104849190611e58565b60405180910390f35b6104a760048036038101906104a29190611f5d565b611521565b005b6104c360048036038101906104be9190611f5d565b6115a3565b6040516104d09190611e30565b60405180910390f35b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606003805461050d90611ff3565b80601f016020809104026020016040519081016040528092919081815260200182805461053990611ff3565b80156105845780601f1061055b57610100808354040283529160200191610584565b820191905f5260205f20905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b5f806105986115c0565b90506105a58185856115c7565b600191505092915050565b5f600254905090565b5f6105c261178a565b600f5f9054906101000a900460ff1615801561062b57505f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015610683575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156106db5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156106e657505f82115b156107465742600d819055506001600f5f6101000a81548160ff0219169083151502179055507fab9a1ffcf1ba2d2ace100c1fa14fc26255ee5bcd52c0431ba83e509c85d1147d600d5460405161073d9190611e58565b60405180910390a15b600f5f9054906101000a900460ff16801561076f5750610258600d5461076c9190612050565b42105b1561085657600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610855576001600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f7f8b7dc89dae85811a7a85800b892b5816ad5d381c856f1b56490f8fc470c9cb8360405161084c9190611cb4565b60405180910390a15b5b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d7906120cd565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096190612135565b60405180910390fd5b6109758484846117d9565b905061097f611807565b9392505050565b5f6012905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f806109bd6115c0565b90506109de8185856109cf858961149f565b6109d99190612050565b6115c7565b600191505092915050565b6109f1611811565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610a9b575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610af4575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610b4d5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610ba65750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610bff5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c359061219d565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f7f8b7dc89dae85811a7a85800b892b5816ad5d381c856f1b56490f8fc470c9cb82604051610cc19190611cb4565b60405180910390a15050565b610cd5611811565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a9061222b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610dea57508073ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e20906122b9565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f98874087819ef549ce5ce963a227b99a8002353030e3be36ad09abc59ff1c56481604051610e989190611cb4565b60405180910390a150565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f15611811565b610f1e5f61188f565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610fa790611ff3565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd390611ff3565b801561101e5780601f10610ff55761010080835404028352916020019161101e565b820191905f5260205f20905b81548152906001019060200180831161100157829003601f168201915b5050505050905090565b5f806110326115c0565b90505f61103f828661149f565b905083811015611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612347565b60405180910390fd5b61109182868684036115c7565b60019250505092915050565b5f6110a661178a565b600f5f9054906101000a900460ff1615801561110f57505f73ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015611167575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80156111bf5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156111ca57505f82115b1561122a5742600d819055506001600f5f6101000a81548160ff0219169083151502179055507fab9a1ffcf1ba2d2ace100c1fa14fc26255ee5bcd52c0431ba83e509c85d1147d600d546040516112219190611e58565b60405180910390a15b600f5f9054906101000a900460ff1680156112535750610258600d546112509190612050565b42105b1561133a57600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611339576001600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f7f8b7dc89dae85811a7a85800b892b5816ad5d381c856f1b56490f8fc470c9cb836040516113309190611cb4565b60405180910390a15b5b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb906120cd565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612135565b60405180910390fd5b6114588383611952565b9050611462611807565b92915050565b600f5f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611529611811565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158e906123d5565b60405180910390fd5b6115a08161188f565b50565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90612463565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906124f1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177d9190611e58565b60405180910390a3505050565b6002600654036117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c690612559565b60405180910390fd5b6002600681905550565b5f806117e36115c0565b90506117f0858285611974565b6117fb8585856119ff565b60019150509392505050565b6001600681905550565b6118196115c0565b73ffffffffffffffffffffffffffffffffffffffff16611837610f4b565b73ffffffffffffffffffffffffffffffffffffffff161461188d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611884906125c1565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8061195c6115c0565b90506119698185856119ff565b600191505092915050565b5f61197f848461149f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119f957818110156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e290612629565b60405180910390fd5b6119f884848484036115c7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a64906126b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad290612745565b60405180910390fd5b611ae6838383611c6b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906127d3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c529190611e58565b60405180910390a3611c65848484611c70565b50505050565b505050565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c9e82611c75565b9050919050565b611cae81611c94565b82525050565b5f602082019050611cc75f830184611ca5565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d04578082015181840152602081019050611ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d2982611ccd565b611d338185611cd7565b9350611d43818560208601611ce7565b611d4c81611d0f565b840191505092915050565b5f6020820190508181035f830152611d6f8184611d1f565b905092915050565b5f80fd5b611d8481611c94565b8114611d8e575f80fd5b50565b5f81359050611d9f81611d7b565b92915050565b5f819050919050565b611db781611da5565b8114611dc1575f80fd5b50565b5f81359050611dd281611dae565b92915050565b5f8060408385031215611dee57611ded611d77565b5b5f611dfb85828601611d91565b9250506020611e0c85828601611dc4565b9150509250929050565b5f8115159050919050565b611e2a81611e16565b82525050565b5f602082019050611e435f830184611e21565b92915050565b611e5281611da5565b82525050565b5f602082019050611e6b5f830184611e49565b92915050565b5f805f60608486031215611e8857611e87611d77565b5b5f611e9586828701611d91565b9350506020611ea686828701611d91565b9250506040611eb786828701611dc4565b9150509250925092565b5f60ff82169050919050565b611ed681611ec1565b82525050565b5f602082019050611eef5f830184611ecd565b92915050565b611efe81611e16565b8114611f08575f80fd5b50565b5f81359050611f1981611ef5565b92915050565b5f8060408385031215611f3557611f34611d77565b5b5f611f4285828601611d91565b9250506020611f5385828601611f0b565b9150509250929050565b5f60208284031215611f7257611f71611d77565b5b5f611f7f84828501611d91565b91505092915050565b5f8060408385031215611f9e57611f9d611d77565b5b5f611fab85828601611d91565b9250506020611fbc85828601611d91565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061200a57607f821691505b60208210810361201d5761201c611fc6565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61205a82611da5565b915061206583611da5565b925082820190508082111561207d5761207c612023565b5b92915050565b7f53656e64657220697320626c61636b6c697374656400000000000000000000005f82015250565b5f6120b7601583611cd7565b91506120c282612083565b602082019050919050565b5f6020820190508181035f8301526120e4816120ab565b9050919050565b7f526563697069656e7420697320626c61636b6c697374656400000000000000005f82015250565b5f61211f601883611cd7565b915061212a826120eb565b602082019050919050565b5f6020820190508181035f83015261214c81612113565b9050919050565b7f43616e6e6f7420626c61636b6c69737420636f72652077616c6c6574730000005f82015250565b5f612187601d83611cd7565b915061219282612153565b602082019050919050565b5f6020820190508181035f8301526121b48161217b565b9050919050565b7f4e6577204c50205061697220616464726573732063616e6e6f74206265207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612215602283611cd7565b9150612220826121bb565b604082019050919050565b5f6020820190508181035f83015261224281612209565b9050919050565b7f4c502050616972206164647265737320616c726561647920736574206f7220645f8201527f6966666572656e74000000000000000000000000000000000000000000000000602082015250565b5f6122a3602883611cd7565b91506122ae82612249565b604082019050919050565b5f6020820190508181035f8301526122d081612297565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612331602583611cd7565b915061233c826122d7565b604082019050919050565b5f6020820190508181035f83015261235e81612325565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123bf602683611cd7565b91506123ca82612365565b604082019050919050565b5f6020820190508181035f8301526123ec816123b3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61244d602483611cd7565b9150612458826123f3565b604082019050919050565b5f6020820190508181035f83015261247a81612441565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124db602283611cd7565b91506124e682612481565b604082019050919050565b5f6020820190508181035f830152612508816124cf565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612543601f83611cd7565b915061254e8261250f565b602082019050919050565b5f6020820190508181035f83015261257081612537565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125ab602083611cd7565b91506125b682612577565b602082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612613601d83611cd7565b915061261e826125df565b602082019050919050565b5f6020820190508181035f83015261264081612607565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126a1602583611cd7565b91506126ac82612647565b604082019050919050565b5f6020820190508181035f8301526126ce81612695565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61272f602383611cd7565b915061273a826126d5565b604082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6127bd602683611cd7565b91506127c882612763565b604082019050919050565b5f6020820190508181035f8301526127ea816127b1565b905091905056fea264697066735822122056875024a49f2f03bc991e54530c9f8d8089017e0e31155164b9b0c8dcb76e3364736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000abfbfc8ee73eec6523fb088206ce8b8b51eb913b0000000000000000000000004a68622f6508cc99c51813fca10b50027c05b9eb0000000000000000000000007c64f3c1323f0f9ae69a73eb6e90764ab2a03c0d0000000000000000000000006f9282fe4cd10bcca8e2562c6884750f0e58da820000000000000000000000002e86bcb8f6d54fd13de283773acd75018e8049260000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _liquidityWallet (address): 0xAbFbfC8ee73Eec6523Fb088206ce8B8B51eB913B
Arg [1] : _marketingWallet (address): 0x4A68622f6508Cc99c51813FcA10b50027c05b9EB
Arg [2] : _devWallet (address): 0x7C64F3c1323f0F9AE69A73eb6e90764Ab2A03C0D
Arg [3] : _partnershipWallet (address): 0x6F9282fe4Cd10bCCA8E2562C6884750F0e58Da82
Arg [4] : _deployerWallet (address): 0x2e86bCb8f6d54fD13De283773ACD75018E804926
Arg [5] : _lpPairAddress (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000abfbfc8ee73eec6523fb088206ce8b8b51eb913b
Arg [1] : 0000000000000000000000004a68622f6508cc99c51813fca10b50027c05b9eb
Arg [2] : 0000000000000000000000007c64f3c1323f0f9ae69a73eb6e90764ab2a03c0d
Arg [3] : 0000000000000000000000006f9282fe4cd10bcca8e2562c6884750f0e58da82
Arg [4] : 0000000000000000000000002e86bcb8f6d54fd13de283773acd75018e804926
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
23930:8216:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24335:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6833:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9193:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7962:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30743:1400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7804:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24260:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10644:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28319:510;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27623:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24299:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8133:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19755:103;;;:::i;:::-;;24192:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24420:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19114:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24229:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7052:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11385:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28959:1650;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24568:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24155:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8722:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20013:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24516:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24335:28;;;;;;;;;;;;;:::o;6833:100::-;6887:13;6920:5;6913:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6833:100;:::o;9193:201::-;9276:4;9293:13;9309:12;:10;:12::i;:::-;9293:28;;9332:32;9341:5;9348:7;9357:6;9332:8;:32::i;:::-;9382:4;9375:11;;;9193:201;;;;:::o;7962:108::-;8023:7;8050:12;;8043:19;;7962:108;:::o;30743:1400::-;30845:4;22970:21;:19;:21::i;:::-;30964:19:::1;;;;;;;;;;;30963:20;:51;;;;;31012:1;30987:27;;:13;;;;;;;;;;;:27;;;;30963:51;:78;;;;;31026:15;;;;;;;;;;;31018:23;;:4;:23;;;30963:78;:101;;;;;31051:13;;;;;;;;;;;31045:19;;:2;:19;;;30963:101;:115;;;;;31077:1;31068:6;:10;30963:115;30959:391;;;31108:15;31095:10;:28;;;;31208:4;31186:19;;:26;;;;;;;;;;;;;;;;;;31278:31;31298:10;;31278:31;;;;;;:::i;:::-;;;;;;;;30959:391;31457:19;;;;;;;;;;;:81;;;;;24113:10;31498;;:40;;;;:::i;:::-;31480:15;:58;31457:81;31453:382;;;31653:13;;;;;;;;;;;31645:21;;:4;:21;;::::0;31641:183:::1;;31707:4;31687:13;:17;31701:2;31687:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;31758:19;31774:2;31758:19;;;;;;:::i;:::-;;;;;;;;31641:183;31453:382;31931:13;:19;31945:4;31931:19;;;;;;;;;;;;;;;;;;;;;;;;;31930:20;31922:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;31996:13;:17;32010:2;31996:17;;;;;;;;;;;;;;;;;;;;;;;;;31995:18;31987:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;32062:36;32081:4;32087:2;32091:6;32062:18;:36::i;:::-;32055:43;;23014:20:::0;:18;:20::i;:::-;30743:1400;;;;;:::o;7804:93::-;7862:5;7887:2;7880:9;;7804:93;:::o;24260:32::-;;;;;;;;;;;;;:::o;10644:238::-;10732:4;10749:13;10765:12;:10;:12::i;:::-;10749:28;;10788:64;10797:5;10804:7;10841:10;10813:25;10823:5;10830:7;10813:9;:25::i;:::-;:38;;;;:::i;:::-;10788:8;:64::i;:::-;10870:4;10863:11;;;10644:238;;;;:::o;28319:510::-;19000:13;:11;:13::i;:::-;28424:15:::1;;;;;;;;;;;28416:23;;:4;:23;;;;:63;;;;;28464:15;;;;;;;;;;;28456:23;;:4;:23;;;;28416:63;:97;;;;;28504:9;;;;;;;;;;;28496:17;;:4;:17;;;;28416:97;:139;;;;;28538:17;;;;;;;;;;;28530:25;;:4;:25;;;;28416:139;:178;;;;;28580:14;;;;;;;;;;;28572:22;;:4;:22;;;;28416:178;:216;;;;;28619:13;;;;;;;;;;;28611:21;;:4;:21;;;;28416:216;28394:338;;;;;;;;;;;;:::i;:::-;;;;;;;;;28765:5;28743:13;:19;28757:4;28743:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;28786:21;28802:4;28786:21;;;;;;:::i;:::-;;;;;;;;28319:510:::0;;:::o;27623:377::-;19000:13;:11;:13::i;:::-;27735:1:::1;27710:27;;:13;:27;;::::0;27702:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;27820:1;27795:27;;:13;;;;;;;;;;;:27;;;:61;;;;27843:13;27826:30;;:13;;;;;;;;;;;:30;;;27795:61;27787:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;27928:13;27912;;:29;;;;;;;;;;;;;;;;;;27957:35;27978:13;27957:35;;;;;;:::i;:::-;;;;;;;;27623:377:::0;:::o;24299:29::-;;;;;;;;;;;;;:::o;8133:127::-;8207:7;8234:9;:18;8244:7;8234:18;;;;;;;;;;;;;;;;8227:25;;8133:127;;;:::o;19755:103::-;19000:13;:11;:13::i;:::-;19820:30:::1;19847:1;19820:18;:30::i;:::-;19755:103::o:0;24192:30::-;;;;;;;;;;;;;:::o;24420:25::-;;;;:::o;19114:87::-;19160:7;19187:6;;;;;;;;;;;19180:13;;19114:87;:::o;24229:24::-;;;;;;;;;;;;;:::o;7052:104::-;7108:13;7141:7;7134:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7052:104;:::o;11385:436::-;11478:4;11495:13;11511:12;:10;:12::i;:::-;11495:28;;11534:24;11561:25;11571:5;11578:7;11561:9;:25::i;:::-;11534:52;;11625:15;11605:16;:35;;11597:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11718:60;11727:5;11734:7;11762:15;11743:16;:34;11718:8;:60::i;:::-;11809:4;11802:11;;;;11385:436;;;;:::o;28959:1650::-;29043:4;22970:21;:19;:21::i;:::-;29293:19:::1;;;;;;;;;;;29292:20;:51;;;;;29341:1;29316:27;;:13;;;;;;;;;;;:27;;;;29292:51;:84;;;;;29361:15;;;;;;;;;;;29347:29;;:10;:29;;;29292:84;:107;;;;;29386:13;;;;;;;;;;;29380:19;;:2;:19;;;29292:107;:121;;;;;29412:1;29403:6;:10;29292:121;29288:397;;;29443:15;29430:10;:28;;;;29543:4;29521:19;;:26;;;;;;;;;;;;;;;;;;29613:31;29633:10;;29613:31;;;;;;:::i;:::-;;;;;;;;29288:397;29921:19;;;;;;;;;;;:81;;;;;24113:10;29962;;:40;;;;:::i;:::-;29944:15;:58;29921:81;29917:388;;;30123:13;;;;;;;;;;;30109:27;;:10;:27;;::::0;30105:189:::1;;30177:4;30157:13;:17;30171:2;30157:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;30228:19;30244:2;30228:19;;;;;;:::i;:::-;;;;;;;;30105:189;29917:388;30401:13;:25;30415:10;30401:25;;;;;;;;;;;;;;;;;;;;;;;;;30400:26;30392:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;30472:13;:17;30486:2;30472:17;;;;;;;;;;;;;;;;;;;;;;;;;30471:18;30463:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;30538:26;30553:2;30557:6;30538:14;:26::i;:::-;30531:33;;23014:20:::0;:18;:20::i;:::-;28959:1650;;;;:::o;24568:39::-;;;;;;;;;;;;;:::o;24155:30::-;;;;;;;;;;;;;:::o;8722:151::-;8811:7;8838:11;:18;8850:5;8838:18;;;;;;;;;;;;;;;:27;8857:7;8838:27;;;;;;;;;;;;;;;;8831:34;;8722:151;;;;:::o;20013:201::-;19000:13;:11;:13::i;:::-;20122:1:::1;20102:22;;:8;:22;;::::0;20094:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20178:28;20197:8;20178:18;:28::i;:::-;20013:201:::0;:::o;24516:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4418:98::-;4471:7;4498:10;4491:17;;4418:98;:::o;15378:346::-;15497:1;15480:19;;:5;:19;;;15472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15578:1;15559:21;;:7;:21;;;15551:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15662:6;15632:11;:18;15644:5;15632:18;;;;;;;;;;;;;;;:27;15651:7;15632:27;;;;;;;;;;;;;;;:36;;;;15700:7;15684:32;;15693:5;15684:32;;;15709:6;15684:32;;;;;;:::i;:::-;;;;;;;;15378:346;;;:::o;23050:293::-;22452:1;23184:7;;:19;23176:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22452:1;23317:7;:18;;;;23050:293::o;9974:261::-;10071:4;10088:15;10106:12;:10;:12::i;:::-;10088:30;;10129:38;10145:4;10151:7;10160:6;10129:15;:38::i;:::-;10178:27;10188:4;10194:2;10198:6;10178:9;:27::i;:::-;10223:4;10216:11;;;9974:261;;;;;:::o;23351:213::-;22408:1;23534:7;:22;;;;23351:213::o;19279:132::-;19354:12;:10;:12::i;:::-;19343:23;;:7;:5;:7::i;:::-;:23;;;19335:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19279:132::o;20374:191::-;20448:16;20467:6;;;;;;;;;;;20448:25;;20493:8;20484:6;;:17;;;;;;;;;;;;;;;;;;20548:8;20517:40;;20538:8;20517:40;;;;;;;;;;;;20437:128;20374:191;:::o;8466:193::-;8545:4;8562:13;8578:12;:10;:12::i;:::-;8562:28;;8601;8611:5;8618:2;8622:6;8601:9;:28::i;:::-;8647:4;8640:11;;;8466:193;;;;:::o;16015:419::-;16116:24;16143:25;16153:5;16160:7;16143:9;:25::i;:::-;16116:52;;16203:17;16183:16;:37;16179:248;;16265:6;16245:16;:26;;16237:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16349:51;16358:5;16365:7;16393:6;16374:16;:25;16349:8;:51::i;:::-;16179:248;16105:329;16015:419;;;:::o;12291:806::-;12404:1;12388:18;;:4;:18;;;12380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12481:1;12467:16;;:2;:16;;;12459:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12536:38;12557:4;12563:2;12567:6;12536:20;:38::i;:::-;12587:19;12609:9;:15;12619:4;12609:15;;;;;;;;;;;;;;;;12587:37;;12658:6;12643:11;:21;;12635:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12775:6;12761:11;:20;12743:9;:15;12753:4;12743:15;;;;;;;;;;;;;;;:38;;;;12978:6;12961:9;:13;12971:2;12961:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13028:2;13013:26;;13022:4;13013:26;;;13032:6;13013:26;;;;;;:::i;:::-;;;;;;;;13052:37;13072:4;13078:2;13082:6;13052:19;:37::i;:::-;12369:728;12291:806;;;:::o;17034:91::-;;;;:::o;17729:90::-;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:116::-;5275:21;5290:5;5275:21;:::i;:::-;5268:5;5265:32;5255:60;;5311:1;5308;5301:12;5255:60;5205:116;:::o;5327:133::-;5370:5;5408:6;5395:20;5386:29;;5424:30;5448:5;5424:30;:::i;:::-;5327:133;;;;:::o;5466:468::-;5531:6;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:50;5909:7;5900:6;5889:9;5885:22;5867:50;:::i;:::-;5857:60;;5812:115;5466:468;;;;;:::o;5940:329::-;5999:6;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;5940:329;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:180::-;6803:77;6800:1;6793:88;6900:4;6897:1;6890:15;6924:4;6921:1;6914:15;6941:320;6985:6;7022:1;7016:4;7012:12;7002:22;;7069:1;7063:4;7059:12;7090:18;7080:81;;7146:4;7138:6;7134:17;7124:27;;7080:81;7208:2;7200:6;7197:14;7177:18;7174:38;7171:84;;7227:18;;:::i;:::-;7171:84;6992:269;6941:320;;;:::o;7267:180::-;7315:77;7312:1;7305:88;7412:4;7409:1;7402:15;7436:4;7433:1;7426:15;7453:191;7493:3;7512:20;7530:1;7512:20;:::i;:::-;7507:25;;7546:20;7564:1;7546:20;:::i;:::-;7541:25;;7589:1;7586;7582:9;7575:16;;7610:3;7607:1;7604:10;7601:36;;;7617:18;;:::i;:::-;7601:36;7453:191;;;;:::o;7650:171::-;7790:23;7786:1;7778:6;7774:14;7767:47;7650:171;:::o;7827:366::-;7969:3;7990:67;8054:2;8049:3;7990:67;:::i;:::-;7983:74;;8066:93;8155:3;8066:93;:::i;:::-;8184:2;8179:3;8175:12;8168:19;;7827:366;;;:::o;8199:419::-;8365:4;8403:2;8392:9;8388:18;8380:26;;8452:9;8446:4;8442:20;8438:1;8427:9;8423:17;8416:47;8480:131;8606:4;8480:131;:::i;:::-;8472:139;;8199:419;;;:::o;8624:174::-;8764:26;8760:1;8752:6;8748:14;8741:50;8624:174;:::o;8804:366::-;8946:3;8967:67;9031:2;9026:3;8967:67;:::i;:::-;8960:74;;9043:93;9132:3;9043:93;:::i;:::-;9161:2;9156:3;9152:12;9145:19;;8804:366;;;:::o;9176:419::-;9342:4;9380:2;9369:9;9365:18;9357:26;;9429:9;9423:4;9419:20;9415:1;9404:9;9400:17;9393:47;9457:131;9583:4;9457:131;:::i;:::-;9449:139;;9176:419;;;:::o;9601:179::-;9741:31;9737:1;9729:6;9725:14;9718:55;9601:179;:::o;9786:366::-;9928:3;9949:67;10013:2;10008:3;9949:67;:::i;:::-;9942:74;;10025:93;10114:3;10025:93;:::i;:::-;10143:2;10138:3;10134:12;10127:19;;9786:366;;;:::o;10158:419::-;10324:4;10362:2;10351:9;10347:18;10339:26;;10411:9;10405:4;10401:20;10397:1;10386:9;10382:17;10375:47;10439:131;10565:4;10439:131;:::i;:::-;10431:139;;10158:419;;;:::o;10583:221::-;10723:34;10719:1;10711:6;10707:14;10700:58;10792:4;10787:2;10779:6;10775:15;10768:29;10583:221;:::o;10810:366::-;10952:3;10973:67;11037:2;11032:3;10973:67;:::i;:::-;10966:74;;11049:93;11138:3;11049:93;:::i;:::-;11167:2;11162:3;11158:12;11151:19;;10810:366;;;:::o;11182:419::-;11348:4;11386:2;11375:9;11371:18;11363:26;;11435:9;11429:4;11425:20;11421:1;11410:9;11406:17;11399:47;11463:131;11589:4;11463:131;:::i;:::-;11455:139;;11182:419;;;:::o;11607:227::-;11747:34;11743:1;11735:6;11731:14;11724:58;11816:10;11811:2;11803:6;11799:15;11792:35;11607:227;:::o;11840:366::-;11982:3;12003:67;12067:2;12062:3;12003:67;:::i;:::-;11996:74;;12079:93;12168:3;12079:93;:::i;:::-;12197:2;12192:3;12188:12;12181:19;;11840:366;;;:::o;12212:419::-;12378:4;12416:2;12405:9;12401:18;12393:26;;12465:9;12459:4;12455:20;12451:1;12440:9;12436:17;12429:47;12493:131;12619:4;12493:131;:::i;:::-;12485:139;;12212:419;;;:::o;12637:224::-;12777:34;12773:1;12765:6;12761:14;12754:58;12846:7;12841:2;12833:6;12829:15;12822:32;12637:224;:::o;12867:366::-;13009:3;13030:67;13094:2;13089:3;13030:67;:::i;:::-;13023:74;;13106:93;13195:3;13106:93;:::i;:::-;13224:2;13219:3;13215:12;13208:19;;12867:366;;;:::o;13239:419::-;13405:4;13443:2;13432:9;13428:18;13420:26;;13492:9;13486:4;13482:20;13478:1;13467:9;13463:17;13456:47;13520:131;13646:4;13520:131;:::i;:::-;13512:139;;13239:419;;;:::o;13664:225::-;13804:34;13800:1;13792:6;13788:14;13781:58;13873:8;13868:2;13860:6;13856:15;13849:33;13664:225;:::o;13895:366::-;14037:3;14058:67;14122:2;14117:3;14058:67;:::i;:::-;14051:74;;14134:93;14223:3;14134:93;:::i;:::-;14252:2;14247:3;14243:12;14236:19;;13895:366;;;:::o;14267:419::-;14433:4;14471:2;14460:9;14456:18;14448:26;;14520:9;14514:4;14510:20;14506:1;14495:9;14491:17;14484:47;14548:131;14674:4;14548:131;:::i;:::-;14540:139;;14267:419;;;:::o;14692:223::-;14832:34;14828:1;14820:6;14816:14;14809:58;14901:6;14896:2;14888:6;14884:15;14877:31;14692:223;:::o;14921:366::-;15063:3;15084:67;15148:2;15143:3;15084:67;:::i;:::-;15077:74;;15160:93;15249:3;15160:93;:::i;:::-;15278:2;15273:3;15269:12;15262:19;;14921:366;;;:::o;15293:419::-;15459:4;15497:2;15486:9;15482:18;15474:26;;15546:9;15540:4;15536:20;15532:1;15521:9;15517:17;15510:47;15574:131;15700:4;15574:131;:::i;:::-;15566:139;;15293:419;;;:::o;15718:221::-;15858:34;15854:1;15846:6;15842:14;15835:58;15927:4;15922:2;15914:6;15910:15;15903:29;15718:221;:::o;15945:366::-;16087:3;16108:67;16172:2;16167:3;16108:67;:::i;:::-;16101:74;;16184:93;16273:3;16184:93;:::i;:::-;16302:2;16297:3;16293:12;16286:19;;15945:366;;;:::o;16317:419::-;16483:4;16521:2;16510:9;16506:18;16498:26;;16570:9;16564:4;16560:20;16556:1;16545:9;16541:17;16534:47;16598:131;16724:4;16598:131;:::i;:::-;16590:139;;16317:419;;;:::o;16742:181::-;16882:33;16878:1;16870:6;16866:14;16859:57;16742:181;:::o;16929:366::-;17071:3;17092:67;17156:2;17151:3;17092:67;:::i;:::-;17085:74;;17168:93;17257:3;17168:93;:::i;:::-;17286:2;17281:3;17277:12;17270:19;;16929:366;;;:::o;17301:419::-;17467:4;17505:2;17494:9;17490:18;17482:26;;17554:9;17548:4;17544:20;17540:1;17529:9;17525:17;17518:47;17582:131;17708:4;17582:131;:::i;:::-;17574:139;;17301:419;;;:::o;17726:182::-;17866:34;17862:1;17854:6;17850:14;17843:58;17726:182;:::o;17914:366::-;18056:3;18077:67;18141:2;18136:3;18077:67;:::i;:::-;18070:74;;18153:93;18242:3;18153:93;:::i;:::-;18271:2;18266:3;18262:12;18255:19;;17914:366;;;:::o;18286:419::-;18452:4;18490:2;18479:9;18475:18;18467:26;;18539:9;18533:4;18529:20;18525:1;18514:9;18510:17;18503:47;18567:131;18693:4;18567:131;:::i;:::-;18559:139;;18286:419;;;:::o;18711:179::-;18851:31;18847:1;18839:6;18835:14;18828:55;18711:179;:::o;18896:366::-;19038:3;19059:67;19123:2;19118:3;19059:67;:::i;:::-;19052:74;;19135:93;19224:3;19135:93;:::i;:::-;19253:2;19248:3;19244:12;19237:19;;18896:366;;;:::o;19268:419::-;19434:4;19472:2;19461:9;19457:18;19449:26;;19521:9;19515:4;19511:20;19507:1;19496:9;19492:17;19485:47;19549:131;19675:4;19549:131;:::i;:::-;19541:139;;19268:419;;;:::o;19693:224::-;19833:34;19829:1;19821:6;19817:14;19810:58;19902:7;19897:2;19889:6;19885:15;19878:32;19693:224;:::o;19923:366::-;20065:3;20086:67;20150:2;20145:3;20086:67;:::i;:::-;20079:74;;20162:93;20251:3;20162:93;:::i;:::-;20280:2;20275:3;20271:12;20264:19;;19923:366;;;:::o;20295:419::-;20461:4;20499:2;20488:9;20484:18;20476:26;;20548:9;20542:4;20538:20;20534:1;20523:9;20519:17;20512:47;20576:131;20702:4;20576:131;:::i;:::-;20568:139;;20295:419;;;:::o;20720:222::-;20860:34;20856:1;20848:6;20844:14;20837:58;20929:5;20924:2;20916:6;20912:15;20905:30;20720:222;:::o;20948:366::-;21090:3;21111:67;21175:2;21170:3;21111:67;:::i;:::-;21104:74;;21187:93;21276:3;21187:93;:::i;:::-;21305:2;21300:3;21296:12;21289:19;;20948:366;;;:::o;21320:419::-;21486:4;21524:2;21513:9;21509:18;21501:26;;21573:9;21567:4;21563:20;21559:1;21548:9;21544:17;21537:47;21601:131;21727:4;21601:131;:::i;:::-;21593:139;;21320:419;;;:::o;21745:225::-;21885:34;21881:1;21873:6;21869:14;21862:58;21954:8;21949:2;21941:6;21937:15;21930:33;21745:225;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o
Swarm Source
ipfs://56875024a49f2f03bc991e54530c9f8d8089017e0e31155164b9b0c8dcb76e33
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.