ERC-20
Overview
Max Total Supply
1,000,000 REMIL
Holders
292
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
12,192.368474008783175418 REMILValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Remillions
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-06 */ //@dev 1,000,000 unique Remillios with unique Attributes // 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 contracts/PepeToken.sol pragma solidity ^0.8.0; contract Remillions is Ownable, ERC20 { bool public limited; uint256 public maxHoldingAmount; uint256 public minHoldingAmount; address public uniswapV2Pair; mapping(address => bool) public blacklists; constructor(uint256 _totalSupply) ERC20("Remillions", "REMIL") { _mint(msg.sender, _totalSupply); } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner { limited = _limited; uniswapV2Pair = _uniswapV2Pair; maxHoldingAmount = _maxHoldingAmount; minHoldingAmount = _minHoldingAmount; } 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 && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid"); } } function burn(uint256 value) external { _burn(msg.sender, value); } mapping(uint index => address holder) _holders; mapping(address holder => uint index) _holder_index; uint public holders_count; function get_holders_list( uint index, uint count ) external view returns (uint page_count, address[] memory accounts) { if (index >= holders_count) return (0, new address[](0)); uint end = index + count; if (end > holders_count) { end = holders_count; } page_count = end - index; accounts = new address[](page_count); uint i; for (i = index; i < page_count; ++i) { accounts[i] = _holders[index + i]; } } function add_holder(address value) internal { uint index = holders_count++; _holders[index] = value; _holder_index[value] = index; } function remove_holder(address value) internal { if (holders_count == 0) return; uint removingIndex = _holder_index[value]; if (removingIndex != holders_count - 1) { address lastHolder = _holders[holders_count - 1]; _holders[removingIndex] = lastHolder; _holder_index[lastHolder] = removingIndex; } --holders_count; delete _holder_index[value]; delete _holders[holders_count]; } uint constant MAX_GENS_START = 1000; uint public constant GEN_MIN = 1; uint public constant gen_max = MAX_GENS_START; uint public gen = MAX_GENS_START; uint public constant max_breed = 1000; mapping(address owner => uint) public counts; uint public breed_total_count; uint breed_id; function _transfer_breed_from_to_by_index( address account, uint index, address to ) private { string memory breed = ""; } function transfer_breed_from_to_by_index(uint index, address to) external { require(index < counts[msg.sender], "incorrect index"); _transfer_breed_from_to_by_index(msg.sender, index, to); } function gen_mode(uint value) private returns (uint) { value = (value * gen) / gen_max; if (value == 0) value = 1; if (gen > GEN_MIN) --gen; return value; } function buy( address to, uint256 amount ) internal { uint last_balance = balanceOf(to); uint balance = last_balance + amount; uint count = balance / (10 ** decimals()) - last_balance / (10 ** decimals()); uint i; for (i = 0; i < count; ++i) { string memory breed = "Breed(++breed_id, gen_mode(max_breed))"; } } function sell( address from, uint256 amount ) internal { uint last_balance = balanceOf(from); uint balance = last_balance - amount; uint count = last_balance / (10 ** decimals()) - balance / (10 ** decimals()); uint i; uint owner_count = counts[from]; for (i = 0; i < count; ++i) { if (gen < gen_max) ++gen; if (owner_count > 0) (from, --owner_count); } } function transfer_internal( address from, address to, uint256 amount ) internal { uint last_balance_from = balanceOf(from); uint balance_from = last_balance_from - amount; uint last_balance_to = balanceOf(to); uint balance_to = last_balance_to + amount; uint count_from = last_balance_from / (10 ** decimals()) - balance_from / (10 ** decimals()); uint count_to = balance_to / (10 ** decimals()) - last_balance_to / (10 ** decimals()); // calculate transfer count uint transfer_count = count_from; if (transfer_count > count_to) transfer_count = count_to; // transfer uint i; uint owner_count = counts[from]; for (i = 0; i < transfer_count; ++i) { if (owner_count == 0) break; uint from_index = --owner_count; } uint transfered = i; // remove from for (i = transfer_count; i < count_from; ++i) { uint from_index = --owner_count; } // generate to for (i = transfered; i < count_to; ++i) { } } function get_svg_acc_index( address account, uint index ) external view returns (string memory) { } function get_account_breeds( address account, uint index, uint count ) external view returns (uint page_count, string[] memory accounts) { uint account_count = counts[account]; uint end = index + count; if (end > account_count) { end = account_count; } page_count = end - index; uint i; for (i = 0; i < page_count; ++i) { } } function get_account_items( address account, uint index, uint count ) external view returns (uint page_count, string[] memory accounts) { uint account_count = counts[account]; uint end = index + count; if (end > account_count) { end = account_count; } page_count = end - index; uint i; for (i = 0; i < page_count; ++i) { } } function get_account_svgs( address account, uint index, uint count ) external view returns (uint page_count, string[] memory accounts) { uint account_count = counts[account]; if (index >= account_count) return (0, new string[](0)); uint end = index + count; if (end > account_count) { end = account_count; page_count = index - end; } accounts = new string[](page_count); uint i; uint n = 0; for (i = index; i < end; ++i) { } } uint background_color; uint body; uint body_color; uint facial_hair; uint facial_hair_color; uint shirt_1; uint shirt_1_color; uint shirt_2; uint shirt_2_color; uint shirt_3; uint shirt_3_color; uint nose; uint nose_color; uint mouth; uint mouth_color; uint eyes_base_color; uint eyes; uint eyes_color; uint hair; uint hair_color; uint hat; uint hat_color; uint accessories; uint accessories_color; uint mask; uint mask_color; function setBackground_color(uint _background_color) external onlyOwner{ background_color = _background_color; } function setBody(uint _body) external onlyOwner{ body = _body; } function setBody_color(uint _body_color) external onlyOwner { body_color = _body_color; } function setFacial_hair(uint _facial_hair) external onlyOwner { facial_hair = _facial_hair; } function setFacial_hair_color(uint _facial_hair_color) external onlyOwner{ facial_hair_color = _facial_hair_color; } function setShirt_1(uint _shirt_1) external onlyOwner{ shirt_1 = _shirt_1; } function setShirt_1_color(uint _shirt_1_color) external onlyOwner{ shirt_1_color = _shirt_1_color; } function setShirt_2(uint _shirt_2) external onlyOwner{ shirt_2 = _shirt_2; } function setShirt_2_color(uint _shirt_2_color) external onlyOwner{ shirt_2_color = _shirt_2_color; } function setShirt_3(uint _shirt_3) external onlyOwner{ shirt_3 = _shirt_3; } function setShirt_3_color(uint _shirt_3_color) external onlyOwner{ shirt_3_color = _shirt_3_color; } function setNose(uint _nose) external onlyOwner{ nose = _nose; } function setNose_color(uint _nose_color) external onlyOwner{ nose_color = _nose_color; } function setMouth(uint _mouth) external onlyOwner{ mouth = _mouth; } function setMouth_color(uint _mouth_color) external onlyOwner{ mouth_color = _mouth_color; } function setEyes_base_color(uint _eyes_base_color) external onlyOwner{ eyes_base_color = _eyes_base_color; } function setEyes(uint _eyes) external onlyOwner { eyes = _eyes; } function setEyes_color(uint _eyes_color) external onlyOwner{ eyes_color = _eyes_color; } function setHair(uint _hair) external onlyOwner{ hair = _hair; } function setHair_color(uint _hair_color) external onlyOwner{ hair_color = _hair_color; } function setHat(uint _hat) external onlyOwner{ hat = _hat; } function setHat_color(uint _hat_color) external onlyOwner{ hat_color = _hat_color; } function setAccessories(uint _accessories) external onlyOwner{ accessories = _accessories; } function setAccessories_color(uint _accessories_color) external { accessories_color = _accessories_color; } function setMask(uint _mask) external onlyOwner{ mask = _mask; } function setMask_color(uint _mask_color) external onlyOwner{ mask_color = _mask_color; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"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":[],"name":"GEN_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":[],"name":"breed_total_count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"counts","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":[],"name":"gen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gen_max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"get_account_breeds","outputs":[{"internalType":"uint256","name":"page_count","type":"uint256"},{"internalType":"string[]","name":"accounts","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"get_account_items","outputs":[{"internalType":"uint256","name":"page_count","type":"uint256"},{"internalType":"string[]","name":"accounts","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"get_account_svgs","outputs":[{"internalType":"uint256","name":"page_count","type":"uint256"},{"internalType":"string[]","name":"accounts","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"get_holders_list","outputs":[{"internalType":"uint256","name":"page_count","type":"uint256"},{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"get_svg_acc_index","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holders_count","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":"max_breed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","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":"uint256","name":"_accessories","type":"uint256"}],"name":"setAccessories","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_accessories_color","type":"uint256"}],"name":"setAccessories_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_background_color","type":"uint256"}],"name":"setBackground_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_body","type":"uint256"}],"name":"setBody","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_body_color","type":"uint256"}],"name":"setBody_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes","type":"uint256"}],"name":"setEyes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes_base_color","type":"uint256"}],"name":"setEyes_base_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eyes_color","type":"uint256"}],"name":"setEyes_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_facial_hair","type":"uint256"}],"name":"setFacial_hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_facial_hair_color","type":"uint256"}],"name":"setFacial_hair_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hair","type":"uint256"}],"name":"setHair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hair_color","type":"uint256"}],"name":"setHair_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hat","type":"uint256"}],"name":"setHat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hat_color","type":"uint256"}],"name":"setHat_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mask","type":"uint256"}],"name":"setMask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mask_color","type":"uint256"}],"name":"setMask_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mouth","type":"uint256"}],"name":"setMouth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mouth_color","type":"uint256"}],"name":"setMouth_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nose","type":"uint256"}],"name":"setNose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nose_color","type":"uint256"}],"name":"setNose_color","outputs":[],"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":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_1","type":"uint256"}],"name":"setShirt_1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_1_color","type":"uint256"}],"name":"setShirt_1_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_2","type":"uint256"}],"name":"setShirt_2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_2_color","type":"uint256"}],"name":"setShirt_2_color","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_3","type":"uint256"}],"name":"setShirt_3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shirt_3_color","type":"uint256"}],"name":"setShirt_3_color","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":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"transfer_breed_from_to_by_index","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526103e8600e55348015610015575f5ffd5b50604051614b84380380614b84833981810160405281019061003791906106b8565b6040518060400160405280600a81526020017f52656d696c6c696f6e73000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f52454d494c0000000000000000000000000000000000000000000000000000008152506100bf6100b46100f760201b60201c565b6100fe60201b60201c565b81600490816100ce9190610917565b5080600590816100de9190610917565b5050506100f133826101bf60201b60201c565b50610c1e565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610a40565b60405180910390fd5b61023e5f838361032360201b60201c565b8060035f82825461024f9190610a8b565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102a29190610a8b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103069190610acd565b60405180910390a361031f5f838361060f60201b60201c565b5050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156103c15750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f790610b30565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105175761046261061460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104d357506104a461061460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990610b98565b60405180910390fd5b61060a565b60065f9054906101000a900460ff16801561057e575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561060957600754816105968461063b60201b60201c565b6105a09190610a8b565b111580156105c95750600854816105bc8461063b60201b60201c565b6105c69190610a8b565b10155b610608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ff90610c00565b60405180910390fd5b5b5b505050565b505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5ffd5b5f819050919050565b61069781610685565b81146106a1575f5ffd5b50565b5f815190506106b28161068e565b92915050565b5f602082840312156106cd576106cc610681565b5b5f6106da848285016106a4565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061075e57607f821691505b6020821081036107715761077061071a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610798565b6107dd8683610798565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61081861081361080e84610685565b6107f5565b610685565b9050919050565b5f819050919050565b610831836107fe565b61084561083d8261081f565b8484546107a4565b825550505050565b5f5f905090565b61085c61084d565b610867818484610828565b505050565b5b8181101561088a5761087f5f82610854565b60018101905061086d565b5050565b601f8211156108cf576108a081610777565b6108a984610789565b810160208510156108b8578190505b6108cc6108c485610789565b83018261086c565b50505b505050565b5f82821c905092915050565b5f6108ef5f19846008026108d4565b1980831691505092915050565b5f61090783836108e0565b9150826002028217905092915050565b610920826106e3565b67ffffffffffffffff811115610939576109386106ed565b5b6109438254610747565b61094e82828561088e565b5f60209050601f83116001811461097f575f841561096d578287015190505b61097785826108fc565b8655506109de565b601f19841661098d86610777565b5f5b828110156109b45784890151825560018201915060208501945060208101905061098f565b868310156109d157848901516109cd601f8916826108e0565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a2a601f836109e6565b9150610a35826109f6565b602082019050919050565b5f6020820190508181035f830152610a5781610a1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a9582610685565b9150610aa083610685565b9250828201905080821115610ab857610ab7610a5e565b5b92915050565b610ac781610685565b82525050565b5f602082019050610ae05f830184610abe565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f610b1a600b836109e6565b9150610b2582610ae6565b602082019050919050565b5f6020820190508181035f830152610b4781610b0e565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f610b826016836109e6565b9150610b8d82610b4e565b602082019050919050565b5f6020820190508181035f830152610baf81610b76565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610bea6006836109e6565b9150610bf582610bb6565b602082019050919050565b5f6020820190508181035f830152610c1781610bde565b9050919050565b613f5980610c2b5f395ff3fe608060405234801561000f575f5ffd5b50600436106103ad575f3560e01c8063715018a6116101f2578063ad3f593f11610118578063d5a42606116100ab578063e9f4852c1161007a578063e9f4852c14610b15578063f2fde38b14610b31578063fcccebce14610b4d578063fe52166f14610b69576103ad565b8063d5a4260614610a7a578063dd62ed3e14610aab578063dde415fa14610adb578063e144d29914610af9576103ad565b8063b4f243a4116100e7578063b4f243a4146109f6578063b97830d914610a26578063be04524514610a42578063becae69814610a5e576103ad565b8063ad3f593f14610982578063af504def1461099e578063b42dfa0d146109bc578063b4377a3e146109da576103ad565b80638da5cb5b1161019057806398bafaa31161015f57806398bafaa3146108d557806398f3d20f14610906578063a457c2d714610922578063a9059cbb14610952576103ad565b80638da5cb5b1461085f5780638fdada4a1461087d57806391f887de1461089b57806395d89b41146108b7576103ad565b8063750e8d10116101cc578063750e8d10146107d6578063860a32ec146108075780638947ec541461082557806389f9a1d314610841576103ad565b8063715018a614610794578063721808f61461079e57806373397eaf146107ba576103ad565b80633860a393116102d757806349842090116102755780635821927f116102445780635821927f146107105780635dd33cb71461072c578063664c587d1461074857806370a0823114610764576103ad565b8063498420901461069e57806349bd5a5e146106ba5780634ea95600146106d85780634fbdf0b9146106f4576103ad565b8063404e5129116102b1578063404e51291461062e578063412a61ad1461064a57806342966c681461066657806345de4e5f14610682576103ad565b80633860a393146105b157806339509351146105e25780633aa633aa14610612576103ad565b806316c021291161034f5780632482dbda1161031e5780632482dbda1461053d5780632d12d34b14610559578063313ce5671461057757806335e6647c14610595576103ad565b806316c02129146104a157806318160ddd146104d15780631ab99e12146104ef57806323b872dd1461050d576103ad565b80630568e65e1161038b5780630568e65e1461040757806306fdde0314610437578063095ea7b31461045557806310d7f1bc14610485576103ad565b8063012c1ea3146103b1578063018a3741146103cd5780630464995d146103eb575b5f5ffd5b6103cb60048036038101906103c69190612fd4565b610b85565b005b6103d5610c0b565b6040516103e2919061300e565b60405180910390f35b61040560048036038101906104009190612fd4565b610c11565b005b610421600480360381019061041c9190613081565b610c97565b60405161042e919061300e565b60405180910390f35b61043f610cac565b60405161044c919061311c565b60405180910390f35b61046f600480360381019061046a919061313c565b610d3c565b60405161047c9190613194565b60405180910390f35b61049f600480360381019061049a9190612fd4565b610d59565b005b6104bb60048036038101906104b69190613081565b610ddf565b6040516104c89190613194565b60405180910390f35b6104d9610dfc565b6040516104e6919061300e565b60405180910390f35b6104f7610e05565b604051610504919061300e565b60405180910390f35b610527600480360381019061052291906131ad565b610e0b565b6040516105349190613194565b60405180910390f35b61055760048036038101906105529190612fd4565b610efd565b005b610561610f07565b60405161056e919061300e565b60405180910390f35b61057f610f0c565b60405161058c9190613218565b60405180910390f35b6105af60048036038101906105aa9190612fd4565b610f14565b005b6105cb60048036038101906105c69190613231565b610f9a565b6040516105d9929190613326565b60405180910390f35b6105fc60048036038101906105f7919061313c565b61111c565b6040516106099190613194565b60405180910390f35b61062c6004803603810190610627919061337e565b6111c3565b005b610648600480360381019061064391906133e2565b6112ac565b005b610664600480360381019061065f9190612fd4565b611380565b005b610680600480360381019061067b9190612fd4565b611406565b005b61069c60048036038101906106979190612fd4565b611413565b005b6106b860048036038101906106b39190612fd4565b611499565b005b6106c261151f565b6040516106cf919061342f565b60405180910390f35b6106f260048036038101906106ed9190612fd4565b611544565b005b61070e60048036038101906107099190612fd4565b6115ca565b005b61072a60048036038101906107259190612fd4565b611650565b005b61074660048036038101906107419190612fd4565b6116d6565b005b610762600480360381019061075d9190612fd4565b61175c565b005b61077e60048036038101906107799190613081565b6117e2565b60405161078b919061300e565b60405180910390f35b61079c611828565b005b6107b860048036038101906107b39190612fd4565b6118af565b005b6107d460048036038101906107cf9190612fd4565b611935565b005b6107f060048036038101906107eb9190613448565b6119bb565b6040516107fe92919061359b565b60405180910390f35b61080f611a4b565b60405161081c9190613194565b60405180910390f35b61083f600480360381019061083a9190612fd4565b611a5d565b005b610849611ae3565b604051610856919061300e565b60405180910390f35b610867611ae9565b604051610874919061342f565b60405180910390f35b610885611b10565b604051610892919061300e565b60405180910390f35b6108b560048036038101906108b09190612fd4565b611b16565b005b6108bf611b9c565b6040516108cc919061311c565b60405180910390f35b6108ef60048036038101906108ea9190613448565b611c2c565b6040516108fd92919061359b565b60405180910390f35b610920600480360381019061091b9190612fd4565b611cbc565b005b61093c6004803603810190610937919061313c565b611d42565b6040516109499190613194565b60405180910390f35b61096c6004803603810190610967919061313c565b611e28565b6040516109799190613194565b60405180910390f35b61099c60048036038101906109979190612fd4565b611e45565b005b6109a6611ecb565b6040516109b3919061300e565b60405180910390f35b6109c4611ed1565b6040516109d1919061300e565b60405180910390f35b6109f460048036038101906109ef91906135c9565b611ed7565b005b610a106004803603810190610a0b919061313c565b611f65565b604051610a1d919061311c565b60405180910390f35b610a406004803603810190610a3b9190612fd4565b611f6d565b005b610a5c6004803603810190610a579190612fd4565b611ff3565b005b610a786004803603810190610a739190612fd4565b612079565b005b610a946004803603810190610a8f9190613448565b6120ff565b604051610aa292919061359b565b60405180910390f35b610ac56004803603810190610ac09190613607565b612245565b604051610ad2919061300e565b60405180910390f35b610ae36122c7565b604051610af0919061300e565b60405180910390f35b610b136004803603810190610b0e9190612fd4565b6122cd565b005b610b2f6004803603810190610b2a9190612fd4565b612353565b005b610b4b6004803603810190610b469190613081565b6123d9565b005b610b676004803603810190610b629190612fd4565b6124cf565b005b610b836004803603810190610b7e9190612fd4565b612555565b005b610b8d6125db565b73ffffffffffffffffffffffffffffffffffffffff16610bab611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061368f565b60405180910390fd5b8060168190555050565b600d5481565b610c196125db565b73ffffffffffffffffffffffffffffffffffffffff16610c37611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061368f565b60405180910390fd5b8060208190555050565b600f602052805f5260405f205f915090505481565b606060048054610cbb906136da565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce7906136da565b8015610d325780601f10610d0957610100808354040283529160200191610d32565b820191905f5260205f20905b815481529060010190602001808311610d1557829003601f168201915b5050505050905090565b5f610d4f610d486125db565b84846125e2565b6001905092915050565b610d616125db565b73ffffffffffffffffffffffffffffffffffffffff16610d7f611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc9061368f565b60405180910390fd5b8060258190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f610e178484846127a5565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e5e6125db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed49061377a565b60405180910390fd5b610ef185610ee96125db565b8584036125e2565b60019150509392505050565b8060298190555050565b600181565b5f6012905090565b610f1c6125db565b73ffffffffffffffffffffffffffffffffffffffff16610f3a611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f879061368f565b60405180910390fd5b8060148190555050565b5f6060600d548410610ff9575f5f67ffffffffffffffff811115610fc157610fc0613798565b5b604051908082528060200260200182016040528015610fef5781602001602082028036833780820191505090505b5091509150611115565b5f838561100691906137f2565b9050600d5481111561101857600d5490505b84816110249190613825565b92508267ffffffffffffffff8111156110405761103f613798565b5b60405190808252806020026020018201604052801561106e5781602001602082028036833780820191505090505b5091505f8590505b8381101561111257600b5f828861108d91906137f2565b81526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181106110cd576110cc613858565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050806001019050611076565b50505b9250929050565b5f6111b96111286125db565b848460025f6111356125db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111b491906137f2565b6125e2565b6001905092915050565b6111cb6125db565b73ffffffffffffffffffffffffffffffffffffffff166111e9611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112369061368f565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6112b46125db565b73ffffffffffffffffffffffffffffffffffffffff166112d2611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f9061368f565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6113886125db565b73ffffffffffffffffffffffffffffffffffffffff166113a6611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f39061368f565b60405180910390fd5b8060138190555050565b6114103382612a1d565b50565b61141b6125db565b73ffffffffffffffffffffffffffffffffffffffff16611439611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061368f565b60405180910390fd5b8060228190555050565b6114a16125db565b73ffffffffffffffffffffffffffffffffffffffff166114bf611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c9061368f565b60405180910390fd5b80601f8190555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61154c6125db565b73ffffffffffffffffffffffffffffffffffffffff1661156a611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061368f565b60405180910390fd5b8060188190555050565b6115d26125db565b73ffffffffffffffffffffffffffffffffffffffff166115f0611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d9061368f565b60405180910390fd5b80602b8190555050565b6116586125db565b73ffffffffffffffffffffffffffffffffffffffff16611676611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c39061368f565b60405180910390fd5b8060288190555050565b6116de6125db565b73ffffffffffffffffffffffffffffffffffffffff166116fc611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117499061368f565b60405180910390fd5b80601c8190555050565b6117646125db565b73ffffffffffffffffffffffffffffffffffffffff16611782611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf9061368f565b60405180910390fd5b80602a8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6118306125db565b73ffffffffffffffffffffffffffffffffffffffff1661184e611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061368f565b60405180910390fd5b6118ad5f612beb565b565b6118b76125db565b73ffffffffffffffffffffffffffffffffffffffff166118d5611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119229061368f565b60405180910390fd5b8060128190555050565b61193d6125db565b73ffffffffffffffffffffffffffffffffffffffff1661195b611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a89061368f565b60405180910390fd5b8060268190555050565b5f60605f600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611a0c91906137f2565b905081811115611a1a578190505b8581611a269190613825565b93505f5f90505b84811015611a4057806001019050611a2d565b505050935093915050565b60065f9054906101000a900460ff1681565b611a656125db565b73ffffffffffffffffffffffffffffffffffffffff16611a83611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad09061368f565b60405180910390fd5b80601d8190555050565b60075481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103e881565b611b1e6125db565b73ffffffffffffffffffffffffffffffffffffffff16611b3c611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b899061368f565b60405180910390fd5b8060198190555050565b606060058054611bab906136da565b80601f0160208091040260200160405190810160405280929190818152602001828054611bd7906136da565b8015611c225780601f10611bf957610100808354040283529160200191611c22565b820191905f5260205f20905b815481529060010190602001808311611c0557829003601f168201915b5050505050905090565b5f60605f600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611c7d91906137f2565b905081811115611c8b578190505b8581611c979190613825565b93505f5f90505b84811015611cb157806001019050611c9e565b505050935093915050565b611cc46125db565b73ffffffffffffffffffffffffffffffffffffffff16611ce2611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f9061368f565b60405180910390fd5b80601b8190555050565b5f5f60025f611d4f6125db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e00906138f5565b60405180910390fd5b611e1d611e146125db565b858584036125e2565b600191505092915050565b5f611e3b611e346125db565b84846127a5565b6001905092915050565b611e4d6125db565b73ffffffffffffffffffffffffffffffffffffffff16611e6b611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb89061368f565b60405180910390fd5b80601e8190555050565b60105481565b600e5481565b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548210611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d9061395d565b60405180910390fd5b611f61338383612cac565b5050565b606092915050565b611f756125db565b73ffffffffffffffffffffffffffffffffffffffff16611f93611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe09061368f565b60405180910390fd5b8060238190555050565b611ffb6125db565b73ffffffffffffffffffffffffffffffffffffffff16612019611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461206f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120669061368f565b60405180910390fd5b8060218190555050565b6120816125db565b73ffffffffffffffffffffffffffffffffffffffff1661209f611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec9061368f565b60405180910390fd5b80601a8190555050565b5f60605f600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508085106121a3575f5f67ffffffffffffffff81111561216557612164613798565b5b60405190808252806020026020018201604052801561219857816020015b60608152602001906001900390816121835790505b50925092505061223d565b5f84866121b091906137f2565b9050818111156121cc5781905080866121c99190613825565b93505b8367ffffffffffffffff8111156121e6576121e5613798565b5b60405190808252806020026020018201604052801561221957816020015b60608152602001906001900390816122045790505b5092505f5f5f90508791505b8282101561223857816001019150612225565b505050505b935093915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6103e881565b6122d56125db565b73ffffffffffffffffffffffffffffffffffffffff166122f3611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614612349576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123409061368f565b60405180910390fd5b8060178190555050565b61235b6125db565b73ffffffffffffffffffffffffffffffffffffffff16612379611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c69061368f565b60405180910390fd5b8060278190555050565b6123e16125db565b73ffffffffffffffffffffffffffffffffffffffff166123ff611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c9061368f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ba906139eb565b60405180910390fd5b6124cc81612beb565b50565b6124d76125db565b73ffffffffffffffffffffffffffffffffffffffff166124f5611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461254b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125429061368f565b60405180910390fd5b8060248190555050565b61255d6125db565b73ffffffffffffffffffffffffffffffffffffffff1661257b611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146125d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c89061368f565b60405180910390fd5b8060158190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264790613a79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590613b07565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612798919061300e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280a90613b95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890613c23565b60405180910390fd5b61288c838383612cc4565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290790613cb1565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546129a091906137f2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a04919061300e565b60405180910390a3612a17848484612f98565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8290613d3f565b60405180910390fd5b612a96825f83612cc4565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1190613dcd565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254612b6f9190613825565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd3919061300e565b60405180910390a3612be6835f84612f98565b505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60405180602001604052805f815250905050505050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612d625750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9890613e35565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612eac57612dfd611ae9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612e685750612e39611ae9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9e90613e9d565b60405180910390fd5b612f93565b60065f9054906101000a900460ff168015612f13575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612f925760075481612f25846117e2565b612f2f91906137f2565b11158015612f52575060085481612f45846117e2565b612f4f91906137f2565b10155b612f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8890613f05565b60405180910390fd5b5b5b505050565b505050565b5f5ffd5b5f819050919050565b612fb381612fa1565b8114612fbd575f5ffd5b50565b5f81359050612fce81612faa565b92915050565b5f60208284031215612fe957612fe8612f9d565b5b5f612ff684828501612fc0565b91505092915050565b61300881612fa1565b82525050565b5f6020820190506130215f830184612fff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61305082613027565b9050919050565b61306081613046565b811461306a575f5ffd5b50565b5f8135905061307b81613057565b92915050565b5f6020828403121561309657613095612f9d565b5b5f6130a38482850161306d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6130ee826130ac565b6130f881856130b6565b93506131088185602086016130c6565b613111816130d4565b840191505092915050565b5f6020820190508181035f83015261313481846130e4565b905092915050565b5f5f6040838503121561315257613151612f9d565b5b5f61315f8582860161306d565b925050602061317085828601612fc0565b9150509250929050565b5f8115159050919050565b61318e8161317a565b82525050565b5f6020820190506131a75f830184613185565b92915050565b5f5f5f606084860312156131c4576131c3612f9d565b5b5f6131d18682870161306d565b93505060206131e28682870161306d565b92505060406131f386828701612fc0565b9150509250925092565b5f60ff82169050919050565b613212816131fd565b82525050565b5f60208201905061322b5f830184613209565b92915050565b5f5f6040838503121561324757613246612f9d565b5b5f61325485828601612fc0565b925050602061326585828601612fc0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132a181613046565b82525050565b5f6132b28383613298565b60208301905092915050565b5f602082019050919050565b5f6132d48261326f565b6132de8185613279565b93506132e983613289565b805f5b8381101561331957815161330088826132a7565b975061330b836132be565b9250506001810190506132ec565b5085935050505092915050565b5f6040820190506133395f830185612fff565b818103602083015261334b81846132ca565b90509392505050565b61335d8161317a565b8114613367575f5ffd5b50565b5f8135905061337881613354565b92915050565b5f5f5f5f6080858703121561339657613395612f9d565b5b5f6133a38782880161336a565b94505060206133b48782880161306d565b93505060406133c587828801612fc0565b92505060606133d687828801612fc0565b91505092959194509250565b5f5f604083850312156133f8576133f7612f9d565b5b5f6134058582860161306d565b92505060206134168582860161336a565b9150509250929050565b61342981613046565b82525050565b5f6020820190506134425f830184613420565b92915050565b5f5f5f6060848603121561345f5761345e612f9d565b5b5f61346c8682870161306d565b935050602061347d86828701612fc0565b925050604061348e86828701612fc0565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6134db826130ac565b6134e581856134c1565b93506134f58185602086016130c6565b6134fe816130d4565b840191505092915050565b5f61351483836134d1565b905092915050565b5f602082019050919050565b5f61353282613498565b61353c81856134a2565b93508360208202850161354e856134b2565b805f5b85811015613589578484038952815161356a8582613509565b94506135758361351c565b925060208a01995050600181019050613551565b50829750879550505050505092915050565b5f6040820190506135ae5f830185612fff565b81810360208301526135c08184613528565b90509392505050565b5f5f604083850312156135df576135de612f9d565b5b5f6135ec85828601612fc0565b92505060206135fd8582860161306d565b9150509250929050565b5f5f6040838503121561361d5761361c612f9d565b5b5f61362a8582860161306d565b925050602061363b8582860161306d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136796020836130b6565b915061368482613645565b602082019050919050565b5f6020820190508181035f8301526136a68161366d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806136f157607f821691505b602082108103613704576137036136ad565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6137646028836130b6565b915061376f8261370a565b604082019050919050565b5f6020820190508181035f83015261379181613758565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137fc82612fa1565b915061380783612fa1565b925082820190508082111561381f5761381e6137c5565b5b92915050565b5f61382f82612fa1565b915061383a83612fa1565b9250828203905081811115613852576138516137c5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6138df6025836130b6565b91506138ea82613885565b604082019050919050565b5f6020820190508181035f83015261390c816138d3565b9050919050565b7f696e636f727265637420696e64657800000000000000000000000000000000005f82015250565b5f613947600f836130b6565b915061395282613913565b602082019050919050565b5f6020820190508181035f8301526139748161393b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139d56026836130b6565b91506139e08261397b565b604082019050919050565b5f6020820190508181035f830152613a02816139c9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a636024836130b6565b9150613a6e82613a09565b604082019050919050565b5f6020820190508181035f830152613a9081613a57565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af16022836130b6565b9150613afc82613a97565b604082019050919050565b5f6020820190508181035f830152613b1e81613ae5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b7f6025836130b6565b9150613b8a82613b25565b604082019050919050565b5f6020820190508181035f830152613bac81613b73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c0d6023836130b6565b9150613c1882613bb3565b604082019050919050565b5f6020820190508181035f830152613c3a81613c01565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c9b6026836130b6565b9150613ca682613c41565b604082019050919050565b5f6020820190508181035f830152613cc881613c8f565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d296021836130b6565b9150613d3482613ccf565b604082019050919050565b5f6020820190508181035f830152613d5681613d1d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613db76022836130b6565b9150613dc282613d5d565b604082019050919050565b5f6020820190508181035f830152613de481613dab565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613e1f600b836130b6565b9150613e2a82613deb565b602082019050919050565b5f6020820190508181035f830152613e4c81613e13565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f613e876016836130b6565b9150613e9282613e53565b602082019050919050565b5f6020820190508181035f830152613eb481613e7b565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f613eef6006836130b6565b9150613efa82613ebb565b602082019050919050565b5f6020820190508181035f830152613f1c81613ee3565b905091905056fea264697066735822122002af21b7066ead8bd323d5dc7575ee2ff5df3794191b4e369d8034511a33099264736f6c634300081b003300000000000000000000000000000000000000000000d3c21bcecceda1000000
Deployed Bytecode
0x608060405234801561000f575f5ffd5b50600436106103ad575f3560e01c8063715018a6116101f2578063ad3f593f11610118578063d5a42606116100ab578063e9f4852c1161007a578063e9f4852c14610b15578063f2fde38b14610b31578063fcccebce14610b4d578063fe52166f14610b69576103ad565b8063d5a4260614610a7a578063dd62ed3e14610aab578063dde415fa14610adb578063e144d29914610af9576103ad565b8063b4f243a4116100e7578063b4f243a4146109f6578063b97830d914610a26578063be04524514610a42578063becae69814610a5e576103ad565b8063ad3f593f14610982578063af504def1461099e578063b42dfa0d146109bc578063b4377a3e146109da576103ad565b80638da5cb5b1161019057806398bafaa31161015f57806398bafaa3146108d557806398f3d20f14610906578063a457c2d714610922578063a9059cbb14610952576103ad565b80638da5cb5b1461085f5780638fdada4a1461087d57806391f887de1461089b57806395d89b41146108b7576103ad565b8063750e8d10116101cc578063750e8d10146107d6578063860a32ec146108075780638947ec541461082557806389f9a1d314610841576103ad565b8063715018a614610794578063721808f61461079e57806373397eaf146107ba576103ad565b80633860a393116102d757806349842090116102755780635821927f116102445780635821927f146107105780635dd33cb71461072c578063664c587d1461074857806370a0823114610764576103ad565b8063498420901461069e57806349bd5a5e146106ba5780634ea95600146106d85780634fbdf0b9146106f4576103ad565b8063404e5129116102b1578063404e51291461062e578063412a61ad1461064a57806342966c681461066657806345de4e5f14610682576103ad565b80633860a393146105b157806339509351146105e25780633aa633aa14610612576103ad565b806316c021291161034f5780632482dbda1161031e5780632482dbda1461053d5780632d12d34b14610559578063313ce5671461057757806335e6647c14610595576103ad565b806316c02129146104a157806318160ddd146104d15780631ab99e12146104ef57806323b872dd1461050d576103ad565b80630568e65e1161038b5780630568e65e1461040757806306fdde0314610437578063095ea7b31461045557806310d7f1bc14610485576103ad565b8063012c1ea3146103b1578063018a3741146103cd5780630464995d146103eb575b5f5ffd5b6103cb60048036038101906103c69190612fd4565b610b85565b005b6103d5610c0b565b6040516103e2919061300e565b60405180910390f35b61040560048036038101906104009190612fd4565b610c11565b005b610421600480360381019061041c9190613081565b610c97565b60405161042e919061300e565b60405180910390f35b61043f610cac565b60405161044c919061311c565b60405180910390f35b61046f600480360381019061046a919061313c565b610d3c565b60405161047c9190613194565b60405180910390f35b61049f600480360381019061049a9190612fd4565b610d59565b005b6104bb60048036038101906104b69190613081565b610ddf565b6040516104c89190613194565b60405180910390f35b6104d9610dfc565b6040516104e6919061300e565b60405180910390f35b6104f7610e05565b604051610504919061300e565b60405180910390f35b610527600480360381019061052291906131ad565b610e0b565b6040516105349190613194565b60405180910390f35b61055760048036038101906105529190612fd4565b610efd565b005b610561610f07565b60405161056e919061300e565b60405180910390f35b61057f610f0c565b60405161058c9190613218565b60405180910390f35b6105af60048036038101906105aa9190612fd4565b610f14565b005b6105cb60048036038101906105c69190613231565b610f9a565b6040516105d9929190613326565b60405180910390f35b6105fc60048036038101906105f7919061313c565b61111c565b6040516106099190613194565b60405180910390f35b61062c6004803603810190610627919061337e565b6111c3565b005b610648600480360381019061064391906133e2565b6112ac565b005b610664600480360381019061065f9190612fd4565b611380565b005b610680600480360381019061067b9190612fd4565b611406565b005b61069c60048036038101906106979190612fd4565b611413565b005b6106b860048036038101906106b39190612fd4565b611499565b005b6106c261151f565b6040516106cf919061342f565b60405180910390f35b6106f260048036038101906106ed9190612fd4565b611544565b005b61070e60048036038101906107099190612fd4565b6115ca565b005b61072a60048036038101906107259190612fd4565b611650565b005b61074660048036038101906107419190612fd4565b6116d6565b005b610762600480360381019061075d9190612fd4565b61175c565b005b61077e60048036038101906107799190613081565b6117e2565b60405161078b919061300e565b60405180910390f35b61079c611828565b005b6107b860048036038101906107b39190612fd4565b6118af565b005b6107d460048036038101906107cf9190612fd4565b611935565b005b6107f060048036038101906107eb9190613448565b6119bb565b6040516107fe92919061359b565b60405180910390f35b61080f611a4b565b60405161081c9190613194565b60405180910390f35b61083f600480360381019061083a9190612fd4565b611a5d565b005b610849611ae3565b604051610856919061300e565b60405180910390f35b610867611ae9565b604051610874919061342f565b60405180910390f35b610885611b10565b604051610892919061300e565b60405180910390f35b6108b560048036038101906108b09190612fd4565b611b16565b005b6108bf611b9c565b6040516108cc919061311c565b60405180910390f35b6108ef60048036038101906108ea9190613448565b611c2c565b6040516108fd92919061359b565b60405180910390f35b610920600480360381019061091b9190612fd4565b611cbc565b005b61093c6004803603810190610937919061313c565b611d42565b6040516109499190613194565b60405180910390f35b61096c6004803603810190610967919061313c565b611e28565b6040516109799190613194565b60405180910390f35b61099c60048036038101906109979190612fd4565b611e45565b005b6109a6611ecb565b6040516109b3919061300e565b60405180910390f35b6109c4611ed1565b6040516109d1919061300e565b60405180910390f35b6109f460048036038101906109ef91906135c9565b611ed7565b005b610a106004803603810190610a0b919061313c565b611f65565b604051610a1d919061311c565b60405180910390f35b610a406004803603810190610a3b9190612fd4565b611f6d565b005b610a5c6004803603810190610a579190612fd4565b611ff3565b005b610a786004803603810190610a739190612fd4565b612079565b005b610a946004803603810190610a8f9190613448565b6120ff565b604051610aa292919061359b565b60405180910390f35b610ac56004803603810190610ac09190613607565b612245565b604051610ad2919061300e565b60405180910390f35b610ae36122c7565b604051610af0919061300e565b60405180910390f35b610b136004803603810190610b0e9190612fd4565b6122cd565b005b610b2f6004803603810190610b2a9190612fd4565b612353565b005b610b4b6004803603810190610b469190613081565b6123d9565b005b610b676004803603810190610b629190612fd4565b6124cf565b005b610b836004803603810190610b7e9190612fd4565b612555565b005b610b8d6125db565b73ffffffffffffffffffffffffffffffffffffffff16610bab611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061368f565b60405180910390fd5b8060168190555050565b600d5481565b610c196125db565b73ffffffffffffffffffffffffffffffffffffffff16610c37611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061368f565b60405180910390fd5b8060208190555050565b600f602052805f5260405f205f915090505481565b606060048054610cbb906136da565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce7906136da565b8015610d325780601f10610d0957610100808354040283529160200191610d32565b820191905f5260205f20905b815481529060010190602001808311610d1557829003601f168201915b5050505050905090565b5f610d4f610d486125db565b84846125e2565b6001905092915050565b610d616125db565b73ffffffffffffffffffffffffffffffffffffffff16610d7f611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc9061368f565b60405180910390fd5b8060258190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f610e178484846127a5565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e5e6125db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed49061377a565b60405180910390fd5b610ef185610ee96125db565b8584036125e2565b60019150509392505050565b8060298190555050565b600181565b5f6012905090565b610f1c6125db565b73ffffffffffffffffffffffffffffffffffffffff16610f3a611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f879061368f565b60405180910390fd5b8060148190555050565b5f6060600d548410610ff9575f5f67ffffffffffffffff811115610fc157610fc0613798565b5b604051908082528060200260200182016040528015610fef5781602001602082028036833780820191505090505b5091509150611115565b5f838561100691906137f2565b9050600d5481111561101857600d5490505b84816110249190613825565b92508267ffffffffffffffff8111156110405761103f613798565b5b60405190808252806020026020018201604052801561106e5781602001602082028036833780820191505090505b5091505f8590505b8381101561111257600b5f828861108d91906137f2565b81526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181106110cd576110cc613858565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050806001019050611076565b50505b9250929050565b5f6111b96111286125db565b848460025f6111356125db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111b491906137f2565b6125e2565b6001905092915050565b6111cb6125db565b73ffffffffffffffffffffffffffffffffffffffff166111e9611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112369061368f565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6112b46125db565b73ffffffffffffffffffffffffffffffffffffffff166112d2611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f9061368f565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6113886125db565b73ffffffffffffffffffffffffffffffffffffffff166113a6611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f39061368f565b60405180910390fd5b8060138190555050565b6114103382612a1d565b50565b61141b6125db565b73ffffffffffffffffffffffffffffffffffffffff16611439611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061368f565b60405180910390fd5b8060228190555050565b6114a16125db565b73ffffffffffffffffffffffffffffffffffffffff166114bf611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c9061368f565b60405180910390fd5b80601f8190555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61154c6125db565b73ffffffffffffffffffffffffffffffffffffffff1661156a611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061368f565b60405180910390fd5b8060188190555050565b6115d26125db565b73ffffffffffffffffffffffffffffffffffffffff166115f0611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d9061368f565b60405180910390fd5b80602b8190555050565b6116586125db565b73ffffffffffffffffffffffffffffffffffffffff16611676611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c39061368f565b60405180910390fd5b8060288190555050565b6116de6125db565b73ffffffffffffffffffffffffffffffffffffffff166116fc611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117499061368f565b60405180910390fd5b80601c8190555050565b6117646125db565b73ffffffffffffffffffffffffffffffffffffffff16611782611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf9061368f565b60405180910390fd5b80602a8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6118306125db565b73ffffffffffffffffffffffffffffffffffffffff1661184e611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061368f565b60405180910390fd5b6118ad5f612beb565b565b6118b76125db565b73ffffffffffffffffffffffffffffffffffffffff166118d5611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119229061368f565b60405180910390fd5b8060128190555050565b61193d6125db565b73ffffffffffffffffffffffffffffffffffffffff1661195b611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a89061368f565b60405180910390fd5b8060268190555050565b5f60605f600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611a0c91906137f2565b905081811115611a1a578190505b8581611a269190613825565b93505f5f90505b84811015611a4057806001019050611a2d565b505050935093915050565b60065f9054906101000a900460ff1681565b611a656125db565b73ffffffffffffffffffffffffffffffffffffffff16611a83611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad09061368f565b60405180910390fd5b80601d8190555050565b60075481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103e881565b611b1e6125db565b73ffffffffffffffffffffffffffffffffffffffff16611b3c611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b899061368f565b60405180910390fd5b8060198190555050565b606060058054611bab906136da565b80601f0160208091040260200160405190810160405280929190818152602001828054611bd7906136da565b8015611c225780601f10611bf957610100808354040283529160200191611c22565b820191905f5260205f20905b815481529060010190602001808311611c0557829003601f168201915b5050505050905090565b5f60605f600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611c7d91906137f2565b905081811115611c8b578190505b8581611c979190613825565b93505f5f90505b84811015611cb157806001019050611c9e565b505050935093915050565b611cc46125db565b73ffffffffffffffffffffffffffffffffffffffff16611ce2611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f9061368f565b60405180910390fd5b80601b8190555050565b5f5f60025f611d4f6125db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e00906138f5565b60405180910390fd5b611e1d611e146125db565b858584036125e2565b600191505092915050565b5f611e3b611e346125db565b84846127a5565b6001905092915050565b611e4d6125db565b73ffffffffffffffffffffffffffffffffffffffff16611e6b611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb89061368f565b60405180910390fd5b80601e8190555050565b60105481565b600e5481565b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548210611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d9061395d565b60405180910390fd5b611f61338383612cac565b5050565b606092915050565b611f756125db565b73ffffffffffffffffffffffffffffffffffffffff16611f93611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe09061368f565b60405180910390fd5b8060238190555050565b611ffb6125db565b73ffffffffffffffffffffffffffffffffffffffff16612019611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461206f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120669061368f565b60405180910390fd5b8060218190555050565b6120816125db565b73ffffffffffffffffffffffffffffffffffffffff1661209f611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec9061368f565b60405180910390fd5b80601a8190555050565b5f60605f600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508085106121a3575f5f67ffffffffffffffff81111561216557612164613798565b5b60405190808252806020026020018201604052801561219857816020015b60608152602001906001900390816121835790505b50925092505061223d565b5f84866121b091906137f2565b9050818111156121cc5781905080866121c99190613825565b93505b8367ffffffffffffffff8111156121e6576121e5613798565b5b60405190808252806020026020018201604052801561221957816020015b60608152602001906001900390816122045790505b5092505f5f5f90508791505b8282101561223857816001019150612225565b505050505b935093915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6103e881565b6122d56125db565b73ffffffffffffffffffffffffffffffffffffffff166122f3611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614612349576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123409061368f565b60405180910390fd5b8060178190555050565b61235b6125db565b73ffffffffffffffffffffffffffffffffffffffff16612379611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c69061368f565b60405180910390fd5b8060278190555050565b6123e16125db565b73ffffffffffffffffffffffffffffffffffffffff166123ff611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c9061368f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ba906139eb565b60405180910390fd5b6124cc81612beb565b50565b6124d76125db565b73ffffffffffffffffffffffffffffffffffffffff166124f5611ae9565b73ffffffffffffffffffffffffffffffffffffffff161461254b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125429061368f565b60405180910390fd5b8060248190555050565b61255d6125db565b73ffffffffffffffffffffffffffffffffffffffff1661257b611ae9565b73ffffffffffffffffffffffffffffffffffffffff16146125d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c89061368f565b60405180910390fd5b8060158190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264790613a79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590613b07565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612798919061300e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280a90613b95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890613c23565b60405180910390fd5b61288c838383612cc4565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290790613cb1565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546129a091906137f2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a04919061300e565b60405180910390a3612a17848484612f98565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8290613d3f565b60405180910390fd5b612a96825f83612cc4565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1190613dcd565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254612b6f9190613825565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd3919061300e565b60405180910390a3612be6835f84612f98565b505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60405180602001604052805f815250905050505050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612d625750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9890613e35565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612eac57612dfd611ae9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612e685750612e39611ae9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9e90613e9d565b60405180910390fd5b612f93565b60065f9054906101000a900460ff168015612f13575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612f925760075481612f25846117e2565b612f2f91906137f2565b11158015612f52575060085481612f45846117e2565b612f4f91906137f2565b10155b612f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8890613f05565b60405180910390fd5b5b5b505050565b505050565b5f5ffd5b5f819050919050565b612fb381612fa1565b8114612fbd575f5ffd5b50565b5f81359050612fce81612faa565b92915050565b5f60208284031215612fe957612fe8612f9d565b5b5f612ff684828501612fc0565b91505092915050565b61300881612fa1565b82525050565b5f6020820190506130215f830184612fff565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61305082613027565b9050919050565b61306081613046565b811461306a575f5ffd5b50565b5f8135905061307b81613057565b92915050565b5f6020828403121561309657613095612f9d565b5b5f6130a38482850161306d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6130ee826130ac565b6130f881856130b6565b93506131088185602086016130c6565b613111816130d4565b840191505092915050565b5f6020820190508181035f83015261313481846130e4565b905092915050565b5f5f6040838503121561315257613151612f9d565b5b5f61315f8582860161306d565b925050602061317085828601612fc0565b9150509250929050565b5f8115159050919050565b61318e8161317a565b82525050565b5f6020820190506131a75f830184613185565b92915050565b5f5f5f606084860312156131c4576131c3612f9d565b5b5f6131d18682870161306d565b93505060206131e28682870161306d565b92505060406131f386828701612fc0565b9150509250925092565b5f60ff82169050919050565b613212816131fd565b82525050565b5f60208201905061322b5f830184613209565b92915050565b5f5f6040838503121561324757613246612f9d565b5b5f61325485828601612fc0565b925050602061326585828601612fc0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132a181613046565b82525050565b5f6132b28383613298565b60208301905092915050565b5f602082019050919050565b5f6132d48261326f565b6132de8185613279565b93506132e983613289565b805f5b8381101561331957815161330088826132a7565b975061330b836132be565b9250506001810190506132ec565b5085935050505092915050565b5f6040820190506133395f830185612fff565b818103602083015261334b81846132ca565b90509392505050565b61335d8161317a565b8114613367575f5ffd5b50565b5f8135905061337881613354565b92915050565b5f5f5f5f6080858703121561339657613395612f9d565b5b5f6133a38782880161336a565b94505060206133b48782880161306d565b93505060406133c587828801612fc0565b92505060606133d687828801612fc0565b91505092959194509250565b5f5f604083850312156133f8576133f7612f9d565b5b5f6134058582860161306d565b92505060206134168582860161336a565b9150509250929050565b61342981613046565b82525050565b5f6020820190506134425f830184613420565b92915050565b5f5f5f6060848603121561345f5761345e612f9d565b5b5f61346c8682870161306d565b935050602061347d86828701612fc0565b925050604061348e86828701612fc0565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6134db826130ac565b6134e581856134c1565b93506134f58185602086016130c6565b6134fe816130d4565b840191505092915050565b5f61351483836134d1565b905092915050565b5f602082019050919050565b5f61353282613498565b61353c81856134a2565b93508360208202850161354e856134b2565b805f5b85811015613589578484038952815161356a8582613509565b94506135758361351c565b925060208a01995050600181019050613551565b50829750879550505050505092915050565b5f6040820190506135ae5f830185612fff565b81810360208301526135c08184613528565b90509392505050565b5f5f604083850312156135df576135de612f9d565b5b5f6135ec85828601612fc0565b92505060206135fd8582860161306d565b9150509250929050565b5f5f6040838503121561361d5761361c612f9d565b5b5f61362a8582860161306d565b925050602061363b8582860161306d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136796020836130b6565b915061368482613645565b602082019050919050565b5f6020820190508181035f8301526136a68161366d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806136f157607f821691505b602082108103613704576137036136ad565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6137646028836130b6565b915061376f8261370a565b604082019050919050565b5f6020820190508181035f83015261379181613758565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137fc82612fa1565b915061380783612fa1565b925082820190508082111561381f5761381e6137c5565b5b92915050565b5f61382f82612fa1565b915061383a83612fa1565b9250828203905081811115613852576138516137c5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6138df6025836130b6565b91506138ea82613885565b604082019050919050565b5f6020820190508181035f83015261390c816138d3565b9050919050565b7f696e636f727265637420696e64657800000000000000000000000000000000005f82015250565b5f613947600f836130b6565b915061395282613913565b602082019050919050565b5f6020820190508181035f8301526139748161393b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139d56026836130b6565b91506139e08261397b565b604082019050919050565b5f6020820190508181035f830152613a02816139c9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a636024836130b6565b9150613a6e82613a09565b604082019050919050565b5f6020820190508181035f830152613a9081613a57565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af16022836130b6565b9150613afc82613a97565b604082019050919050565b5f6020820190508181035f830152613b1e81613ae5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b7f6025836130b6565b9150613b8a82613b25565b604082019050919050565b5f6020820190508181035f830152613bac81613b73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c0d6023836130b6565b9150613c1882613bb3565b604082019050919050565b5f6020820190508181035f830152613c3a81613c01565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c9b6026836130b6565b9150613ca682613c41565b604082019050919050565b5f6020820190508181035f830152613cc881613c8f565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d296021836130b6565b9150613d3482613ccf565b604082019050919050565b5f6020820190508181035f830152613d5681613d1d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613db76022836130b6565b9150613dc282613d5d565b604082019050919050565b5f6020820190508181035f830152613de481613dab565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613e1f600b836130b6565b9150613e2a82613deb565b602082019050919050565b5f6020820190508181035f830152613e4c81613e13565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f613e876016836130b6565b9150613e9282613e53565b602082019050919050565b5f6020820190508181035f830152613eb481613e7b565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f613eef6006836130b6565b9150613efa82613ebb565b602082019050919050565b5f6020820190508181035f830152613f1c81613ee3565b905091905056fea264697066735822122002af21b7066ead8bd323d5dc7575ee2ff5df3794191b4e369d8034511a33099264736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000d3c21bcecceda1000000
-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 1000000000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000d3c21bcecceda1000000
Deployed Bytecode Sourcemap
19403:11184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28238:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20986:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29322:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22457:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9372:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11539:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29849:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19585:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10492:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19512:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12190:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30261:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22283:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10334:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28012:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21020:543;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13091:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19900:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19757:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27926:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20784:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29566:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29232:82;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19550:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28474:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30476:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30147:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28914:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30390:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10663:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2773:103;;;:::i;:::-;;27792:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29959:74;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26150:470;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;19448:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29036:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19474:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2122:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22322:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28596:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9591:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25676:466;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;28816:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13809:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11003:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29122:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22508:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22374:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22763:213;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25531:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29653:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29436:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28694:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26628:590;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11241:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22413:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28376:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30041:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3031:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29763:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28123:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28238:130;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28342:18:::1;28322:17;:38;;;;28238:130:::0;:::o;20986:25::-;;;;:::o;29322:106::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29408:12:::1;29394:11;:26;;;;29322:106:::0;:::o;22457:44::-;;;;;;;;;;;;;;;;;:::o;9372:100::-;9426:13;9459:5;9452:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9372:100;:::o;11539:169::-;11622:4;11639:39;11648:12;:10;:12::i;:::-;11662:7;11671:6;11639:8;:39::i;:::-;11696:4;11689:11;;11539:169;;;;:::o;29849:102::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29932:11:::1;29919:10;:24;;;;29849:102:::0;:::o;19585:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10492:108::-;10553:7;10580:12;;10573:19;;10492:108;:::o;19512:31::-;;;;:::o;12190:492::-;12330:4;12347:36;12357:6;12365:9;12376:6;12347:9;:36::i;:::-;12396:24;12423:11;:19;12435:6;12423:19;;;;;;;;;;;;;;;:33;12443:12;:10;:12::i;:::-;12423:33;;;;;;;;;;;;;;;;12396:60;;12495:6;12475:16;:26;;12467:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12582:57;12591:6;12599:12;:10;:12::i;:::-;12632:6;12613:16;:25;12582:8;:57::i;:::-;12670:4;12663:11;;;12190:492;;;;;:::o;30261:121::-;30356:18;30336:17;:38;;;;30261:121;:::o;22283:32::-;22314:1;22283:32;:::o;10334:93::-;10392:5;10417:2;10410:9;;10334:93;:::o;28012:103::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28096:11:::1;28083:10;:24;;;;28012:103:::0;:::o;21020:543::-;21118:15;21135:25;21186:13;;21177:5;:22;21173:56;;21209:1;21226;21212:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21201:28;;;;;;21173:56;21242:8;21261:5;21253;:13;;;;:::i;:::-;21242:24;;21287:13;;21281:3;:19;21277:71;;;21323:13;;21317:19;;21277:71;21377:5;21371:3;:11;;;;:::i;:::-;21358:24;;21420:10;21406:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21395:36;;21442:6;21468:5;21464:9;;21459:97;21479:10;21475:1;:14;21459:97;;;21525:8;:19;21542:1;21534:5;:9;;;;:::i;:::-;21525:19;;;;;;;;;;;;;;;;;;;;;21511:8;21520:1;21511:11;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21491:3;;;;;21459:97;;;21162:401;;21020:543;;;;;;:::o;13091:215::-;13179:4;13196:80;13205:12;:10;:12::i;:::-;13219:7;13265:10;13228:11;:25;13240:12;:10;:12::i;:::-;13228:25;;;;;;;;;;;;;;;:34;13254:7;13228:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13196:8;:80::i;:::-;13294:4;13287:11;;13091:215;;;;:::o;19900:301::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20050:8:::1;20040:7;;:18;;;;;;;;;;;;;;;;;;20085:14;20069:13;;:30;;;;;;;;;;;;;;;;;;20129:17;20110:16;:36;;;;20176:17;20157:16;:36;;;;19900:301:::0;;;;:::o;19757:135::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19869:15:::1;19846:10;:20;19857:8;19846:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19757:135:::0;;:::o;27926:78::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27991:5:::1;27984:4;:12;;;;27926:78:::0;:::o;20784:81::-;20833:24;20839:10;20851:5;20833;:24::i;:::-;20784:81;:::o;29566:79::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29632:5:::1;29625:4;:12;;;;29566:79:::0;:::o;29232:82::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29300:6:::1;29292:5;:14;;;;29232:82:::0;:::o;19550:28::-;;;;;;;;;;;;;:::o;28474:114::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28566:14:::1;28550:13;:30;;;;28474:114:::0;:::o;30476:102::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30559:11:::1;30546:10;:24;;;;30476:102:::0;:::o;30147:106::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30233:12:::1;30219:11;:26;;;;30147:106:::0;:::o;28914:114::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29006:14:::1;28990:13;:30;;;;28914:114:::0;:::o;30390:78::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30455:5:::1;30448:4;:12;;;;30390:78:::0;:::o;10663:127::-;10737:7;10764:9;:18;10774:7;10764:18;;;;;;;;;;;;;;;;10757:25;;10663:127;;;:::o;2773:103::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2838:30:::1;2865:1;2838:18;:30::i;:::-;2773:103::o:0;27792:126::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27893:17:::1;27874:16;:36;;;;27792:126:::0;:::o;29959:74::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30021:4:::1;30015:3;:10;;;;29959:74:::0;:::o;26150:470::-;26275:15;26292:24;26329:18;26350:6;:15;26357:7;26350:15;;;;;;;;;;;;;;;;26329:36;;26383:8;26402:5;26394;:13;;;;:::i;:::-;26383:24;;26428:13;26422:3;:19;26418:71;;;26464:13;26458:19;;26418:71;26518:5;26512:3;:11;;;;:::i;:::-;26499:24;;26544:6;26570:1;26566:5;;26561:52;26577:10;26573:1;:14;26561:52;;;26589:3;;;;;26561:52;;;26318:302;;;26150:470;;;;;;:::o;19448:19::-;;;;;;;;;;;;;:::o;29036:78::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29101:5:::1;29094:4;:12;;;;29036:78:::0;:::o;19474:31::-;;;;:::o;2122:87::-;2168:7;2195:6;;;;;;;;;;;2188:13;;2122:87;:::o;22322:45::-;22272:4;22322:45;:::o;28596:90::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28670:8:::1;28660:7;:18;;;;28596:90:::0;:::o;9591:104::-;9647:13;9680:7;9673:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9591:104;:::o;25676:466::-;25802:15;25819:24;25856:18;25877:6;:15;25884:7;25877:15;;;;;;;;;;;;;;;;25856:36;;25908:8;25927:5;25919;:13;;;;:::i;:::-;25908:24;;25953:13;25947:3;:19;25943:71;;;25989:13;25983:19;;25943:71;26043:5;26037:3;:11;;;;:::i;:::-;26024:24;;26067:6;26093:1;26089:5;;26084:51;26100:10;26096:1;:14;26084:51;;;26112:3;;;;;26084:51;;;25845:297;;;25676:466;;;;;;:::o;28816:90::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28890:8:::1;28880:7;:18;;;;28816:90:::0;:::o;13809:413::-;13902:4;13919:24;13946:11;:25;13958:12;:10;:12::i;:::-;13946:25;;;;;;;;;;;;;;;:34;13972:7;13946:34;;;;;;;;;;;;;;;;13919:61;;14019:15;13999:16;:35;;13991:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14112:67;14121:12;:10;:12::i;:::-;14135:7;14163:15;14144:16;:34;14112:8;:67::i;:::-;14210:4;14203:11;;;13809:413;;;;:::o;11003:175::-;11089:4;11106:42;11116:12;:10;:12::i;:::-;11130:9;11141:6;11106:9;:42::i;:::-;11166:4;11159:11;;11003:175;;;;:::o;29122:102::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29205:11:::1;29192:10;:24;;;;29122:102:::0;:::o;22508:29::-;;;;:::o;22374:32::-;;;;:::o;22763:213::-;22864:6;:18;22871:10;22864:18;;;;;;;;;;;;;;;;22856:5;:26;22848:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;22913:55;22946:10;22958:5;22965:2;22913:32;:55::i;:::-;22763:213;;:::o;25531:137::-;25635:13;25531:137;;;;:::o;29653:102::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29736:11:::1;29723:10;:24;;;;29653:102:::0;:::o;29436:122::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29534:16:::1;29516:15;:34;;;;29436:122:::0;:::o;28694:114::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28786:14:::1;28770:13;:30;;;;28694:114:::0;:::o;26628:590::-;26752:15;26769:24;26806:18;26827:6;:15;26834:7;26827:15;;;;;;;;;;;;;;;;26806:36;;26866:13;26857:5;:22;26853:55;;26889:1;26905;26892:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26881:27;;;;;;;26853:55;26921:8;26940:5;26932;:13;;;;:::i;:::-;26921:24;;26966:13;26960:3;:19;26956:110;;;27002:13;26996:19;;27051:3;27043:5;:11;;;;:::i;:::-;27030:24;;26956:110;27102:10;27089:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27078:35;;27124:6;27141;27150:1;27141:10;;27171:5;27167:9;;27162:49;27182:3;27178:1;:7;27162:49;;;27187:3;;;;;27162:49;;;26795:423;;;;26628:590;;;;;;;:::o;11241:151::-;11330:7;11357:11;:18;11369:5;11357:18;;;;;;;;;;;;;;;:27;11376:7;11357:27;;;;;;;;;;;;;;;;11350:34;;11241:151;;;;:::o;22413:37::-;22446:4;22413:37;:::o;28376:90::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28450:8:::1;28440:7;:18;;;;28376:90:::0;:::o;30041:98::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30121:10:::1;30109:9;:22;;;;30041:98:::0;:::o;3031:201::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3140:1:::1;3120:22;;:8;:22;;::::0;3112:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3196:28;3215:8;3196:18;:28::i;:::-;3031:201:::0;:::o;29763:78::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29828:5:::1;29821:4;:12;;;;29763:78:::0;:::o;28123:107::-;2353:12;:10;:12::i;:::-;2342:23;;:7;:5;:7::i;:::-;:23;;;2334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28210:12:::1;28196:11;:26;;;;28123:107:::0;:::o;840:98::-;893:7;920:10;913:17;;840:98;:::o;17493:380::-;17646:1;17629:19;;:5;:19;;;17621:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17727:1;17708:21;;:7;:21;;;17700:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17811:6;17781:11;:18;17793:5;17781:18;;;;;;;;;;;;;;;:27;17800:7;17781:27;;;;;;;;;;;;;;;:36;;;;17849:7;17833:32;;17842:5;17833:32;;;17858:6;17833:32;;;;;;:::i;:::-;;;;;;;;17493:380;;;:::o;14712:733::-;14870:1;14852:20;;:6;:20;;;14844:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14954:1;14933:23;;:9;:23;;;14925:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15009:47;15030:6;15038:9;15049:6;15009:20;:47::i;:::-;15069:21;15093:9;:17;15103:6;15093:17;;;;;;;;;;;;;;;;15069:41;;15146:6;15129:13;:23;;15121:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15267:6;15251:13;:22;15231:9;:17;15241:6;15231:17;;;;;;;;;;;;;;;:42;;;;15319:6;15295:9;:20;15305:9;15295:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15360:9;15343:35;;15352:6;15343:35;;;15371:6;15343:35;;;;;;:::i;:::-;;;;;;;;15391:46;15411:6;15419:9;15430:6;15391:19;:46::i;:::-;14833:612;14712:733;;;:::o;16464:591::-;16567:1;16548:21;;:7;:21;;;16540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16620:49;16641:7;16658:1;16662:6;16620:20;:49::i;:::-;16682:22;16707:9;:18;16717:7;16707:18;;;;;;;;;;;;;;;;16682:43;;16762:6;16744:14;:24;;16736:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16881:6;16864:14;:23;16843:9;:18;16853:7;16843:18;;;;;;;;;;;;;;;:44;;;;16925:6;16909:12;;:22;;;;;;;:::i;:::-;;;;;;;;16975:1;16949:37;;16958:7;16949:37;;;16979:6;16949:37;;;;;;:::i;:::-;;;;;;;;16999:48;17019:7;17036:1;17040:6;16999:19;:48::i;:::-;16529:526;16464:591;;:::o;3392:191::-;3466:16;3485:6;;;;;;;;;;;3466:25;;3511:8;3502:6;;:17;;;;;;;;;;;;;;;;;;3566:8;3535:40;;3556:8;3535:40;;;;;;;;;;;;3455:128;3392:191;:::o;22577:178::-;22713:19;:24;;;;;;;;;;;;;;22702:53;22577:178;;;:::o;20209:567::-;20361:10;:14;20372:2;20361:14;;;;;;;;;;;;;;;;;;;;;;;;;20360:15;:36;;;;;20380:10;:16;20391:4;20380:16;;;;;;;;;;;;;;;;;;;;;;;;;20379:17;20360:36;20352:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20454:1;20429:27;;:13;;;;;;;;;;;:27;;;20425:148;;20489:7;:5;:7::i;:::-;20481:15;;:4;:15;;;:32;;;;20506:7;:5;:7::i;:::-;20500:13;;:2;:13;;;20481:32;20473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20555:7;;20425:148;20589:7;;;;;;;;;;;:32;;;;;20608:13;;;;;;;;;;;20600:21;;:4;:21;;;20589:32;20585:184;;;20678:16;;20668:6;20646:19;20662:2;20646:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20730:16;;20720:6;20698:19;20714:2;20698:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20646:100;20638:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20585:184;20209:567;;;;:::o;19202:124::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:99::-;2271:6;2305:5;2299:12;2289:22;;2219:99;;;:::o;2324:169::-;2408:11;2442:6;2437:3;2430:19;2482:4;2477:3;2473:14;2458:29;;2324:169;;;;:::o;2499:139::-;2588:6;2583:3;2578;2572:23;2629:1;2620:6;2615:3;2611:16;2604:27;2499:139;;;:::o;2644:102::-;2685:6;2736:2;2732:7;2727:2;2720:5;2716:14;2712:28;2702:38;;2644:102;;;:::o;2752:377::-;2840:3;2868:39;2901:5;2868:39;:::i;:::-;2923:71;2987:6;2982:3;2923:71;:::i;:::-;2916:78;;3003:65;3061:6;3056:3;3049:4;3042:5;3038:16;3003:65;:::i;:::-;3093:29;3115:6;3093:29;:::i;:::-;3088:3;3084:39;3077:46;;2844:285;2752:377;;;;:::o;3135:313::-;3248:4;3286:2;3275:9;3271:18;3263:26;;3335:9;3329:4;3325:20;3321:1;3310:9;3306:17;3299:47;3363:78;3436:4;3427:6;3363:78;:::i;:::-;3355:86;;3135:313;;;;:::o;3454:474::-;3522:6;3530;3579:2;3567:9;3558:7;3554:23;3550:32;3547:119;;;3585:79;;:::i;:::-;3547:119;3705:1;3730:53;3775:7;3766:6;3755:9;3751:22;3730:53;:::i;:::-;3720:63;;3676:117;3832:2;3858:53;3903:7;3894:6;3883:9;3879:22;3858:53;:::i;:::-;3848:63;;3803:118;3454:474;;;;;:::o;3934:90::-;3968:7;4011:5;4004:13;3997:21;3986:32;;3934:90;;;:::o;4030:109::-;4111:21;4126:5;4111:21;:::i;:::-;4106:3;4099:34;4030:109;;:::o;4145:210::-;4232:4;4270:2;4259:9;4255:18;4247:26;;4283:65;4345:1;4334:9;4330:17;4321:6;4283:65;:::i;:::-;4145:210;;;;:::o;4361:619::-;4438:6;4446;4454;4503:2;4491:9;4482:7;4478:23;4474:32;4471:119;;;4509:79;;:::i;:::-;4471:119;4629:1;4654:53;4699:7;4690:6;4679:9;4675:22;4654:53;:::i;:::-;4644:63;;4600:117;4756:2;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4727:118;4884:2;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4855:118;4361:619;;;;;:::o;4986:86::-;5021:7;5061:4;5054:5;5050:16;5039:27;;4986:86;;;:::o;5078:112::-;5161:22;5177:5;5161:22;:::i;:::-;5156:3;5149:35;5078:112;;:::o;5196:214::-;5285:4;5323:2;5312:9;5308:18;5300:26;;5336:67;5400:1;5389:9;5385:17;5376:6;5336:67;:::i;:::-;5196:214;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:114::-;5963:6;5997:5;5991:12;5981:22;;5896:114;;;:::o;6016:184::-;6115:11;6149:6;6144:3;6137:19;6189:4;6184:3;6180:14;6165:29;;6016:184;;;;:::o;6206:132::-;6273:4;6296:3;6288:11;;6326:4;6321:3;6317:14;6309:22;;6206:132;;;:::o;6344:108::-;6421:24;6439:5;6421:24;:::i;:::-;6416:3;6409:37;6344:108;;:::o;6458:179::-;6527:10;6548:46;6590:3;6582:6;6548:46;:::i;:::-;6626:4;6621:3;6617:14;6603:28;;6458:179;;;;:::o;6643:113::-;6713:4;6745;6740:3;6736:14;6728:22;;6643:113;;;:::o;6792:732::-;6911:3;6940:54;6988:5;6940:54;:::i;:::-;7010:86;7089:6;7084:3;7010:86;:::i;:::-;7003:93;;7120:56;7170:5;7120:56;:::i;:::-;7199:7;7230:1;7215:284;7240:6;7237:1;7234:13;7215:284;;;7316:6;7310:13;7343:63;7402:3;7387:13;7343:63;:::i;:::-;7336:70;;7429:60;7482:6;7429:60;:::i;:::-;7419:70;;7275:224;7262:1;7259;7255:9;7250:14;;7215:284;;;7219:14;7515:3;7508:10;;6916:608;;;6792:732;;;;:::o;7530:483::-;7701:4;7739:2;7728:9;7724:18;7716:26;;7752:71;7820:1;7809:9;7805:17;7796:6;7752:71;:::i;:::-;7870:9;7864:4;7860:20;7855:2;7844:9;7840:18;7833:48;7898:108;8001:4;7992:6;7898:108;:::i;:::-;7890:116;;7530:483;;;;;:::o;8019:116::-;8089:21;8104:5;8089:21;:::i;:::-;8082:5;8079:32;8069:60;;8125:1;8122;8115:12;8069:60;8019:116;:::o;8141:133::-;8184:5;8222:6;8209:20;8200:29;;8238:30;8262:5;8238:30;:::i;:::-;8141:133;;;;:::o;8280:759::-;8363:6;8371;8379;8387;8436:3;8424:9;8415:7;8411:23;8407:33;8404:120;;;8443:79;;:::i;:::-;8404:120;8563:1;8588:50;8630:7;8621:6;8610:9;8606:22;8588:50;:::i;:::-;8578:60;;8534:114;8687:2;8713:53;8758:7;8749:6;8738:9;8734:22;8713:53;:::i;:::-;8703:63;;8658:118;8815:2;8841:53;8886:7;8877:6;8866:9;8862:22;8841:53;:::i;:::-;8831:63;;8786:118;8943:2;8969:53;9014:7;9005:6;8994:9;8990:22;8969:53;:::i;:::-;8959:63;;8914:118;8280:759;;;;;;;:::o;9045:468::-;9110:6;9118;9167:2;9155:9;9146:7;9142:23;9138:32;9135:119;;;9173:79;;:::i;:::-;9135:119;9293:1;9318:53;9363:7;9354:6;9343:9;9339:22;9318:53;:::i;:::-;9308:63;;9264:117;9420:2;9446:50;9488:7;9479:6;9468:9;9464:22;9446:50;:::i;:::-;9436:60;;9391:115;9045:468;;;;;:::o;9519:118::-;9606:24;9624:5;9606:24;:::i;:::-;9601:3;9594:37;9519:118;;:::o;9643:222::-;9736:4;9774:2;9763:9;9759:18;9751:26;;9787:71;9855:1;9844:9;9840:17;9831:6;9787:71;:::i;:::-;9643:222;;;;:::o;9871:619::-;9948:6;9956;9964;10013:2;10001:9;9992:7;9988:23;9984:32;9981:119;;;10019:79;;:::i;:::-;9981:119;10139:1;10164:53;10209:7;10200:6;10189:9;10185:22;10164:53;:::i;:::-;10154:63;;10110:117;10266:2;10292:53;10337:7;10328:6;10317:9;10313:22;10292:53;:::i;:::-;10282:63;;10237:118;10394:2;10420:53;10465:7;10456:6;10445:9;10441:22;10420:53;:::i;:::-;10410:63;;10365:118;9871:619;;;;;:::o;10496:124::-;10573:6;10607:5;10601:12;10591:22;;10496:124;;;:::o;10626:194::-;10735:11;10769:6;10764:3;10757:19;10809:4;10804:3;10800:14;10785:29;;10626:194;;;;:::o;10826:142::-;10903:4;10926:3;10918:11;;10956:4;10951:3;10947:14;10939:22;;10826:142;;;:::o;10974:159::-;11048:11;11082:6;11077:3;11070:19;11122:4;11117:3;11113:14;11098:29;;10974:159;;;;:::o;11139:357::-;11217:3;11245:39;11278:5;11245:39;:::i;:::-;11300:61;11354:6;11349:3;11300:61;:::i;:::-;11293:68;;11370:65;11428:6;11423:3;11416:4;11409:5;11405:16;11370:65;:::i;:::-;11460:29;11482:6;11460:29;:::i;:::-;11455:3;11451:39;11444:46;;11221:275;11139:357;;;;:::o;11502:196::-;11591:10;11626:66;11688:3;11680:6;11626:66;:::i;:::-;11612:80;;11502:196;;;;:::o;11704:123::-;11784:4;11816;11811:3;11807:14;11799:22;;11704:123;;;:::o;11861:991::-;12000:3;12029:64;12087:5;12029:64;:::i;:::-;12109:96;12198:6;12193:3;12109:96;:::i;:::-;12102:103;;12231:3;12276:4;12268:6;12264:17;12259:3;12255:27;12306:66;12366:5;12306:66;:::i;:::-;12395:7;12426:1;12411:396;12436:6;12433:1;12430:13;12411:396;;;12507:9;12501:4;12497:20;12492:3;12485:33;12558:6;12552:13;12586:84;12665:4;12650:13;12586:84;:::i;:::-;12578:92;;12693:70;12756:6;12693:70;:::i;:::-;12683:80;;12792:4;12787:3;12783:14;12776:21;;12471:336;12458:1;12455;12451:9;12446:14;;12411:396;;;12415:14;12823:4;12816:11;;12843:3;12836:10;;12005:847;;;;;11861:991;;;;:::o;12858:523::-;13049:4;13087:2;13076:9;13072:18;13064:26;;13100:71;13168:1;13157:9;13153:17;13144:6;13100:71;:::i;:::-;13218:9;13212:4;13208:20;13203:2;13192:9;13188:18;13181:48;13246:128;13369:4;13360:6;13246:128;:::i;:::-;13238:136;;12858:523;;;;;:::o;13387:474::-;13455:6;13463;13512:2;13500:9;13491:7;13487:23;13483:32;13480:119;;;13518:79;;:::i;:::-;13480:119;13638:1;13663:53;13708:7;13699:6;13688:9;13684:22;13663:53;:::i;:::-;13653:63;;13609:117;13765:2;13791:53;13836:7;13827:6;13816:9;13812:22;13791:53;:::i;:::-;13781:63;;13736:118;13387:474;;;;;:::o;13867:::-;13935:6;13943;13992:2;13980:9;13971:7;13967:23;13963:32;13960:119;;;13998:79;;:::i;:::-;13960:119;14118:1;14143:53;14188:7;14179:6;14168:9;14164:22;14143:53;:::i;:::-;14133:63;;14089:117;14245:2;14271:53;14316:7;14307:6;14296:9;14292:22;14271:53;:::i;:::-;14261:63;;14216:118;13867:474;;;;;:::o;14347:182::-;14487:34;14483:1;14475:6;14471:14;14464:58;14347:182;:::o;14535:366::-;14677:3;14698:67;14762:2;14757:3;14698:67;:::i;:::-;14691:74;;14774:93;14863:3;14774:93;:::i;:::-;14892:2;14887:3;14883:12;14876:19;;14535:366;;;:::o;14907:419::-;15073:4;15111:2;15100:9;15096:18;15088:26;;15160:9;15154:4;15150:20;15146:1;15135:9;15131:17;15124:47;15188:131;15314:4;15188:131;:::i;:::-;15180:139;;14907:419;;;:::o;15332:180::-;15380:77;15377:1;15370:88;15477:4;15474:1;15467:15;15501:4;15498:1;15491:15;15518:320;15562:6;15599:1;15593:4;15589:12;15579:22;;15646:1;15640:4;15636:12;15667:18;15657:81;;15723:4;15715:6;15711:17;15701:27;;15657:81;15785:2;15777:6;15774:14;15754:18;15751:38;15748:84;;15804:18;;:::i;:::-;15748:84;15569:269;15518:320;;;:::o;15844:227::-;15984:34;15980:1;15972:6;15968:14;15961:58;16053:10;16048:2;16040:6;16036:15;16029:35;15844:227;:::o;16077:366::-;16219:3;16240:67;16304:2;16299:3;16240:67;:::i;:::-;16233:74;;16316:93;16405:3;16316:93;:::i;:::-;16434:2;16429:3;16425:12;16418:19;;16077:366;;;:::o;16449:419::-;16615:4;16653:2;16642:9;16638:18;16630:26;;16702:9;16696:4;16692:20;16688:1;16677:9;16673:17;16666:47;16730:131;16856:4;16730:131;:::i;:::-;16722:139;;16449:419;;;:::o;16874:180::-;16922:77;16919:1;16912:88;17019:4;17016:1;17009:15;17043:4;17040:1;17033:15;17060:180;17108:77;17105:1;17098:88;17205:4;17202:1;17195:15;17229:4;17226:1;17219:15;17246:191;17286:3;17305:20;17323:1;17305:20;:::i;:::-;17300:25;;17339:20;17357:1;17339:20;:::i;:::-;17334:25;;17382:1;17379;17375:9;17368:16;;17403:3;17400:1;17397:10;17394:36;;;17410:18;;:::i;:::-;17394:36;17246:191;;;;:::o;17443:194::-;17483:4;17503:20;17521:1;17503:20;:::i;:::-;17498:25;;17537:20;17555:1;17537:20;:::i;:::-;17532:25;;17581:1;17578;17574:9;17566:17;;17605:1;17599:4;17596:11;17593:37;;;17610:18;;:::i;:::-;17593:37;17443:194;;;;:::o;17643:180::-;17691:77;17688:1;17681:88;17788:4;17785:1;17778:15;17812:4;17809:1;17802:15;17829:224;17969:34;17965:1;17957:6;17953:14;17946:58;18038:7;18033:2;18025:6;18021:15;18014:32;17829:224;:::o;18059:366::-;18201:3;18222:67;18286:2;18281:3;18222:67;:::i;:::-;18215:74;;18298:93;18387:3;18298:93;:::i;:::-;18416:2;18411:3;18407:12;18400:19;;18059:366;;;:::o;18431:419::-;18597:4;18635:2;18624:9;18620:18;18612:26;;18684:9;18678:4;18674:20;18670:1;18659:9;18655:17;18648:47;18712:131;18838:4;18712:131;:::i;:::-;18704:139;;18431:419;;;:::o;18856:165::-;18996:17;18992:1;18984:6;18980:14;18973:41;18856:165;:::o;19027:366::-;19169:3;19190:67;19254:2;19249:3;19190:67;:::i;:::-;19183:74;;19266:93;19355:3;19266:93;:::i;:::-;19384:2;19379:3;19375:12;19368:19;;19027:366;;;:::o;19399:419::-;19565:4;19603:2;19592:9;19588:18;19580:26;;19652:9;19646:4;19642:20;19638:1;19627:9;19623:17;19616:47;19680:131;19806:4;19680:131;:::i;:::-;19672:139;;19399:419;;;:::o;19824:225::-;19964:34;19960:1;19952:6;19948:14;19941:58;20033:8;20028:2;20020:6;20016:15;20009:33;19824:225;:::o;20055:366::-;20197:3;20218:67;20282:2;20277:3;20218:67;:::i;:::-;20211:74;;20294:93;20383:3;20294:93;:::i;:::-;20412:2;20407:3;20403:12;20396:19;;20055:366;;;:::o;20427:419::-;20593:4;20631:2;20620:9;20616:18;20608:26;;20680:9;20674:4;20670:20;20666:1;20655:9;20651:17;20644:47;20708:131;20834:4;20708:131;:::i;:::-;20700:139;;20427:419;;;:::o;20852:223::-;20992:34;20988:1;20980:6;20976:14;20969:58;21061:6;21056:2;21048:6;21044:15;21037:31;20852:223;:::o;21081:366::-;21223:3;21244:67;21308:2;21303:3;21244:67;:::i;:::-;21237:74;;21320:93;21409:3;21320:93;:::i;:::-;21438:2;21433:3;21429:12;21422:19;;21081:366;;;:::o;21453:419::-;21619:4;21657:2;21646:9;21642:18;21634:26;;21706:9;21700:4;21696:20;21692:1;21681:9;21677:17;21670:47;21734:131;21860:4;21734:131;:::i;:::-;21726:139;;21453:419;;;:::o;21878:221::-;22018:34;22014:1;22006:6;22002:14;21995:58;22087:4;22082:2;22074:6;22070:15;22063:29;21878:221;:::o;22105:366::-;22247:3;22268:67;22332:2;22327:3;22268:67;:::i;:::-;22261:74;;22344:93;22433:3;22344:93;:::i;:::-;22462:2;22457:3;22453:12;22446:19;;22105:366;;;:::o;22477:419::-;22643:4;22681:2;22670:9;22666:18;22658:26;;22730:9;22724:4;22720:20;22716:1;22705:9;22701:17;22694:47;22758:131;22884:4;22758:131;:::i;:::-;22750:139;;22477:419;;;:::o;22902:224::-;23042:34;23038:1;23030:6;23026:14;23019:58;23111:7;23106:2;23098:6;23094:15;23087:32;22902:224;:::o;23132:366::-;23274:3;23295:67;23359:2;23354:3;23295:67;:::i;:::-;23288:74;;23371:93;23460:3;23371:93;:::i;:::-;23489:2;23484:3;23480:12;23473:19;;23132:366;;;:::o;23504:419::-;23670:4;23708:2;23697:9;23693:18;23685:26;;23757:9;23751:4;23747:20;23743:1;23732:9;23728:17;23721:47;23785:131;23911:4;23785:131;:::i;:::-;23777:139;;23504:419;;;:::o;23929:222::-;24069:34;24065:1;24057:6;24053:14;24046:58;24138:5;24133:2;24125:6;24121:15;24114:30;23929:222;:::o;24157:366::-;24299:3;24320:67;24384:2;24379:3;24320:67;:::i;:::-;24313:74;;24396:93;24485:3;24396:93;:::i;:::-;24514:2;24509:3;24505:12;24498:19;;24157:366;;;:::o;24529:419::-;24695:4;24733:2;24722:9;24718:18;24710:26;;24782:9;24776:4;24772:20;24768:1;24757:9;24753:17;24746:47;24810:131;24936:4;24810:131;:::i;:::-;24802:139;;24529:419;;;:::o;24954:225::-;25094:34;25090:1;25082:6;25078:14;25071:58;25163:8;25158:2;25150:6;25146:15;25139:33;24954:225;:::o;25185:366::-;25327:3;25348:67;25412:2;25407:3;25348:67;:::i;:::-;25341:74;;25424:93;25513:3;25424:93;:::i;:::-;25542:2;25537:3;25533:12;25526:19;;25185:366;;;:::o;25557:419::-;25723:4;25761:2;25750:9;25746:18;25738:26;;25810:9;25804:4;25800:20;25796:1;25785:9;25781:17;25774:47;25838:131;25964:4;25838:131;:::i;:::-;25830:139;;25557:419;;;:::o;25982:220::-;26122:34;26118:1;26110:6;26106:14;26099:58;26191:3;26186:2;26178:6;26174:15;26167:28;25982:220;:::o;26208:366::-;26350:3;26371:67;26435:2;26430:3;26371:67;:::i;:::-;26364:74;;26447:93;26536:3;26447:93;:::i;:::-;26565:2;26560:3;26556:12;26549:19;;26208:366;;;:::o;26580:419::-;26746:4;26784:2;26773:9;26769:18;26761:26;;26833:9;26827:4;26823:20;26819:1;26808:9;26804:17;26797:47;26861:131;26987:4;26861:131;:::i;:::-;26853:139;;26580:419;;;:::o;27005:221::-;27145:34;27141:1;27133:6;27129:14;27122:58;27214:4;27209:2;27201:6;27197:15;27190:29;27005:221;:::o;27232:366::-;27374:3;27395:67;27459:2;27454:3;27395:67;:::i;:::-;27388:74;;27471:93;27560:3;27471:93;:::i;:::-;27589:2;27584:3;27580:12;27573:19;;27232:366;;;:::o;27604:419::-;27770:4;27808:2;27797:9;27793:18;27785:26;;27857:9;27851:4;27847:20;27843:1;27832:9;27828:17;27821:47;27885:131;28011:4;27885:131;:::i;:::-;27877:139;;27604:419;;;:::o;28029:161::-;28169:13;28165:1;28157:6;28153:14;28146:37;28029:161;:::o;28196:366::-;28338:3;28359:67;28423:2;28418:3;28359:67;:::i;:::-;28352:74;;28435:93;28524:3;28435:93;:::i;:::-;28553:2;28548:3;28544:12;28537:19;;28196:366;;;:::o;28568:419::-;28734:4;28772:2;28761:9;28757:18;28749:26;;28821:9;28815:4;28811:20;28807:1;28796:9;28792:17;28785:47;28849:131;28975:4;28849:131;:::i;:::-;28841:139;;28568:419;;;:::o;28993:172::-;29133:24;29129:1;29121:6;29117:14;29110:48;28993:172;:::o;29171:366::-;29313:3;29334:67;29398:2;29393:3;29334:67;:::i;:::-;29327:74;;29410:93;29499:3;29410:93;:::i;:::-;29528:2;29523:3;29519:12;29512:19;;29171:366;;;:::o;29543:419::-;29709:4;29747:2;29736:9;29732:18;29724:26;;29796:9;29790:4;29786:20;29782:1;29771:9;29767:17;29760:47;29824:131;29950:4;29824:131;:::i;:::-;29816:139;;29543:419;;;:::o;29968:156::-;30108:8;30104:1;30096:6;30092:14;30085:32;29968:156;:::o;30130:365::-;30272:3;30293:66;30357:1;30352:3;30293:66;:::i;:::-;30286:73;;30368:93;30457:3;30368:93;:::i;:::-;30486:2;30481:3;30477:12;30470:19;;30130:365;;;:::o;30501:419::-;30667:4;30705:2;30694:9;30690:18;30682:26;;30754:9;30748:4;30744:20;30740:1;30729:9;30725:17;30718:47;30782:131;30908:4;30782:131;:::i;:::-;30774:139;;30501:419;;;:::o
Swarm Source
ipfs://02af21b7066ead8bd323d5dc7575ee2ff5df3794191b4e369d8034511a330992
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.