Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
20,721,579,269,701.206310806971866563 CHNT
Holders
39
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
59,809,749,381.220512319011124809 CHNTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ChinolaToken
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-25 */ // File: @openzeppelin/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: @openzeppelin/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: @openzeppelin/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: @openzeppelin/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: @openzeppelin/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: @openzeppelin/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: contracts/Chinolatoken.sol pragma solidity ^0.8.0; // Custom ERC20 token contract with additional features like burn and fee percentages contract ChinolaToken is Ownable, ERC20, ReentrancyGuard { uint256 public burnPercentage; // The percentage of tokens to burn in each transaction uint256 public feePercentage; // The fee percentage to be transferred in each transaction address public feeAddress; // Address to receive the fee in each transaction bool public limited; // Flag to limit the amount of tokens that can be held uint256 public maxHoldingAmount; // The maximum amount of tokens that can be held uint256 public minHoldingAmount; // The minimum amount of tokens that can be held address public uniswapV2Pair; // Address of the Uniswap V2 pair uint256 private constant TOTAL_SUPPLY = 21 * 10**12 * 10**18; // Total supply of 21 trillion tokens uint256 private constant MAX_PERCENTAGE = 100; // Max percentage that can be set for burning and fees // Events event Burn(address indexed from, uint256 amount); event FeeChanged(uint256 feePercentage); event FeeAddressChanged(address newFeeAddress); event BurnPercentageChanged(uint256 burnPercentage); constructor() ERC20("ChinolaToken", "CHNT") { _mint(_msgSender(), TOTAL_SUPPLY); burnPercentage = 1; feePercentage = 1; feeAddress = _msgSender(); } // Function to set the burn percentage function setBurnPercentage(uint256 _burnPercentage) external onlyOwner { require(_burnPercentage <= MAX_PERCENTAGE, "Invalid burn percentage"); burnPercentage = _burnPercentage; emit BurnPercentageChanged(_burnPercentage); } // Function to set the fee percentage function setFeePercentage(uint256 _feePercentage) external onlyOwner { require(_feePercentage <= MAX_PERCENTAGE, "Invalid fee percentage"); feePercentage = _feePercentage; emit FeeChanged(_feePercentage); } // Function to set the fee address function setFeeAddress(address _feeAddress) external onlyOwner { require(_feeAddress != address(0), "Invalid fee address"); feeAddress = _feeAddress; emit FeeAddressChanged(_feeAddress); } // Function to set rules and order function establecerreglayorden(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner { limited = _limited; uniswapV2Pair = _uniswapV2Pair; maxHoldingAmount = _maxHoldingAmount; minHoldingAmount = _minHoldingAmount; } // Function to mint new tokens function mint(address to, uint256 amount) external onlyOwner { require(to != address(0), "Invalid recipient address"); _mint(to, amount); } // Function to handle checks before each token transfer function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "Trading is not started"); return; } if (limited && from == uniswapV2Pair) { require(balanceOf(to) + amount <= maxHoldingAmount && balanceOf(to) + amount >= minHoldingAmount, "Holding limit violation"); } } // Function to handle token transfers function _transfer( address sender, address recipient, uint256 amount ) internal virtual override nonReentrant { require(sender != address(0), "Invalid sender address"); require(recipient != address(0), "Invalid recipient address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = balanceOf(sender); require(senderBalance >= amount, "Insufficient balance"); uint256 burnAmount = amount * burnPercentage / MAX_PERCENTAGE; uint256 feeAmount = amount * feePercentage / MAX_PERCENTAGE; uint256 transferAmount = amount - burnAmount - feeAmount; super._transfer(sender, recipient, transferAmount); super._transfer(sender, feeAddress, feeAmount); _burn(sender, burnAmount); emit Burn(sender, burnAmount); } // Function to transfer tokens held by the contract function transferContractTokens(address to, uint256 amount) external onlyOwner { require(to != address(0), "Invalid recipient address"); super._transfer(address(this), to, amount); } // Function to get the number of decimals for the token function decimals() public view virtual override returns (uint8) { return 18; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"burnPercentage","type":"uint256"}],"name":"BurnPercentageChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newFeeAddress","type":"address"}],"name":"FeeAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feePercentage","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"establecerreglayorden","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnPercentage","type":"uint256"}],"name":"setBurnPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercentage","type":"uint256"}],"name":"setFeePercentage","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferContractTokens","outputs":[],"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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600c81526020017f4368696e6f6c61546f6b656e00000000000000000000000000000000000000008152506040518060400160405280600481526020017f43484e54000000000000000000000000000000000000000000000000000000008152506200009e620000926200016f60201b60201c565b6200017760201b60201c565b8160049080519060200190620000b69291906200066a565b508060059080519060200190620000cf9291906200066a565b505050600160068190555062000109620000ee6200016f60201b60201c565b6d01090ea8dd15c7978437400000006200023b60201b60201c565b60016007819055506001600881905550620001296200016f60201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000980565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a59062000835565b60405180910390fd5b620002c260008383620003aa60201b60201c565b8060036000828254620002d6919062000885565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200038a919062000857565b60405180910390a3620003a660008383620005ee60201b60201c565b5050565b620003c2838383620005f360201b62000d271760201c565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415620004e6576200042a620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200049e57506200046f620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b620004e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004d79062000813565b60405180910390fd5b620005e9565b600960149054906101000a900460ff168015620005505750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15620005e857600a54816200056b846200062160201b60201c565b62000577919062000885565b11158015620005a55750600b548162000596846200062160201b60201c565b620005a2919062000885565b10155b620005e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005de90620007f1565b60405180910390fd5b5b5b505050565b505050565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8280546200067890620008ec565b90600052602060002090601f0160209004810192826200069c5760008555620006e8565b82601f10620006b757805160ff1916838001178555620006e8565b82800160010185558215620006e8579182015b82811115620006e7578251825591602001919060010190620006ca565b5b509050620006f79190620006fb565b5090565b5b8082111562000716576000816000905550600101620006fc565b5090565b60006200072960178362000874565b91507f486f6c64696e67206c696d69742076696f6c6174696f6e0000000000000000006000830152602082019050919050565b60006200076b60168362000874565b91507f54726164696e67206973206e6f742073746172746564000000000000000000006000830152602082019050919050565b6000620007ad601f8362000874565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620007eb81620008e2565b82525050565b600060208201905081810360008301526200080c816200071a565b9050919050565b600060208201905081810360008301526200082e816200075c565b9050919050565b6000602082019050818103600083015262000850816200079e565b9050919050565b60006020820190506200086e6000830184620007e0565b92915050565b600082825260208201905092915050565b60006200089282620008e2565b91506200089f83620008e2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008d757620008d662000922565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200090557607f821691505b602082108114156200091c576200091b62000951565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612a0980620009906000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063860a32ec116100f9578063a9059cbb11610097578063d133186e11610071578063d133186e146104ae578063dd62ed3e146104ca578063f01f20df146104fa578063f2fde38b14610518576101a9565b8063a9059cbb14610446578063ae06c1b714610476578063c3f0d32714610492576101a9565b80638da5cb5b116100d35780638da5cb5b146103bc57806395d89b41146103da578063a001ecdd146103f8578063a457c2d714610416576101a9565b8063860a32ec146103645780638705fcd41461038257806389f9a1d31461039e576101a9565b8063395093511161016657806349bd5a5e1161014057806349bd5a5e146102f0578063552f555a1461030e57806370a082311461032a578063715018a61461035a576101a9565b8063395093511461028657806340c10f19146102b657806341275358146102d2576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc5780631ab99e121461021a57806323b872dd14610238578063313ce56714610268575b600080fd5b6101b6610534565b6040516101c3919061240d565b60405180910390f35b6101e660048036038101906101e19190611c04565b6105c6565b6040516101f391906123f2565b60405180910390f35b6102046105e9565b60405161021191906126cf565b60405180910390f35b6102226105f3565b60405161022f91906126cf565b60405180910390f35b610252600480360381019061024d9190611bb5565b6105f9565b60405161025f91906123f2565b60405180910390f35b610270610628565b60405161027d91906126ea565b60405180910390f35b6102a0600480360381019061029b9190611c04565b610631565b6040516102ad91906123f2565b60405180910390f35b6102d060048036038101906102cb9190611c04565b610668565b005b6102da6106ee565b6040516102e791906123d7565b60405180910390f35b6102f8610714565b60405161030591906123d7565b60405180910390f35b61032860048036038101906103239190611c04565b61073a565b005b610344600480360381019061033f9190611b50565b6107c1565b60405161035191906126cf565b60405180910390f35b61036261080a565b005b61036c61081e565b60405161037991906123f2565b60405180910390f35b61039c60048036038101906103979190611b50565b610831565b005b6103a6610924565b6040516103b391906126cf565b60405180910390f35b6103c461092a565b6040516103d191906123d7565b60405180910390f35b6103e2610953565b6040516103ef919061240d565b60405180910390f35b6104006109e5565b60405161040d91906126cf565b60405180910390f35b610430600480360381019061042b9190611c04565b6109eb565b60405161043d91906123f2565b60405180910390f35b610460600480360381019061045b9190611c04565b610a62565b60405161046d91906123f2565b60405180910390f35b610490600480360381019061048b9190611ca3565b610a85565b005b6104ac60048036038101906104a79190611ca3565b610b12565b005b6104c860048036038101906104c39190611c40565b610b9f565b005b6104e460048036038101906104df9190611b79565b610c16565b6040516104f191906126cf565b60405180910390f35b610502610c9d565b60405161050f91906126cf565b60405180910390f35b610532600480360381019061052d9190611b50565b610ca3565b005b606060048054610543906128be565b80601f016020809104026020016040519081016040528092919081815260200182805461056f906128be565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b5050505050905090565b6000806105d1610d2c565b90506105de818585610d34565b600191505092915050565b6000600354905090565b600b5481565b600080610604610d2c565b9050610611858285610eff565b61061c858585610f8b565b60019150509392505050565b60006012905090565b60008061063c610d2c565b905061065d81858561064e8589610c16565b6106589190612721565b610d34565b600191505092915050565b6106706111c6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d79061256f565b60405180910390fd5b6106ea8282611244565b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107426111c6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a99061256f565b60405180910390fd5b6107bd30838361139c565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108126111c6565b61081c6000611617565b565b600960149054906101000a900460ff1681565b6108396111c6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a09061254f565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1e93c69f2847f79bfa4d71704aaa84a581729b4b1706d922ee42ba1848a45c98160405161091991906123d7565b60405180910390a150565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610962906128be565b80601f016020809104026020016040519081016040528092919081815260200182805461098e906128be565b80156109db5780601f106109b0576101008083540402835291602001916109db565b820191906000526020600020905b8154815290600101906020018083116109be57829003601f168201915b5050505050905090565b60085481565b6000806109f6610d2c565b90506000610a048286610c16565b905083811015610a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a409061268f565b60405180910390fd5b610a568286868403610d34565b60019250505092915050565b600080610a6d610d2c565b9050610a7a818585610f8b565b600191505092915050565b610a8d6111c6565b6064811115610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac89061266f565b60405180910390fd5b806008819055507f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c381604051610b0791906126cf565b60405180910390a150565b610b1a6111c6565b6064811115610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b559061262f565b60405180910390fd5b806007819055507f68f2e5b1fa981c819fba40e54107320778c80025b1390f427b61521f812c539e81604051610b9491906126cf565b60405180910390a150565b610ba76111c6565b83600960146101000a81548160ff02191690831515021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a8190555080600b8190555050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b610cab6111c6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d129061248f565b60405180910390fd5b610d2481611617565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b9061260f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906124af565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ef291906126cf565b60405180910390a3505050565b6000610f0b8484610c16565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f855781811015610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e906124cf565b60405180910390fd5b610f848484848403610d34565b5b50505050565b610f936116db565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa906125ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a9061256f565b60405180910390fd5b61107e83838361172b565b6000611089846107c1565b9050818110156110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061250f565b60405180910390fd5b60006064600754846110e091906127a8565b6110ea9190612777565b905060006064600854856110fe91906127a8565b6111089190612777565b905060008183866111199190612802565b6111239190612802565b905061113087878361139c565b61115d87600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139c565b6111678784611932565b8673ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040516111ad91906126cf565b60405180910390a2505050506111c1611b02565b505050565b6111ce610d2c565b73ffffffffffffffffffffffffffffffffffffffff166111ec61092a565b73ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112399061258f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab906126af565b60405180910390fd5b6112c06000838361172b565b80600360008282546112d29190612721565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161138491906126cf565b60405180910390a361139860008383611b0c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611403906125cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114739061242f565b60405180910390fd5b61148783838361172b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561150e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611505906124ef565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115fe91906126cf565b60405180910390a3611611848484611b0c565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60026006541415611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061264f565b60405180910390fd5b6002600681905550565b611736838383610d27565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118445761179561092a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061180057506117d161092a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61183f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118369061252f565b60405180910390fd5b61192d565b600960149054906101000a900460ff1680156118ad5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561192c57600a54816118bf846107c1565b6118c99190612721565b111580156118ec5750600b54816118df846107c1565b6118e99190612721565b10155b61192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119229061246f565b60405180910390fd5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906125af565b60405180910390fd5b6119ae8260008361172b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c9061244f565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae991906126cf565b60405180910390a3611afd83600084611b0c565b505050565b6001600681905550565b505050565b600081359050611b208161298e565b92915050565b600081359050611b35816129a5565b92915050565b600081359050611b4a816129bc565b92915050565b600060208284031215611b6257600080fd5b6000611b7084828501611b11565b91505092915050565b60008060408385031215611b8c57600080fd5b6000611b9a85828601611b11565b9250506020611bab85828601611b11565b9150509250929050565b600080600060608486031215611bca57600080fd5b6000611bd886828701611b11565b9350506020611be986828701611b11565b9250506040611bfa86828701611b3b565b9150509250925092565b60008060408385031215611c1757600080fd5b6000611c2585828601611b11565b9250506020611c3685828601611b3b565b9150509250929050565b60008060008060808587031215611c5657600080fd5b6000611c6487828801611b26565b9450506020611c7587828801611b11565b9350506040611c8687828801611b3b565b9250506060611c9787828801611b3b565b91505092959194509250565b600060208284031215611cb557600080fd5b6000611cc384828501611b3b565b91505092915050565b611cd581612836565b82525050565b611ce481612848565b82525050565b6000611cf582612705565b611cff8185612710565b9350611d0f81856020860161288b565b611d188161297d565b840191505092915050565b6000611d30602383612710565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d96602283612710565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611dfc601783612710565b91507f486f6c64696e67206c696d69742076696f6c6174696f6e0000000000000000006000830152602082019050919050565b6000611e3c602683612710565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ea2602283612710565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f08601d83612710565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611f48602683612710565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fae601483612710565b91507f496e73756666696369656e742062616c616e63650000000000000000000000006000830152602082019050919050565b6000611fee601683612710565b91507f54726164696e67206973206e6f742073746172746564000000000000000000006000830152602082019050919050565b600061202e601383612710565b91507f496e76616c6964206665652061646472657373000000000000000000000000006000830152602082019050919050565b600061206e601983612710565b91507f496e76616c696420726563697069656e742061646472657373000000000000006000830152602082019050919050565b60006120ae602083612710565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006120ee602183612710565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612154602583612710565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121ba601683612710565b91507f496e76616c69642073656e6465722061646472657373000000000000000000006000830152602082019050919050565b60006121fa602483612710565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612260601783612710565b91507f496e76616c6964206275726e2070657263656e746167650000000000000000006000830152602082019050919050565b60006122a0601f83612710565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006122e0601683612710565b91507f496e76616c6964206665652070657263656e74616765000000000000000000006000830152602082019050919050565b6000612320602583612710565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612386601f83612710565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6123c281612874565b82525050565b6123d18161287e565b82525050565b60006020820190506123ec6000830184611ccc565b92915050565b60006020820190506124076000830184611cdb565b92915050565b600060208201905081810360008301526124278184611cea565b905092915050565b6000602082019050818103600083015261244881611d23565b9050919050565b6000602082019050818103600083015261246881611d89565b9050919050565b6000602082019050818103600083015261248881611def565b9050919050565b600060208201905081810360008301526124a881611e2f565b9050919050565b600060208201905081810360008301526124c881611e95565b9050919050565b600060208201905081810360008301526124e881611efb565b9050919050565b6000602082019050818103600083015261250881611f3b565b9050919050565b6000602082019050818103600083015261252881611fa1565b9050919050565b6000602082019050818103600083015261254881611fe1565b9050919050565b6000602082019050818103600083015261256881612021565b9050919050565b6000602082019050818103600083015261258881612061565b9050919050565b600060208201905081810360008301526125a8816120a1565b9050919050565b600060208201905081810360008301526125c8816120e1565b9050919050565b600060208201905081810360008301526125e881612147565b9050919050565b60006020820190508181036000830152612608816121ad565b9050919050565b60006020820190508181036000830152612628816121ed565b9050919050565b6000602082019050818103600083015261264881612253565b9050919050565b6000602082019050818103600083015261266881612293565b9050919050565b60006020820190508181036000830152612688816122d3565b9050919050565b600060208201905081810360008301526126a881612313565b9050919050565b600060208201905081810360008301526126c881612379565b9050919050565b60006020820190506126e460008301846123b9565b92915050565b60006020820190506126ff60008301846123c8565b92915050565b600081519050919050565b600082825260208201905092915050565b600061272c82612874565b915061273783612874565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561276c5761276b6128f0565b5b828201905092915050565b600061278282612874565b915061278d83612874565b92508261279d5761279c61291f565b5b828204905092915050565b60006127b382612874565b91506127be83612874565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127f7576127f66128f0565b5b828202905092915050565b600061280d82612874565b915061281883612874565b92508282101561282b5761282a6128f0565b5b828203905092915050565b600061284182612854565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156128a957808201518184015260208101905061288e565b838111156128b8576000848401525b50505050565b600060028204905060018216806128d657607f821691505b602082108114156128ea576128e961294e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61299781612836565b81146129a257600080fd5b50565b6129ae81612848565b81146129b957600080fd5b50565b6129c581612874565b81146129d057600080fd5b5056fea264697066735822122099a1524e48d6746c8da978431f4a35b039c3602ba7cc734db295ce504a397b9664736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063860a32ec116100f9578063a9059cbb11610097578063d133186e11610071578063d133186e146104ae578063dd62ed3e146104ca578063f01f20df146104fa578063f2fde38b14610518576101a9565b8063a9059cbb14610446578063ae06c1b714610476578063c3f0d32714610492576101a9565b80638da5cb5b116100d35780638da5cb5b146103bc57806395d89b41146103da578063a001ecdd146103f8578063a457c2d714610416576101a9565b8063860a32ec146103645780638705fcd41461038257806389f9a1d31461039e576101a9565b8063395093511161016657806349bd5a5e1161014057806349bd5a5e146102f0578063552f555a1461030e57806370a082311461032a578063715018a61461035a576101a9565b8063395093511461028657806340c10f19146102b657806341275358146102d2576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc5780631ab99e121461021a57806323b872dd14610238578063313ce56714610268575b600080fd5b6101b6610534565b6040516101c3919061240d565b60405180910390f35b6101e660048036038101906101e19190611c04565b6105c6565b6040516101f391906123f2565b60405180910390f35b6102046105e9565b60405161021191906126cf565b60405180910390f35b6102226105f3565b60405161022f91906126cf565b60405180910390f35b610252600480360381019061024d9190611bb5565b6105f9565b60405161025f91906123f2565b60405180910390f35b610270610628565b60405161027d91906126ea565b60405180910390f35b6102a0600480360381019061029b9190611c04565b610631565b6040516102ad91906123f2565b60405180910390f35b6102d060048036038101906102cb9190611c04565b610668565b005b6102da6106ee565b6040516102e791906123d7565b60405180910390f35b6102f8610714565b60405161030591906123d7565b60405180910390f35b61032860048036038101906103239190611c04565b61073a565b005b610344600480360381019061033f9190611b50565b6107c1565b60405161035191906126cf565b60405180910390f35b61036261080a565b005b61036c61081e565b60405161037991906123f2565b60405180910390f35b61039c60048036038101906103979190611b50565b610831565b005b6103a6610924565b6040516103b391906126cf565b60405180910390f35b6103c461092a565b6040516103d191906123d7565b60405180910390f35b6103e2610953565b6040516103ef919061240d565b60405180910390f35b6104006109e5565b60405161040d91906126cf565b60405180910390f35b610430600480360381019061042b9190611c04565b6109eb565b60405161043d91906123f2565b60405180910390f35b610460600480360381019061045b9190611c04565b610a62565b60405161046d91906123f2565b60405180910390f35b610490600480360381019061048b9190611ca3565b610a85565b005b6104ac60048036038101906104a79190611ca3565b610b12565b005b6104c860048036038101906104c39190611c40565b610b9f565b005b6104e460048036038101906104df9190611b79565b610c16565b6040516104f191906126cf565b60405180910390f35b610502610c9d565b60405161050f91906126cf565b60405180910390f35b610532600480360381019061052d9190611b50565b610ca3565b005b606060048054610543906128be565b80601f016020809104026020016040519081016040528092919081815260200182805461056f906128be565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b5050505050905090565b6000806105d1610d2c565b90506105de818585610d34565b600191505092915050565b6000600354905090565b600b5481565b600080610604610d2c565b9050610611858285610eff565b61061c858585610f8b565b60019150509392505050565b60006012905090565b60008061063c610d2c565b905061065d81858561064e8589610c16565b6106589190612721565b610d34565b600191505092915050565b6106706111c6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d79061256f565b60405180910390fd5b6106ea8282611244565b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107426111c6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a99061256f565b60405180910390fd5b6107bd30838361139c565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108126111c6565b61081c6000611617565b565b600960149054906101000a900460ff1681565b6108396111c6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a09061254f565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1e93c69f2847f79bfa4d71704aaa84a581729b4b1706d922ee42ba1848a45c98160405161091991906123d7565b60405180910390a150565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610962906128be565b80601f016020809104026020016040519081016040528092919081815260200182805461098e906128be565b80156109db5780601f106109b0576101008083540402835291602001916109db565b820191906000526020600020905b8154815290600101906020018083116109be57829003601f168201915b5050505050905090565b60085481565b6000806109f6610d2c565b90506000610a048286610c16565b905083811015610a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a409061268f565b60405180910390fd5b610a568286868403610d34565b60019250505092915050565b600080610a6d610d2c565b9050610a7a818585610f8b565b600191505092915050565b610a8d6111c6565b6064811115610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac89061266f565b60405180910390fd5b806008819055507f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c381604051610b0791906126cf565b60405180910390a150565b610b1a6111c6565b6064811115610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b559061262f565b60405180910390fd5b806007819055507f68f2e5b1fa981c819fba40e54107320778c80025b1390f427b61521f812c539e81604051610b9491906126cf565b60405180910390a150565b610ba76111c6565b83600960146101000a81548160ff02191690831515021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a8190555080600b8190555050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b610cab6111c6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d129061248f565b60405180910390fd5b610d2481611617565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b9061260f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906124af565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ef291906126cf565b60405180910390a3505050565b6000610f0b8484610c16565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f855781811015610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e906124cf565b60405180910390fd5b610f848484848403610d34565b5b50505050565b610f936116db565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa906125ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a9061256f565b60405180910390fd5b61107e83838361172b565b6000611089846107c1565b9050818110156110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061250f565b60405180910390fd5b60006064600754846110e091906127a8565b6110ea9190612777565b905060006064600854856110fe91906127a8565b6111089190612777565b905060008183866111199190612802565b6111239190612802565b905061113087878361139c565b61115d87600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139c565b6111678784611932565b8673ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040516111ad91906126cf565b60405180910390a2505050506111c1611b02565b505050565b6111ce610d2c565b73ffffffffffffffffffffffffffffffffffffffff166111ec61092a565b73ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112399061258f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab906126af565b60405180910390fd5b6112c06000838361172b565b80600360008282546112d29190612721565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161138491906126cf565b60405180910390a361139860008383611b0c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611403906125cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114739061242f565b60405180910390fd5b61148783838361172b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561150e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611505906124ef565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115fe91906126cf565b60405180910390a3611611848484611b0c565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60026006541415611721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117189061264f565b60405180910390fd5b6002600681905550565b611736838383610d27565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118445761179561092a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061180057506117d161092a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61183f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118369061252f565b60405180910390fd5b61192d565b600960149054906101000a900460ff1680156118ad5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561192c57600a54816118bf846107c1565b6118c99190612721565b111580156118ec5750600b54816118df846107c1565b6118e99190612721565b10155b61192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119229061246f565b60405180910390fd5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906125af565b60405180910390fd5b6119ae8260008361172b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c9061244f565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae991906126cf565b60405180910390a3611afd83600084611b0c565b505050565b6001600681905550565b505050565b600081359050611b208161298e565b92915050565b600081359050611b35816129a5565b92915050565b600081359050611b4a816129bc565b92915050565b600060208284031215611b6257600080fd5b6000611b7084828501611b11565b91505092915050565b60008060408385031215611b8c57600080fd5b6000611b9a85828601611b11565b9250506020611bab85828601611b11565b9150509250929050565b600080600060608486031215611bca57600080fd5b6000611bd886828701611b11565b9350506020611be986828701611b11565b9250506040611bfa86828701611b3b565b9150509250925092565b60008060408385031215611c1757600080fd5b6000611c2585828601611b11565b9250506020611c3685828601611b3b565b9150509250929050565b60008060008060808587031215611c5657600080fd5b6000611c6487828801611b26565b9450506020611c7587828801611b11565b9350506040611c8687828801611b3b565b9250506060611c9787828801611b3b565b91505092959194509250565b600060208284031215611cb557600080fd5b6000611cc384828501611b3b565b91505092915050565b611cd581612836565b82525050565b611ce481612848565b82525050565b6000611cf582612705565b611cff8185612710565b9350611d0f81856020860161288b565b611d188161297d565b840191505092915050565b6000611d30602383612710565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d96602283612710565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611dfc601783612710565b91507f486f6c64696e67206c696d69742076696f6c6174696f6e0000000000000000006000830152602082019050919050565b6000611e3c602683612710565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ea2602283612710565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f08601d83612710565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611f48602683612710565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fae601483612710565b91507f496e73756666696369656e742062616c616e63650000000000000000000000006000830152602082019050919050565b6000611fee601683612710565b91507f54726164696e67206973206e6f742073746172746564000000000000000000006000830152602082019050919050565b600061202e601383612710565b91507f496e76616c6964206665652061646472657373000000000000000000000000006000830152602082019050919050565b600061206e601983612710565b91507f496e76616c696420726563697069656e742061646472657373000000000000006000830152602082019050919050565b60006120ae602083612710565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006120ee602183612710565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612154602583612710565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121ba601683612710565b91507f496e76616c69642073656e6465722061646472657373000000000000000000006000830152602082019050919050565b60006121fa602483612710565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612260601783612710565b91507f496e76616c6964206275726e2070657263656e746167650000000000000000006000830152602082019050919050565b60006122a0601f83612710565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006122e0601683612710565b91507f496e76616c6964206665652070657263656e74616765000000000000000000006000830152602082019050919050565b6000612320602583612710565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612386601f83612710565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6123c281612874565b82525050565b6123d18161287e565b82525050565b60006020820190506123ec6000830184611ccc565b92915050565b60006020820190506124076000830184611cdb565b92915050565b600060208201905081810360008301526124278184611cea565b905092915050565b6000602082019050818103600083015261244881611d23565b9050919050565b6000602082019050818103600083015261246881611d89565b9050919050565b6000602082019050818103600083015261248881611def565b9050919050565b600060208201905081810360008301526124a881611e2f565b9050919050565b600060208201905081810360008301526124c881611e95565b9050919050565b600060208201905081810360008301526124e881611efb565b9050919050565b6000602082019050818103600083015261250881611f3b565b9050919050565b6000602082019050818103600083015261252881611fa1565b9050919050565b6000602082019050818103600083015261254881611fe1565b9050919050565b6000602082019050818103600083015261256881612021565b9050919050565b6000602082019050818103600083015261258881612061565b9050919050565b600060208201905081810360008301526125a8816120a1565b9050919050565b600060208201905081810360008301526125c8816120e1565b9050919050565b600060208201905081810360008301526125e881612147565b9050919050565b60006020820190508181036000830152612608816121ad565b9050919050565b60006020820190508181036000830152612628816121ed565b9050919050565b6000602082019050818103600083015261264881612253565b9050919050565b6000602082019050818103600083015261266881612293565b9050919050565b60006020820190508181036000830152612688816122d3565b9050919050565b600060208201905081810360008301526126a881612313565b9050919050565b600060208201905081810360008301526126c881612379565b9050919050565b60006020820190506126e460008301846123b9565b92915050565b60006020820190506126ff60008301846123c8565b92915050565b600081519050919050565b600082825260208201905092915050565b600061272c82612874565b915061273783612874565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561276c5761276b6128f0565b5b828201905092915050565b600061278282612874565b915061278d83612874565b92508261279d5761279c61291f565b5b828204905092915050565b60006127b382612874565b91506127be83612874565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127f7576127f66128f0565b5b828202905092915050565b600061280d82612874565b915061281883612874565b92508282101561282b5761282a6128f0565b5b828203905092915050565b600061284182612854565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156128a957808201518184015260208101905061288e565b838111156128b8576000848401525b50505050565b600060028204905060018216806128d657607f821691505b602082108114156128ea576128e961294e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61299781612836565b81146129a257600080fd5b50565b6129ae81612848565b81146129b957600080fd5b50565b6129c581612874565b81146129d057600080fd5b5056fea264697066735822122099a1524e48d6746c8da978431f4a35b039c3602ba7cc734db295ce504a397b9664736f6c63430008000033
Deployed Bytecode Sourcemap
23710:4679:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9861:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12221:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10990:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24211:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13002:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28293:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13672:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26273:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23961:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24298:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28019:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11161:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22730:103;;;:::i;:::-;;24043:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25646:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24124:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22089:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10080:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23866:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14413:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11494:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25360:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25053:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25914:315;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11750:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23774:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22988:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9861:100;9915:13;9948:5;9941:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9861:100;:::o;12221:201::-;12304:4;12321:13;12337:12;:10;:12::i;:::-;12321:28;;12360:32;12369:5;12376:7;12385:6;12360:8;:32::i;:::-;12410:4;12403:11;;;12221:201;;;;:::o;10990:108::-;11051:7;11078:12;;11071:19;;10990:108;:::o;24211:31::-;;;;:::o;13002:261::-;13099:4;13116:15;13134:12;:10;:12::i;:::-;13116:30;;13157:38;13173:4;13179:7;13188:6;13157:15;:38::i;:::-;13206:27;13216:4;13222:2;13226:6;13206:9;:27::i;:::-;13251:4;13244:11;;;13002:261;;;;;:::o;28293:93::-;28351:5;28376:2;28369:9;;28293:93;:::o;13672:238::-;13760:4;13777:13;13793:12;:10;:12::i;:::-;13777:28;;13816:64;13825:5;13832:7;13869:10;13841:25;13851:5;13858:7;13841:9;:25::i;:::-;:38;;;;:::i;:::-;13816:8;:64::i;:::-;13898:4;13891:11;;;13672:238;;;;:::o;26273:162::-;21975:13;:11;:13::i;:::-;26367:1:::1;26353:16;;:2;:16;;;;26345:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;26410:17;26416:2;26420:6;26410:5;:17::i;:::-;26273:162:::0;;:::o;23961:25::-;;;;;;;;;;;;;:::o;24298:28::-;;;;;;;;;;;;;:::o;28019:205::-;21975:13;:11;:13::i;:::-;28131:1:::1;28117:16;;:2;:16;;;;28109:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;28174:42;28198:4;28205:2;28209:6;28174:15;:42::i;:::-;28019:205:::0;;:::o;11161:127::-;11235:7;11262:9;:18;11272:7;11262:18;;;;;;;;;;;;;;;;11255:25;;11161:127;;;:::o;22730:103::-;21975:13;:11;:13::i;:::-;22795:30:::1;22822:1;22795:18;:30::i;:::-;22730:103::o:0;24043:19::-;;;;;;;;;;;;;:::o;25646:220::-;21975:13;:11;:13::i;:::-;25751:1:::1;25728:25;;:11;:25;;;;25720:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;25801:11;25788:10;;:24;;;;;;;;;;;;;;;;;;25828:30;25846:11;25828:30;;;;;;:::i;:::-;;;;;;;;25646:220:::0;:::o;24124:31::-;;;;:::o;22089:87::-;22135:7;22162:6;;;;;;;;;;;22155:13;;22089:87;:::o;10080:104::-;10136:13;10169:7;10162:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10080:104;:::o;23866:28::-;;;;:::o;14413:436::-;14506:4;14523:13;14539:12;:10;:12::i;:::-;14523:28;;14562:24;14589:25;14599:5;14606:7;14589:9;:25::i;:::-;14562:52;;14653:15;14633:16;:35;;14625:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14746:60;14755:5;14762:7;14790:15;14771:16;:34;14746:8;:60::i;:::-;14837:4;14830:11;;;;14413:436;;;;:::o;11494:193::-;11573:4;11590:13;11606:12;:10;:12::i;:::-;11590:28;;11629;11639:5;11646:2;11650:6;11629:9;:28::i;:::-;11675:4;11668:11;;;11494:193;;;;:::o;25360:238::-;21975:13;:11;:13::i;:::-;24516:3:::1;25448:14;:32;;25440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25534:14;25518:13;:30;;;;25564:26;25575:14;25564:26;;;;;;:::i;:::-;;;;;;;;25360:238:::0;:::o;25053:256::-;21975:13;:11;:13::i;:::-;24516:3:::1;25143:15;:33;;25135:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;25232:15;25215:14;:32;;;;25263:38;25285:15;25263:38;;;;;;:::i;:::-;;;;;;;;25053:256:::0;:::o;25914:315::-;21975:13;:11;:13::i;:::-;26078:8:::1;26068:7;;:18;;;;;;;;;;;;;;;;;;26113:14;26097:13;;:30;;;;;;;;;;;;;;;;;;26157:17;26138:16;:36;;;;26204:17;26185:16;:36;;;;25914:315:::0;;;;:::o;11750:151::-;11839:7;11866:11;:18;11878:5;11866:18;;;;;;;;;;;;;;;:27;11885:7;11866:27;;;;;;;;;;;;;;;;11859:34;;11750:151;;;;:::o;23774:29::-;;;;:::o;22988:201::-;21975:13;:11;:13::i;:::-;23097:1:::1;23077:22;;:8;:22;;;;23069:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23153:28;23172:8;23153:18;:28::i;:::-;22988:201:::0;:::o;20062:91::-;;;;:::o;7499:98::-;7552:7;7579:10;7572:17;;7499:98;:::o;18406:346::-;18525:1;18508:19;;:5;:19;;;;18500:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18606:1;18587:21;;:7;:21;;;;18579:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18690:6;18660:11;:18;18672:5;18660:18;;;;;;;;;;;;;;;:27;18679:7;18660:27;;;;;;;;;;;;;;;:36;;;;18728:7;18712:32;;18721:5;18712:32;;;18737:6;18712:32;;;;;;:::i;:::-;;;;;;;;18406:346;;;:::o;19043:419::-;19144:24;19171:25;19181:5;19188:7;19171:9;:25::i;:::-;19144:52;;19231:17;19211:16;:37;19207:248;;19293:6;19273:16;:26;;19265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19377:51;19386:5;19393:7;19421:6;19402:16;:25;19377:8;:51::i;:::-;19207:248;19043:419;;;;:::o;27077:877::-;2345:21;:19;:21::i;:::-;27257:1:::1;27239:20;;:6;:20;;;;27231:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;27326:1;27305:23;;:9;:23;;;;27297:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;27371:47;27392:6;27400:9;27411:6;27371:20;:47::i;:::-;27429:21;27453:17;27463:6;27453:9;:17::i;:::-;27429:41;;27506:6;27489:13;:23;;27481:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;27550:18;24516:3;27580:14;;27571:6;:23;;;;:::i;:::-;:40;;;;:::i;:::-;27550:61;;27622:17;24516:3;27651:13;;27642:6;:22;;;;:::i;:::-;:39;;;;:::i;:::-;27622:59;;27692:22;27739:9;27726:10;27717:6;:19;;;;:::i;:::-;:31;;;;:::i;:::-;27692:56;;27761:50;27777:6;27785:9;27796:14;27761:15;:50::i;:::-;27822:46;27838:6;27846:10;;;;;;;;;;;27858:9;27822:15;:46::i;:::-;27879:25;27885:6;27893:10;27879:5;:25::i;:::-;27927:6;27922:24;;;27935:10;27922:24;;;;;;:::i;:::-;;;;;;;;2377:1;;;;2389:20:::0;:18;:20::i;:::-;27077:877;;;:::o;22254:132::-;22329:12;:10;:12::i;:::-;22318:23;;:7;:5;:7::i;:::-;:23;;;22310:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22254:132::o;16412:548::-;16515:1;16496:21;;:7;:21;;;;16488:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16566:49;16595:1;16599:7;16608:6;16566:20;:49::i;:::-;16644:6;16628:12;;:22;;;;;;;:::i;:::-;;;;;;;;16821:6;16799:9;:18;16809:7;16799:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;16875:7;16854:37;;16871:1;16854:37;;;16884:6;16854:37;;;;;;:::i;:::-;;;;;;;;16904:48;16932:1;16936:7;16945:6;16904:19;:48::i;:::-;16412:548;;:::o;15319:806::-;15432:1;15416:18;;:4;:18;;;;15408:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15509:1;15495:16;;:2;:16;;;;15487:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15564:38;15585:4;15591:2;15595:6;15564:20;:38::i;:::-;15615:19;15637:9;:15;15647:4;15637:15;;;;;;;;;;;;;;;;15615:37;;15686:6;15671:11;:21;;15663:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15803:6;15789:11;:20;15771:9;:15;15781:4;15771:15;;;;;;;;;;;;;;;:38;;;;16006:6;15989:9;:13;15999:2;15989:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;16056:2;16041:26;;16050:4;16041:26;;;16060:6;16041:26;;;;;;:::i;:::-;;;;;;;;16080:37;16100:4;16106:2;16110:6;16080:19;:37::i;:::-;15319:806;;;;:::o;23349:191::-;23423:16;23442:6;;;;;;;;;;;23423:25;;23468:8;23459:6;;:17;;;;;;;;;;;;;;;;;;23523:8;23492:40;;23513:8;23492:40;;;;;;;;;;;;23349:191;;:::o;2425:293::-;1827:1;2559:7;;:19;;2551:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1827:1;2692:7;:18;;;;2425:293::o;26504:522::-;26613:44;26640:4;26646:2;26650:6;26613:26;:44::i;:::-;26699:1;26674:27;;:13;;;;;;;;;;;:27;;;26670:148;;;26734:7;:5;:7::i;:::-;26726:15;;:4;:15;;;:32;;;;26751:7;:5;:7::i;:::-;26745:13;;:2;:13;;;26726:32;26718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26800:7;;26670:148;26834:7;;;;;;;;;;;:32;;;;;26853:13;;;;;;;;;;;26845:21;;:4;:21;;;26834:32;26830:189;;;26917:16;;26907:6;26891:13;26901:2;26891:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;:88;;;;;26963:16;;26953:6;26937:13;26947:2;26937:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;26891:88;26883:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;26830:189;26504:522;;;;:::o;17293:675::-;17396:1;17377:21;;:7;:21;;;;17369:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17449:49;17470:7;17487:1;17491:6;17449:20;:49::i;:::-;17511:22;17536:9;:18;17546:7;17536:18;;;;;;;;;;;;;;;;17511:43;;17591:6;17573:14;:24;;17565:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17710:6;17693:14;:23;17672:9;:18;17682:7;17672:18;;;;;;;;;;;;;;;:44;;;;17827:6;17811:12;;:22;;;;;;;;;;;17888:1;17862:37;;17871:7;17862:37;;;17892:6;17862:37;;;;;;:::i;:::-;;;;;;;;17912:48;17932:7;17949:1;17953:6;17912:19;:48::i;:::-;17293:675;;;:::o;2726:213::-;1783:1;2909:7;:22;;;;2726:213::o;20757:90::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;;;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:407::-;;;1800:2;1788:9;1779:7;1775:23;1771:32;1768:2;;;1816:1;1813;1806:12;1768:2;1859:1;1884:53;1929:7;1920:6;1909:9;1905:22;1884:53;:::i;:::-;1874:63;;1830:117;1986:2;2012:53;2057:7;2048:6;2037:9;2033:22;2012:53;:::i;:::-;2002:63;;1957:118;1758:324;;;;;:::o;2088:692::-;;;;;2244:3;2232:9;2223:7;2219:23;2215:33;2212:2;;;2261:1;2258;2251:12;2212:2;2304:1;2329:50;2371:7;2362:6;2351:9;2347:22;2329:50;:::i;:::-;2319:60;;2275:114;2428:2;2454:53;2499:7;2490:6;2479:9;2475:22;2454:53;:::i;:::-;2444:63;;2399:118;2556:2;2582:53;2627:7;2618:6;2607:9;2603:22;2582:53;:::i;:::-;2572:63;;2527:118;2684:2;2710:53;2755:7;2746:6;2735:9;2731:22;2710:53;:::i;:::-;2700:63;;2655:118;2202:578;;;;;;;:::o;2786:262::-;;2894:2;2882:9;2873:7;2869:23;2865:32;2862:2;;;2910:1;2907;2900:12;2862:2;2953:1;2978:53;3023:7;3014:6;3003:9;2999:22;2978:53;:::i;:::-;2968:63;;2924:117;2852:196;;;;:::o;3054:118::-;3141:24;3159:5;3141:24;:::i;:::-;3136:3;3129:37;3119:53;;:::o;3178:109::-;3259:21;3274:5;3259:21;:::i;:::-;3254:3;3247:34;3237:50;;:::o;3293:364::-;;3409:39;3442:5;3409:39;:::i;:::-;3464:71;3528:6;3523:3;3464:71;:::i;:::-;3457:78;;3544:52;3589:6;3584:3;3577:4;3570:5;3566:16;3544:52;:::i;:::-;3621:29;3643:6;3621:29;:::i;:::-;3616:3;3612:39;3605:46;;3385:272;;;;;:::o;3663:367::-;;3826:67;3890:2;3885:3;3826:67;:::i;:::-;3819:74;;3923:34;3919:1;3914:3;3910:11;3903:55;3989:5;3984:2;3979:3;3975:12;3968:27;4021:2;4016:3;4012:12;4005:19;;3809:221;;;:::o;4036:366::-;;4199:67;4263:2;4258:3;4199:67;:::i;:::-;4192:74;;4296:34;4292:1;4287:3;4283:11;4276:55;4362:4;4357:2;4352:3;4348:12;4341:26;4393:2;4388:3;4384:12;4377:19;;4182:220;;;:::o;4408:321::-;;4571:67;4635:2;4630:3;4571:67;:::i;:::-;4564:74;;4668:25;4664:1;4659:3;4655:11;4648:46;4720:2;4715:3;4711:12;4704:19;;4554:175;;;:::o;4735:370::-;;4898:67;4962:2;4957:3;4898:67;:::i;:::-;4891:74;;4995:34;4991:1;4986:3;4982:11;4975:55;5061:8;5056:2;5051:3;5047:12;5040:30;5096:2;5091:3;5087:12;5080:19;;4881:224;;;:::o;5111:366::-;;5274:67;5338:2;5333:3;5274:67;:::i;:::-;5267:74;;5371:34;5367:1;5362:3;5358:11;5351:55;5437:4;5432:2;5427:3;5423:12;5416:26;5468:2;5463:3;5459:12;5452:19;;5257:220;;;:::o;5483:327::-;;5646:67;5710:2;5705:3;5646:67;:::i;:::-;5639:74;;5743:31;5739:1;5734:3;5730:11;5723:52;5801:2;5796:3;5792:12;5785:19;;5629:181;;;:::o;5816:370::-;;5979:67;6043:2;6038:3;5979:67;:::i;:::-;5972:74;;6076:34;6072:1;6067:3;6063:11;6056:55;6142:8;6137:2;6132:3;6128:12;6121:30;6177:2;6172:3;6168:12;6161:19;;5962:224;;;:::o;6192:318::-;;6355:67;6419:2;6414:3;6355:67;:::i;:::-;6348:74;;6452:22;6448:1;6443:3;6439:11;6432:43;6501:2;6496:3;6492:12;6485:19;;6338:172;;;:::o;6516:320::-;;6679:67;6743:2;6738:3;6679:67;:::i;:::-;6672:74;;6776:24;6772:1;6767:3;6763:11;6756:45;6827:2;6822:3;6818:12;6811:19;;6662:174;;;:::o;6842:317::-;;7005:67;7069:2;7064:3;7005:67;:::i;:::-;6998:74;;7102:21;7098:1;7093:3;7089:11;7082:42;7150:2;7145:3;7141:12;7134:19;;6988:171;;;:::o;7165:323::-;;7328:67;7392:2;7387:3;7328:67;:::i;:::-;7321:74;;7425:27;7421:1;7416:3;7412:11;7405:48;7479:2;7474:3;7470:12;7463:19;;7311:177;;;:::o;7494:330::-;;7657:67;7721:2;7716:3;7657:67;:::i;:::-;7650:74;;7754:34;7750:1;7745:3;7741:11;7734:55;7815:2;7810:3;7806:12;7799:19;;7640:184;;;:::o;7830:365::-;;7993:67;8057:2;8052:3;7993:67;:::i;:::-;7986:74;;8090:34;8086:1;8081:3;8077:11;8070:55;8156:3;8151:2;8146:3;8142:12;8135:25;8186:2;8181:3;8177:12;8170:19;;7976:219;;;:::o;8201:369::-;;8364:67;8428:2;8423:3;8364:67;:::i;:::-;8357:74;;8461:34;8457:1;8452:3;8448:11;8441:55;8527:7;8522:2;8517:3;8513:12;8506:29;8561:2;8556:3;8552:12;8545:19;;8347:223;;;:::o;8576:320::-;;8739:67;8803:2;8798:3;8739:67;:::i;:::-;8732:74;;8836:24;8832:1;8827:3;8823:11;8816:45;8887:2;8882:3;8878:12;8871:19;;8722:174;;;:::o;8902:368::-;;9065:67;9129:2;9124:3;9065:67;:::i;:::-;9058:74;;9162:34;9158:1;9153:3;9149:11;9142:55;9228:6;9223:2;9218:3;9214:12;9207:28;9261:2;9256:3;9252:12;9245:19;;9048:222;;;:::o;9276:321::-;;9439:67;9503:2;9498:3;9439:67;:::i;:::-;9432:74;;9536:25;9532:1;9527:3;9523:11;9516:46;9588:2;9583:3;9579:12;9572:19;;9422:175;;;:::o;9603:329::-;;9766:67;9830:2;9825:3;9766:67;:::i;:::-;9759:74;;9863:33;9859:1;9854:3;9850:11;9843:54;9923:2;9918:3;9914:12;9907:19;;9749:183;;;:::o;9938:320::-;;10101:67;10165:2;10160:3;10101:67;:::i;:::-;10094:74;;10198:24;10194:1;10189:3;10185:11;10178:45;10249:2;10244:3;10240:12;10233:19;;10084:174;;;:::o;10264:369::-;;10427:67;10491:2;10486:3;10427:67;:::i;:::-;10420:74;;10524:34;10520:1;10515:3;10511:11;10504:55;10590:7;10585:2;10580:3;10576:12;10569:29;10624:2;10619:3;10615:12;10608:19;;10410:223;;;:::o;10639:329::-;;10802:67;10866:2;10861:3;10802:67;:::i;:::-;10795:74;;10899:33;10895:1;10890:3;10886:11;10879:54;10959:2;10954:3;10950:12;10943:19;;10785:183;;;:::o;10974:118::-;11061:24;11079:5;11061:24;:::i;:::-;11056:3;11049:37;11039:53;;:::o;11098:112::-;11181:22;11197:5;11181:22;:::i;:::-;11176:3;11169:35;11159:51;;:::o;11216:222::-;;11347:2;11336:9;11332:18;11324:26;;11360:71;11428:1;11417:9;11413:17;11404:6;11360:71;:::i;:::-;11314:124;;;;:::o;11444:210::-;;11569:2;11558:9;11554:18;11546:26;;11582:65;11644:1;11633:9;11629:17;11620:6;11582:65;:::i;:::-;11536:118;;;;:::o;11660:313::-;;11811:2;11800:9;11796:18;11788:26;;11860:9;11854:4;11850:20;11846:1;11835:9;11831:17;11824:47;11888:78;11961:4;11952:6;11888:78;:::i;:::-;11880:86;;11778:195;;;;:::o;11979:419::-;;12183:2;12172:9;12168:18;12160:26;;12232:9;12226:4;12222:20;12218:1;12207:9;12203:17;12196:47;12260:131;12386:4;12260:131;:::i;:::-;12252:139;;12150:248;;;:::o;12404:419::-;;12608:2;12597:9;12593:18;12585:26;;12657:9;12651:4;12647:20;12643:1;12632:9;12628:17;12621:47;12685:131;12811:4;12685:131;:::i;:::-;12677:139;;12575:248;;;:::o;12829:419::-;;13033:2;13022:9;13018:18;13010:26;;13082:9;13076:4;13072:20;13068:1;13057:9;13053:17;13046:47;13110:131;13236:4;13110:131;:::i;:::-;13102:139;;13000:248;;;:::o;13254:419::-;;13458:2;13447:9;13443:18;13435:26;;13507:9;13501:4;13497:20;13493:1;13482:9;13478:17;13471:47;13535:131;13661:4;13535:131;:::i;:::-;13527:139;;13425:248;;;:::o;13679:419::-;;13883:2;13872:9;13868:18;13860:26;;13932:9;13926:4;13922:20;13918:1;13907:9;13903:17;13896:47;13960:131;14086:4;13960:131;:::i;:::-;13952:139;;13850:248;;;:::o;14104:419::-;;14308:2;14297:9;14293:18;14285:26;;14357:9;14351:4;14347:20;14343:1;14332:9;14328:17;14321:47;14385:131;14511:4;14385:131;:::i;:::-;14377:139;;14275:248;;;:::o;14529:419::-;;14733:2;14722:9;14718:18;14710:26;;14782:9;14776:4;14772:20;14768:1;14757:9;14753:17;14746:47;14810:131;14936:4;14810:131;:::i;:::-;14802:139;;14700:248;;;:::o;14954:419::-;;15158:2;15147:9;15143:18;15135:26;;15207:9;15201:4;15197:20;15193:1;15182:9;15178:17;15171:47;15235:131;15361:4;15235:131;:::i;:::-;15227:139;;15125:248;;;:::o;15379:419::-;;15583:2;15572:9;15568:18;15560:26;;15632:9;15626:4;15622:20;15618:1;15607:9;15603:17;15596:47;15660:131;15786:4;15660:131;:::i;:::-;15652:139;;15550:248;;;:::o;15804:419::-;;16008:2;15997:9;15993:18;15985:26;;16057:9;16051:4;16047:20;16043:1;16032:9;16028:17;16021:47;16085:131;16211:4;16085:131;:::i;:::-;16077:139;;15975:248;;;:::o;16229:419::-;;16433:2;16422:9;16418:18;16410:26;;16482:9;16476:4;16472:20;16468:1;16457:9;16453:17;16446:47;16510:131;16636:4;16510:131;:::i;:::-;16502:139;;16400:248;;;:::o;16654:419::-;;16858:2;16847:9;16843:18;16835:26;;16907:9;16901:4;16897:20;16893:1;16882:9;16878:17;16871:47;16935:131;17061:4;16935:131;:::i;:::-;16927:139;;16825:248;;;:::o;17079:419::-;;17283:2;17272:9;17268:18;17260:26;;17332:9;17326:4;17322:20;17318:1;17307:9;17303:17;17296:47;17360:131;17486:4;17360:131;:::i;:::-;17352:139;;17250:248;;;:::o;17504:419::-;;17708:2;17697:9;17693:18;17685:26;;17757:9;17751:4;17747:20;17743:1;17732:9;17728:17;17721:47;17785:131;17911:4;17785:131;:::i;:::-;17777:139;;17675:248;;;:::o;17929:419::-;;18133:2;18122:9;18118:18;18110:26;;18182:9;18176:4;18172:20;18168:1;18157:9;18153:17;18146:47;18210:131;18336:4;18210:131;:::i;:::-;18202:139;;18100:248;;;:::o;18354:419::-;;18558:2;18547:9;18543:18;18535:26;;18607:9;18601:4;18597:20;18593:1;18582:9;18578:17;18571:47;18635:131;18761:4;18635:131;:::i;:::-;18627:139;;18525:248;;;:::o;18779:419::-;;18983:2;18972:9;18968:18;18960:26;;19032:9;19026:4;19022:20;19018:1;19007:9;19003:17;18996:47;19060:131;19186:4;19060:131;:::i;:::-;19052:139;;18950:248;;;:::o;19204:419::-;;19408:2;19397:9;19393:18;19385:26;;19457:9;19451:4;19447:20;19443:1;19432:9;19428:17;19421:47;19485:131;19611:4;19485:131;:::i;:::-;19477:139;;19375:248;;;:::o;19629:419::-;;19833:2;19822:9;19818:18;19810:26;;19882:9;19876:4;19872:20;19868:1;19857:9;19853:17;19846:47;19910:131;20036:4;19910:131;:::i;:::-;19902:139;;19800:248;;;:::o;20054:419::-;;20258:2;20247:9;20243:18;20235:26;;20307:9;20301:4;20297:20;20293:1;20282:9;20278:17;20271:47;20335:131;20461:4;20335:131;:::i;:::-;20327:139;;20225:248;;;:::o;20479:419::-;;20683:2;20672:9;20668:18;20660:26;;20732:9;20726:4;20722:20;20718:1;20707:9;20703:17;20696:47;20760:131;20886:4;20760:131;:::i;:::-;20752:139;;20650:248;;;:::o;20904:222::-;;21035:2;21024:9;21020:18;21012:26;;21048:71;21116:1;21105:9;21101:17;21092:6;21048:71;:::i;:::-;21002:124;;;;:::o;21132:214::-;;21259:2;21248:9;21244:18;21236:26;;21272:67;21336:1;21325:9;21321:17;21312:6;21272:67;:::i;:::-;21226:120;;;;:::o;21352:99::-;;21438:5;21432:12;21422:22;;21411:40;;;:::o;21457:169::-;;21575:6;21570:3;21563:19;21615:4;21610:3;21606:14;21591:29;;21553:73;;;;:::o;21632:305::-;;21691:20;21709:1;21691:20;:::i;:::-;21686:25;;21725:20;21743:1;21725:20;:::i;:::-;21720:25;;21879:1;21811:66;21807:74;21804:1;21801:81;21798:2;;;21885:18;;:::i;:::-;21798:2;21929:1;21926;21922:9;21915:16;;21676:261;;;;:::o;21943:185::-;;22000:20;22018:1;22000:20;:::i;:::-;21995:25;;22034:20;22052:1;22034:20;:::i;:::-;22029:25;;22073:1;22063:2;;22078:18;;:::i;:::-;22063:2;22120:1;22117;22113:9;22108:14;;21985:143;;;;:::o;22134:348::-;;22197:20;22215:1;22197:20;:::i;:::-;22192:25;;22231:20;22249:1;22231:20;:::i;:::-;22226:25;;22419:1;22351:66;22347:74;22344:1;22341:81;22336:1;22329:9;22322:17;22318:105;22315:2;;;22426:18;;:::i;:::-;22315:2;22474:1;22471;22467:9;22456:20;;22182:300;;;;:::o;22488:191::-;;22548:20;22566:1;22548:20;:::i;:::-;22543:25;;22582:20;22600:1;22582:20;:::i;:::-;22577:25;;22621:1;22618;22615:8;22612:2;;;22626:18;;:::i;:::-;22612:2;22671:1;22668;22664:9;22656:17;;22533:146;;;;:::o;22685:96::-;;22751:24;22769:5;22751:24;:::i;:::-;22740:35;;22730:51;;;:::o;22787:90::-;;22864:5;22857:13;22850:21;22839:32;;22829:48;;;:::o;22883:126::-;;22960:42;22953:5;22949:54;22938:65;;22928:81;;;:::o;23015:77::-;;23081:5;23070:16;;23060:32;;;:::o;23098:86::-;;23173:4;23166:5;23162:16;23151:27;;23141:43;;;:::o;23190:307::-;23258:1;23268:113;23282:6;23279:1;23276:13;23268:113;;;23367:1;23362:3;23358:11;23352:18;23348:1;23343:3;23339:11;23332:39;23304:2;23301:1;23297:10;23292:15;;23268:113;;;23399:6;23396:1;23393:13;23390:2;;;23479:1;23470:6;23465:3;23461:16;23454:27;23390:2;23239:258;;;;:::o;23503:320::-;;23584:1;23578:4;23574:12;23564:22;;23631:1;23625:4;23621:12;23652:18;23642:2;;23708:4;23700:6;23696:17;23686:27;;23642:2;23770;23762:6;23759:14;23739:18;23736:38;23733:2;;;23789:18;;:::i;:::-;23733:2;23554:269;;;;:::o;23829:180::-;23877:77;23874:1;23867:88;23974:4;23971:1;23964:15;23998:4;23995:1;23988:15;24015:180;24063:77;24060:1;24053:88;24160:4;24157:1;24150:15;24184:4;24181:1;24174:15;24201:180;24249:77;24246:1;24239:88;24346:4;24343:1;24336:15;24370:4;24367:1;24360:15;24387:102;;24479:2;24475:7;24470:2;24463:5;24459:14;24455:28;24445:38;;24435:54;;;:::o;24495:122::-;24568:24;24586:5;24568:24;:::i;:::-;24561:5;24558:35;24548:2;;24607:1;24604;24597:12;24548:2;24538:79;:::o;24623:116::-;24693:21;24708:5;24693:21;:::i;:::-;24686:5;24683:32;24673:2;;24729:1;24726;24719:12;24673:2;24663:76;:::o;24745:122::-;24818:24;24836:5;24818:24;:::i;:::-;24811:5;24808:35;24798:2;;24857:1;24854;24847:12;24798:2;24788:79;:::o
Swarm Source
ipfs://99a1524e48d6746c8da978431f4a35b039c3602ba7cc734db295ce504a397b96
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.