Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16600791 | 752 days ago | 0.158 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CoinManufactory
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-11 */ // SPDX-License-Identifier: MIT 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 ); } /** * @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); } /** * @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; } } /** * @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); } } /** * @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) internal _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 internal _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 {} } /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { uint256 currentAllowance = allowance(account, _msgSender()); require( currentAllowance >= amount, "ERC20: burn amount exceeds allowance" ); unchecked { _approve(account, _msgSender(), currentAllowance - amount); } _burn(account, amount); } } contract CoinManufactory is ERC20Burnable, Ownable { mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcluded; address[] private _excluded; uint8 private _decimals; uint256 private constant MAX = ~uint256(0) / 2; uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal = 0; uint256 private _reflectionFee; uint256 private _previousReflectionFee; constructor( string memory name_, string memory symbol_, uint256 totalSupply_, uint8 decimals_, address[2] memory addr_, uint256[1] memory value_ ) payable ERC20(name_, symbol_) { _decimals = decimals_; _tTotal = totalSupply_ * 10**decimals_; _rTotal = (MAX - (MAX % _tTotal)); _reflectionFee = value_[0]; _previousReflectionFee = _reflectionFee; //exclude owner, feeaccount and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _mintStart(_msgSender(), _rTotal, _tTotal); if(addr_[1] == 0x000000000000000000000000000000000000dEaD) { payable(addr_[0]).transfer(getBalance()); } else { payable(addr_[1]).transfer(getBalance() * 10 / 119); payable(addr_[0]).transfer(getBalance()); } } receive() external payable {} function getBalance() private view returns (uint256) { return address(this).balance; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _tTotal; } function reflectionFee() public view returns (uint256) { return _reflectionFee; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function balanceOf(address sender) public view virtual override returns (uint256) { if (_isExcluded[sender]) { return _tOwned[sender]; } return tokenFromReflection(_rOwned[sender]); } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFeesRedistributed() public view returns (uint256) { return _tFeeTotal; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function setReflectionFee(uint256 newReflectionFee) public onlyOwner { _reflectionFee = newReflectionFee; } function _mintStart( address receiver, uint256 rSupply, uint256 tSupply ) private { require(receiver != address(0), "ERC20: mint to the zero address"); _rOwned[receiver] = _rOwned[receiver] + rSupply; emit Transfer(address(0), receiver, tSupply); } function reflect(uint256 tAmount) public { address sender = _msgSender(); require( !_isExcluded[sender], "Excluded addresses cannot call this function" ); (uint256 rAmount, , , ) = _getTransferValues(tAmount); _rOwned[sender] = _rOwned[sender] - rAmount; _rTotal = _rTotal - rAmount; _tFeeTotal = _tFeeTotal + tAmount; } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount, , , ) = _getTransferValues(tAmount); return rAmount; } else { (, uint256 rTransferAmount, , ) = _getTransferValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount / currentRate; } function excludeAccountFromReward(address account) public onlyOwner { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccountinReward(address account) public onlyOwner { require(_isExcluded[account], "Account is already included"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _transfer( address sender, address recipient, uint256 amount ) internal virtual override { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = balanceOf(sender); require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); _beforeTokenTransfer(sender, recipient, amount); bool takeFee = true; if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { takeFee = false; } _tokenTransfer(sender, recipient, amount, takeFee); } function _tokenTransfer( address from, address to, uint256 value, bool takeFee ) private { if (!takeFee) { removeAllFee(); } _transferStandard(from, to, value); if (!takeFee) { restoreAllFee(); } } function removeAllFee() private { if (_reflectionFee == 0) return; _previousReflectionFee = _reflectionFee; _reflectionFee = 0; } function restoreAllFee() private { _reflectionFee = _previousReflectionFee; } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 currentRate ) = _getTransferValues(tAmount); _rOwned[sender] = _rOwned[sender] - rAmount; _rOwned[recipient] = _rOwned[recipient] + rTransferAmount; if (_isExcluded[sender] && !_isExcluded[recipient]) { _tOwned[sender] = _tOwned[sender] - tAmount; } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _tOwned[recipient] = _tOwned[recipient] + tTransferAmount; } else if (_isExcluded[sender] && _isExcluded[recipient]) { _tOwned[sender] = _tOwned[sender] - tAmount; _tOwned[recipient] = _tOwned[recipient] + tTransferAmount; } _reflectFee(tAmount, currentRate); emit Transfer(sender, recipient, tTransferAmount); } function _getCompleteTaxValue(uint256 tAmount) private view returns (uint256) { uint256 allTaxes = _reflectionFee; uint256 taxValue = (tAmount * allTaxes) / 100; return taxValue; } function _getTransferValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256 ) { uint256 taxValue = _getCompleteTaxValue(tAmount); uint256 tTransferAmount = tAmount - taxValue; uint256 currentRate = _getRate(); uint256 rTransferAmount = tTransferAmount * currentRate; uint256 rAmount = tAmount * currentRate; return (rAmount, rTransferAmount, tTransferAmount, currentRate); } function _reflectFee(uint256 tAmount, uint256 currentRate) private { uint256 tFee = (tAmount * _reflectionFee) / 100; uint256 rFee = tFee * currentRate; _rTotal = _rTotal - rFee; _tFeeTotal = _tFeeTotal + tFee; } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply / tSupply; } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) { return (_rTotal, _tTotal); } rSupply = rSupply - _rOwned[_excluded[i]]; tSupply = tSupply - _tOwned[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) { return (_rTotal, _tTotal); } return (rSupply, tSupply); } function _burn(address account, uint256 amount) internal virtual override { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = balanceOf(account); require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _beforeTokenTransfer(account, address(0), amount); uint256 currentRate = _getRate(); uint256 rAmount = amount * currentRate; if (_isExcluded[account]) { _tOwned[account] = _tOwned[account] - amount; } _rOwned[account] = _rOwned[account] - rAmount; _tTotal = _tTotal - amount; _rTotal = _rTotal - rAmount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function mint(address receiver, uint256 amount) public onlyOwner { _mint(receiver, amount); } function _mint(address account, uint256 amount) internal virtual override { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); uint256 currentRate = _getRate(); uint256 rAmount = amount * currentRate; if (_isExcluded[account]) { _tOwned[account] = _tOwned[account] + amount; } _rOwned[account] = _rOwned[account] + rAmount; _tTotal = _tTotal + amount; _rTotal = _rTotal + rAmount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address[2]","name":"addr_","type":"address[2]"},{"internalType":"uint256[1]","name":"value_","type":"uint256[1]"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccountFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccountinReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newReflectionFee","type":"uint256"}],"name":"setReflectionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeesRedistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600e556040516200511a3803806200511a83398181016040528101906200002e919062000a53565b8585816003908162000041919062000d6e565b50806004908162000053919062000d6e565b505050620000766200006a620003dc60201b60201c565b620003e460201b60201c565b82600b60006101000a81548160ff021916908360ff16021790555082600a620000a0919062000fd8565b84620000ad919062001029565b600c81905550600c546002600019620000c79190620010b9565b620000d39190620010f1565b6002600019620000e49190620010b9565b620000f0919062001129565b600d81905550806000600181106200010d576200010c62001164565b5b6020020151600f81905550600f5460108190555060016008600062000137620004aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000206620001f4620003dc60201b60201c565b600d54600c54620004d460201b60201c565b61dead73ffffffffffffffffffffffffffffffffffffffff168260016002811062000236576200023562001164565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1603620002cf57816000600281106200026e576200026d62001164565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc6200029c6200064360201b60201c565b9081150290604051600060405180830381858888f19350505050158015620002c8573d6000803e3d6000fd5b50620003d0565b81600160028110620002e657620002e562001164565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc6077600a620003186200064360201b60201c565b62000324919062001029565b620003309190620010b9565b9081150290604051600060405180830381858888f193505050501580156200035c573d6000803e3d6000fd5b508160006002811062000374576200037362001164565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc620003a26200064360201b60201c565b9081150290604051600060405180830381858888f19350505050158015620003ce573d6000803e3d6000fd5b505b505050505050620012a1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000546576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200053d90620011f4565b60405180910390fd5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000593919062001216565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000636919062001284565b60405180910390a3505050565b600047905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620006b48262000669565b810181811067ffffffffffffffff82111715620006d657620006d56200067a565b5b80604052505050565b6000620006eb6200064b565b9050620006f98282620006a9565b919050565b600067ffffffffffffffff8211156200071c576200071b6200067a565b5b620007278262000669565b9050602081019050919050565b60005b838110156200075457808201518184015260208101905062000737565b8381111562000764576000848401525b50505050565b6000620007816200077b84620006fe565b620006df565b905082815260208101848484011115620007a0576200079f62000664565b5b620007ad84828562000734565b509392505050565b600082601f830112620007cd57620007cc6200065f565b5b8151620007df8482602086016200076a565b91505092915050565b6000819050919050565b620007fd81620007e8565b81146200080957600080fd5b50565b6000815190506200081d81620007f2565b92915050565b600060ff82169050919050565b6200083b8162000823565b81146200084757600080fd5b50565b6000815190506200085b8162000830565b92915050565b600067ffffffffffffffff8211156200087f576200087e6200067a565b5b602082029050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008bc826200088f565b9050919050565b620008ce81620008af565b8114620008da57600080fd5b50565b600081519050620008ee81620008c3565b92915050565b60006200090b620009058462000861565b620006df565b905080602084028301858111156200092857620009276200088a565b5b835b81811015620009555780620009408882620008dd565b8452602084019350506020810190506200092a565b5050509392505050565b600082601f8301126200097757620009766200065f565b5b600262000986848285620008f4565b91505092915050565b600067ffffffffffffffff821115620009ad57620009ac6200067a565b5b602082029050919050565b6000620009cf620009c9846200098f565b620006df565b90508060208402830185811115620009ec57620009eb6200088a565b5b835b8181101562000a19578062000a0488826200080c565b845260208401935050602081019050620009ee565b5050509392505050565b600082601f83011262000a3b5762000a3a6200065f565b5b600162000a4a848285620009b8565b91505092915050565b60008060008060008060e0878903121562000a735762000a7262000655565b5b600087015167ffffffffffffffff81111562000a945762000a936200065a565b5b62000aa289828a01620007b5565b965050602087015167ffffffffffffffff81111562000ac65762000ac56200065a565b5b62000ad489828a01620007b5565b955050604062000ae789828a016200080c565b945050606062000afa89828a016200084a565b935050608062000b0d89828a016200095f565b92505060c062000b2089828a0162000a23565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b8057607f821691505b60208210810362000b965762000b9562000b38565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bc1565b62000c0c868362000bc1565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c4f62000c4962000c4384620007e8565b62000c24565b620007e8565b9050919050565b6000819050919050565b62000c6b8362000c2e565b62000c8362000c7a8262000c56565b84845462000bce565b825550505050565b600090565b62000c9a62000c8b565b62000ca781848462000c60565b505050565b5b8181101562000ccf5762000cc360008262000c90565b60018101905062000cad565b5050565b601f82111562000d1e5762000ce88162000b9c565b62000cf38462000bb1565b8101602085101562000d03578190505b62000d1b62000d128562000bb1565b83018262000cac565b50505b505050565b600082821c905092915050565b600062000d436000198460080262000d23565b1980831691505092915050565b600062000d5e838362000d30565b9150826002028217905092915050565b62000d798262000b2d565b67ffffffffffffffff81111562000d955762000d946200067a565b5b62000da1825462000b67565b62000dae82828562000cd3565b600060209050601f83116001811462000de6576000841562000dd1578287015190505b62000ddd858262000d50565b86555062000e4d565b601f19841662000df68662000b9c565b60005b8281101562000e205784890151825560018201915060208501945060208101905062000df9565b8683101562000e40578489015162000e3c601f89168262000d30565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ee35780860481111562000ebb5762000eba62000e55565b5b600185161562000ecb5780820291505b808102905062000edb8562000e84565b945062000e9b565b94509492505050565b60008262000efe576001905062000fd1565b8162000f0e576000905062000fd1565b816001811462000f27576002811462000f325762000f68565b600191505062000fd1565b60ff84111562000f475762000f4662000e55565b5b8360020a91508482111562000f615762000f6062000e55565b5b5062000fd1565b5060208310610133831016604e8410600b841016171562000fa25782820a90508381111562000f9c5762000f9b62000e55565b5b62000fd1565b62000fb1848484600162000e91565b9250905081840481111562000fcb5762000fca62000e55565b5b81810290505b9392505050565b600062000fe582620007e8565b915062000ff28362000823565b9250620010217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eec565b905092915050565b60006200103682620007e8565b91506200104383620007e8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200107f576200107e62000e55565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010c682620007e8565b9150620010d383620007e8565b925082620010e657620010e56200108a565b5b828204905092915050565b6000620010fe82620007e8565b91506200110b83620007e8565b9250826200111e576200111d6200108a565b5b828206905092915050565b60006200113682620007e8565b91506200114383620007e8565b92508282101562001159576200115862000e55565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620011dc601f8362001193565b9150620011e982620011a4565b602082019050919050565b600060208201905081810360008301526200120f81620011cd565b9050919050565b60006200122382620007e8565b91506200123083620007e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001268576200126762000e55565b5b828201905092915050565b6200127e81620007e8565b82525050565b60006020820190506200129b600083018462001273565b92915050565b613e6980620012b16000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063a9059cbb1161008a578063e547be6911610064578063e547be6914610663578063ea2f0b371461068c578063f2fde38b146106b5578063fdeb889f146106de576101c2565b8063a9059cbb146105ac578063cba0e996146105e9578063dd62ed3e14610626576101c2565b806383ad7994116100c657806383ad7994146104ee5780638da5cb5b1461051957806395d89b4114610544578063a457c2d71461056f576101c2565b806370a0823114610471578063715018a6146104ae57806379cc6790146104c5576101c2565b80633950935111610159578063437823ec11610133578063437823ec146103a55780634549b039146103ce5780635342acb41461040b5780636049876e14610448576101c2565b8063395093511461031657806340c10f191461035357806342966c681461037c576101c2565b806318160ddd1161019557806318160ddd1461025857806323b872dd14610283578063313ce567146102c057806332035504146102eb576101c2565b8063053ab182146101c757806306fdde03146101f0578063095ea7b31461021b576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101ee60048036038101906101e99190612ec1565b610707565b005b3480156101fc57600080fd5b5061020561086b565b6040516102129190612f87565b60405180910390f35b34801561022757600080fd5b50610242600480360381019061023d9190613007565b6108fd565b60405161024f9190613062565b60405180910390f35b34801561026457600080fd5b5061026d61091b565b60405161027a919061308c565b60405180910390f35b34801561028f57600080fd5b506102aa60048036038101906102a591906130a7565b610925565b6040516102b79190613062565b60405180910390f35b3480156102cc57600080fd5b506102d5610a1d565b6040516102e29190613116565b60405180910390f35b3480156102f757600080fd5b50610300610a34565b60405161030d919061308c565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190613007565b610a3e565b60405161034a9190613062565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613007565b610aea565b005b34801561038857600080fd5b506103a3600480360381019061039e9190612ec1565b610b74565b005b3480156103b157600080fd5b506103cc60048036038101906103c79190613131565b610b88565b005b3480156103da57600080fd5b506103f560048036038101906103f0919061318a565b610c5f565b604051610402919061308c565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d9190613131565b610cdf565b60405161043f9190613062565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a9190613131565b610d35565b005b34801561047d57600080fd5b5061049860048036038101906104939190613131565b610fd0565b6040516104a5919061308c565b60405180910390f35b3480156104ba57600080fd5b506104c36110bb565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190613007565b611143565b005b3480156104fa57600080fd5b506105036111be565b604051610510919061308c565b60405180910390f35b34801561052557600080fd5b5061052e6111c8565b60405161053b91906131d9565b60405180910390f35b34801561055057600080fd5b506105596111f2565b6040516105669190612f87565b60405180910390f35b34801561057b57600080fd5b5061059660048036038101906105919190613007565b611284565b6040516105a39190613062565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190613007565b61136f565b6040516105e09190613062565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b9190613131565b61138d565b60405161061d9190613062565b60405180910390f35b34801561063257600080fd5b5061064d600480360381019061064891906131f4565b6113e3565b60405161065a919061308c565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612ec1565b61146a565b005b34801561069857600080fd5b506106b360048036038101906106ae9190613131565b6114f0565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190613131565b6115c7565b005b3480156106ea57600080fd5b5061070560048036038101906107009190613131565b6116be565b005b60006107116119f3565b9050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156107a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610797906132a6565b60405180910390fd5b60006107ab836119fb565b505050905080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107fb91906132f5565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600d5461084c91906132f5565b600d8190555082600e546108609190613329565b600e81905550505050565b60606003805461087a906133ae565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906133ae565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600061091161090a6119f3565b8484611a62565b6001905092915050565b6000600c54905090565b6000610932848484611c2b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061097d6119f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490613451565b60405180910390fd5b610a1185610a096119f3565b858403611a62565b60019150509392505050565b6000600b60009054906101000a900460ff16905090565b6000600e54905090565b6000610ae0610a4b6119f3565b848460016000610a596119f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610adb9190613329565b611a62565b6001905092915050565b610af26119f3565b73ffffffffffffffffffffffffffffffffffffffff16610b106111c8565b73ffffffffffffffffffffffffffffffffffffffff1614610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d906134bd565b60405180910390fd5b610b708282611e28565b5050565b610b85610b7f6119f3565b826120ce565b50565b610b906119f3565b73ffffffffffffffffffffffffffffffffffffffff16610bae6111c8565b73ffffffffffffffffffffffffffffffffffffffff1614610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb906134bd565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c54831115610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90613529565b60405180910390fd5b81610cc4576000610cb6846119fb565b505050905080915050610cd9565b6000610ccf846119fb565b5050915050809150505b92915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d3d6119f3565b73ffffffffffffffffffffffffffffffffffffffff16610d5b6111c8565b73ffffffffffffffffffffffffffffffffffffffff1614610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da8906134bd565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590613595565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610f1257610ece600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c5565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561106b57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110b6565b6110b3600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c5565b90505b919050565b6110c36119f3565b73ffffffffffffffffffffffffffffffffffffffff166110e16111c8565b73ffffffffffffffffffffffffffffffffffffffff1614611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e906134bd565b60405180910390fd5b611141600061242c565b565b6000611156836111516119f3565b6113e3565b90508181101561119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290613627565b60405180910390fd5b6111af836111a76119f3565b848403611a62565b6111b983836120ce565b505050565b6000600f54905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611201906133ae565b80601f016020809104026020016040519081016040528092919081815260200182805461122d906133ae565b801561127a5780601f1061124f5761010080835404028352916020019161127a565b820191906000526020600020905b81548152906001019060200180831161125d57829003601f168201915b5050505050905090565b600080600160006112936119f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906136b9565b60405180910390fd5b61136461135b6119f3565b85858403611a62565b600191505092915050565b600061138361137c6119f3565b8484611c2b565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114726119f3565b73ffffffffffffffffffffffffffffffffffffffff166114906111c8565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906134bd565b60405180910390fd5b80600f8190555050565b6114f86119f3565b73ffffffffffffffffffffffffffffffffffffffff166115166111c8565b73ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906134bd565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115cf6119f3565b73ffffffffffffffffffffffffffffffffffffffff166115ed6111c8565b73ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906134bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a99061374b565b60405180910390fd5b6116bb8161242c565b50565b6116c66119f3565b73ffffffffffffffffffffffffffffffffffffffff166116e46111c8565b73ffffffffffffffffffffffffffffffffffffffff161461173a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611731906134bd565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906137b7565b60405180910390fd5b60005b600a805490508110156119ef578173ffffffffffffffffffffffffffffffffffffffff16600a8281548110611801576118006137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036119dc57600a6001600a8054905061185b91906132f5565b8154811061186c5761186b6137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a82815481106118ab576118aa6137d7565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a8054806119a2576119a1613806565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556119ef565b80806119e790613835565b9150506117c9565b5050565b600033905090565b6000806000806000611a0c866124f2565b905060008187611a1c91906132f5565b90506000611a28612520565b905060008183611a38919061387d565b90506000828a611a48919061387d565b905080828585985098509850985050505050509193509193565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac890613949565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b37906139db565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c1e919061308c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9190613a6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0090613aff565b60405180910390fd5b6000611d1484610fd0565b905081811015611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613b91565b60405180910390fd5b611d64848484612544565b600060019050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e0b5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1557600090505b611e2185858584612549565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e90613bfd565b60405180910390fd5b611ea360008383612544565b6000611ead612520565b905060008183611ebd919061387d565b9050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fa05782600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5c9190613329565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611feb9190613329565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600c5461203c9190613329565b600c8190555080600d546120509190613329565b600d819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120b4919061308c565b60405180910390a36120c860008585612576565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361213d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213490613c8f565b60405180910390fd5b600061214883610fd0565b90508181101561218d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218490613d21565b60405180910390fd5b61219983600084612544565b60006121a3612520565b9050600081846121b3919061387d565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122965783600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225291906132f5565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e191906132f5565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600c5461233291906132f5565b600c8190555080600d5461234691906132f5565b600d81905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516123aa919061308c565b60405180910390a36123be85600086612576565b5050505050565b6000600d5482111561240c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240390613db3565b60405180910390fd5b6000612416612520565b905080836124249190613e02565b915050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600f54905060006064828561250a919061387d565b6125149190613e02565b90508092505050919050565b600080600061252d61257b565b91509150808261253d9190613e02565b9250505090565b505050565b8061255757612556612819565b5b612562848484612838565b806125705761256f612e1f565b5b50505050565b505050565b6000806000600d5490506000600c54905060005b600a805490508110156127e3578260066000600a84815481106125b5576125b46137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806126a357508160076000600a848154811061263b5761263a6137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156126ba57600d54600c5494509450505050612815565b60066000600a83815481106126d2576126d16137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361274391906132f5565b925060076000600a838154811061275d5761275c6137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826127ce91906132f5565b915080806127db90613835565b91505061258f565b50600c54600d546127f49190613e02565b82101561280c57600d54600c54935093505050612815565b81819350935050505b9091565b6000600f54031561283657600f546010819055506000600f819055505b565b600080600080612847856119fb565b935093509350935083600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461289a91906132f5565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129289190613329565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a0e5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aa65784600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5e91906132f5565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da7565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b495750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612be15781600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b999190613329565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da6565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c835750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612da55784600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd391906132f5565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d619190613329565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b612db18582612e2a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e0e919061308c565b60405180910390a350505050505050565b601054600f81905550565b60006064600f5484612e3c919061387d565b612e469190613e02565b905060008282612e56919061387d565b905080600d54612e6691906132f5565b600d8190555081600e54612e7a9190613329565b600e8190555050505050565b600080fd5b6000819050919050565b612e9e81612e8b565b8114612ea957600080fd5b50565b600081359050612ebb81612e95565b92915050565b600060208284031215612ed757612ed6612e86565b5b6000612ee584828501612eac565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f28578082015181840152602081019050612f0d565b83811115612f37576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f5982612eee565b612f638185612ef9565b9350612f73818560208601612f0a565b612f7c81612f3d565b840191505092915050565b60006020820190508181036000830152612fa18184612f4e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fd482612fa9565b9050919050565b612fe481612fc9565b8114612fef57600080fd5b50565b60008135905061300181612fdb565b92915050565b6000806040838503121561301e5761301d612e86565b5b600061302c85828601612ff2565b925050602061303d85828601612eac565b9150509250929050565b60008115159050919050565b61305c81613047565b82525050565b60006020820190506130776000830184613053565b92915050565b61308681612e8b565b82525050565b60006020820190506130a1600083018461307d565b92915050565b6000806000606084860312156130c0576130bf612e86565b5b60006130ce86828701612ff2565b93505060206130df86828701612ff2565b92505060406130f086828701612eac565b9150509250925092565b600060ff82169050919050565b613110816130fa565b82525050565b600060208201905061312b6000830184613107565b92915050565b60006020828403121561314757613146612e86565b5b600061315584828501612ff2565b91505092915050565b61316781613047565b811461317257600080fd5b50565b6000813590506131848161315e565b92915050565b600080604083850312156131a1576131a0612e86565b5b60006131af85828601612eac565b92505060206131c085828601613175565b9150509250929050565b6131d381612fc9565b82525050565b60006020820190506131ee60008301846131ca565b92915050565b6000806040838503121561320b5761320a612e86565b5b600061321985828601612ff2565b925050602061322a85828601612ff2565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000613290602c83612ef9565b915061329b82613234565b604082019050919050565b600060208201905081810360008301526132bf81613283565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061330082612e8b565b915061330b83612e8b565b92508282101561331e5761331d6132c6565b5b828203905092915050565b600061333482612e8b565b915061333f83612e8b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613374576133736132c6565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133c657607f821691505b6020821081036133d9576133d861337f565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061343b602883612ef9565b9150613446826133df565b604082019050919050565b6000602082019050818103600083015261346a8161342e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134a7602083612ef9565b91506134b282613471565b602082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b6000613513601f83612ef9565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b600061357f601b83612ef9565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613611602483612ef9565b915061361c826135b5565b604082019050919050565b6000602082019050818103600083015261364081613604565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006136a3602583612ef9565b91506136ae82613647565b604082019050919050565b600060208201905081810360008301526136d281613696565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613735602683612ef9565b9150613740826136d9565b604082019050919050565b6000602082019050818103600083015261376481613728565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006137a1601b83612ef9565b91506137ac8261376b565b602082019050919050565b600060208201905081810360008301526137d081613794565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061384082612e8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613872576138716132c6565b5b600182019050919050565b600061388882612e8b565b915061389383612e8b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138cc576138cb6132c6565b5b828202905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613933602483612ef9565b915061393e826138d7565b604082019050919050565b6000602082019050818103600083015261396281613926565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139c5602283612ef9565b91506139d082613969565b604082019050919050565b600060208201905081810360008301526139f4816139b8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a57602583612ef9565b9150613a62826139fb565b604082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ae9602383612ef9565b9150613af482613a8d565b604082019050919050565b60006020820190508181036000830152613b1881613adc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b7b602683612ef9565b9150613b8682613b1f565b604082019050919050565b60006020820190508181036000830152613baa81613b6e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613be7601f83612ef9565b9150613bf282613bb1565b602082019050919050565b60006020820190508181036000830152613c1681613bda565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c79602183612ef9565b9150613c8482613c1d565b604082019050919050565b60006020820190508181036000830152613ca881613c6c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d0b602283612ef9565b9150613d1682613caf565b604082019050919050565b60006020820190508181036000830152613d3a81613cfe565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d9d602a83612ef9565b9150613da882613d41565b604082019050919050565b60006020820190508181036000830152613dcc81613d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e0d82612e8b565b9150613e1883612e8b565b925082613e2857613e27613dd3565b5b82820490509291505056fea26469706673582212209bee9b329c6181f13c9889b68242cabb1945fa9c4956ec967d43f4300dbd89e964736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000094af017d4d9ec2782237089110dd883862ecf26000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001d6172746966696369616c20696e74656c6c6967656e636520696e64657800000000000000000000000000000000000000000000000000000000000000000000034149490000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c806370a08231116100ec578063a9059cbb1161008a578063e547be6911610064578063e547be6914610663578063ea2f0b371461068c578063f2fde38b146106b5578063fdeb889f146106de576101c2565b8063a9059cbb146105ac578063cba0e996146105e9578063dd62ed3e14610626576101c2565b806383ad7994116100c657806383ad7994146104ee5780638da5cb5b1461051957806395d89b4114610544578063a457c2d71461056f576101c2565b806370a0823114610471578063715018a6146104ae57806379cc6790146104c5576101c2565b80633950935111610159578063437823ec11610133578063437823ec146103a55780634549b039146103ce5780635342acb41461040b5780636049876e14610448576101c2565b8063395093511461031657806340c10f191461035357806342966c681461037c576101c2565b806318160ddd1161019557806318160ddd1461025857806323b872dd14610283578063313ce567146102c057806332035504146102eb576101c2565b8063053ab182146101c757806306fdde03146101f0578063095ea7b31461021b576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101ee60048036038101906101e99190612ec1565b610707565b005b3480156101fc57600080fd5b5061020561086b565b6040516102129190612f87565b60405180910390f35b34801561022757600080fd5b50610242600480360381019061023d9190613007565b6108fd565b60405161024f9190613062565b60405180910390f35b34801561026457600080fd5b5061026d61091b565b60405161027a919061308c565b60405180910390f35b34801561028f57600080fd5b506102aa60048036038101906102a591906130a7565b610925565b6040516102b79190613062565b60405180910390f35b3480156102cc57600080fd5b506102d5610a1d565b6040516102e29190613116565b60405180910390f35b3480156102f757600080fd5b50610300610a34565b60405161030d919061308c565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190613007565b610a3e565b60405161034a9190613062565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613007565b610aea565b005b34801561038857600080fd5b506103a3600480360381019061039e9190612ec1565b610b74565b005b3480156103b157600080fd5b506103cc60048036038101906103c79190613131565b610b88565b005b3480156103da57600080fd5b506103f560048036038101906103f0919061318a565b610c5f565b604051610402919061308c565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d9190613131565b610cdf565b60405161043f9190613062565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a9190613131565b610d35565b005b34801561047d57600080fd5b5061049860048036038101906104939190613131565b610fd0565b6040516104a5919061308c565b60405180910390f35b3480156104ba57600080fd5b506104c36110bb565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190613007565b611143565b005b3480156104fa57600080fd5b506105036111be565b604051610510919061308c565b60405180910390f35b34801561052557600080fd5b5061052e6111c8565b60405161053b91906131d9565b60405180910390f35b34801561055057600080fd5b506105596111f2565b6040516105669190612f87565b60405180910390f35b34801561057b57600080fd5b5061059660048036038101906105919190613007565b611284565b6040516105a39190613062565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190613007565b61136f565b6040516105e09190613062565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b9190613131565b61138d565b60405161061d9190613062565b60405180910390f35b34801561063257600080fd5b5061064d600480360381019061064891906131f4565b6113e3565b60405161065a919061308c565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612ec1565b61146a565b005b34801561069857600080fd5b506106b360048036038101906106ae9190613131565b6114f0565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190613131565b6115c7565b005b3480156106ea57600080fd5b5061070560048036038101906107009190613131565b6116be565b005b60006107116119f3565b9050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156107a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610797906132a6565b60405180910390fd5b60006107ab836119fb565b505050905080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107fb91906132f5565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600d5461084c91906132f5565b600d8190555082600e546108609190613329565b600e81905550505050565b60606003805461087a906133ae565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906133ae565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600061091161090a6119f3565b8484611a62565b6001905092915050565b6000600c54905090565b6000610932848484611c2b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061097d6119f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490613451565b60405180910390fd5b610a1185610a096119f3565b858403611a62565b60019150509392505050565b6000600b60009054906101000a900460ff16905090565b6000600e54905090565b6000610ae0610a4b6119f3565b848460016000610a596119f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610adb9190613329565b611a62565b6001905092915050565b610af26119f3565b73ffffffffffffffffffffffffffffffffffffffff16610b106111c8565b73ffffffffffffffffffffffffffffffffffffffff1614610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d906134bd565b60405180910390fd5b610b708282611e28565b5050565b610b85610b7f6119f3565b826120ce565b50565b610b906119f3565b73ffffffffffffffffffffffffffffffffffffffff16610bae6111c8565b73ffffffffffffffffffffffffffffffffffffffff1614610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb906134bd565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c54831115610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90613529565b60405180910390fd5b81610cc4576000610cb6846119fb565b505050905080915050610cd9565b6000610ccf846119fb565b5050915050809150505b92915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d3d6119f3565b73ffffffffffffffffffffffffffffffffffffffff16610d5b6111c8565b73ffffffffffffffffffffffffffffffffffffffff1614610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da8906134bd565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590613595565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610f1257610ece600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c5565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561106b57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110b6565b6110b3600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c5565b90505b919050565b6110c36119f3565b73ffffffffffffffffffffffffffffffffffffffff166110e16111c8565b73ffffffffffffffffffffffffffffffffffffffff1614611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e906134bd565b60405180910390fd5b611141600061242c565b565b6000611156836111516119f3565b6113e3565b90508181101561119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290613627565b60405180910390fd5b6111af836111a76119f3565b848403611a62565b6111b983836120ce565b505050565b6000600f54905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611201906133ae565b80601f016020809104026020016040519081016040528092919081815260200182805461122d906133ae565b801561127a5780601f1061124f5761010080835404028352916020019161127a565b820191906000526020600020905b81548152906001019060200180831161125d57829003601f168201915b5050505050905090565b600080600160006112936119f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906136b9565b60405180910390fd5b61136461135b6119f3565b85858403611a62565b600191505092915050565b600061138361137c6119f3565b8484611c2b565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114726119f3565b73ffffffffffffffffffffffffffffffffffffffff166114906111c8565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906134bd565b60405180910390fd5b80600f8190555050565b6114f86119f3565b73ffffffffffffffffffffffffffffffffffffffff166115166111c8565b73ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906134bd565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115cf6119f3565b73ffffffffffffffffffffffffffffffffffffffff166115ed6111c8565b73ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906134bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a99061374b565b60405180910390fd5b6116bb8161242c565b50565b6116c66119f3565b73ffffffffffffffffffffffffffffffffffffffff166116e46111c8565b73ffffffffffffffffffffffffffffffffffffffff161461173a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611731906134bd565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906137b7565b60405180910390fd5b60005b600a805490508110156119ef578173ffffffffffffffffffffffffffffffffffffffff16600a8281548110611801576118006137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036119dc57600a6001600a8054905061185b91906132f5565b8154811061186c5761186b6137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a82815481106118ab576118aa6137d7565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a8054806119a2576119a1613806565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556119ef565b80806119e790613835565b9150506117c9565b5050565b600033905090565b6000806000806000611a0c866124f2565b905060008187611a1c91906132f5565b90506000611a28612520565b905060008183611a38919061387d565b90506000828a611a48919061387d565b905080828585985098509850985050505050509193509193565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac890613949565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b37906139db565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c1e919061308c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9190613a6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0090613aff565b60405180910390fd5b6000611d1484610fd0565b905081811015611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613b91565b60405180910390fd5b611d64848484612544565b600060019050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e0b5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1557600090505b611e2185858584612549565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e90613bfd565b60405180910390fd5b611ea360008383612544565b6000611ead612520565b905060008183611ebd919061387d565b9050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fa05782600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5c9190613329565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611feb9190613329565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600c5461203c9190613329565b600c8190555080600d546120509190613329565b600d819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120b4919061308c565b60405180910390a36120c860008585612576565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361213d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213490613c8f565b60405180910390fd5b600061214883610fd0565b90508181101561218d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218490613d21565b60405180910390fd5b61219983600084612544565b60006121a3612520565b9050600081846121b3919061387d565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122965783600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225291906132f5565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e191906132f5565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600c5461233291906132f5565b600c8190555080600d5461234691906132f5565b600d81905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516123aa919061308c565b60405180910390a36123be85600086612576565b5050505050565b6000600d5482111561240c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240390613db3565b60405180910390fd5b6000612416612520565b905080836124249190613e02565b915050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600f54905060006064828561250a919061387d565b6125149190613e02565b90508092505050919050565b600080600061252d61257b565b91509150808261253d9190613e02565b9250505090565b505050565b8061255757612556612819565b5b612562848484612838565b806125705761256f612e1f565b5b50505050565b505050565b6000806000600d5490506000600c54905060005b600a805490508110156127e3578260066000600a84815481106125b5576125b46137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806126a357508160076000600a848154811061263b5761263a6137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156126ba57600d54600c5494509450505050612815565b60066000600a83815481106126d2576126d16137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361274391906132f5565b925060076000600a838154811061275d5761275c6137d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826127ce91906132f5565b915080806127db90613835565b91505061258f565b50600c54600d546127f49190613e02565b82101561280c57600d54600c54935093505050612815565b81819350935050505b9091565b6000600f54031561283657600f546010819055506000600f819055505b565b600080600080612847856119fb565b935093509350935083600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461289a91906132f5565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129289190613329565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a0e5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aa65784600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a5e91906132f5565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da7565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b495750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612be15781600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b999190613329565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da6565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c835750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612da55784600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd391906132f5565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d619190613329565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b612db18582612e2a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e0e919061308c565b60405180910390a350505050505050565b601054600f81905550565b60006064600f5484612e3c919061387d565b612e469190613e02565b905060008282612e56919061387d565b905080600d54612e6691906132f5565b600d8190555081600e54612e7a9190613329565b600e8190555050505050565b600080fd5b6000819050919050565b612e9e81612e8b565b8114612ea957600080fd5b50565b600081359050612ebb81612e95565b92915050565b600060208284031215612ed757612ed6612e86565b5b6000612ee584828501612eac565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f28578082015181840152602081019050612f0d565b83811115612f37576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f5982612eee565b612f638185612ef9565b9350612f73818560208601612f0a565b612f7c81612f3d565b840191505092915050565b60006020820190508181036000830152612fa18184612f4e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fd482612fa9565b9050919050565b612fe481612fc9565b8114612fef57600080fd5b50565b60008135905061300181612fdb565b92915050565b6000806040838503121561301e5761301d612e86565b5b600061302c85828601612ff2565b925050602061303d85828601612eac565b9150509250929050565b60008115159050919050565b61305c81613047565b82525050565b60006020820190506130776000830184613053565b92915050565b61308681612e8b565b82525050565b60006020820190506130a1600083018461307d565b92915050565b6000806000606084860312156130c0576130bf612e86565b5b60006130ce86828701612ff2565b93505060206130df86828701612ff2565b92505060406130f086828701612eac565b9150509250925092565b600060ff82169050919050565b613110816130fa565b82525050565b600060208201905061312b6000830184613107565b92915050565b60006020828403121561314757613146612e86565b5b600061315584828501612ff2565b91505092915050565b61316781613047565b811461317257600080fd5b50565b6000813590506131848161315e565b92915050565b600080604083850312156131a1576131a0612e86565b5b60006131af85828601612eac565b92505060206131c085828601613175565b9150509250929050565b6131d381612fc9565b82525050565b60006020820190506131ee60008301846131ca565b92915050565b6000806040838503121561320b5761320a612e86565b5b600061321985828601612ff2565b925050602061322a85828601612ff2565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000613290602c83612ef9565b915061329b82613234565b604082019050919050565b600060208201905081810360008301526132bf81613283565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061330082612e8b565b915061330b83612e8b565b92508282101561331e5761331d6132c6565b5b828203905092915050565b600061333482612e8b565b915061333f83612e8b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613374576133736132c6565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133c657607f821691505b6020821081036133d9576133d861337f565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061343b602883612ef9565b9150613446826133df565b604082019050919050565b6000602082019050818103600083015261346a8161342e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134a7602083612ef9565b91506134b282613471565b602082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b6000613513601f83612ef9565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b600061357f601b83612ef9565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613611602483612ef9565b915061361c826135b5565b604082019050919050565b6000602082019050818103600083015261364081613604565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006136a3602583612ef9565b91506136ae82613647565b604082019050919050565b600060208201905081810360008301526136d281613696565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613735602683612ef9565b9150613740826136d9565b604082019050919050565b6000602082019050818103600083015261376481613728565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006137a1601b83612ef9565b91506137ac8261376b565b602082019050919050565b600060208201905081810360008301526137d081613794565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061384082612e8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613872576138716132c6565b5b600182019050919050565b600061388882612e8b565b915061389383612e8b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138cc576138cb6132c6565b5b828202905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613933602483612ef9565b915061393e826138d7565b604082019050919050565b6000602082019050818103600083015261396281613926565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139c5602283612ef9565b91506139d082613969565b604082019050919050565b600060208201905081810360008301526139f4816139b8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a57602583612ef9565b9150613a62826139fb565b604082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ae9602383612ef9565b9150613af482613a8d565b604082019050919050565b60006020820190508181036000830152613b1881613adc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b7b602683612ef9565b9150613b8682613b1f565b604082019050919050565b60006020820190508181036000830152613baa81613b6e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613be7601f83612ef9565b9150613bf282613bb1565b602082019050919050565b60006020820190508181036000830152613c1681613bda565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c79602183612ef9565b9150613c8482613c1d565b604082019050919050565b60006020820190508181036000830152613ca881613c6c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d0b602283612ef9565b9150613d1682613caf565b604082019050919050565b60006020820190508181036000830152613d3a81613cfe565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d9d602a83612ef9565b9150613da882613d41565b604082019050919050565b60006020820190508181036000830152613dcc81613d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e0d82612e8b565b9150613e1883612e8b565b925082613e2857613e27613dd3565b5b82820490509291505056fea26469706673582212209bee9b329c6181f13c9889b68242cabb1945fa9c4956ec967d43f4300dbd89e964736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000094af017d4d9ec2782237089110dd883862ecf26000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001d6172746966696369616c20696e74656c6c6967656e636520696e64657800000000000000000000000000000000000000000000000000000000000000000000034149490000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): artificial intelligence index
Arg [1] : symbol_ (string): AII
Arg [2] : totalSupply_ (uint256): 100000000
Arg [3] : decimals_ (uint8): 18
Arg [4] : addr_ (address[2]): 0x094Af017D4D9EC2782237089110Dd883862Ecf26,0x000000000000000000000000000000000000dEaD
Arg [5] : value_ (uint256[1]): 1
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [2] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 000000000000000000000000094af017d4d9ec2782237089110dd883862ecf26
Arg [5] : 000000000000000000000000000000000000000000000000000000000000dead
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [7] : 000000000000000000000000000000000000000000000000000000000000001d
Arg [8] : 6172746966696369616c20696e74656c6c6967656e636520696e646578000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [10] : 4149490000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
20186:11338:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23526:414;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8617:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10925:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21980:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11617:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21872:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22730;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12555:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30732:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19364:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22838:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23948:487;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22194:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24771:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22326:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5783:103;;;;;;;;;;;;;:::i;:::-;;19774:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22091:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5132:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8836:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13355:482;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10298:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22612:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10577:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23075:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22957:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6041:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25118:482;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23526:414;23578:14;23595:12;:10;:12::i;:::-;23578:29;;23641:11;:19;23653:6;23641:19;;;;;;;;;;;;;;;;;;;;;;;;;23640:20;23618:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;23744:15;23769:27;23788:7;23769:18;:27::i;:::-;23743:53;;;;;23843:7;23825;:15;23833:6;23825:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;23807:7;:15;23815:6;23807:15;;;;;;;;;;;;;;;:43;;;;23881:7;23871;;:17;;;;:::i;:::-;23861:7;:27;;;;23925:7;23912:10;;:20;;;;:::i;:::-;23899:10;:33;;;;23567:373;;23526:414;:::o;8617:100::-;8671:13;8704:5;8697:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:100;:::o;10925:210::-;11044:4;11066:39;11075:12;:10;:12::i;:::-;11089:7;11098:6;11066:8;:39::i;:::-;11123:4;11116:11;;10925:210;;;;:::o;21980:103::-;22041:7;22068;;22061:14;;21980:103;:::o;11617:529::-;11757:4;11774:36;11784:6;11792:9;11803:6;11774:9;:36::i;:::-;11823:24;11850:11;:19;11862:6;11850:19;;;;;;;;;;;;;;;:33;11870:12;:10;:12::i;:::-;11850:33;;;;;;;;;;;;;;;;11823:60;;11936:6;11916:16;:26;;11894:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;12046:57;12055:6;12063:12;:10;:12::i;:::-;12096:6;12077:16;:25;12046:8;:57::i;:::-;12134:4;12127:11;;;11617:529;;;;;:::o;21872:100::-;21930:5;21955:9;;;;;;;;;;;21948:16;;21872:100;:::o;22730:::-;22785:7;22812:10;;22805:17;;22730:100;:::o;12555:297::-;12670:4;12692:130;12715:12;:10;:12::i;:::-;12742:7;12801:10;12764:11;:25;12776:12;:10;:12::i;:::-;12764:25;;;;;;;;;;;;;;;:34;12790:7;12764:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12692:8;:130::i;:::-;12840:4;12833:11;;12555:297;;;;:::o;30732:107::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30808:23:::1;30814:8;30824:6;30808:5;:23::i;:::-;30732:107:::0;;:::o;19364:91::-;19420:27;19426:12;:10;:12::i;:::-;19440:6;19420:5;:27::i;:::-;19364:91;:::o;22838:111::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22937:4:::1;22907:18;:27;22926:7;22907:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;22838:111:::0;:::o;23948:487::-;24066:7;24110;;24099;:18;;24091:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;24169:17;24164:264;;24204:15;24229:27;24248:7;24229:18;:27::i;:::-;24203:53;;;;;24278:7;24271:14;;;;;24164:264;24321:23;24352:27;24371:7;24352:18;:27::i;:::-;24318:61;;;;;24401:15;24394:22;;;23948:487;;;;;:::o;22194:124::-;22259:4;22283:18;:27;22302:7;22283:27;;;;;;;;;;;;;;;;;;;;;;;;;22276:34;;22194:124;;;:::o;24771:339::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24859:11:::1;:20;24871:7;24859:20;;;;;;;;;;;;;;;;;;;;;;;;;24858:21;24850:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;24945:1;24926:7;:16;24934:7;24926:16;;;;;;;;;;;;;;;;:20;24922:109;;;24982:37;25002:7;:16;25010:7;25002:16;;;;;;;;;;;;;;;;24982:19;:37::i;:::-;24963:7;:16;24971:7;24963:16;;;;;;;;;;;;;;;:56;;;;24922:109;25064:4;25041:11;:20;25053:7;25041:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;25079:9;25094:7;25079:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24771:339:::0;:::o;22326:278::-;22444:7;22473:11;:19;22485:6;22473:19;;;;;;;;;;;;;;;;;;;;;;;;;22469:74;;;22516:7;:15;22524:6;22516:15;;;;;;;;;;;;;;;;22509:22;;;;22469:74;22560:36;22580:7;:15;22588:6;22580:15;;;;;;;;;;;;;;;;22560:19;:36::i;:::-;22553:43;;22326:278;;;;:::o;5783:103::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5848:30:::1;5875:1;5848:18;:30::i;:::-;5783:103::o:0;19774:405::-;19851:24;19878:32;19888:7;19897:12;:10;:12::i;:::-;19878:9;:32::i;:::-;19851:59;;19963:6;19943:16;:26;;19921:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;20069:58;20078:7;20087:12;:10;:12::i;:::-;20120:6;20101:16;:25;20069:8;:58::i;:::-;20149:22;20155:7;20164:6;20149:5;:22::i;:::-;19840:339;19774:405;;:::o;22091:95::-;22137:7;22164:14;;22157:21;;22091:95;:::o;5132:87::-;5178:7;5205:6;;;;;;;;;;;5198:13;;5132:87;:::o;8836:104::-;8892:13;8925:7;8918:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8836:104;:::o;13355:482::-;13475:4;13497:24;13524:11;:25;13536:12;:10;:12::i;:::-;13524:25;;;;;;;;;;;;;;;:34;13550:7;13524:34;;;;;;;;;;;;;;;;13497:61;;13611:15;13591:16;:35;;13569:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;13727:67;13736:12;:10;:12::i;:::-;13750:7;13778:15;13759:16;:34;13727:8;:67::i;:::-;13825:4;13818:11;;;13355:482;;;;:::o;10298:216::-;10420:4;10442:42;10452:12;:10;:12::i;:::-;10466:9;10477:6;10442:9;:42::i;:::-;10502:4;10495:11;;10298:216;;;;:::o;22612:110::-;22670:4;22694:11;:20;22706:7;22694:20;;;;;;;;;;;;;;;;;;;;;;;;;22687:27;;22612:110;;;:::o;10577:201::-;10711:7;10743:11;:18;10755:5;10743:18;;;;;;;;;;;;;;;:27;10762:7;10743:27;;;;;;;;;;;;;;;;10736:34;;10577:201;;;;:::o;23075:121::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23172:16:::1;23155:14;:33;;;;23075:121:::0;:::o;22957:110::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23054:5:::1;23024:18;:27;23043:7;23024:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;22957:110:::0;:::o;6041:238::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6164:1:::1;6144:22;;:8;:22;;::::0;6122:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6243:28;6262:8;6243:18;:28::i;:::-;6041:238:::0;:::o;25118:482::-;5363:12;:10;:12::i;:::-;5352:23;;:7;:5;:7::i;:::-;:23;;;5344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25203:11:::1;:20;25215:7;25203:20;;;;;;;;;;;;;;;;;;;;;;;;;25195:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;25271:9;25266:327;25290:9;:16;;;;25286:1;:20;25266:327;;;25348:7;25332:23;;:9;25342:1;25332:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;::::0;25328:254:::1;;25391:9;25420:1;25401:9;:16;;;;:20;;;;:::i;:::-;25391:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25376:9;25386:1;25376:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;25460:1;25441:7;:16;25449:7;25441:16;;;;;;;;;;;;;;;:20;;;;25503:5;25480:11;:20;25492:7;25480:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;25527:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;25561:5;;25328:254;25308:3;;;;;:::i;:::-;;;;25266:327;;;;25118:482:::0;:::o;3974:98::-;4027:7;4054:10;4047:17;;3974:98;:::o;28251:553::-;28359:7;28381;28403;28425;28460:16;28479:29;28500:7;28479:20;:29::i;:::-;28460:48;;28519:23;28555:8;28545:7;:18;;;;:::i;:::-;28519:44;;28574:19;28596:10;:8;:10::i;:::-;28574:32;;28617:23;28661:11;28643:15;:29;;;;:::i;:::-;28617:55;;28683:15;28711:11;28701:7;:21;;;;:::i;:::-;28683:39;;28741:7;28750:15;28767;28784:11;28733:63;;;;;;;;;;;;;28251:553;;;;;:::o;17145:380::-;17298:1;17281:19;;:5;:19;;;17273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17379:1;17360:21;;:7;:21;;;17352:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17463:6;17433:11;:18;17445:5;17433:18;;;;;;;;;;;;;;;:27;17452:7;17433:27;;;;;;;;;;;;;;;:36;;;;17501:7;17485:32;;17494:5;17485:32;;;17510:6;17485:32;;;;;;:::i;:::-;;;;;;;;17145:380;;;:::o;25608:749::-;25775:1;25757:20;;:6;:20;;;25749:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;25859:1;25838:23;;:9;:23;;;25830:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25912:21;25936:17;25946:6;25936:9;:17::i;:::-;25912:41;;26003:6;25986:13;:23;;25964:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;26088:47;26109:6;26117:9;26128:6;26088:20;:47::i;:::-;26148:12;26163:4;26148:19;;26184:18;:26;26203:6;26184:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;26214:18;:29;26233:9;26214:29;;;;;;;;;;;;;;;;;;;;;;;;;26184:59;26180:107;;;26270:5;26260:15;;26180:107;26299:50;26314:6;26322:9;26333:6;26341:7;26299:14;:50::i;:::-;25738:619;;25608:749;;;:::o;30847:674::-;30959:1;30940:21;;:7;:21;;;30932:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31010:49;31039:1;31043:7;31052:6;31010:20;:49::i;:::-;31072:19;31094:10;:8;:10::i;:::-;31072:32;;31115:15;31142:11;31133:6;:20;;;;:::i;:::-;31115:38;;31170:11;:20;31182:7;31170:20;;;;;;;;;;;;;;;;;;;;;;;;;31166:97;;;31245:6;31226:7;:16;31234:7;31226:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;31207:7;:16;31215:7;31207:16;;;;;;;;;;;;;;;:44;;;;31166:97;31313:7;31294;:16;31302:7;31294:16;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;31275:7;:16;31283:7;31275:16;;;;;;;;;;;;;;;:45;;;;31353:6;31343:7;;:16;;;;:::i;:::-;31333:7;:26;;;;31390:7;31380;;:17;;;;:::i;:::-;31370:7;:27;;;;31436:7;31415:37;;31432:1;31415:37;;;31445:6;31415:37;;;;;;:::i;:::-;;;;;;;;31465:48;31493:1;31497:7;31506:6;31465:19;:48::i;:::-;30921:600;;30847:674;;:::o;29914:810::-;30026:1;30007:21;;:7;:21;;;29999:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;30077:22;30102:18;30112:7;30102:9;:18::i;:::-;30077:43;;30157:6;30139:14;:24;;30131:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;30215:49;30236:7;30253:1;30257:6;30215:20;:49::i;:::-;30277:19;30299:10;:8;:10::i;:::-;30277:32;;30320:15;30347:11;30338:6;:20;;;;:::i;:::-;30320:38;;30375:11;:20;30387:7;30375:20;;;;;;;;;;;;;;;;;;;;;;;;;30371:97;;;30450:6;30431:7;:16;30439:7;30431:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;30412:7;:16;30420:7;30412:16;;;;;;;;;;;;;;;:44;;;;30371:97;30518:7;30499;:16;30507:7;30499:16;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;30480:7;:16;30488:7;30480:16;;;;;;;;;;;;;;;:45;;;;30558:6;30548:7;;:16;;;;:::i;:::-;30538:7;:26;;;;30595:7;30585;;:17;;;;:::i;:::-;30575:7;:27;;;;30644:1;30618:37;;30627:7;30618:37;;;30648:6;30618:37;;;;;;:::i;:::-;;;;;;;;30668:48;30688:7;30705:1;30709:6;30668:19;:48::i;:::-;29988:736;;;29914:810;;:::o;24443:320::-;24538:7;24596;;24585;:18;;24563:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;24684:19;24706:10;:8;:10::i;:::-;24684:32;;24744:11;24734:7;:21;;;;:::i;:::-;24727:28;;;24443:320;;;:::o;6439:191::-;6513:16;6532:6;;;;;;;;;;;6513:25;;6558:8;6549:6;;:17;;;;;;;;;;;;;;;;;;6613:8;6582:40;;6603:8;6582:40;;;;;;;;;;;;6502:128;6439:191;:::o;27999:244::-;28095:7;28120:16;28139:14;;28120:33;;28164:16;28206:3;28194:8;28184:7;:18;;;;:::i;:::-;28183:26;;;;:::i;:::-;28164:45;;28227:8;28220:15;;;;27999:244;;;:::o;29075:161::-;29117:7;29138:15;29155;29174:19;:17;:19::i;:::-;29137:56;;;;29221:7;29211;:17;;;;:::i;:::-;29204:24;;;;29075:161;:::o;18125:125::-;;;;:::o;26365:318::-;26511:7;26506:55;;26535:14;:12;:14::i;:::-;26506:55;26573:34;26591:4;26597:2;26601:5;26573:17;:34::i;:::-;26625:7;26620:56;;26649:15;:13;:15::i;:::-;26620:56;26365:318;;;;:::o;18854:124::-;;;;:::o;29244:662::-;29295:7;29304;29324:15;29342:7;;29324:25;;29360:15;29378:7;;29360:25;;29403:9;29398:366;29422:9;:16;;;;29418:1;:20;29398:366;;;29506:7;29482;:21;29490:9;29500:1;29490:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29482:21;;;;;;;;;;;;;;;;:31;:83;;;;29558:7;29534;:21;29542:9;29552:1;29542:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29534:21;;;;;;;;;;;;;;;;:31;29482:83;29460:181;;;29608:7;;29617;;29600:25;;;;;;;;;29460:181;29675:7;:21;29683:9;29693:1;29683:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29675:21;;;;;;;;;;;;;;;;29665:7;:31;;;;:::i;:::-;29655:41;;29731:7;:21;29739:9;29749:1;29739:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29731:21;;;;;;;;;;;;;;;;29721:7;:31;;;;:::i;:::-;29711:41;;29440:3;;;;;:::i;:::-;;;;29398:366;;;;29800:7;;29790;;:17;;;;:::i;:::-;29780:7;:27;29776:85;;;29832:7;;29841;;29824:25;;;;;;;;29776:85;29881:7;29890;29873:25;;;;;;29244:662;;;:::o;26691:165::-;26756:1;26738:14;;:19;26734:32;26759:7;26734:32;26803:14;;26778:22;:39;;;;26847:1;26830:14;:18;;;;26691:165;:::o;26963:1028::-;27110:15;27140:23;27178;27216:19;27249:27;27268:7;27249:18;:27::i;:::-;27095:181;;;;;;;;27325:7;27307;:15;27315:6;27307:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;27289:7;:15;27297:6;27289:15;;;;;;;;;;;;;;;:43;;;;27385:15;27364:7;:18;27372:9;27364:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;27343:7;:18;27351:9;27343:18;;;;;;;;;;;;;;;:57;;;;27417:11;:19;27429:6;27417:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;27441:11;:22;27453:9;27441:22;;;;;;;;;;;;;;;;;;;;;;;;;27440:23;27417:46;27413:463;;;27516:7;27498;:15;27506:6;27498:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;27480:7;:15;27488:6;27480:15;;;;;;;;;;;;;;;:43;;;;27413:463;;;27546:11;:19;27558:6;27546:19;;;;;;;;;;;;;;;;;;;;;;;;;27545:20;:46;;;;;27569:11;:22;27581:9;27569:22;;;;;;;;;;;;;;;;;;;;;;;;;27545:46;27541:335;;;27650:15;27629:7;:18;27637:9;27629:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;27608:7;:18;27616:9;27608:18;;;;;;;;;;;;;;;:57;;;;27541:335;;;27687:11;:19;27699:6;27687:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;27710:11;:22;27722:9;27710:22;;;;;;;;;;;;;;;;;;;;;;;;;27687:45;27683:193;;;27785:7;27767;:15;27775:6;27767:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;27749:7;:15;27757:6;27749:15;;;;;;;;;;;;;;;:43;;;;27849:15;27828:7;:18;27836:9;27828:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;27807:7;:18;27815:9;27807:18;;;;;;;;;;;;;;;:57;;;;27683:193;27541:335;27413:463;27888:33;27900:7;27909:11;27888;:33::i;:::-;27956:9;27939:44;;27948:6;27939:44;;;27967:15;27939:44;;;;;;:::i;:::-;;;;;;;;27084:907;;;;26963:1028;;;:::o;26864:91::-;26925:22;;26908:14;:39;;;;26864:91::o;28812:255::-;28890:12;28934:3;28916:14;;28906:7;:24;;;;:::i;:::-;28905:32;;;;:::i;:::-;28890:47;;28948:12;28970:11;28963:4;:18;;;;:::i;:::-;28948:33;;29014:4;29004:7;;:14;;;;:::i;:::-;28994:7;:24;;;;29055:4;29042:10;;:17;;;;:::i;:::-;29029:10;:30;;;;28879:188;;28812:255;;:::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:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:307::-;1373:1;1383:113;1397:6;1394:1;1391:13;1383:113;;;1482:1;1477:3;1473:11;1467:18;1463:1;1458:3;1454:11;1447:39;1419:2;1416:1;1412:10;1407:15;;1383:113;;;1514:6;1511:1;1508:13;1505:101;;;1594:1;1585:6;1580:3;1576:16;1569:27;1505:101;1354:258;1305:307;;;:::o;1618:102::-;1659:6;1710:2;1706:7;1701:2;1694:5;1690:14;1686:28;1676:38;;1618:102;;;:::o;1726:364::-;1814:3;1842:39;1875:5;1842:39;:::i;:::-;1897:71;1961:6;1956:3;1897:71;:::i;:::-;1890:78;;1977:52;2022:6;2017:3;2010:4;2003:5;1999:16;1977:52;:::i;:::-;2054:29;2076:6;2054:29;:::i;:::-;2049:3;2045:39;2038:46;;1818:272;1726:364;;;;:::o;2096:313::-;2209:4;2247:2;2236:9;2232:18;2224:26;;2296:9;2290:4;2286:20;2282:1;2271:9;2267:17;2260:47;2324:78;2397:4;2388:6;2324:78;:::i;:::-;2316:86;;2096:313;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:468::-;5897:6;5905;5954:2;5942:9;5933:7;5929:23;5925:32;5922:119;;;5960:79;;:::i;:::-;5922:119;6080:1;6105:53;6150:7;6141:6;6130:9;6126:22;6105:53;:::i;:::-;6095:63;;6051:117;6207:2;6233:50;6275:7;6266:6;6255:9;6251:22;6233:50;:::i;:::-;6223:60;;6178:115;5832:468;;;;;:::o;6306:118::-;6393:24;6411:5;6393:24;:::i;:::-;6388:3;6381:37;6306:118;;:::o;6430:222::-;6523:4;6561:2;6550:9;6546:18;6538:26;;6574:71;6642:1;6631:9;6627:17;6618:6;6574:71;:::i;:::-;6430:222;;;;:::o;6658:474::-;6726:6;6734;6783:2;6771:9;6762:7;6758:23;6754:32;6751:119;;;6789:79;;:::i;:::-;6751:119;6909:1;6934:53;6979:7;6970:6;6959:9;6955:22;6934:53;:::i;:::-;6924:63;;6880:117;7036:2;7062:53;7107:7;7098:6;7087:9;7083:22;7062:53;:::i;:::-;7052:63;;7007:118;6658:474;;;;;:::o;7138:231::-;7278:34;7274:1;7266:6;7262:14;7255:58;7347:14;7342:2;7334:6;7330:15;7323:39;7138:231;:::o;7375:366::-;7517:3;7538:67;7602:2;7597:3;7538:67;:::i;:::-;7531:74;;7614:93;7703:3;7614:93;:::i;:::-;7732:2;7727:3;7723:12;7716:19;;7375:366;;;:::o;7747:419::-;7913:4;7951:2;7940:9;7936:18;7928:26;;8000:9;7994:4;7990:20;7986:1;7975:9;7971:17;7964:47;8028:131;8154:4;8028:131;:::i;:::-;8020:139;;7747:419;;;:::o;8172:180::-;8220:77;8217:1;8210:88;8317:4;8314:1;8307:15;8341:4;8338:1;8331:15;8358:191;8398:4;8418:20;8436:1;8418:20;:::i;:::-;8413:25;;8452:20;8470:1;8452:20;:::i;:::-;8447:25;;8491:1;8488;8485:8;8482:34;;;8496:18;;:::i;:::-;8482:34;8541:1;8538;8534:9;8526:17;;8358:191;;;;:::o;8555:305::-;8595:3;8614:20;8632:1;8614:20;:::i;:::-;8609:25;;8648:20;8666:1;8648:20;:::i;:::-;8643:25;;8802:1;8734:66;8730:74;8727:1;8724:81;8721:107;;;8808:18;;:::i;:::-;8721:107;8852:1;8849;8845:9;8838:16;;8555:305;;;;:::o;8866:180::-;8914:77;8911:1;8904:88;9011:4;9008:1;9001:15;9035:4;9032:1;9025:15;9052:320;9096:6;9133:1;9127:4;9123:12;9113:22;;9180:1;9174:4;9170:12;9201:18;9191:81;;9257:4;9249:6;9245:17;9235:27;;9191:81;9319:2;9311:6;9308:14;9288:18;9285:38;9282:84;;9338:18;;:::i;:::-;9282:84;9103:269;9052:320;;;:::o;9378:227::-;9518:34;9514:1;9506:6;9502:14;9495:58;9587:10;9582:2;9574:6;9570:15;9563:35;9378:227;:::o;9611:366::-;9753:3;9774:67;9838:2;9833:3;9774:67;:::i;:::-;9767:74;;9850:93;9939:3;9850:93;:::i;:::-;9968:2;9963:3;9959:12;9952:19;;9611:366;;;:::o;9983:419::-;10149:4;10187:2;10176:9;10172:18;10164:26;;10236:9;10230:4;10226:20;10222:1;10211:9;10207:17;10200:47;10264:131;10390:4;10264:131;:::i;:::-;10256:139;;9983:419;;;:::o;10408:182::-;10548:34;10544:1;10536:6;10532:14;10525:58;10408:182;:::o;10596:366::-;10738:3;10759:67;10823:2;10818:3;10759:67;:::i;:::-;10752:74;;10835:93;10924:3;10835:93;:::i;:::-;10953:2;10948:3;10944:12;10937:19;;10596:366;;;:::o;10968:419::-;11134:4;11172:2;11161:9;11157:18;11149:26;;11221:9;11215:4;11211:20;11207:1;11196:9;11192:17;11185:47;11249:131;11375:4;11249:131;:::i;:::-;11241:139;;10968:419;;;:::o;11393:181::-;11533:33;11529:1;11521:6;11517:14;11510:57;11393:181;:::o;11580:366::-;11722:3;11743:67;11807:2;11802:3;11743:67;:::i;:::-;11736:74;;11819:93;11908:3;11819:93;:::i;:::-;11937:2;11932:3;11928:12;11921:19;;11580:366;;;:::o;11952:419::-;12118:4;12156:2;12145:9;12141:18;12133:26;;12205:9;12199:4;12195:20;12191:1;12180:9;12176:17;12169:47;12233:131;12359:4;12233:131;:::i;:::-;12225:139;;11952:419;;;:::o;12377:177::-;12517:29;12513:1;12505:6;12501:14;12494:53;12377:177;:::o;12560:366::-;12702:3;12723:67;12787:2;12782:3;12723:67;:::i;:::-;12716:74;;12799:93;12888:3;12799:93;:::i;:::-;12917:2;12912:3;12908:12;12901:19;;12560:366;;;:::o;12932:419::-;13098:4;13136:2;13125:9;13121:18;13113:26;;13185:9;13179:4;13175:20;13171:1;13160:9;13156:17;13149:47;13213:131;13339:4;13213:131;:::i;:::-;13205:139;;12932:419;;;:::o;13357:223::-;13497:34;13493:1;13485:6;13481:14;13474:58;13566:6;13561:2;13553:6;13549:15;13542:31;13357:223;:::o;13586:366::-;13728:3;13749:67;13813:2;13808:3;13749:67;:::i;:::-;13742:74;;13825:93;13914:3;13825:93;:::i;:::-;13943:2;13938:3;13934:12;13927:19;;13586:366;;;:::o;13958:419::-;14124:4;14162:2;14151:9;14147:18;14139:26;;14211:9;14205:4;14201:20;14197:1;14186:9;14182:17;14175:47;14239:131;14365:4;14239:131;:::i;:::-;14231:139;;13958:419;;;:::o;14383:224::-;14523:34;14519:1;14511:6;14507:14;14500:58;14592:7;14587:2;14579:6;14575:15;14568:32;14383:224;:::o;14613:366::-;14755:3;14776:67;14840:2;14835:3;14776:67;:::i;:::-;14769:74;;14852:93;14941:3;14852:93;:::i;:::-;14970:2;14965:3;14961:12;14954:19;;14613:366;;;:::o;14985:419::-;15151:4;15189:2;15178:9;15174:18;15166:26;;15238:9;15232:4;15228:20;15224:1;15213:9;15209:17;15202:47;15266:131;15392:4;15266:131;:::i;:::-;15258:139;;14985:419;;;:::o;15410:225::-;15550:34;15546:1;15538:6;15534:14;15527:58;15619:8;15614:2;15606:6;15602:15;15595:33;15410:225;:::o;15641:366::-;15783:3;15804:67;15868:2;15863:3;15804:67;:::i;:::-;15797:74;;15880:93;15969:3;15880:93;:::i;:::-;15998:2;15993:3;15989:12;15982:19;;15641:366;;;:::o;16013:419::-;16179:4;16217:2;16206:9;16202:18;16194:26;;16266:9;16260:4;16256:20;16252:1;16241:9;16237:17;16230:47;16294:131;16420:4;16294:131;:::i;:::-;16286:139;;16013:419;;;:::o;16438:177::-;16578:29;16574:1;16566:6;16562:14;16555:53;16438:177;:::o;16621:366::-;16763:3;16784:67;16848:2;16843:3;16784:67;:::i;:::-;16777:74;;16860:93;16949:3;16860:93;:::i;:::-;16978:2;16973:3;16969:12;16962:19;;16621:366;;;:::o;16993:419::-;17159:4;17197:2;17186:9;17182:18;17174:26;;17246:9;17240:4;17236:20;17232:1;17221:9;17217:17;17210:47;17274:131;17400:4;17274:131;:::i;:::-;17266:139;;16993:419;;;:::o;17418:180::-;17466:77;17463:1;17456:88;17563:4;17560:1;17553:15;17587:4;17584:1;17577:15;17604:180;17652:77;17649:1;17642:88;17749:4;17746:1;17739:15;17773:4;17770:1;17763:15;17790:233;17829:3;17852:24;17870:5;17852:24;:::i;:::-;17843:33;;17898:66;17891:5;17888:77;17885:103;;17968:18;;:::i;:::-;17885:103;18015:1;18008:5;18004:13;17997:20;;17790:233;;;:::o;18029:348::-;18069:7;18092:20;18110:1;18092:20;:::i;:::-;18087:25;;18126:20;18144:1;18126:20;:::i;:::-;18121:25;;18314:1;18246:66;18242:74;18239:1;18236:81;18231:1;18224:9;18217:17;18213:105;18210:131;;;18321:18;;:::i;:::-;18210:131;18369:1;18366;18362:9;18351:20;;18029:348;;;;:::o;18383:223::-;18523:34;18519:1;18511:6;18507:14;18500:58;18592:6;18587:2;18579:6;18575:15;18568:31;18383:223;:::o;18612:366::-;18754:3;18775:67;18839:2;18834:3;18775:67;:::i;:::-;18768:74;;18851:93;18940:3;18851:93;:::i;:::-;18969:2;18964:3;18960:12;18953:19;;18612:366;;;:::o;18984:419::-;19150:4;19188:2;19177:9;19173:18;19165:26;;19237:9;19231:4;19227:20;19223:1;19212:9;19208:17;19201:47;19265:131;19391:4;19265:131;:::i;:::-;19257:139;;18984:419;;;:::o;19409:221::-;19549:34;19545:1;19537:6;19533:14;19526:58;19618:4;19613:2;19605:6;19601:15;19594:29;19409:221;:::o;19636:366::-;19778:3;19799:67;19863:2;19858:3;19799:67;:::i;:::-;19792:74;;19875:93;19964:3;19875:93;:::i;:::-;19993:2;19988:3;19984:12;19977:19;;19636:366;;;:::o;20008:419::-;20174:4;20212:2;20201:9;20197:18;20189:26;;20261:9;20255:4;20251:20;20247:1;20236:9;20232:17;20225:47;20289:131;20415:4;20289:131;:::i;:::-;20281:139;;20008:419;;;:::o;20433:224::-;20573:34;20569:1;20561:6;20557:14;20550:58;20642:7;20637:2;20629:6;20625:15;20618:32;20433:224;:::o;20663:366::-;20805:3;20826:67;20890:2;20885:3;20826:67;:::i;:::-;20819:74;;20902:93;20991:3;20902:93;:::i;:::-;21020:2;21015:3;21011:12;21004:19;;20663:366;;;:::o;21035:419::-;21201:4;21239:2;21228:9;21224:18;21216:26;;21288:9;21282:4;21278:20;21274:1;21263:9;21259:17;21252:47;21316:131;21442:4;21316:131;:::i;:::-;21308:139;;21035:419;;;:::o;21460:222::-;21600:34;21596:1;21588:6;21584:14;21577:58;21669:5;21664:2;21656:6;21652:15;21645:30;21460:222;:::o;21688:366::-;21830:3;21851:67;21915:2;21910:3;21851:67;:::i;:::-;21844:74;;21927:93;22016:3;21927:93;:::i;:::-;22045:2;22040:3;22036:12;22029:19;;21688:366;;;:::o;22060:419::-;22226:4;22264:2;22253:9;22249:18;22241:26;;22313:9;22307:4;22303:20;22299:1;22288:9;22284:17;22277:47;22341:131;22467:4;22341:131;:::i;:::-;22333:139;;22060:419;;;:::o;22485:225::-;22625:34;22621:1;22613:6;22609:14;22602:58;22694:8;22689:2;22681:6;22677:15;22670:33;22485:225;:::o;22716:366::-;22858:3;22879:67;22943:2;22938:3;22879:67;:::i;:::-;22872:74;;22955:93;23044:3;22955:93;:::i;:::-;23073:2;23068:3;23064:12;23057:19;;22716:366;;;:::o;23088:419::-;23254:4;23292:2;23281:9;23277:18;23269:26;;23341:9;23335:4;23331:20;23327:1;23316:9;23312:17;23305:47;23369:131;23495:4;23369:131;:::i;:::-;23361:139;;23088:419;;;:::o;23513:181::-;23653:33;23649:1;23641:6;23637:14;23630:57;23513:181;:::o;23700:366::-;23842:3;23863:67;23927:2;23922:3;23863:67;:::i;:::-;23856:74;;23939:93;24028:3;23939:93;:::i;:::-;24057:2;24052:3;24048:12;24041:19;;23700:366;;;:::o;24072:419::-;24238:4;24276:2;24265:9;24261:18;24253:26;;24325:9;24319:4;24315:20;24311:1;24300:9;24296:17;24289:47;24353:131;24479:4;24353:131;:::i;:::-;24345:139;;24072:419;;;:::o;24497:220::-;24637:34;24633:1;24625:6;24621:14;24614:58;24706:3;24701:2;24693:6;24689:15;24682:28;24497:220;:::o;24723:366::-;24865:3;24886:67;24950:2;24945:3;24886:67;:::i;:::-;24879:74;;24962:93;25051:3;24962:93;:::i;:::-;25080:2;25075:3;25071:12;25064:19;;24723:366;;;:::o;25095:419::-;25261:4;25299:2;25288:9;25284:18;25276:26;;25348:9;25342:4;25338:20;25334:1;25323:9;25319:17;25312:47;25376:131;25502:4;25376:131;:::i;:::-;25368:139;;25095:419;;;:::o;25520:221::-;25660:34;25656:1;25648:6;25644:14;25637:58;25729:4;25724:2;25716:6;25712:15;25705:29;25520:221;:::o;25747:366::-;25889:3;25910:67;25974:2;25969:3;25910:67;:::i;:::-;25903:74;;25986:93;26075:3;25986:93;:::i;:::-;26104:2;26099:3;26095:12;26088:19;;25747:366;;;:::o;26119:419::-;26285:4;26323:2;26312:9;26308:18;26300:26;;26372:9;26366:4;26362:20;26358:1;26347:9;26343:17;26336:47;26400:131;26526:4;26400:131;:::i;:::-;26392:139;;26119:419;;;:::o;26544:229::-;26684:34;26680:1;26672:6;26668:14;26661:58;26753:12;26748:2;26740:6;26736:15;26729:37;26544:229;:::o;26779:366::-;26921:3;26942:67;27006:2;27001:3;26942:67;:::i;:::-;26935:74;;27018:93;27107:3;27018:93;:::i;:::-;27136:2;27131:3;27127:12;27120:19;;26779:366;;;:::o;27151:419::-;27317:4;27355:2;27344:9;27340:18;27332:26;;27404:9;27398:4;27394:20;27390:1;27379:9;27375:17;27368:47;27432:131;27558:4;27432:131;:::i;:::-;27424:139;;27151:419;;;:::o;27576:180::-;27624:77;27621:1;27614:88;27721:4;27718:1;27711:15;27745:4;27742:1;27735:15;27762:185;27802:1;27819:20;27837:1;27819:20;:::i;:::-;27814:25;;27853:20;27871:1;27853:20;:::i;:::-;27848:25;;27892:1;27882:35;;27897:18;;:::i;:::-;27882:35;27939:1;27936;27932:9;27927:14;;27762:185;;;;:::o
Swarm Source
ipfs://9bee9b329c6181f13c9889b68242cabb1945fa9c4956ec967d43f4300dbd89e9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.