ERC-20
Overview
Max Total Supply
1,000,000,000 DFV
Holders
86
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DeepFuckingValue
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-01 */ // // https://t.me/deepfuckingvalueportal // // Sources flattened with hardhat v2.7.0 https://hardhat.org // File @openzeppelin/contracts/utils/[email protected] // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (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/access/[email protected] // OpenZeppelin Contracts v4.4.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 Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _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 @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File @openzeppelin/contracts/token/ERC20/extensions/[email protected] // OpenZeppelin Contracts v4.4.0 (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/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * 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}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(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 value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 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: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `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; _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; } _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 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: DeepFuckingValue.sol pragma solidity ^0.8.0; contract DeepFuckingValue is ERC20, Ownable { bool public limited; uint256 public maxHoldingAmount; address public uniswapV2Pair; mapping(address => bool) public blacklists; constructor() ERC20("DeepFuckingValue", "DFV") { _mint(msg.sender, 1000000000 * 10 ** decimals()); } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount) external onlyOwner { limited = _limited; uniswapV2Pair = _uniswapV2Pair; maxHoldingAmount = _maxHoldingAmount; } function _beforeTokenTransfer( address from, address to, uint256 amount ) override internal virtual { require(!blacklists[to] && !blacklists[from], "Blacklisted"); if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "trading is not started"); return; } if (limited && from == uniswapV2Pair) { require(super.balanceOf(to) + amount <= maxHoldingAmount, "Forbid"); } } function burn(uint256 value) external { _burn(msg.sender, value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"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":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601081526020017f446565704675636b696e6756616c7565000000000000000000000000000000008152506040518060400160405280600381526020017f4446560000000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620006cb565b508060049080519060200190620000af929190620006cb565b505050620000d2620000c66200011860201b60201c565b6200012060201b60201c565b6200011233620000e7620001e660201b60201c565b600a620000f5919062000996565b633b9aca0062000106919062000ad3565b620001ef60201b60201c565b62000c90565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000259906200086c565b60405180910390fd5b62000276600083836200036860201b60201c565b80600260008282546200028a9190620008de565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002e19190620008de565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003489190620008b0565b60405180910390a362000364600083836200065460201b60201c565b5050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156200040d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6200044f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000446906200088e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200057357620004b76200065960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200052b5750620004fc6200065960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200056d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000564906200084a565b60405180910390fd5b6200064f565b600560149054906101000a900460ff168015620005dd5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156200064e5760065481620005fd846200068360201b620007b71760201c565b620006099190620008de565b11156200064d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006449062000828565b60405180910390fd5b5b5b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b828054620006d99062000b4b565b90600052602060002090601f016020900481019282620006fd576000855562000749565b82601f106200071857805160ff191683800117855562000749565b8280016001018555821562000749579182015b82811115620007485782518255916020019190600101906200072b565b5b5090506200075891906200075c565b5090565b5b80821115620007775760008160009055506001016200075d565b5090565b60006200078a600683620008cd565b9150620007978262000bec565b602082019050919050565b6000620007b1601683620008cd565b9150620007be8262000c15565b602082019050919050565b6000620007d8601f83620008cd565b9150620007e58262000c3e565b602082019050919050565b6000620007ff600b83620008cd565b91506200080c8262000c67565b602082019050919050565b620008228162000b34565b82525050565b6000602082019050818103600083015262000843816200077b565b9050919050565b600060208201905081810360008301526200086581620007a2565b9050919050565b600060208201905081810360008301526200088781620007c9565b9050919050565b60006020820190508181036000830152620008a981620007f0565b9050919050565b6000602082019050620008c7600083018462000817565b92915050565b600082825260208201905092915050565b6000620008eb8262000b34565b9150620008f88362000b34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000930576200092f62000b81565b5b828201905092915050565b6000808291508390505b60018511156200098d5780860481111562000965576200096462000b81565b5b6001851615620009755780820291505b8081029050620009858562000bdf565b945062000945565b94509492505050565b6000620009a38262000b34565b9150620009b08362000b3e565b9250620009df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009e7565b905092915050565b600082620009f9576001905062000acc565b8162000a09576000905062000acc565b816001811462000a22576002811462000a2d5762000a63565b600191505062000acc565b60ff84111562000a425762000a4162000b81565b5b8360020a91508482111562000a5c5762000a5b62000b81565b5b5062000acc565b5060208310610133831016604e8410600b841016171562000a9d5782820a90508381111562000a975762000a9662000b81565b5b62000acc565b62000aac84848460016200093b565b9250905081840481111562000ac65762000ac562000b81565b5b81810290505b9392505050565b600062000ae08262000b34565b915062000aed8362000b34565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b295762000b2862000b81565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b6457607f821691505b6020821081141562000b7b5762000b7a62000bb0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6123308062000ca06000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780638da5cb5b1161007c5780638da5cb5b1461033e57806395d89b411461035c578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da578063f2fde38b1461040a57610137565b806370a08231146102ac578063715018a6146102dc5780637abf9d26146102e6578063860a32ec1461030257806389f9a1d31461032057610137565b8063313ce567116100ff578063313ce567146102085780633950935114610226578063404e51291461025657806342966c681461027257806349bd5a5e1461028e57610137565b806306fdde031461013c578063095ea7b31461015a57806316c021291461018a57806318160ddd146101ba57806323b872dd146101d8575b600080fd5b610144610426565b6040516101519190611b0f565b60405180910390f35b610174600480360381019061016f91906117ba565b6104b8565b6040516101819190611af4565b60405180910390f35b6101a4600480360381019061019f91906116ba565b6104d6565b6040516101b19190611af4565b60405180910390f35b6101c26104f6565b6040516101cf9190611cf1565b60405180910390f35b6101f260048036038101906101ed9190611727565b610500565b6040516101ff9190611af4565b60405180910390f35b6102106105f8565b60405161021d9190611d0c565b60405180910390f35b610240600480360381019061023b91906117ba565b610601565b60405161024d9190611af4565b60405180910390f35b610270600480360381019061026b919061177a565b6106ad565b005b61028c6004803603810190610287919061184d565b610784565b005b610296610791565b6040516102a39190611ad9565b60405180910390f35b6102c660048036038101906102c191906116ba565b6107b7565b6040516102d39190611cf1565b60405180910390f35b6102e46107ff565b005b61030060048036038101906102fb91906117fa565b610887565b005b61030a61096a565b6040516103179190611af4565b60405180910390f35b61032861097d565b6040516103359190611cf1565b60405180910390f35b610346610983565b6040516103539190611ad9565b60405180910390f35b6103646109ad565b6040516103719190611b0f565b60405180910390f35b610394600480360381019061038f91906117ba565b610a3f565b6040516103a19190611af4565b60405180910390f35b6103c460048036038101906103bf91906117ba565b610b2a565b6040516103d19190611af4565b60405180910390f35b6103f460048036038101906103ef91906116e7565b610b48565b6040516104019190611cf1565b60405180910390f35b610424600480360381019061041f91906116ba565b610bcf565b005b60606003805461043590611e55565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611e55565b80156104ae5780601f10610483576101008083540402835291602001916104ae565b820191906000526020600020905b81548152906001019060200180831161049157829003601f168201915b5050505050905090565b60006104cc6104c5610cc7565b8484610ccf565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b600061050d848484610e9a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610558610cc7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90611bf1565b60405180910390fd5b6105ec856105e4610cc7565b858403610ccf565b60019150509392505050565b60006012905090565b60006106a361060e610cc7565b84846001600061061c610cc7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069e9190611d43565b610ccf565b6001905092915050565b6106b5610cc7565b73ffffffffffffffffffffffffffffffffffffffff166106d3610983565b73ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090611c11565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61078e338261111b565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610807610cc7565b73ffffffffffffffffffffffffffffffffffffffff16610825610983565b73ffffffffffffffffffffffffffffffffffffffff161461087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087290611c11565b60405180910390fd5b61088560006112f2565b565b61088f610cc7565b73ffffffffffffffffffffffffffffffffffffffff166108ad610983565b73ffffffffffffffffffffffffffffffffffffffff1614610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa90611c11565b60405180910390fd5b82600560146101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600681905550505050565b600560149054906101000a900460ff1681565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109bc90611e55565b80601f01602080910402602001604051908101604052809291908181526020018280546109e890611e55565b8015610a355780601f10610a0a57610100808354040283529160200191610a35565b820191906000526020600020905b815481529060010190602001808311610a1857829003601f168201915b5050505050905090565b60008060016000610a4e610cc7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611cb1565b60405180910390fd5b610b1f610b16610cc7565b85858403610ccf565b600191505092915050565b6000610b3e610b37610cc7565b8484610e9a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bd7610cc7565b73ffffffffffffffffffffffffffffffffffffffff16610bf5610983565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290611c11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290611b71565b60405180910390fd5b610cc4816112f2565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690611c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690611b91565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e8d9190611cf1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0190611c71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190611b31565b60405180910390fd5b610f858383836113b8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290611bb1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109e9190611d43565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111029190611cf1565b60405180910390a3611115848484611676565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290611c31565b60405180910390fd5b611197826000836113b8565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490611b51565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546112749190611d99565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d99190611cf1565b60405180910390a36112ed83600084611676565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561145c5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290611cd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115a9576114fa610983565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115655750611536610983565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90611c51565b60405180910390fd5b611671565b600560149054906101000a900460ff1680156116125750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116705760065481611624846107b7565b61162e9190611d43565b111561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690611bd1565b60405180910390fd5b5b5b505050565b505050565b60008135905061168a816122b5565b92915050565b60008135905061169f816122cc565b92915050565b6000813590506116b4816122e3565b92915050565b6000602082840312156116d0576116cf611ee5565b5b60006116de8482850161167b565b91505092915050565b600080604083850312156116fe576116fd611ee5565b5b600061170c8582860161167b565b925050602061171d8582860161167b565b9150509250929050565b6000806000606084860312156117405761173f611ee5565b5b600061174e8682870161167b565b935050602061175f8682870161167b565b9250506040611770868287016116a5565b9150509250925092565b6000806040838503121561179157611790611ee5565b5b600061179f8582860161167b565b92505060206117b085828601611690565b9150509250929050565b600080604083850312156117d1576117d0611ee5565b5b60006117df8582860161167b565b92505060206117f0858286016116a5565b9150509250929050565b60008060006060848603121561181357611812611ee5565b5b600061182186828701611690565b93505060206118328682870161167b565b9250506040611843868287016116a5565b9150509250925092565b60006020828403121561186357611862611ee5565b5b6000611871848285016116a5565b91505092915050565b61188381611dcd565b82525050565b61189281611ddf565b82525050565b60006118a382611d27565b6118ad8185611d32565b93506118bd818560208601611e22565b6118c681611eea565b840191505092915050565b60006118de602383611d32565b91506118e982611efb565b604082019050919050565b6000611901602283611d32565b915061190c82611f4a565b604082019050919050565b6000611924602683611d32565b915061192f82611f99565b604082019050919050565b6000611947602283611d32565b915061195282611fe8565b604082019050919050565b600061196a602683611d32565b915061197582612037565b604082019050919050565b600061198d600683611d32565b915061199882612086565b602082019050919050565b60006119b0602883611d32565b91506119bb826120af565b604082019050919050565b60006119d3602083611d32565b91506119de826120fe565b602082019050919050565b60006119f6602183611d32565b9150611a0182612127565b604082019050919050565b6000611a19601683611d32565b9150611a2482612176565b602082019050919050565b6000611a3c602583611d32565b9150611a478261219f565b604082019050919050565b6000611a5f602483611d32565b9150611a6a826121ee565b604082019050919050565b6000611a82602583611d32565b9150611a8d8261223d565b604082019050919050565b6000611aa5600b83611d32565b9150611ab08261228c565b602082019050919050565b611ac481611e0b565b82525050565b611ad381611e15565b82525050565b6000602082019050611aee600083018461187a565b92915050565b6000602082019050611b096000830184611889565b92915050565b60006020820190508181036000830152611b298184611898565b905092915050565b60006020820190508181036000830152611b4a816118d1565b9050919050565b60006020820190508181036000830152611b6a816118f4565b9050919050565b60006020820190508181036000830152611b8a81611917565b9050919050565b60006020820190508181036000830152611baa8161193a565b9050919050565b60006020820190508181036000830152611bca8161195d565b9050919050565b60006020820190508181036000830152611bea81611980565b9050919050565b60006020820190508181036000830152611c0a816119a3565b9050919050565b60006020820190508181036000830152611c2a816119c6565b9050919050565b60006020820190508181036000830152611c4a816119e9565b9050919050565b60006020820190508181036000830152611c6a81611a0c565b9050919050565b60006020820190508181036000830152611c8a81611a2f565b9050919050565b60006020820190508181036000830152611caa81611a52565b9050919050565b60006020820190508181036000830152611cca81611a75565b9050919050565b60006020820190508181036000830152611cea81611a98565b9050919050565b6000602082019050611d066000830184611abb565b92915050565b6000602082019050611d216000830184611aca565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611d4e82611e0b565b9150611d5983611e0b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d8e57611d8d611e87565b5b828201905092915050565b6000611da482611e0b565b9150611daf83611e0b565b925082821015611dc257611dc1611e87565b5b828203905092915050565b6000611dd882611deb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e40578082015181840152602081019050611e25565b83811115611e4f576000848401525b50505050565b60006002820490506001821680611e6d57607f821691505b60208210811415611e8157611e80611eb6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6122be81611dcd565b81146122c957600080fd5b50565b6122d581611ddf565b81146122e057600080fd5b50565b6122ec81611e0b565b81146122f757600080fd5b5056fea264697066735822122020d91fd9b5ddc4ef910e41b6e1a7e2eb1d316d11501597a995a67737ccb4f5ff64736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780638da5cb5b1161007c5780638da5cb5b1461033e57806395d89b411461035c578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da578063f2fde38b1461040a57610137565b806370a08231146102ac578063715018a6146102dc5780637abf9d26146102e6578063860a32ec1461030257806389f9a1d31461032057610137565b8063313ce567116100ff578063313ce567146102085780633950935114610226578063404e51291461025657806342966c681461027257806349bd5a5e1461028e57610137565b806306fdde031461013c578063095ea7b31461015a57806316c021291461018a57806318160ddd146101ba57806323b872dd146101d8575b600080fd5b610144610426565b6040516101519190611b0f565b60405180910390f35b610174600480360381019061016f91906117ba565b6104b8565b6040516101819190611af4565b60405180910390f35b6101a4600480360381019061019f91906116ba565b6104d6565b6040516101b19190611af4565b60405180910390f35b6101c26104f6565b6040516101cf9190611cf1565b60405180910390f35b6101f260048036038101906101ed9190611727565b610500565b6040516101ff9190611af4565b60405180910390f35b6102106105f8565b60405161021d9190611d0c565b60405180910390f35b610240600480360381019061023b91906117ba565b610601565b60405161024d9190611af4565b60405180910390f35b610270600480360381019061026b919061177a565b6106ad565b005b61028c6004803603810190610287919061184d565b610784565b005b610296610791565b6040516102a39190611ad9565b60405180910390f35b6102c660048036038101906102c191906116ba565b6107b7565b6040516102d39190611cf1565b60405180910390f35b6102e46107ff565b005b61030060048036038101906102fb91906117fa565b610887565b005b61030a61096a565b6040516103179190611af4565b60405180910390f35b61032861097d565b6040516103359190611cf1565b60405180910390f35b610346610983565b6040516103539190611ad9565b60405180910390f35b6103646109ad565b6040516103719190611b0f565b60405180910390f35b610394600480360381019061038f91906117ba565b610a3f565b6040516103a19190611af4565b60405180910390f35b6103c460048036038101906103bf91906117ba565b610b2a565b6040516103d19190611af4565b60405180910390f35b6103f460048036038101906103ef91906116e7565b610b48565b6040516104019190611cf1565b60405180910390f35b610424600480360381019061041f91906116ba565b610bcf565b005b60606003805461043590611e55565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611e55565b80156104ae5780601f10610483576101008083540402835291602001916104ae565b820191906000526020600020905b81548152906001019060200180831161049157829003601f168201915b5050505050905090565b60006104cc6104c5610cc7565b8484610ccf565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b600061050d848484610e9a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610558610cc7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90611bf1565b60405180910390fd5b6105ec856105e4610cc7565b858403610ccf565b60019150509392505050565b60006012905090565b60006106a361060e610cc7565b84846001600061061c610cc7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069e9190611d43565b610ccf565b6001905092915050565b6106b5610cc7565b73ffffffffffffffffffffffffffffffffffffffff166106d3610983565b73ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090611c11565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61078e338261111b565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610807610cc7565b73ffffffffffffffffffffffffffffffffffffffff16610825610983565b73ffffffffffffffffffffffffffffffffffffffff161461087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087290611c11565b60405180910390fd5b61088560006112f2565b565b61088f610cc7565b73ffffffffffffffffffffffffffffffffffffffff166108ad610983565b73ffffffffffffffffffffffffffffffffffffffff1614610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa90611c11565b60405180910390fd5b82600560146101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600681905550505050565b600560149054906101000a900460ff1681565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109bc90611e55565b80601f01602080910402602001604051908101604052809291908181526020018280546109e890611e55565b8015610a355780601f10610a0a57610100808354040283529160200191610a35565b820191906000526020600020905b815481529060010190602001808311610a1857829003601f168201915b5050505050905090565b60008060016000610a4e610cc7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611cb1565b60405180910390fd5b610b1f610b16610cc7565b85858403610ccf565b600191505092915050565b6000610b3e610b37610cc7565b8484610e9a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bd7610cc7565b73ffffffffffffffffffffffffffffffffffffffff16610bf5610983565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290611c11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290611b71565b60405180910390fd5b610cc4816112f2565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690611c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690611b91565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e8d9190611cf1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0190611c71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7190611b31565b60405180910390fd5b610f858383836113b8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290611bb1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109e9190611d43565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111029190611cf1565b60405180910390a3611115848484611676565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290611c31565b60405180910390fd5b611197826000836113b8565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490611b51565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546112749190611d99565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d99190611cf1565b60405180910390a36112ed83600084611676565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561145c5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290611cd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115a9576114fa610983565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115655750611536610983565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90611c51565b60405180910390fd5b611671565b600560149054906101000a900460ff1680156116125750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116705760065481611624846107b7565b61162e9190611d43565b111561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690611bd1565b60405180910390fd5b5b5b505050565b505050565b60008135905061168a816122b5565b92915050565b60008135905061169f816122cc565b92915050565b6000813590506116b4816122e3565b92915050565b6000602082840312156116d0576116cf611ee5565b5b60006116de8482850161167b565b91505092915050565b600080604083850312156116fe576116fd611ee5565b5b600061170c8582860161167b565b925050602061171d8582860161167b565b9150509250929050565b6000806000606084860312156117405761173f611ee5565b5b600061174e8682870161167b565b935050602061175f8682870161167b565b9250506040611770868287016116a5565b9150509250925092565b6000806040838503121561179157611790611ee5565b5b600061179f8582860161167b565b92505060206117b085828601611690565b9150509250929050565b600080604083850312156117d1576117d0611ee5565b5b60006117df8582860161167b565b92505060206117f0858286016116a5565b9150509250929050565b60008060006060848603121561181357611812611ee5565b5b600061182186828701611690565b93505060206118328682870161167b565b9250506040611843868287016116a5565b9150509250925092565b60006020828403121561186357611862611ee5565b5b6000611871848285016116a5565b91505092915050565b61188381611dcd565b82525050565b61189281611ddf565b82525050565b60006118a382611d27565b6118ad8185611d32565b93506118bd818560208601611e22565b6118c681611eea565b840191505092915050565b60006118de602383611d32565b91506118e982611efb565b604082019050919050565b6000611901602283611d32565b915061190c82611f4a565b604082019050919050565b6000611924602683611d32565b915061192f82611f99565b604082019050919050565b6000611947602283611d32565b915061195282611fe8565b604082019050919050565b600061196a602683611d32565b915061197582612037565b604082019050919050565b600061198d600683611d32565b915061199882612086565b602082019050919050565b60006119b0602883611d32565b91506119bb826120af565b604082019050919050565b60006119d3602083611d32565b91506119de826120fe565b602082019050919050565b60006119f6602183611d32565b9150611a0182612127565b604082019050919050565b6000611a19601683611d32565b9150611a2482612176565b602082019050919050565b6000611a3c602583611d32565b9150611a478261219f565b604082019050919050565b6000611a5f602483611d32565b9150611a6a826121ee565b604082019050919050565b6000611a82602583611d32565b9150611a8d8261223d565b604082019050919050565b6000611aa5600b83611d32565b9150611ab08261228c565b602082019050919050565b611ac481611e0b565b82525050565b611ad381611e15565b82525050565b6000602082019050611aee600083018461187a565b92915050565b6000602082019050611b096000830184611889565b92915050565b60006020820190508181036000830152611b298184611898565b905092915050565b60006020820190508181036000830152611b4a816118d1565b9050919050565b60006020820190508181036000830152611b6a816118f4565b9050919050565b60006020820190508181036000830152611b8a81611917565b9050919050565b60006020820190508181036000830152611baa8161193a565b9050919050565b60006020820190508181036000830152611bca8161195d565b9050919050565b60006020820190508181036000830152611bea81611980565b9050919050565b60006020820190508181036000830152611c0a816119a3565b9050919050565b60006020820190508181036000830152611c2a816119c6565b9050919050565b60006020820190508181036000830152611c4a816119e9565b9050919050565b60006020820190508181036000830152611c6a81611a0c565b9050919050565b60006020820190508181036000830152611c8a81611a2f565b9050919050565b60006020820190508181036000830152611caa81611a52565b9050919050565b60006020820190508181036000830152611cca81611a75565b9050919050565b60006020820190508181036000830152611cea81611a98565b9050919050565b6000602082019050611d066000830184611abb565b92915050565b6000602082019050611d216000830184611aca565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611d4e82611e0b565b9150611d5983611e0b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d8e57611d8d611e87565b5b828201905092915050565b6000611da482611e0b565b9150611daf83611e0b565b925082821015611dc257611dc1611e87565b5b828203905092915050565b6000611dd882611deb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e40578082015181840152602081019050611e25565b83811115611e4f576000848401525b50505050565b60006002820490506001821680611e6d57607f821691505b60208210811415611e8157611e80611eb6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6122be81611dcd565b81146122c957600080fd5b50565b6122d581611ddf565b81146122e057600080fd5b50565b6122ec81611e0b565b81146122f757600080fd5b5056fea264697066735822122020d91fd9b5ddc4ef910e41b6e1a7e2eb1d316d11501597a995a67737ccb4f5ff64736f6c63430008070033
Deployed Bytecode Sourcemap
19390:1308:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9367:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11534:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19540:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12185:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10329:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13086:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19713:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20614:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19505:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10658:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2768:103;;;:::i;:::-;;19856:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19441:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19467:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2117:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9586:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13804:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10998:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11236:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3026:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9367:100;9421:13;9454:5;9447:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9367:100;:::o;11534:169::-;11617:4;11634:39;11643:12;:10;:12::i;:::-;11657:7;11666:6;11634:8;:39::i;:::-;11691:4;11684:11;;11534:169;;;;:::o;19540:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10487:108::-;10548:7;10575:12;;10568:19;;10487:108;:::o;12185:492::-;12325:4;12342:36;12352:6;12360:9;12371:6;12342:9;:36::i;:::-;12391:24;12418:11;:19;12430:6;12418:19;;;;;;;;;;;;;;;:33;12438:12;:10;:12::i;:::-;12418:33;;;;;;;;;;;;;;;;12391:60;;12490:6;12470:16;:26;;12462:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12577:57;12586:6;12594:12;:10;:12::i;:::-;12627:6;12608:16;:25;12577:8;:57::i;:::-;12665:4;12658:11;;;12185:492;;;;;:::o;10329:93::-;10387:5;10412:2;10405:9;;10329:93;:::o;13086:215::-;13174:4;13191:80;13200:12;:10;:12::i;:::-;13214:7;13260:10;13223:11;:25;13235:12;:10;:12::i;:::-;13223:25;;;;;;;;;;;;;;;:34;13249:7;13223:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13191:8;:80::i;:::-;13289:4;13282:11;;13086:215;;;;:::o;19713:135::-;2348:12;:10;:12::i;:::-;2337:23;;:7;:5;:7::i;:::-;:23;;;2329:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19825:15:::1;19802:10;:20;19813:8;19802:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19713:135:::0;;:::o;20614:81::-;20663:24;20669:10;20681:5;20663;:24::i;:::-;20614:81;:::o;19505:28::-;;;;;;;;;;;;;:::o;10658:127::-;10732:7;10759:9;:18;10769:7;10759:18;;;;;;;;;;;;;;;;10752:25;;10658:127;;;:::o;2768:103::-;2348:12;:10;:12::i;:::-;2337:23;;:7;:5;:7::i;:::-;:23;;;2329:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2833:30:::1;2860:1;2833:18;:30::i;:::-;2768:103::o:0;19856:227::-;2348:12;:10;:12::i;:::-;2337:23;;:7;:5;:7::i;:::-;:23;;;2329:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19979:8:::1;19969:7;;:18;;;;;;;;;;;;;;;;;;20014:14;19998:13;;:30;;;;;;;;;;;;;;;;;;20058:17;20039:16;:36;;;;19856:227:::0;;;:::o;19441:19::-;;;;;;;;;;;;;:::o;19467:31::-;;;;:::o;2117:87::-;2163:7;2190:6;;;;;;;;;;;2183:13;;2117:87;:::o;9586:104::-;9642:13;9675:7;9668:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9586:104;:::o;13804:413::-;13897:4;13914:24;13941:11;:25;13953:12;:10;:12::i;:::-;13941:25;;;;;;;;;;;;;;;:34;13967:7;13941:34;;;;;;;;;;;;;;;;13914:61;;14014:15;13994:16;:35;;13986:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14107:67;14116:12;:10;:12::i;:::-;14130:7;14158:15;14139:16;:34;14107:8;:67::i;:::-;14205:4;14198:11;;;13804:413;;;;:::o;10998:175::-;11084:4;11101:42;11111:12;:10;:12::i;:::-;11125:9;11136:6;11101:9;:42::i;:::-;11161:4;11154:11;;10998:175;;;;:::o;11236:151::-;11325:7;11352:11;:18;11364:5;11352:18;;;;;;;;;;;;;;;:27;11371:7;11352:27;;;;;;;;;;;;;;;;11345:34;;11236:151;;;;:::o;3026:201::-;2348:12;:10;:12::i;:::-;2337:23;;:7;:5;:7::i;:::-;:23;;;2329:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3135:1:::1;3115:22;;:8;:22;;;;3107:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3191:28;3210:8;3191:18;:28::i;:::-;3026:201:::0;:::o;835:98::-;888:7;915:10;908:17;;835:98;:::o;17488:380::-;17641:1;17624:19;;:5;:19;;;;17616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17722:1;17703:21;;:7;:21;;;;17695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17806:6;17776:11;:18;17788:5;17776:18;;;;;;;;;;;;;;;:27;17795:7;17776:27;;;;;;;;;;;;;;;:36;;;;17844:7;17828:32;;17837:5;17828:32;;;17853:6;17828:32;;;;;;:::i;:::-;;;;;;;;17488:380;;;:::o;14707:733::-;14865:1;14847:20;;:6;:20;;;;14839:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14949:1;14928:23;;:9;:23;;;;14920:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15004:47;15025:6;15033:9;15044:6;15004:20;:47::i;:::-;15064:21;15088:9;:17;15098:6;15088:17;;;;;;;;;;;;;;;;15064:41;;15141:6;15124:13;:23;;15116:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15262:6;15246:13;:22;15226:9;:17;15236:6;15226:17;;;;;;;;;;;;;;;:42;;;;15314:6;15290:9;:20;15300:9;15290:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15355:9;15338:35;;15347:6;15338:35;;;15366:6;15338:35;;;;;;:::i;:::-;;;;;;;;15386:46;15406:6;15414:9;15425:6;15386:19;:46::i;:::-;14828:612;14707:733;;;:::o;16459:591::-;16562:1;16543:21;;:7;:21;;;;16535:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16615:49;16636:7;16653:1;16657:6;16615:20;:49::i;:::-;16677:22;16702:9;:18;16712:7;16702:18;;;;;;;;;;;;;;;;16677:43;;16757:6;16739:14;:24;;16731:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16876:6;16859:14;:23;16838:9;:18;16848:7;16838:18;;;;;;;;;;;;;;;:44;;;;16920:6;16904:12;;:22;;;;;;;:::i;:::-;;;;;;;;16970:1;16944:37;;16953:7;16944:37;;;16974:6;16944:37;;;;;;:::i;:::-;;;;;;;;16994:48;17014:7;17031:1;17035:6;16994:19;:48::i;:::-;16524:526;16459:591;;:::o;3387:191::-;3461:16;3480:6;;;;;;;;;;;3461:25;;3506:8;3497:6;;:17;;;;;;;;;;;;;;;;;;3561:8;3530:40;;3551:8;3530:40;;;;;;;;;;;;3450:128;3387:191;:::o;20091:515::-;20243:10;:14;20254:2;20243:14;;;;;;;;;;;;;;;;;;;;;;;;;20242:15;:36;;;;;20262:10;:16;20273:4;20262:16;;;;;;;;;;;;;;;;;;;;;;;;;20261:17;20242:36;20234:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20336:1;20311:27;;:13;;;;;;;;;;;:27;;;20307:148;;;20371:7;:5;:7::i;:::-;20363:15;;:4;:15;;;:32;;;;20388:7;:5;:7::i;:::-;20382:13;;:2;:13;;;20363:32;20355:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20437:7;;20307:148;20471:7;;;;;;;;;;;:32;;;;;20490:13;;;;;;;;;;;20482:21;;:4;:21;;;20471:32;20467:132;;;20560:16;;20550:6;20528:19;20544:2;20528:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20467:132;20091:515;;;;:::o;19197:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:119;;;550:79;;:::i;:::-;512:119;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;436:329;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:119;;;902:79;;:::i;:::-;864:119;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;771:474;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:119;;;1399:79;;:::i;:::-;1361:119;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1251:619;;;;;:::o;1876:468::-;1941:6;1949;1998:2;1986:9;1977:7;1973:23;1969:32;1966:119;;;2004:79;;:::i;:::-;1966:119;2124:1;2149:53;2194:7;2185:6;2174:9;2170:22;2149:53;:::i;:::-;2139:63;;2095:117;2251:2;2277:50;2319:7;2310:6;2299:9;2295:22;2277:50;:::i;:::-;2267:60;;2222:115;1876:468;;;;;:::o;2350:474::-;2418:6;2426;2475:2;2463:9;2454:7;2450:23;2446:32;2443:119;;;2481:79;;:::i;:::-;2443:119;2601:1;2626:53;2671:7;2662:6;2651:9;2647:22;2626:53;:::i;:::-;2616:63;;2572:117;2728:2;2754:53;2799:7;2790:6;2779:9;2775:22;2754:53;:::i;:::-;2744:63;;2699:118;2350:474;;;;;:::o;2830:613::-;2904:6;2912;2920;2969:2;2957:9;2948:7;2944:23;2940:32;2937:119;;;2975:79;;:::i;:::-;2937:119;3095:1;3120:50;3162:7;3153:6;3142:9;3138:22;3120:50;:::i;:::-;3110:60;;3066:114;3219:2;3245:53;3290:7;3281:6;3270:9;3266:22;3245:53;:::i;:::-;3235:63;;3190:118;3347:2;3373:53;3418:7;3409:6;3398:9;3394:22;3373:53;:::i;:::-;3363:63;;3318:118;2830:613;;;;;:::o;3449:329::-;3508:6;3557:2;3545:9;3536:7;3532:23;3528:32;3525:119;;;3563:79;;:::i;:::-;3525:119;3683:1;3708:53;3753:7;3744:6;3733:9;3729:22;3708:53;:::i;:::-;3698:63;;3654:117;3449:329;;;;:::o;3784:118::-;3871:24;3889:5;3871:24;:::i;:::-;3866:3;3859:37;3784:118;;:::o;3908:109::-;3989:21;4004:5;3989:21;:::i;:::-;3984:3;3977:34;3908:109;;:::o;4023:364::-;4111:3;4139:39;4172:5;4139:39;:::i;:::-;4194:71;4258:6;4253:3;4194:71;:::i;:::-;4187:78;;4274:52;4319:6;4314:3;4307:4;4300:5;4296:16;4274:52;:::i;:::-;4351:29;4373:6;4351:29;:::i;:::-;4346:3;4342:39;4335:46;;4115:272;4023:364;;;;:::o;4393:366::-;4535:3;4556:67;4620:2;4615:3;4556:67;:::i;:::-;4549:74;;4632:93;4721:3;4632:93;:::i;:::-;4750:2;4745:3;4741:12;4734:19;;4393:366;;;:::o;4765:::-;4907:3;4928:67;4992:2;4987:3;4928:67;:::i;:::-;4921:74;;5004:93;5093:3;5004:93;:::i;:::-;5122:2;5117:3;5113:12;5106:19;;4765:366;;;:::o;5137:::-;5279:3;5300:67;5364:2;5359:3;5300:67;:::i;:::-;5293:74;;5376:93;5465:3;5376:93;:::i;:::-;5494:2;5489:3;5485:12;5478:19;;5137:366;;;:::o;5509:::-;5651:3;5672:67;5736:2;5731:3;5672:67;:::i;:::-;5665:74;;5748:93;5837:3;5748:93;:::i;:::-;5866:2;5861:3;5857:12;5850:19;;5509:366;;;:::o;5881:::-;6023:3;6044:67;6108:2;6103:3;6044:67;:::i;:::-;6037:74;;6120:93;6209:3;6120:93;:::i;:::-;6238:2;6233:3;6229:12;6222:19;;5881:366;;;:::o;6253:365::-;6395:3;6416:66;6480:1;6475:3;6416:66;:::i;:::-;6409:73;;6491:93;6580:3;6491:93;:::i;:::-;6609:2;6604:3;6600:12;6593:19;;6253:365;;;:::o;6624:366::-;6766:3;6787:67;6851:2;6846:3;6787:67;:::i;:::-;6780:74;;6863:93;6952:3;6863:93;:::i;:::-;6981:2;6976:3;6972:12;6965:19;;6624:366;;;:::o;6996:::-;7138:3;7159:67;7223:2;7218:3;7159:67;:::i;:::-;7152:74;;7235:93;7324:3;7235:93;:::i;:::-;7353:2;7348:3;7344:12;7337:19;;6996:366;;;:::o;7368:::-;7510:3;7531:67;7595:2;7590:3;7531:67;:::i;:::-;7524:74;;7607:93;7696:3;7607:93;:::i;:::-;7725:2;7720:3;7716:12;7709:19;;7368:366;;;:::o;7740:::-;7882:3;7903:67;7967:2;7962:3;7903:67;:::i;:::-;7896:74;;7979:93;8068:3;7979:93;:::i;:::-;8097:2;8092:3;8088:12;8081:19;;7740:366;;;:::o;8112:::-;8254:3;8275:67;8339:2;8334:3;8275:67;:::i;:::-;8268:74;;8351:93;8440:3;8351:93;:::i;:::-;8469:2;8464:3;8460:12;8453:19;;8112:366;;;:::o;8484:::-;8626:3;8647:67;8711:2;8706:3;8647:67;:::i;:::-;8640:74;;8723:93;8812:3;8723:93;:::i;:::-;8841:2;8836:3;8832:12;8825:19;;8484:366;;;:::o;8856:::-;8998:3;9019:67;9083:2;9078:3;9019:67;:::i;:::-;9012:74;;9095:93;9184:3;9095:93;:::i;:::-;9213:2;9208:3;9204:12;9197:19;;8856:366;;;:::o;9228:::-;9370:3;9391:67;9455:2;9450:3;9391:67;:::i;:::-;9384:74;;9467:93;9556:3;9467:93;:::i;:::-;9585:2;9580:3;9576:12;9569:19;;9228:366;;;:::o;9600:118::-;9687:24;9705:5;9687:24;:::i;:::-;9682:3;9675:37;9600:118;;:::o;9724:112::-;9807:22;9823:5;9807:22;:::i;:::-;9802:3;9795:35;9724:112;;:::o;9842:222::-;9935:4;9973:2;9962:9;9958:18;9950:26;;9986:71;10054:1;10043:9;10039:17;10030:6;9986:71;:::i;:::-;9842:222;;;;:::o;10070:210::-;10157:4;10195:2;10184:9;10180:18;10172:26;;10208:65;10270:1;10259:9;10255:17;10246:6;10208:65;:::i;:::-;10070:210;;;;:::o;10286:313::-;10399:4;10437:2;10426:9;10422:18;10414:26;;10486:9;10480:4;10476:20;10472:1;10461:9;10457:17;10450:47;10514:78;10587:4;10578:6;10514:78;:::i;:::-;10506:86;;10286:313;;;;:::o;10605:419::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10858:9;10852:4;10848:20;10844:1;10833:9;10829:17;10822:47;10886:131;11012:4;10886:131;:::i;:::-;10878:139;;10605:419;;;:::o;11030:::-;11196:4;11234:2;11223:9;11219:18;11211:26;;11283:9;11277:4;11273:20;11269:1;11258:9;11254:17;11247:47;11311:131;11437:4;11311:131;:::i;:::-;11303:139;;11030:419;;;:::o;11455:::-;11621:4;11659:2;11648:9;11644:18;11636:26;;11708:9;11702:4;11698:20;11694:1;11683:9;11679:17;11672:47;11736:131;11862:4;11736:131;:::i;:::-;11728:139;;11455:419;;;:::o;11880:::-;12046:4;12084:2;12073:9;12069:18;12061:26;;12133:9;12127:4;12123:20;12119:1;12108:9;12104:17;12097:47;12161:131;12287:4;12161:131;:::i;:::-;12153:139;;11880:419;;;:::o;12305:::-;12471:4;12509:2;12498:9;12494:18;12486:26;;12558:9;12552:4;12548:20;12544:1;12533:9;12529:17;12522:47;12586:131;12712:4;12586:131;:::i;:::-;12578:139;;12305:419;;;:::o;12730:::-;12896:4;12934:2;12923:9;12919:18;12911:26;;12983:9;12977:4;12973:20;12969:1;12958:9;12954:17;12947:47;13011:131;13137:4;13011:131;:::i;:::-;13003:139;;12730:419;;;:::o;13155:::-;13321:4;13359:2;13348:9;13344:18;13336:26;;13408:9;13402:4;13398:20;13394:1;13383:9;13379:17;13372:47;13436:131;13562:4;13436:131;:::i;:::-;13428:139;;13155:419;;;:::o;13580:::-;13746:4;13784:2;13773:9;13769:18;13761:26;;13833:9;13827:4;13823:20;13819:1;13808:9;13804:17;13797:47;13861:131;13987:4;13861:131;:::i;:::-;13853:139;;13580:419;;;:::o;14005:::-;14171:4;14209:2;14198:9;14194:18;14186:26;;14258:9;14252:4;14248:20;14244:1;14233:9;14229:17;14222:47;14286:131;14412:4;14286:131;:::i;:::-;14278:139;;14005:419;;;:::o;14430:::-;14596:4;14634:2;14623:9;14619:18;14611:26;;14683:9;14677:4;14673:20;14669:1;14658:9;14654:17;14647:47;14711:131;14837:4;14711:131;:::i;:::-;14703:139;;14430:419;;;:::o;14855:::-;15021:4;15059:2;15048:9;15044:18;15036:26;;15108:9;15102:4;15098:20;15094:1;15083:9;15079:17;15072:47;15136:131;15262:4;15136:131;:::i;:::-;15128:139;;14855:419;;;:::o;15280:::-;15446:4;15484:2;15473:9;15469:18;15461:26;;15533:9;15527:4;15523:20;15519:1;15508:9;15504:17;15497:47;15561:131;15687:4;15561:131;:::i;:::-;15553:139;;15280:419;;;:::o;15705:::-;15871:4;15909:2;15898:9;15894:18;15886:26;;15958:9;15952:4;15948:20;15944:1;15933:9;15929:17;15922:47;15986:131;16112:4;15986:131;:::i;:::-;15978:139;;15705:419;;;:::o;16130:::-;16296:4;16334:2;16323:9;16319:18;16311:26;;16383:9;16377:4;16373:20;16369:1;16358:9;16354:17;16347:47;16411:131;16537:4;16411:131;:::i;:::-;16403:139;;16130:419;;;:::o;16555:222::-;16648:4;16686:2;16675:9;16671:18;16663:26;;16699:71;16767:1;16756:9;16752:17;16743:6;16699:71;:::i;:::-;16555:222;;;;:::o;16783:214::-;16872:4;16910:2;16899:9;16895:18;16887:26;;16923:67;16987:1;16976:9;16972:17;16963:6;16923:67;:::i;:::-;16783:214;;;;:::o;17084:99::-;17136:6;17170:5;17164:12;17154:22;;17084:99;;;:::o;17189:169::-;17273:11;17307:6;17302:3;17295:19;17347:4;17342:3;17338:14;17323:29;;17189:169;;;;:::o;17364:305::-;17404:3;17423:20;17441:1;17423:20;:::i;:::-;17418:25;;17457:20;17475:1;17457:20;:::i;:::-;17452:25;;17611:1;17543:66;17539:74;17536:1;17533:81;17530:107;;;17617:18;;:::i;:::-;17530:107;17661:1;17658;17654:9;17647:16;;17364:305;;;;:::o;17675:191::-;17715:4;17735:20;17753:1;17735:20;:::i;:::-;17730:25;;17769:20;17787:1;17769:20;:::i;:::-;17764:25;;17808:1;17805;17802:8;17799:34;;;17813:18;;:::i;:::-;17799:34;17858:1;17855;17851:9;17843:17;;17675:191;;;;:::o;17872:96::-;17909:7;17938:24;17956:5;17938:24;:::i;:::-;17927:35;;17872:96;;;:::o;17974:90::-;18008:7;18051:5;18044:13;18037:21;18026:32;;17974:90;;;:::o;18070:126::-;18107:7;18147:42;18140:5;18136:54;18125:65;;18070:126;;;:::o;18202:77::-;18239:7;18268:5;18257:16;;18202:77;;;:::o;18285:86::-;18320:7;18360:4;18353:5;18349:16;18338:27;;18285:86;;;:::o;18377:307::-;18445:1;18455:113;18469:6;18466:1;18463:13;18455:113;;;18554:1;18549:3;18545:11;18539:18;18535:1;18530:3;18526:11;18519:39;18491:2;18488:1;18484:10;18479:15;;18455:113;;;18586:6;18583:1;18580:13;18577:101;;;18666:1;18657:6;18652:3;18648:16;18641:27;18577:101;18426:258;18377:307;;;:::o;18690:320::-;18734:6;18771:1;18765:4;18761:12;18751:22;;18818:1;18812:4;18808:12;18839:18;18829:81;;18895:4;18887:6;18883:17;18873:27;;18829:81;18957:2;18949:6;18946:14;18926:18;18923:38;18920:84;;;18976:18;;:::i;:::-;18920:84;18741:269;18690:320;;;:::o;19016:180::-;19064:77;19061:1;19054:88;19161:4;19158:1;19151:15;19185:4;19182:1;19175:15;19202:180;19250:77;19247:1;19240:88;19347:4;19344:1;19337:15;19371:4;19368:1;19361:15;19511:117;19620:1;19617;19610:12;19634:102;19675:6;19726:2;19722:7;19717:2;19710:5;19706:14;19702:28;19692:38;;19634:102;;;:::o;19742:222::-;19882:34;19878:1;19870:6;19866:14;19859:58;19951:5;19946:2;19938:6;19934:15;19927:30;19742:222;:::o;19970:221::-;20110:34;20106:1;20098:6;20094:14;20087:58;20179:4;20174:2;20166:6;20162:15;20155:29;19970:221;:::o;20197:225::-;20337:34;20333:1;20325:6;20321:14;20314:58;20406:8;20401:2;20393:6;20389:15;20382:33;20197:225;:::o;20428:221::-;20568:34;20564:1;20556:6;20552:14;20545:58;20637:4;20632:2;20624:6;20620:15;20613:29;20428:221;:::o;20655:225::-;20795:34;20791:1;20783:6;20779:14;20772:58;20864:8;20859:2;20851:6;20847:15;20840:33;20655:225;:::o;20886:156::-;21026:8;21022:1;21014:6;21010:14;21003:32;20886:156;:::o;21048:227::-;21188:34;21184:1;21176:6;21172:14;21165:58;21257:10;21252:2;21244:6;21240:15;21233:35;21048:227;:::o;21281:182::-;21421:34;21417:1;21409:6;21405:14;21398:58;21281:182;:::o;21469:220::-;21609:34;21605:1;21597:6;21593:14;21586:58;21678:3;21673:2;21665:6;21661:15;21654:28;21469:220;:::o;21695:172::-;21835:24;21831:1;21823:6;21819:14;21812:48;21695:172;:::o;21873:224::-;22013:34;22009:1;22001:6;21997:14;21990:58;22082:7;22077:2;22069:6;22065:15;22058:32;21873:224;:::o;22103:223::-;22243:34;22239:1;22231:6;22227:14;22220:58;22312:6;22307:2;22299:6;22295:15;22288:31;22103:223;:::o;22332:224::-;22472:34;22468:1;22460:6;22456:14;22449:58;22541:7;22536:2;22528:6;22524:15;22517:32;22332:224;:::o;22562:161::-;22702:13;22698:1;22690:6;22686:14;22679:37;22562:161;:::o;22729:122::-;22802:24;22820:5;22802:24;:::i;:::-;22795:5;22792:35;22782:63;;22841:1;22838;22831:12;22782:63;22729:122;:::o;22857:116::-;22927:21;22942:5;22927:21;:::i;:::-;22920:5;22917:32;22907:60;;22963:1;22960;22953:12;22907:60;22857:116;:::o;22979:122::-;23052:24;23070:5;23052:24;:::i;:::-;23045:5;23042:35;23032:63;;23091:1;23088;23081:12;23032:63;22979:122;:::o
Swarm Source
ipfs://20d91fd9b5ddc4ef910e41b6e1a7e2eb1d316d11501597a995a67737ccb4f5ff
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.