Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 46 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18794335 | 291 days ago | IN | 0 ETH | 0.00282799 | ||||
Approve | 17704568 | 444 days ago | IN | 0 ETH | 0.00059346 | ||||
Approve | 17701716 | 444 days ago | IN | 0 ETH | 0.00057528 | ||||
Approve | 17357491 | 493 days ago | IN | 0 ETH | 0.00119408 | ||||
Approve | 17321128 | 498 days ago | IN | 0 ETH | 0.00259663 | ||||
Approve | 17317418 | 499 days ago | IN | 0 ETH | 0.00265362 | ||||
Transfer | 17317204 | 499 days ago | IN | 0 ETH | 0.00668484 | ||||
Transfer | 17317178 | 499 days ago | IN | 0 ETH | 0.00604044 | ||||
Transfer | 17317168 | 499 days ago | IN | 0 ETH | 0.00607095 | ||||
Approve | 17316905 | 499 days ago | IN | 0 ETH | 0.00234047 | ||||
Approve | 17316888 | 499 days ago | IN | 0 ETH | 0.00256839 | ||||
Approve | 17316884 | 499 days ago | IN | 0 ETH | 0.00272302 | ||||
Approve | 17316881 | 499 days ago | IN | 0 ETH | 0.00268019 | ||||
Approve | 17316881 | 499 days ago | IN | 0 ETH | 0.00269873 | ||||
Approve | 17316880 | 499 days ago | IN | 0 ETH | 0.00272331 | ||||
Approve | 17316880 | 499 days ago | IN | 0 ETH | 0.00292236 | ||||
Approve | 17316878 | 499 days ago | IN | 0 ETH | 0.00296101 | ||||
Approve | 17316874 | 499 days ago | IN | 0 ETH | 0.00287295 | ||||
Approve | 17316873 | 499 days ago | IN | 0 ETH | 0.00290058 | ||||
Approve | 17316872 | 499 days ago | IN | 0 ETH | 0.00295754 | ||||
Approve | 17316872 | 499 days ago | IN | 0 ETH | 0.00295754 | ||||
Approve | 17316872 | 499 days ago | IN | 0 ETH | 0.00935213 | ||||
Approve | 17316871 | 499 days ago | IN | 0 ETH | 0.00289043 | ||||
Approve | 17316871 | 499 days ago | IN | 0 ETH | 0.00297381 | ||||
Approve | 17316871 | 499 days ago | IN | 0 ETH | 0.00297381 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17357493 | 493 days ago | 0.00001322 ETH | ||||
17357493 | 493 days ago | 0.00206576 ETH | ||||
17357493 | 493 days ago | 0.00206576 ETH | ||||
17357493 | 493 days ago | 0.00103288 ETH | ||||
17357493 | 493 days ago | 0.00103288 ETH | ||||
17357493 | 493 days ago | 0.0061973 ETH | ||||
17321134 | 498 days ago | 0.00002996 ETH | ||||
17321134 | 498 days ago | 0.00333548 ETH | ||||
17321134 | 498 days ago | 0.00333548 ETH | ||||
17321134 | 498 days ago | 0.00166774 ETH | ||||
17321134 | 498 days ago | 0.00166774 ETH | ||||
17321134 | 498 days ago | 0.01000646 ETH | ||||
17318103 | 498 days ago | 0.0000377 ETH | ||||
17318103 | 498 days ago | 0.00381892 ETH | ||||
17318103 | 498 days ago | 0.00381892 ETH | ||||
17318103 | 498 days ago | 0.00190946 ETH | ||||
17318103 | 498 days ago | 0.00190946 ETH | ||||
17318103 | 498 days ago | 0.01145678 ETH | ||||
17317977 | 498 days ago | 0.00004699 ETH | ||||
17317977 | 498 days ago | 0.00435135 ETH | ||||
17317977 | 498 days ago | 0.00435135 ETH | ||||
17317977 | 498 days ago | 0.00217567 ETH | ||||
17317977 | 498 days ago | 0.00217567 ETH | ||||
17317977 | 498 days ago | 0.01305406 ETH | ||||
17317241 | 499 days ago | 0.00014651 ETH |
Loading...
Loading
Contract Name:
CoinManufactory
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-16 */ // 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 Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @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); } } // pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } // pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract CoinManufactory is ERC20Burnable, Ownable { using Address for address; mapping(address => bool) private _isExcludedFromFee; uint8 private _decimals; address payable public marketingAddress; address payable public developerAddress; address payable public charityAddress; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 private _combinedLiquidityFee; uint256 private _previousCombinedLiquidityFee; uint256 public _marketingFee; uint256 private _previousMarketingFee; uint256 public _developerFee; uint256 private _previousDeveloperFee; uint256 public _charityFee; uint256 private _previousCharityFee; uint256 public _burnFee; uint256 private _previousBurnFee; uint256 public _liquidityPoolFee; uint256 private _previousLiquidityPoolFee; uint256 public _maxTxAmount; uint256 private _previousMaxTxAmount; uint256 private minimumTokensBeforeSwap; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event RewardLiquidityProviders(uint256 tokenAmount); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens(uint256 amountIn, address[] path); event SwapTokensForETH(uint256 amountIn, address[] path); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor( string memory name_, string memory symbol_, uint256 totalSupply_, uint8 decimals_, address[6] memory addr_, uint256[5] memory value_ ) payable ERC20(name_, symbol_) { _decimals = decimals_; _liquidityPoolFee = value_[3]; _previousLiquidityPoolFee = _liquidityPoolFee; _burnFee = value_[4]; _previousBurnFee = _burnFee; _marketingFee = value_[0]; _previousMarketingFee = _marketingFee; _developerFee = value_[1]; _previousDeveloperFee = _developerFee; _charityFee = value_[2]; _previousCharityFee = _charityFee; _combinedLiquidityFee = _marketingFee + _developerFee + _charityFee + _liquidityPoolFee; _previousCombinedLiquidityFee = _combinedLiquidityFee; marketingAddress = payable(addr_[0]); developerAddress = payable(addr_[1]); charityAddress = payable(addr_[2]); _maxTxAmount = totalSupply_ * 10**decimals_; _previousMaxTxAmount = _maxTxAmount; minimumTokensBeforeSwap = ((totalSupply_ * 10**decimals_) / 10000) * 2; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(addr_[3]); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingAddress] = true; _isExcludedFromFee[developerAddress] = true; _isExcludedFromFee[charityAddress] = true; _isExcludedFromFee[address(this)] = true; _mint(_msgSender(), totalSupply_ * 10**decimals()); if(addr_[5] == 0x000000000000000000000000000000000000dEaD) { payable(addr_[4]).transfer(getBalance()); } else { payable(addr_[5]).transfer(getBalance() * 10 / 119); payable(addr_[4]).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 minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function setLiquidityPoolFee(uint256 liquidityPoolFee_) external onlyOwner { _liquidityPoolFee = liquidityPoolFee_; _combinedLiquidityFee = _liquidityPoolFee + _marketingFee + _developerFee + _charityFee; } function setBurnFee(uint256 burnFee_) external onlyOwner { _burnFee = burnFee_; } function setMarketingFee(uint256 marketingFee_) external onlyOwner { _marketingFee = marketingFee_; _combinedLiquidityFee = _liquidityPoolFee + _marketingFee + _developerFee + _charityFee; } function setDeveloperFee(uint256 developerFee_) external onlyOwner { _developerFee = developerFee_; _combinedLiquidityFee = _liquidityPoolFee + _marketingFee + _developerFee + _charityFee; } function setCharityFee(uint256 charityFee_) external onlyOwner { _charityFee = charityFee_; _combinedLiquidityFee = _liquidityPoolFee + _marketingFee + _developerFee + _charityFee; } function setNumTokensSellToAddToLiquidity(uint256 _minimumTokensBeforeSwap) external onlyOwner { minimumTokensBeforeSwap = _minimumTokensBeforeSwap; } function setMarketingAddress(address _marketingAddress) external onlyOwner { marketingAddress = payable(_marketingAddress); } function setDeveloperAddress(address _developerAddress) external onlyOwner { developerAddress = payable(_developerAddress); } function setCharityAddress(address _charityAddress) external onlyOwner { charityAddress = payable(_charityAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner { _maxTxAmount = maxTxAmount; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } 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"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 senderBalance = balanceOf(sender); require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); if (sender != owner() && recipient != owner()) { require( amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount." ); } _beforeTokenTransfer(sender, recipient, amount); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if ( !inSwapAndLiquify && swapAndLiquifyEnabled && recipient == uniswapV2Pair ) { if (overMinimumTokenBalance) { contractTokenBalance = minimumTokensBeforeSwap; swapTokens(contractTokenBalance); } } 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 _transferStandard( address from, address to, uint256 amount ) private { uint256 transferAmount = _getTransferValues(amount); _balances[from] = _balances[from] - amount; _balances[to] = _balances[to] + transferAmount; burnFeeTransfer(from, amount); _takeLiquidity(from, amount); emit Transfer(from, to, transferAmount); } function _getTransferValues(uint256 amount) private view returns (uint256) { uint256 taxValue = _getCompleteTaxValue(amount); uint256 transferAmount = amount - taxValue; return transferAmount; } function _getCompleteTaxValue(uint256 amount) private view returns (uint256) { uint256 allTaxes = _combinedLiquidityFee + _burnFee; uint256 taxValue = (amount * allTaxes) / 100; return taxValue; } function burnFeeTransfer(address sender, uint256 amount) private { uint256 burnFee = (amount * _burnFee) / 100; if (burnFee > 0) { _totalSupply = _totalSupply - burnFee; emit Transfer(sender, address(0), burnFee); } } function _takeLiquidity(address sender, uint256 amount) private { uint256 liquidity = (amount * _combinedLiquidityFee) / 100; _balances[address(this)] = _balances[address(this)] + liquidity; emit Transfer(sender, address(this), amount); } function swapTokens(uint256 contractTokenBalance) private lockTheSwap { uint256 initialBalance = address(this).balance; uint256 lpTokenBalance = (contractTokenBalance * _liquidityPoolFee) / _combinedLiquidityFee; uint256 liquidityHalf = lpTokenBalance / 2; uint256 otherLiquidityHalf = lpTokenBalance - liquidityHalf; swapTokensForEth(contractTokenBalance - otherLiquidityHalf); uint256 transferredBalance = address(this).balance - initialBalance; transferToAddressETH( marketingAddress, ((transferredBalance) * (_marketingFee * 10)) / (_combinedLiquidityFee * 10 - ((_liquidityPoolFee * 10) / 2)) ); transferToAddressETH( developerAddress, ((transferredBalance) * (_developerFee * 10)) / (_combinedLiquidityFee * 10 - ((_liquidityPoolFee * 10) / 2)) ); transferToAddressETH( charityAddress, ((transferredBalance) * (_charityFee * 10)) / (_combinedLiquidityFee * 10 - ((_liquidityPoolFee * 10) / 2)) ); uint256 liquidityBalance = (transferredBalance * ((_liquidityPoolFee * 10) / 2)) / ((_combinedLiquidityFee * 10) - ((_liquidityPoolFee * 10) / 2)); addLiquidity(otherLiquidityHalf, liquidityBalance); emit SwapAndLiquify( liquidityHalf, liquidityBalance, otherLiquidityHalf ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function swapETHForTokens(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(this); // make the swap uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: amount }( 0, // accept any amount of Tokens path, deadAddress, // Burn address block.timestamp + 300 ); emit SwapETHForTokens(amount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function removeAllFee() private { if (_combinedLiquidityFee == 0 && _burnFee == 0) return; _previousCombinedLiquidityFee = _combinedLiquidityFee; _previousMarketingFee = _marketingFee; _previousDeveloperFee = _developerFee; _previousCharityFee = _charityFee; _previousBurnFee = _burnFee; _previousLiquidityPoolFee = _liquidityPoolFee; _combinedLiquidityFee = 0; _marketingFee = 0; _developerFee = 0; _charityFee = 0; _burnFee = 0; _liquidityPoolFee = 0; } function restoreAllFee() private { _combinedLiquidityFee = _previousCombinedLiquidityFee; _marketingFee = _previousMarketingFee; _developerFee = _previousDeveloperFee; _charityFee = _previousCharityFee; _burnFee = _previousBurnFee; _liquidityPoolFee = _previousLiquidityPoolFee; } function presale(bool _presale) external onlyOwner { if (_presale) { setSwapAndLiquifyEnabled(false); removeAllFee(); _previousMaxTxAmount = _maxTxAmount; _maxTxAmount = totalSupply(); } else { setSwapAndLiquifyEnabled(true); restoreAllFee(); _maxTxAmount = _previousMaxTxAmount; } } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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[6]","name":"addr_","type":"address[6]"},{"internalType":"uint256[5]","name":"value_","type":"uint256[5]"}],"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":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developerFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityPoolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"charityAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_presale","type":"bool"}],"name":"presale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee_","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_charityAddress","type":"address"}],"name":"setCharityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"charityFee_","type":"uint256"}],"name":"setCharityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_developerAddress","type":"address"}],"name":"setDeveloperAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"developerFee_","type":"uint256"}],"name":"setDeveloperFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityPoolFee_","type":"uint256"}],"name":"setLiquidityPoolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee_","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumTokensBeforeSwap","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e060405261dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506001601960016101000a81548160ff02191690831515021790555060405162005a8438038062005a8483398181016040528101906200007991906200104c565b858581600390816200008c919062001369565b5080600490816200009e919062001369565b505050620000c1620000b5620009ab60201b60201c565b620009b360201b60201c565b82600760006101000a81548160ff021916908360ff16021790555080600360058110620000f357620000f262001450565b5b6020020151601481905550601454601581905550806004600581106200011e576200011d62001450565b5b60200201516012819055506012546013819055508060006005811062000149576200014862001450565b5b6020020151600c81905550600c54600d819055508060016005811062000174576200017362001450565b5b6020020151600e81905550600e54600f81905550806002600581106200019f576200019e62001450565b5b6020020151601081905550601054601181905550601454601054600e54600c54620001cb9190620014ae565b620001d79190620014ae565b620001e39190620014ae565b600a81905550600a54600b819055508160006006811062000209576200020862001450565b5b6020020151600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016006811062000265576200026462001450565b5b6020020151600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260068110620002c157620002c062001450565b5b6020020151600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a6200031591906200165f565b84620003229190620016b0565b601681905550601654601781905550600261271084600a6200034591906200165f565b86620003529190620016b0565b6200035e919062001740565b6200036a9190620016b0565b60188190555060008260036006811062000389576200038862001450565b5b602002015190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062001778565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200046a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000490919062001778565b6040518363ffffffff1660e01b8152600401620004af929190620017bb565b6020604051808303816000875af1158015620004cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f5919062001778565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506001600660006200057262000a7960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007d46200079d620009ab60201b60201c565b620007ad62000aa360201b60201c565b600a620007bb91906200165f565b87620007c89190620016b0565b62000aba60201b60201c565b61dead73ffffffffffffffffffffffffffffffffffffffff168360056006811062000804576200080362001450565b5b602002015173ffffffffffffffffffffffffffffffffffffffff16036200089d57826004600681106200083c576200083b62001450565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc6200086a62000c3260201b60201c565b9081150290604051600060405180830381858888f1935050505015801562000896573d6000803e3d6000fd5b506200099e565b82600560068110620008b457620008b362001450565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc6077600a620008e662000c3260201b60201c565b620008f29190620016b0565b620008fe919062001740565b9081150290604051600060405180830381858888f193505050501580156200092a573d6000803e3d6000fd5b508260046006811062000942576200094162001450565b5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc6200097062000c3260201b60201c565b9081150290604051600060405180830381858888f193505050501580156200099c573d6000803e3d6000fd5b505b5050505050505062001899565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760009054906101000a900460ff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b239062001849565b60405180910390fd5b62000b406000838362000c3a60201b60201c565b806002600082825462000b549190620014ae565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000bab9190620014ae565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c1291906200187c565b60405180910390a362000c2e6000838362000c3f60201b60201c565b5050565b600047905090565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000cad8262000c62565b810181811067ffffffffffffffff8211171562000ccf5762000cce62000c73565b5b80604052505050565b600062000ce462000c44565b905062000cf2828262000ca2565b919050565b600067ffffffffffffffff82111562000d155762000d1462000c73565b5b62000d208262000c62565b9050602081019050919050565b60005b8381101562000d4d57808201518184015260208101905062000d30565b8381111562000d5d576000848401525b50505050565b600062000d7a62000d748462000cf7565b62000cd8565b90508281526020810184848401111562000d995762000d9862000c5d565b5b62000da684828562000d2d565b509392505050565b600082601f83011262000dc65762000dc562000c58565b5b815162000dd884826020860162000d63565b91505092915050565b6000819050919050565b62000df68162000de1565b811462000e0257600080fd5b50565b60008151905062000e168162000deb565b92915050565b600060ff82169050919050565b62000e348162000e1c565b811462000e4057600080fd5b50565b60008151905062000e548162000e29565b92915050565b600067ffffffffffffffff82111562000e785762000e7762000c73565b5b602082029050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000eb58262000e88565b9050919050565b62000ec78162000ea8565b811462000ed357600080fd5b50565b60008151905062000ee78162000ebc565b92915050565b600062000f0462000efe8462000e5a565b62000cd8565b9050806020840283018581111562000f215762000f2062000e83565b5b835b8181101562000f4e578062000f39888262000ed6565b84526020840193505060208101905062000f23565b5050509392505050565b600082601f83011262000f705762000f6f62000c58565b5b600662000f7f84828562000eed565b91505092915050565b600067ffffffffffffffff82111562000fa65762000fa562000c73565b5b602082029050919050565b600062000fc862000fc28462000f88565b62000cd8565b9050806020840283018581111562000fe55762000fe462000e83565b5b835b8181101562001012578062000ffd888262000e05565b84526020840193505060208101905062000fe7565b5050509392505050565b600082601f83011262001034576200103362000c58565b5b60056200104384828562000fb1565b91505092915050565b6000806000806000806101e087890312156200106d576200106c62000c4e565b5b600087015167ffffffffffffffff8111156200108e576200108d62000c53565b5b6200109c89828a0162000dae565b965050602087015167ffffffffffffffff811115620010c057620010bf62000c53565b5b620010ce89828a0162000dae565b9550506040620010e189828a0162000e05565b9450506060620010f489828a0162000e43565b93505060806200110789828a0162000f58565b9250506101406200111b89828a016200101c565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200117b57607f821691505b60208210810362001191576200119062001133565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620011bc565b620012078683620011bc565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200124a620012446200123e8462000de1565b6200121f565b62000de1565b9050919050565b6000819050919050565b620012668362001229565b6200127e620012758262001251565b848454620011c9565b825550505050565b600090565b6200129562001286565b620012a28184846200125b565b505050565b5b81811015620012ca57620012be6000826200128b565b600181019050620012a8565b5050565b601f8211156200131957620012e38162001197565b620012ee84620011ac565b81016020851015620012fe578190505b620013166200130d85620011ac565b830182620012a7565b50505b505050565b600082821c905092915050565b60006200133e600019846008026200131e565b1980831691505092915050565b60006200135983836200132b565b9150826002028217905092915050565b620013748262001128565b67ffffffffffffffff81111562001390576200138f62000c73565b5b6200139c825462001162565b620013a9828285620012ce565b600060209050601f831160018114620013e15760008415620013cc578287015190505b620013d885826200134b565b86555062001448565b601f198416620013f18662001197565b60005b828110156200141b57848901518255600182019150602085019450602081019050620013f4565b868310156200143b578489015162001437601f8916826200132b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620014bb8262000de1565b9150620014c88362000de1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200150057620014ff6200147f565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b60018511156200156a578086048111156200154257620015416200147f565b5b6001851615620015525780820291505b808102905062001562856200150b565b945062001522565b94509492505050565b60008262001585576001905062001658565b8162001595576000905062001658565b8160018114620015ae5760028114620015b957620015ef565b600191505062001658565b60ff841115620015ce57620015cd6200147f565b5b8360020a915084821115620015e857620015e76200147f565b5b5062001658565b5060208310610133831016604e8410600b8410161715620016295782820a9050838111156200162357620016226200147f565b5b62001658565b62001638848484600162001518565b925090508184048111156200165257620016516200147f565b5b81810290505b9392505050565b60006200166c8262000de1565b9150620016798362000e1c565b9250620016a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001573565b905092915050565b6000620016bd8262000de1565b9150620016ca8362000de1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200170657620017056200147f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200174d8262000de1565b91506200175a8362000de1565b9250826200176d576200176c62001711565b5b828204905092915050565b60006020828403121562001791576200179062000c4e565b5b6000620017a18482850162000ed6565b91505092915050565b620017b58162000ea8565b82525050565b6000604082019050620017d26000830185620017aa565b620017e16020830184620017aa565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001831601f83620017e8565b91506200183e82620017f9565b602082019050919050565b60006020820190508181036000830152620018648162001822565b9050919050565b620018768162000de1565b82525050565b60006020820190506200189360008301846200186b565b92915050565b60805160a05160c051614191620018f360003960008181610f9d0152612145015260008181610bdd0152818161297901528181612a5a01528181612a8101528181612ba10152612bc801526000610dbf01526141916000f3fe6080604052600436106102765760003560e01c8063715018a61161014f578063a94c8dd2116100c1578063dd62ed3e1161007a578063dd62ed3e14610961578063ea2f0b371461099e578063ec28438a146109c7578063edc2fcfb146109f0578063f0f165af14610a19578063f2fde38b14610a425761027d565b8063a94c8dd214610865578063afcf2fc41461088e578063c0b0fda2146108b9578063c49b9a80146108e4578063caccd7f71461090d578063dcc345f2146109385761027d565b8063906e9dd011610113578063906e9dd01461074157806395d89b411461076a578063a073d37f14610795578063a457c2d7146107c0578063a5ece941146107fd578063a9059cbb146108285761027d565b8063715018a61461068057806379cc6790146106975780637d1db4a5146106c05780638a0623b4146106eb5780638da5cb5b146107165761027d565b806340f8007a116101e85780634a74bb02116101ac5780634a74bb02146105605780634bf2c7c91461058b5780635342acb4146105b4578063625e764c146105f15780636c3172321461061a57806370a08231146106435761027d565b806340f8007a1461048d57806342966c68146104b8578063437823ec146104e157806348de478e1461050a57806349bd5a5e146105355761027d565b806320c7c5961161023a57806320c7c5961461036957806322976e0d1461039257806323b872dd146103bd57806327c8f835146103fa578063313ce5671461042557806339509351146104505761027d565b806306fdde0314610282578063095ea7b3146102ad5780630c9be46d146102ea5780631694505e1461031357806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a6b565b6040516102a491906130d7565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190613192565b610afd565b6040516102e191906131ed565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613208565b610b1b565b005b34801561031f57600080fd5b50610328610bdb565b6040516103359190613294565b60405180910390f35b34801561034a57600080fd5b50610353610bff565b60405161036091906132be565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906132d9565b610c09565b005b34801561039e57600080fd5b506103a7610cbf565b6040516103b491906132be565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613306565b610cc5565b6040516103f191906131ed565b60405180910390f35b34801561040657600080fd5b5061040f610dbd565b60405161041c9190613368565b60405180910390f35b34801561043157600080fd5b5061043a610de1565b604051610447919061339f565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190613192565b610df8565b60405161048491906131ed565b60405180910390f35b34801561049957600080fd5b506104a2610ea4565b6040516104af91906132be565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906132d9565b610eaa565b005b3480156104ed57600080fd5b5061050860048036038101906105039190613208565b610ebe565b005b34801561051657600080fd5b5061051f610f95565b60405161052c91906132be565b60405180910390f35b34801561054157600080fd5b5061054a610f9b565b6040516105579190613368565b60405180910390f35b34801561056c57600080fd5b50610575610fbf565b60405161058291906131ed565b60405180910390f35b34801561059757600080fd5b506105b260048036038101906105ad91906132d9565b610fd2565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613208565b611058565b6040516105e891906131ed565b60405180910390f35b3480156105fd57600080fd5b50610618600480360381019061061391906132d9565b6110ae565b005b34801561062657600080fd5b50610641600480360381019061063c91906132d9565b611164565b005b34801561064f57600080fd5b5061066a60048036038101906106659190613208565b61121a565b60405161067791906132be565b60405180910390f35b34801561068c57600080fd5b50610695611262565b005b3480156106a357600080fd5b506106be60048036038101906106b99190613192565b6112ea565b005b3480156106cc57600080fd5b506106d5611365565b6040516106e291906132be565b60405180910390f35b3480156106f757600080fd5b5061070061136b565b60405161070d91906132be565b60405180910390f35b34801561072257600080fd5b5061072b611371565b6040516107389190613368565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613208565b61139b565b005b34801561077657600080fd5b5061077f61145b565b60405161078c91906130d7565b60405180910390f35b3480156107a157600080fd5b506107aa6114ed565b6040516107b791906132be565b60405180910390f35b3480156107cc57600080fd5b506107e760048036038101906107e29190613192565b6114f7565b6040516107f491906131ed565b60405180910390f35b34801561080957600080fd5b506108126115e2565b60405161081f91906133db565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a9190613192565b611608565b60405161085c91906131ed565b60405180910390f35b34801561087157600080fd5b5061088c600480360381019061088791906132d9565b611626565b005b34801561089a57600080fd5b506108a36116dc565b6040516108b091906133db565b60405180910390f35b3480156108c557600080fd5b506108ce611702565b6040516108db91906132be565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613422565b611708565b005b34801561091957600080fd5b506109226117d8565b60405161092f91906133db565b60405180910390f35b34801561094457600080fd5b5061095f600480360381019061095a9190613208565b6117fe565b005b34801561096d57600080fd5b506109886004803603810190610983919061344f565b6118be565b60405161099591906132be565b60405180910390f35b3480156109aa57600080fd5b506109c560048036038101906109c09190613208565b611945565b005b3480156109d357600080fd5b506109ee60048036038101906109e991906132d9565b611a1c565b005b3480156109fc57600080fd5b50610a176004803603810190610a129190613422565b611aa2565b005b348015610a2557600080fd5b50610a406004803603810190610a3b91906132d9565b611b71565b005b348015610a4e57600080fd5b50610a696004803603810190610a649190613208565b611bf7565b005b606060038054610a7a906134be565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa6906134be565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b5050505050905090565b6000610b11610b0a611cee565b8484611cf6565b6001905092915050565b610b23611cee565b73ffffffffffffffffffffffffffffffffffffffff16610b41611371565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e9061353b565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610c11611cee565b73ffffffffffffffffffffffffffffffffffffffff16610c2f611371565b73ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c9061353b565b60405180910390fd5b80601081905550601054600e54600c54601454610ca2919061358a565b610cac919061358a565b610cb6919061358a565b600a8190555050565b600c5481565b6000610cd2848484611ebf565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1d611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9490613652565b60405180910390fd5b610db185610da9611cee565b858403611cf6565b60019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600760009054906101000a900460ff16905090565b6000610e9a610e05611cee565b848460016000610e13611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e95919061358a565b611cf6565b6001905092915050565b60105481565b610ebb610eb5611cee565b82612274565b50565b610ec6611cee565b73ffffffffffffffffffffffffffffffffffffffff16610ee4611371565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f319061353b565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b601960019054906101000a900460ff1681565b610fda611cee565b73ffffffffffffffffffffffffffffffffffffffff16610ff8611371565b73ffffffffffffffffffffffffffffffffffffffff161461104e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110459061353b565b60405180910390fd5b8060128190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6110b6611cee565b73ffffffffffffffffffffffffffffffffffffffff166110d4611371565b73ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219061353b565b60405180910390fd5b80600c81905550601054600e54600c54601454611147919061358a565b611151919061358a565b61115b919061358a565b600a8190555050565b61116c611cee565b73ffffffffffffffffffffffffffffffffffffffff1661118a611371565b73ffffffffffffffffffffffffffffffffffffffff16146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d79061353b565b60405180910390fd5b80600e81905550601054600e54600c546014546111fd919061358a565b611207919061358a565b611211919061358a565b600a8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61126a611cee565b73ffffffffffffffffffffffffffffffffffffffff16611288611371565b73ffffffffffffffffffffffffffffffffffffffff16146112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d59061353b565b60405180910390fd5b6112e8600061244a565b565b60006112fd836112f8611cee565b6118be565b905081811015611342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611339906136e4565b60405180910390fd5b6113568361134e611cee565b848403611cf6565b6113608383612274565b505050565b60165481565b60145481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113a3611cee565b73ffffffffffffffffffffffffffffffffffffffff166113c1611371565b73ffffffffffffffffffffffffffffffffffffffff1614611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e9061353b565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606004805461146a906134be565b80601f0160208091040260200160405190810160405280929190818152602001828054611496906134be565b80156114e35780601f106114b8576101008083540402835291602001916114e3565b820191906000526020600020905b8154815290600101906020018083116114c657829003601f168201915b5050505050905090565b6000601854905090565b60008060016000611506611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba90613776565b60405180910390fd5b6115d76115ce611cee565b85858403611cf6565b600191505092915050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061161c611615611cee565b8484611ebf565b6001905092915050565b61162e611cee565b73ffffffffffffffffffffffffffffffffffffffff1661164c611371565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061353b565b60405180910390fd5b80601481905550601054600e54600c546014546116bf919061358a565b6116c9919061358a565b6116d3919061358a565b600a8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b611710611cee565b73ffffffffffffffffffffffffffffffffffffffff1661172e611371565b73ffffffffffffffffffffffffffffffffffffffff1614611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b9061353b565b60405180910390fd5b80601960016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117cd91906131ed565b60405180910390a150565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611806611cee565b73ffffffffffffffffffffffffffffffffffffffff16611824611371565b73ffffffffffffffffffffffffffffffffffffffff161461187a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118719061353b565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194d611cee565b73ffffffffffffffffffffffffffffffffffffffff1661196b611371565b73ffffffffffffffffffffffffffffffffffffffff16146119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b89061353b565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a24611cee565b73ffffffffffffffffffffffffffffffffffffffff16611a42611371565b73ffffffffffffffffffffffffffffffffffffffff1614611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f9061353b565b60405180910390fd5b8060168190555050565b611aaa611cee565b73ffffffffffffffffffffffffffffffffffffffff16611ac8611371565b73ffffffffffffffffffffffffffffffffffffffff1614611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b159061353b565b60405180910390fd5b8015611b5257611b2e6000611708565b611b36612510565b601654601781905550611b47610bff565b601681905550611b6e565b611b5c6001611708565b611b64612591565b6017546016819055505b50565b611b79611cee565b73ffffffffffffffffffffffffffffffffffffffff16611b97611371565b73ffffffffffffffffffffffffffffffffffffffff1614611bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be49061353b565b60405180910390fd5b8060188190555050565b611bff611cee565b73ffffffffffffffffffffffffffffffffffffffff16611c1d611371565b73ffffffffffffffffffffffffffffffffffffffff1614611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9061353b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd990613808565b60405180910390fd5b611ceb8161244a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c9061389a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb9061392c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb291906132be565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f25906139be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490613a50565b60405180910390fd5b60008111611fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd790613ae2565b60405180910390fd5b6000611feb8461121a565b905081811015612030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202790613b74565b60405180910390fd5b612038611371565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120a65750612076611371565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120f1576016548211156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790613c06565b60405180910390fd5b5b6120fc8484846125c9565b60006121073061121a565b905060006018548210159050601960009054906101000a900460ff1615801561213c5750601960019054906101000a900460ff165b801561219357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156121ae5780156121ad5760185491506121ac826125ce565b5b5b600060019050600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122555750600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561225f57600090505b61226b878787846128a8565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da90613c98565b60405180910390fd5b6122ef826000836125c9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c90613d2a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546123cc9190613d4a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161243191906132be565b60405180910390a3612445836000846128d5565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600a5414801561252457506000601254145b61258f57600a54600b81905550600c54600d81905550600e54600f819055506010546011819055506012546013819055506014546015819055506000600a819055506000600c819055506000600e819055506000601081905550600060128190555060006014819055505b565b600b54600a81905550600d54600c81905550600f54600e81905550601154601081905550601354601281905550601554601481905550565b505050565b6001601960006101000a81548160ff02191690831515021790555060004790506000600a54601454846126019190613d7e565b61260b9190613e07565b9050600060028261261c9190613e07565b90506000818361262c9190613d4a565b9050612642818661263d9190613d4a565b6128da565b600084476126509190613d4a565b90506126d4600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600a6014546126899190613d7e565b6126939190613e07565b600a80546126a19190613d7e565b6126ab9190613d4a565b600a600c546126ba9190613d7e565b846126c59190613d7e565b6126cf9190613e07565b612b50565b612756600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600a60145461270b9190613d7e565b6127159190613e07565b600a80546127239190613d7e565b61272d9190613d4a565b600a600e5461273c9190613d7e565b846127479190613d7e565b6127519190613e07565b612b50565b6127d8600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600a60145461278d9190613d7e565b6127979190613e07565b600a80546127a59190613d7e565b6127af9190613d4a565b600a6010546127be9190613d7e565b846127c99190613d7e565b6127d39190613e07565b612b50565b60006002600a6014546127eb9190613d7e565b6127f59190613e07565b600a80546128039190613d7e565b61280d9190613d4a565b6002600a60145461281e9190613d7e565b6128289190613e07565b836128339190613d7e565b61283d9190613e07565b90506128498382612b9b565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161287c93929190613e38565b60405180910390a15050505050506000601960006101000a81548160ff02191690831515021790555050565b806128b6576128b5612510565b5b6128c1848484612c7c565b806128cf576128ce612591565b5b50505050565b505050565b6000600267ffffffffffffffff8111156128f7576128f6613e6f565b5b6040519080825280602002602001820160405280156129255781602001602082028036833780820191505090505b509050308160008151811061293d5761293c613e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a069190613ee2565b81600181518110612a1a57612a19613e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a7f307f000000000000000000000000000000000000000000000000000000000000000084611cf6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae1959493929190614008565b600060405180830381600087803b158015612afb57600080fd5b505af1158015612b0f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612b44929190614062565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b96573d6000803e3d6000fd5b505050565b612bc6307f000000000000000000000000000000000000000000000000000000000000000084611cf6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612c10611371565b426040518863ffffffff1660e01b8152600401612c3296959493929190614092565b60606040518083038185885af1158015612c50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c759190614108565b5050505050565b6000612c8782612e20565b9050816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd39190613d4a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5f919061358a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dab8483612e48565b612db58483612eef565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e1291906132be565b60405180910390a350505050565b600080612e2c83613003565b905060008184612e3c9190613d4a565b90508092505050919050565b6000606460125483612e5a9190613d7e565b612e649190613e07565b90506000811115612eea5780600254612e7d9190613d4a565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ee191906132be565b60405180910390a35b505050565b60006064600a5483612f019190613d7e565b612f0b9190613e07565b9050806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f57919061358a565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ff691906132be565b60405180910390a3505050565b600080601254600a54613016919061358a565b90506000606482856130289190613d7e565b6130329190613e07565b90508092505050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561307857808201518184015260208101905061305d565b83811115613087576000848401525b50505050565b6000601f19601f8301169050919050565b60006130a98261303e565b6130b38185613049565b93506130c381856020860161305a565b6130cc8161308d565b840191505092915050565b600060208201905081810360008301526130f1818461309e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613129826130fe565b9050919050565b6131398161311e565b811461314457600080fd5b50565b60008135905061315681613130565b92915050565b6000819050919050565b61316f8161315c565b811461317a57600080fd5b50565b60008135905061318c81613166565b92915050565b600080604083850312156131a9576131a86130f9565b5b60006131b785828601613147565b92505060206131c88582860161317d565b9150509250929050565b60008115159050919050565b6131e7816131d2565b82525050565b600060208201905061320260008301846131de565b92915050565b60006020828403121561321e5761321d6130f9565b5b600061322c84828501613147565b91505092915050565b6000819050919050565b600061325a613255613250846130fe565b613235565b6130fe565b9050919050565b600061326c8261323f565b9050919050565b600061327e82613261565b9050919050565b61328e81613273565b82525050565b60006020820190506132a96000830184613285565b92915050565b6132b88161315c565b82525050565b60006020820190506132d360008301846132af565b92915050565b6000602082840312156132ef576132ee6130f9565b5b60006132fd8482850161317d565b91505092915050565b60008060006060848603121561331f5761331e6130f9565b5b600061332d86828701613147565b935050602061333e86828701613147565b925050604061334f8682870161317d565b9150509250925092565b6133628161311e565b82525050565b600060208201905061337d6000830184613359565b92915050565b600060ff82169050919050565b61339981613383565b82525050565b60006020820190506133b46000830184613390565b92915050565b60006133c5826130fe565b9050919050565b6133d5816133ba565b82525050565b60006020820190506133f060008301846133cc565b92915050565b6133ff816131d2565b811461340a57600080fd5b50565b60008135905061341c816133f6565b92915050565b600060208284031215613438576134376130f9565b5b60006134468482850161340d565b91505092915050565b60008060408385031215613466576134656130f9565b5b600061347485828601613147565b925050602061348585828601613147565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134d657607f821691505b6020821081036134e9576134e861348f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613525602083613049565b9150613530826134ef565b602082019050919050565b6000602082019050818103600083015261355481613518565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135958261315c565b91506135a08361315c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135d5576135d461355b565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061363c602883613049565b9150613647826135e0565b604082019050919050565b6000602082019050818103600083015261366b8161362f565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006136ce602483613049565b91506136d982613672565b604082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613760602583613049565b915061376b82613704565b604082019050919050565b6000602082019050818103600083015261378f81613753565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137f2602683613049565b91506137fd82613796565b604082019050919050565b60006020820190508181036000830152613821816137e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613884602483613049565b915061388f82613828565b604082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613916602283613049565b9150613921826138ba565b604082019050919050565b6000602082019050818103600083015261394581613909565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139a8602583613049565b91506139b38261394c565b604082019050919050565b600060208201905081810360008301526139d78161399b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a3a602383613049565b9150613a45826139de565b604082019050919050565b60006020820190508181036000830152613a6981613a2d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613acc602983613049565b9150613ad782613a70565b604082019050919050565b60006020820190508181036000830152613afb81613abf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b5e602683613049565b9150613b6982613b02565b604082019050919050565b60006020820190508181036000830152613b8d81613b51565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613bf0602883613049565b9150613bfb82613b94565b604082019050919050565b60006020820190508181036000830152613c1f81613be3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c82602183613049565b9150613c8d82613c26565b604082019050919050565b60006020820190508181036000830152613cb181613c75565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d14602283613049565b9150613d1f82613cb8565b604082019050919050565b60006020820190508181036000830152613d4381613d07565b9050919050565b6000613d558261315c565b9150613d608361315c565b925082821015613d7357613d7261355b565b5b828203905092915050565b6000613d898261315c565b9150613d948361315c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dcd57613dcc61355b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e128261315c565b9150613e1d8361315c565b925082613e2d57613e2c613dd8565b5b828204905092915050565b6000606082019050613e4d60008301866132af565b613e5a60208301856132af565b613e6760408301846132af565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613edc81613130565b92915050565b600060208284031215613ef857613ef76130f9565b5b6000613f0684828501613ecd565b91505092915050565b6000819050919050565b6000613f34613f2f613f2a84613f0f565b613235565b61315c565b9050919050565b613f4481613f19565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f7f8161311e565b82525050565b6000613f918383613f76565b60208301905092915050565b6000602082019050919050565b6000613fb582613f4a565b613fbf8185613f55565b9350613fca83613f66565b8060005b83811015613ffb578151613fe28882613f85565b9750613fed83613f9d565b925050600181019050613fce565b5085935050505092915050565b600060a08201905061401d60008301886132af565b61402a6020830187613f3b565b818103604083015261403c8186613faa565b905061404b6060830185613359565b61405860808301846132af565b9695505050505050565b600060408201905061407760008301856132af565b81810360208301526140898184613faa565b90509392505050565b600060c0820190506140a76000830189613359565b6140b460208301886132af565b6140c16040830187613f3b565b6140ce6060830186613f3b565b6140db6080830185613359565b6140e860a08301846132af565b979650505050505050565b60008151905061410281613166565b92915050565b600080600060608486031215614121576141206130f9565b5b600061412f868287016140f3565b9350506020614140868287016140f3565b9250506040614151868287016140f3565b915050925092509256fea26469706673582212207cde2bde4152f41a088c11836db3a05fcacba8d0d944610043f0549f02426c8264736f6c634300080f003300000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000034fb5e30000000000000000000000000000000000000000000000000000000000000012000000000000000000000000adf752ec937e0acc4d68a91b6bda86efaf27bef0000000000000000000000000ac2a890e685edea5d906adf738fa048bf991b6d1000000000000000000000000da0c550afb95b335ecfeb8fd8996032477fa31680000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000094af017d4d9ec2782237089110dd883862ecf26000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a50756c7365204275726e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004504c534200000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102765760003560e01c8063715018a61161014f578063a94c8dd2116100c1578063dd62ed3e1161007a578063dd62ed3e14610961578063ea2f0b371461099e578063ec28438a146109c7578063edc2fcfb146109f0578063f0f165af14610a19578063f2fde38b14610a425761027d565b8063a94c8dd214610865578063afcf2fc41461088e578063c0b0fda2146108b9578063c49b9a80146108e4578063caccd7f71461090d578063dcc345f2146109385761027d565b8063906e9dd011610113578063906e9dd01461074157806395d89b411461076a578063a073d37f14610795578063a457c2d7146107c0578063a5ece941146107fd578063a9059cbb146108285761027d565b8063715018a61461068057806379cc6790146106975780637d1db4a5146106c05780638a0623b4146106eb5780638da5cb5b146107165761027d565b806340f8007a116101e85780634a74bb02116101ac5780634a74bb02146105605780634bf2c7c91461058b5780635342acb4146105b4578063625e764c146105f15780636c3172321461061a57806370a08231146106435761027d565b806340f8007a1461048d57806342966c68146104b8578063437823ec146104e157806348de478e1461050a57806349bd5a5e146105355761027d565b806320c7c5961161023a57806320c7c5961461036957806322976e0d1461039257806323b872dd146103bd57806327c8f835146103fa578063313ce5671461042557806339509351146104505761027d565b806306fdde0314610282578063095ea7b3146102ad5780630c9be46d146102ea5780631694505e1461031357806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a6b565b6040516102a491906130d7565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190613192565b610afd565b6040516102e191906131ed565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613208565b610b1b565b005b34801561031f57600080fd5b50610328610bdb565b6040516103359190613294565b60405180910390f35b34801561034a57600080fd5b50610353610bff565b60405161036091906132be565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906132d9565b610c09565b005b34801561039e57600080fd5b506103a7610cbf565b6040516103b491906132be565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613306565b610cc5565b6040516103f191906131ed565b60405180910390f35b34801561040657600080fd5b5061040f610dbd565b60405161041c9190613368565b60405180910390f35b34801561043157600080fd5b5061043a610de1565b604051610447919061339f565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190613192565b610df8565b60405161048491906131ed565b60405180910390f35b34801561049957600080fd5b506104a2610ea4565b6040516104af91906132be565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906132d9565b610eaa565b005b3480156104ed57600080fd5b5061050860048036038101906105039190613208565b610ebe565b005b34801561051657600080fd5b5061051f610f95565b60405161052c91906132be565b60405180910390f35b34801561054157600080fd5b5061054a610f9b565b6040516105579190613368565b60405180910390f35b34801561056c57600080fd5b50610575610fbf565b60405161058291906131ed565b60405180910390f35b34801561059757600080fd5b506105b260048036038101906105ad91906132d9565b610fd2565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613208565b611058565b6040516105e891906131ed565b60405180910390f35b3480156105fd57600080fd5b50610618600480360381019061061391906132d9565b6110ae565b005b34801561062657600080fd5b50610641600480360381019061063c91906132d9565b611164565b005b34801561064f57600080fd5b5061066a60048036038101906106659190613208565b61121a565b60405161067791906132be565b60405180910390f35b34801561068c57600080fd5b50610695611262565b005b3480156106a357600080fd5b506106be60048036038101906106b99190613192565b6112ea565b005b3480156106cc57600080fd5b506106d5611365565b6040516106e291906132be565b60405180910390f35b3480156106f757600080fd5b5061070061136b565b60405161070d91906132be565b60405180910390f35b34801561072257600080fd5b5061072b611371565b6040516107389190613368565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613208565b61139b565b005b34801561077657600080fd5b5061077f61145b565b60405161078c91906130d7565b60405180910390f35b3480156107a157600080fd5b506107aa6114ed565b6040516107b791906132be565b60405180910390f35b3480156107cc57600080fd5b506107e760048036038101906107e29190613192565b6114f7565b6040516107f491906131ed565b60405180910390f35b34801561080957600080fd5b506108126115e2565b60405161081f91906133db565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a9190613192565b611608565b60405161085c91906131ed565b60405180910390f35b34801561087157600080fd5b5061088c600480360381019061088791906132d9565b611626565b005b34801561089a57600080fd5b506108a36116dc565b6040516108b091906133db565b60405180910390f35b3480156108c557600080fd5b506108ce611702565b6040516108db91906132be565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613422565b611708565b005b34801561091957600080fd5b506109226117d8565b60405161092f91906133db565b60405180910390f35b34801561094457600080fd5b5061095f600480360381019061095a9190613208565b6117fe565b005b34801561096d57600080fd5b506109886004803603810190610983919061344f565b6118be565b60405161099591906132be565b60405180910390f35b3480156109aa57600080fd5b506109c560048036038101906109c09190613208565b611945565b005b3480156109d357600080fd5b506109ee60048036038101906109e991906132d9565b611a1c565b005b3480156109fc57600080fd5b50610a176004803603810190610a129190613422565b611aa2565b005b348015610a2557600080fd5b50610a406004803603810190610a3b91906132d9565b611b71565b005b348015610a4e57600080fd5b50610a696004803603810190610a649190613208565b611bf7565b005b606060038054610a7a906134be565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa6906134be565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b5050505050905090565b6000610b11610b0a611cee565b8484611cf6565b6001905092915050565b610b23611cee565b73ffffffffffffffffffffffffffffffffffffffff16610b41611371565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e9061353b565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610c11611cee565b73ffffffffffffffffffffffffffffffffffffffff16610c2f611371565b73ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c9061353b565b60405180910390fd5b80601081905550601054600e54600c54601454610ca2919061358a565b610cac919061358a565b610cb6919061358a565b600a8190555050565b600c5481565b6000610cd2848484611ebf565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1d611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9490613652565b60405180910390fd5b610db185610da9611cee565b858403611cf6565b60019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000600760009054906101000a900460ff16905090565b6000610e9a610e05611cee565b848460016000610e13611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e95919061358a565b611cf6565b6001905092915050565b60105481565b610ebb610eb5611cee565b82612274565b50565b610ec6611cee565b73ffffffffffffffffffffffffffffffffffffffff16610ee4611371565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f319061353b565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e5481565b7f0000000000000000000000009129480b54b3aafe7675e335615cffe69827922181565b601960019054906101000a900460ff1681565b610fda611cee565b73ffffffffffffffffffffffffffffffffffffffff16610ff8611371565b73ffffffffffffffffffffffffffffffffffffffff161461104e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110459061353b565b60405180910390fd5b8060128190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6110b6611cee565b73ffffffffffffffffffffffffffffffffffffffff166110d4611371565b73ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219061353b565b60405180910390fd5b80600c81905550601054600e54600c54601454611147919061358a565b611151919061358a565b61115b919061358a565b600a8190555050565b61116c611cee565b73ffffffffffffffffffffffffffffffffffffffff1661118a611371565b73ffffffffffffffffffffffffffffffffffffffff16146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d79061353b565b60405180910390fd5b80600e81905550601054600e54600c546014546111fd919061358a565b611207919061358a565b611211919061358a565b600a8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61126a611cee565b73ffffffffffffffffffffffffffffffffffffffff16611288611371565b73ffffffffffffffffffffffffffffffffffffffff16146112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d59061353b565b60405180910390fd5b6112e8600061244a565b565b60006112fd836112f8611cee565b6118be565b905081811015611342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611339906136e4565b60405180910390fd5b6113568361134e611cee565b848403611cf6565b6113608383612274565b505050565b60165481565b60145481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113a3611cee565b73ffffffffffffffffffffffffffffffffffffffff166113c1611371565b73ffffffffffffffffffffffffffffffffffffffff1614611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e9061353b565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606004805461146a906134be565b80601f0160208091040260200160405190810160405280929190818152602001828054611496906134be565b80156114e35780601f106114b8576101008083540402835291602001916114e3565b820191906000526020600020905b8154815290600101906020018083116114c657829003601f168201915b5050505050905090565b6000601854905090565b60008060016000611506611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba90613776565b60405180910390fd5b6115d76115ce611cee565b85858403611cf6565b600191505092915050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061161c611615611cee565b8484611ebf565b6001905092915050565b61162e611cee565b73ffffffffffffffffffffffffffffffffffffffff1661164c611371565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061353b565b60405180910390fd5b80601481905550601054600e54600c546014546116bf919061358a565b6116c9919061358a565b6116d3919061358a565b600a8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b611710611cee565b73ffffffffffffffffffffffffffffffffffffffff1661172e611371565b73ffffffffffffffffffffffffffffffffffffffff1614611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b9061353b565b60405180910390fd5b80601960016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117cd91906131ed565b60405180910390a150565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611806611cee565b73ffffffffffffffffffffffffffffffffffffffff16611824611371565b73ffffffffffffffffffffffffffffffffffffffff161461187a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118719061353b565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194d611cee565b73ffffffffffffffffffffffffffffffffffffffff1661196b611371565b73ffffffffffffffffffffffffffffffffffffffff16146119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b89061353b565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a24611cee565b73ffffffffffffffffffffffffffffffffffffffff16611a42611371565b73ffffffffffffffffffffffffffffffffffffffff1614611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f9061353b565b60405180910390fd5b8060168190555050565b611aaa611cee565b73ffffffffffffffffffffffffffffffffffffffff16611ac8611371565b73ffffffffffffffffffffffffffffffffffffffff1614611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b159061353b565b60405180910390fd5b8015611b5257611b2e6000611708565b611b36612510565b601654601781905550611b47610bff565b601681905550611b6e565b611b5c6001611708565b611b64612591565b6017546016819055505b50565b611b79611cee565b73ffffffffffffffffffffffffffffffffffffffff16611b97611371565b73ffffffffffffffffffffffffffffffffffffffff1614611bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be49061353b565b60405180910390fd5b8060188190555050565b611bff611cee565b73ffffffffffffffffffffffffffffffffffffffff16611c1d611371565b73ffffffffffffffffffffffffffffffffffffffff1614611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9061353b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd990613808565b60405180910390fd5b611ceb8161244a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c9061389a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb9061392c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb291906132be565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f25906139be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490613a50565b60405180910390fd5b60008111611fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd790613ae2565b60405180910390fd5b6000611feb8461121a565b905081811015612030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202790613b74565b60405180910390fd5b612038611371565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120a65750612076611371565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120f1576016548211156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790613c06565b60405180910390fd5b5b6120fc8484846125c9565b60006121073061121a565b905060006018548210159050601960009054906101000a900460ff1615801561213c5750601960019054906101000a900460ff165b801561219357507f0000000000000000000000009129480b54b3aafe7675e335615cffe69827922173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156121ae5780156121ad5760185491506121ac826125ce565b5b5b600060019050600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122555750600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561225f57600090505b61226b878787846128a8565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da90613c98565b60405180910390fd5b6122ef826000836125c9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c90613d2a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546123cc9190613d4a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161243191906132be565b60405180910390a3612445836000846128d5565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600a5414801561252457506000601254145b61258f57600a54600b81905550600c54600d81905550600e54600f819055506010546011819055506012546013819055506014546015819055506000600a819055506000600c819055506000600e819055506000601081905550600060128190555060006014819055505b565b600b54600a81905550600d54600c81905550600f54600e81905550601154601081905550601354601281905550601554601481905550565b505050565b6001601960006101000a81548160ff02191690831515021790555060004790506000600a54601454846126019190613d7e565b61260b9190613e07565b9050600060028261261c9190613e07565b90506000818361262c9190613d4a565b9050612642818661263d9190613d4a565b6128da565b600084476126509190613d4a565b90506126d4600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600a6014546126899190613d7e565b6126939190613e07565b600a80546126a19190613d7e565b6126ab9190613d4a565b600a600c546126ba9190613d7e565b846126c59190613d7e565b6126cf9190613e07565b612b50565b612756600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600a60145461270b9190613d7e565b6127159190613e07565b600a80546127239190613d7e565b61272d9190613d4a565b600a600e5461273c9190613d7e565b846127479190613d7e565b6127519190613e07565b612b50565b6127d8600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600a60145461278d9190613d7e565b6127979190613e07565b600a80546127a59190613d7e565b6127af9190613d4a565b600a6010546127be9190613d7e565b846127c99190613d7e565b6127d39190613e07565b612b50565b60006002600a6014546127eb9190613d7e565b6127f59190613e07565b600a80546128039190613d7e565b61280d9190613d4a565b6002600a60145461281e9190613d7e565b6128289190613e07565b836128339190613d7e565b61283d9190613e07565b90506128498382612b9b565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161287c93929190613e38565b60405180910390a15050505050506000601960006101000a81548160ff02191690831515021790555050565b806128b6576128b5612510565b5b6128c1848484612c7c565b806128cf576128ce612591565b5b50505050565b505050565b6000600267ffffffffffffffff8111156128f7576128f6613e6f565b5b6040519080825280602002602001820160405280156129255781602001602082028036833780820191505090505b509050308160008151811061293d5761293c613e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a069190613ee2565b81600181518110612a1a57612a19613e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a7f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611cf6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae1959493929190614008565b600060405180830381600087803b158015612afb57600080fd5b505af1158015612b0f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612b44929190614062565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b96573d6000803e3d6000fd5b505050565b612bc6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611cf6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612c10611371565b426040518863ffffffff1660e01b8152600401612c3296959493929190614092565b60606040518083038185885af1158015612c50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c759190614108565b5050505050565b6000612c8782612e20565b9050816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cd39190613d4a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5f919061358a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dab8483612e48565b612db58483612eef565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e1291906132be565b60405180910390a350505050565b600080612e2c83613003565b905060008184612e3c9190613d4a565b90508092505050919050565b6000606460125483612e5a9190613d7e565b612e649190613e07565b90506000811115612eea5780600254612e7d9190613d4a565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ee191906132be565b60405180910390a35b505050565b60006064600a5483612f019190613d7e565b612f0b9190613e07565b9050806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f57919061358a565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ff691906132be565b60405180910390a3505050565b600080601254600a54613016919061358a565b90506000606482856130289190613d7e565b6130329190613e07565b90508092505050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561307857808201518184015260208101905061305d565b83811115613087576000848401525b50505050565b6000601f19601f8301169050919050565b60006130a98261303e565b6130b38185613049565b93506130c381856020860161305a565b6130cc8161308d565b840191505092915050565b600060208201905081810360008301526130f1818461309e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613129826130fe565b9050919050565b6131398161311e565b811461314457600080fd5b50565b60008135905061315681613130565b92915050565b6000819050919050565b61316f8161315c565b811461317a57600080fd5b50565b60008135905061318c81613166565b92915050565b600080604083850312156131a9576131a86130f9565b5b60006131b785828601613147565b92505060206131c88582860161317d565b9150509250929050565b60008115159050919050565b6131e7816131d2565b82525050565b600060208201905061320260008301846131de565b92915050565b60006020828403121561321e5761321d6130f9565b5b600061322c84828501613147565b91505092915050565b6000819050919050565b600061325a613255613250846130fe565b613235565b6130fe565b9050919050565b600061326c8261323f565b9050919050565b600061327e82613261565b9050919050565b61328e81613273565b82525050565b60006020820190506132a96000830184613285565b92915050565b6132b88161315c565b82525050565b60006020820190506132d360008301846132af565b92915050565b6000602082840312156132ef576132ee6130f9565b5b60006132fd8482850161317d565b91505092915050565b60008060006060848603121561331f5761331e6130f9565b5b600061332d86828701613147565b935050602061333e86828701613147565b925050604061334f8682870161317d565b9150509250925092565b6133628161311e565b82525050565b600060208201905061337d6000830184613359565b92915050565b600060ff82169050919050565b61339981613383565b82525050565b60006020820190506133b46000830184613390565b92915050565b60006133c5826130fe565b9050919050565b6133d5816133ba565b82525050565b60006020820190506133f060008301846133cc565b92915050565b6133ff816131d2565b811461340a57600080fd5b50565b60008135905061341c816133f6565b92915050565b600060208284031215613438576134376130f9565b5b60006134468482850161340d565b91505092915050565b60008060408385031215613466576134656130f9565b5b600061347485828601613147565b925050602061348585828601613147565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134d657607f821691505b6020821081036134e9576134e861348f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613525602083613049565b9150613530826134ef565b602082019050919050565b6000602082019050818103600083015261355481613518565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135958261315c565b91506135a08361315c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135d5576135d461355b565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061363c602883613049565b9150613647826135e0565b604082019050919050565b6000602082019050818103600083015261366b8161362f565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006136ce602483613049565b91506136d982613672565b604082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613760602583613049565b915061376b82613704565b604082019050919050565b6000602082019050818103600083015261378f81613753565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137f2602683613049565b91506137fd82613796565b604082019050919050565b60006020820190508181036000830152613821816137e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613884602483613049565b915061388f82613828565b604082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613916602283613049565b9150613921826138ba565b604082019050919050565b6000602082019050818103600083015261394581613909565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139a8602583613049565b91506139b38261394c565b604082019050919050565b600060208201905081810360008301526139d78161399b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a3a602383613049565b9150613a45826139de565b604082019050919050565b60006020820190508181036000830152613a6981613a2d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613acc602983613049565b9150613ad782613a70565b604082019050919050565b60006020820190508181036000830152613afb81613abf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b5e602683613049565b9150613b6982613b02565b604082019050919050565b60006020820190508181036000830152613b8d81613b51565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613bf0602883613049565b9150613bfb82613b94565b604082019050919050565b60006020820190508181036000830152613c1f81613be3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c82602183613049565b9150613c8d82613c26565b604082019050919050565b60006020820190508181036000830152613cb181613c75565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d14602283613049565b9150613d1f82613cb8565b604082019050919050565b60006020820190508181036000830152613d4381613d07565b9050919050565b6000613d558261315c565b9150613d608361315c565b925082821015613d7357613d7261355b565b5b828203905092915050565b6000613d898261315c565b9150613d948361315c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dcd57613dcc61355b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e128261315c565b9150613e1d8361315c565b925082613e2d57613e2c613dd8565b5b828204905092915050565b6000606082019050613e4d60008301866132af565b613e5a60208301856132af565b613e6760408301846132af565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613edc81613130565b92915050565b600060208284031215613ef857613ef76130f9565b5b6000613f0684828501613ecd565b91505092915050565b6000819050919050565b6000613f34613f2f613f2a84613f0f565b613235565b61315c565b9050919050565b613f4481613f19565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f7f8161311e565b82525050565b6000613f918383613f76565b60208301905092915050565b6000602082019050919050565b6000613fb582613f4a565b613fbf8185613f55565b9350613fca83613f66565b8060005b83811015613ffb578151613fe28882613f85565b9750613fed83613f9d565b925050600181019050613fce565b5085935050505092915050565b600060a08201905061401d60008301886132af565b61402a6020830187613f3b565b818103604083015261403c8186613faa565b905061404b6060830185613359565b61405860808301846132af565b9695505050505050565b600060408201905061407760008301856132af565b81810360208301526140898184613faa565b90509392505050565b600060c0820190506140a76000830189613359565b6140b460208301886132af565b6140c16040830187613f3b565b6140ce6060830186613f3b565b6140db6080830185613359565b6140e860a08301846132af565b979650505050505050565b60008151905061410281613166565b92915050565b600080600060608486031215614121576141206130f9565b5b600061412f868287016140f3565b9350506020614140868287016140f3565b9250506040614151868287016140f3565b915050925092509256fea26469706673582212207cde2bde4152f41a088c11836db3a05fcacba8d0d944610043f0549f02426c8264736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000034fb5e30000000000000000000000000000000000000000000000000000000000000012000000000000000000000000adf752ec937e0acc4d68a91b6bda86efaf27bef0000000000000000000000000ac2a890e685edea5d906adf738fa048bf991b6d1000000000000000000000000da0c550afb95b335ecfeb8fd8996032477fa31680000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000094af017d4d9ec2782237089110dd883862ecf26000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a50756c7365204275726e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004504c534200000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Pulse Burn
Arg [1] : symbol_ (string): PLSB
Arg [2] : totalSupply_ (uint256): 55555555
Arg [3] : decimals_ (uint8): 18
Arg [4] : addr_ (address[6]): 0xaDF752EC937e0ACC4d68A91B6Bda86efaf27Bef0,0xaC2A890E685EDeA5d906ADf738Fa048BF991b6D1,0xDA0c550afb95b335ECfeB8FD8996032477fA3168,0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,0x094Af017D4D9EC2782237089110Dd883862Ecf26,0x000000000000000000000000000000000000dEaD
Arg [5] : value_ (uint256[5]): 1,1,2,4,2
-----Encoded View---------------
19 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [2] : 00000000000000000000000000000000000000000000000000000000034fb5e3
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 000000000000000000000000adf752ec937e0acc4d68a91b6bda86efaf27bef0
Arg [5] : 000000000000000000000000ac2a890e685edea5d906adf738fa048bf991b6d1
Arg [6] : 000000000000000000000000da0c550afb95b335ecfeb8fd8996032477fa3168
Arg [7] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [8] : 000000000000000000000000094af017d4d9ec2782237089110dd883862ecf26
Arg [9] : 000000000000000000000000000000000000000000000000000000000000dead
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [15] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [16] : 50756c7365204275726e00000000000000000000000000000000000000000000
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [18] : 504c534200000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
38323:14957:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17433:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19741:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44279:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;39364:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18553:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43525:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;38840:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20433:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;38643:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;42351:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21371:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39002:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28180:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;44846:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;38921:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39422:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39497:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;42876:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;44714:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;42979:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18724:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14599:103;;;;;;;;;;;;;:::i;:::-;;28590:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;39239:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39150:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13948:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43985:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17652:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;42459:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22171:482;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;38507:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19114:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;42587:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;38599:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39079:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44418:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;38553:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44132:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19393:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44965:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;44597:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;52723:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43790:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14857:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17433:100;17487:13;17520:5;17513:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17433:100;:::o;19741:210::-;19860:4;19882:39;19891:12;:10;:12::i;:::-;19905:7;19914:6;19882:8;:39::i;:::-;19939:4;19932:11;;19741:210;;;;:::o;44279:131::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44386:15:::1;44361:14;;:41;;;;;;;;;;;;;;;;;;44279:131:::0;:::o;39364:51::-;;;:::o;18553:108::-;18614:7;18641:12;;18634:19;;18553:108;:::o;43525:257::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;43613:11:::1;43599;:25;;;;43763:11;;43734:13;;43705;;43672:17;;:46;;;;:::i;:::-;:75;;;;:::i;:::-;:102;;;;:::i;:::-;43635:21;:139;;;;43525:257:::0;:::o;38840:28::-;;;;:::o;20433:529::-;20573:4;20590:36;20600:6;20608:9;20619:6;20590:9;:36::i;:::-;20639:24;20666:11;:19;20678:6;20666:19;;;;;;;;;;;;;;;:33;20686:12;:10;:12::i;:::-;20666:33;;;;;;;;;;;;;;;;20639:60;;20752:6;20732:16;:26;;20710:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;20862:57;20871:6;20879:12;:10;:12::i;:::-;20912:6;20893:16;:25;20862:8;:57::i;:::-;20950:4;20943:11;;;20433:529;;;;;:::o;38643:90::-;;;:::o;42351:100::-;42409:5;42434:9;;;;;;;;;;;42427:16;;42351:100;:::o;21371:297::-;21486:4;21508:130;21531:12;:10;:12::i;:::-;21558:7;21617:10;21580:11;:25;21592:12;:10;:12::i;:::-;21580:25;;;;;;;;;;;;;;;:34;21606:7;21580:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;21508:8;:130::i;:::-;21656:4;21649:11;;21371:297;;;;:::o;39002:26::-;;;;:::o;28180:91::-;28236:27;28242:12;:10;:12::i;:::-;28256:6;28236:5;:27::i;:::-;28180:91;:::o;44846:111::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44945:4:::1;44915:18;:27;44934:7;44915:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;44846:111:::0;:::o;38921:28::-;;;;:::o;39422:38::-;;;:::o;39497:40::-;;;;;;;;;;;;;:::o;42876:95::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;42955:8:::1;42944;:19;;;;42876:95:::0;:::o;44714:124::-;44779:4;44803:18;:27;44822:7;44803:27;;;;;;;;;;;;;;;;;;;;;;;;;44796:34;;44714:124;;;:::o;42979:265::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;43073:13:::1;43057;:29;;;;43225:11;;43196:13;;43167;;43134:17;;:46;;;;:::i;:::-;:75;;;;:::i;:::-;:102;;;;:::i;:::-;43097:21;:139;;;;42979:265:::0;:::o;43252:::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;43346:13:::1;43330;:29;;;;43498:11;;43469:13;;43440;;43407:17;;:46;;;;:::i;:::-;:75;;;;:::i;:::-;:102;;;;:::i;:::-;43370:21;:139;;;;43252:265:::0;:::o;18724:177::-;18843:7;18875:9;:18;18885:7;18875:18;;;;;;;;;;;;;;;;18868:25;;18724:177;;;:::o;14599:103::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14664:30:::1;14691:1;14664:18;:30::i;:::-;14599:103::o:0;28590:405::-;28667:24;28694:32;28704:7;28713:12;:10;:12::i;:::-;28694:9;:32::i;:::-;28667:59;;28779:6;28759:16;:26;;28737:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;28885:58;28894:7;28903:12;:10;:12::i;:::-;28936:6;28917:16;:25;28885:8;:58::i;:::-;28965:22;28971:7;28980:6;28965:5;:22::i;:::-;28656:339;28590:405;;:::o;39239:27::-;;;;:::o;39150:32::-;;;;:::o;13948:87::-;13994:7;14021:6;;;;;;;;;;;14014:13;;13948:87;:::o;43985:139::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44098:17:::1;44071:16;;:45;;;;;;;;;;;;;;;;;;43985:139:::0;:::o;17652:104::-;17708:13;17741:7;17734:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17652:104;:::o;42459:120::-;42521:7;42548:23;;42541:30;;42459:120;:::o;22171:482::-;22291:4;22313:24;22340:11;:25;22352:12;:10;:12::i;:::-;22340:25;;;;;;;;;;;;;;;:34;22366:7;22340:34;;;;;;;;;;;;;;;;22313:61;;22427:15;22407:16;:35;;22385:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;22543:67;22552:12;:10;:12::i;:::-;22566:7;22594:15;22575:16;:34;22543:8;:67::i;:::-;22641:4;22634:11;;;22171:482;;;;:::o;38507:39::-;;;;;;;;;;;;;:::o;19114:216::-;19236:4;19258:42;19268:12;:10;:12::i;:::-;19282:9;19293:6;19258:9;:42::i;:::-;19318:4;19311:11;;19114:216;;;;:::o;42587:281::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;42693:17:::1;42673;:37;;;;42849:11;;42820:13;;42791;;42758:17;;:46;;;;:::i;:::-;:75;;;;:::i;:::-;:102;;;;:::i;:::-;42721:21;:139;;;;42587:281:::0;:::o;38599:37::-;;;;;;;;;;;;;:::o;39079:23::-;;;;:::o;44418:171::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44519:8:::1;44495:21;;:32;;;;;;;;;;;;;;;;;;44543:38;44572:8;44543:38;;;;;;:::i;:::-;;;;;;;;44418:171:::0;:::o;38553:39::-;;;;;;;;;;;;;:::o;44132:139::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44245:17:::1;44218:16;;:45;;;;;;;;;;;;;;;;;;44132:139:::0;:::o;19393:201::-;19527:7;19559:11;:18;19571:5;19559:18;;;;;;;;;;;;;;;:27;19578:7;19559:27;;;;;;;;;;;;;;;;19552:34;;19393:201;;;;:::o;44965:110::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;45062:5:::1;45032:18;:27;45051:7;45032:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;44965:110:::0;:::o;44597:109::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44687:11:::1;44672:12;:26;;;;44597:109:::0;:::o;52723:406::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;52789:8:::1;52785:337;;;52814:31;52839:5;52814:24;:31::i;:::-;52860:14;:12;:14::i;:::-;52912:12;;52889:20;:35;;;;52954:13;:11;:13::i;:::-;52939:12;:28;;;;52785:337;;;53000:30;53025:4;53000:24;:30::i;:::-;53045:15;:13;:15::i;:::-;53090:20;;53075:12;:35;;;;52785:337;52723:406:::0;:::o;43790:187::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;43945:24:::1;43919:23;:50;;;;43790:187:::0;:::o;14857:238::-;14179:12;:10;:12::i;:::-;14168:23;;:7;:5;:7::i;:::-;:23;;;14160:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14980:1:::1;14960:22;;:8;:22;;::::0;14938:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15059:28;15078:8;15059:18;:28::i;:::-;14857:238:::0;:::o;12790:98::-;12843:7;12870:10;12863:17;;12790:98;:::o;25961:380::-;26114:1;26097:19;;:5;:19;;;26089:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26195:1;26176:21;;:7;:21;;;26168:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26279:6;26249:11;:18;26261:5;26249:18;;;;;;;;;;;;;;;:27;26268:7;26249:27;;;;;;;;;;;;;;;:36;;;;26317:7;26301:32;;26310:5;26301:32;;;26326:6;26301:32;;;;;;:::i;:::-;;;;;;;;25961:380;;;:::o;45083:1529::-;45250:1;45232:20;;:6;:20;;;45224:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;45334:1;45313:23;;:9;:23;;;45305:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;45404:1;45395:6;:10;45387:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;45462:21;45486:17;45496:6;45486:9;:17::i;:::-;45462:41;;45553:6;45536:13;:23;;45514:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;45650:7;:5;:7::i;:::-;45640:17;;:6;:17;;;;:41;;;;;45674:7;:5;:7::i;:::-;45661:20;;:9;:20;;;;45640:41;45636:198;;;45734:12;;45724:6;:22;;45698:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;45636:198;45846:47;45867:6;45875:9;45886:6;45846:20;:47::i;:::-;45906:28;45937:24;45955:4;45937:9;:24::i;:::-;45906:55;;45972:28;46040:23;;46003:20;:60;;45972:91;;46095:16;;;;;;;;;;;46094:17;:55;;;;;46128:21;;;;;;;;;;;46094:55;:98;;;;;46179:13;46166:26;;:9;:26;;;46094:98;46076:315;;;46223:23;46219:161;;;46290:23;;46267:46;;46332:32;46343:20;46332:10;:32::i;:::-;46219:161;46076:315;46403:12;46418:4;46403:19;;46439:18;:26;46458:6;46439:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;46469:18;:29;46488:9;46469:29;;;;;;;;;;;;;;;;;;;;;;;;;46439:59;46435:107;;;46525:5;46515:15;;46435:107;46554:50;46569:6;46577:9;46588:6;46596:7;46554:14;:50::i;:::-;45213:1399;;;;45083:1529;;;:::o;24932:591::-;25035:1;25016:21;;:7;:21;;;25008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25088:49;25109:7;25126:1;25130:6;25088:20;:49::i;:::-;25150:22;25175:9;:18;25185:7;25175:18;;;;;;;;;;;;;;;;25150:43;;25230:6;25212:14;:24;;25204:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25349:6;25332:14;:23;25311:9;:18;25321:7;25311:18;;;;;;;;;;;;;;;:44;;;;25393:6;25377:12;;:22;;;;;;;:::i;:::-;;;;;;;;25443:1;25417:37;;25426:7;25417:37;;;25447:6;25417:37;;;;;;:::i;:::-;;;;;;;;25467:48;25487:7;25504:1;25508:6;25467:19;:48::i;:::-;24997:526;24932:591;;:::o;15255:191::-;15329:16;15348:6;;;;;;;;;;;15329:25;;15374:8;15365:6;;:17;;;;;;;;;;;;;;;;;;15429:8;15398:40;;15419:8;15398:40;;;;;;;;;;;;15318:128;15255:191;:::o;51787:581::-;51859:1;51834:21;;:26;:43;;;;;51876:1;51864:8;;:13;51834:43;51879:7;51830:56;51930:21;;51898:29;:53;;;;51986:13;;51962:21;:37;;;;52034:13;;52010:21;:37;;;;52080:11;;52058:19;:33;;;;52121:8;;52102:16;:27;;;;52168:17;;52140:25;:45;;;;52222:1;52198:21;:25;;;;52250:1;52234:13;:17;;;;52278:1;52262:13;:17;;;;52304:1;52290:11;:15;;;;52327:1;52316:8;:12;;;;52359:1;52339:17;:21;;;;51787:581;:::o;52376:339::-;52444:29;;52420:21;:53;;;;52500:21;;52484:13;:37;;;;52548:21;;52532:13;:37;;;;52594:19;;52580:11;:33;;;;52635:16;;52624:8;:27;;;;52682:25;;52662:17;:45;;;;52376:339::o;26941:125::-;;;;:::o;48443:1548::-;39977:4;39958:16;;:23;;;;;;;;;;;;;;;;;;48524:22:::1;48549:21;48524:46;;48581:22;48664:21;;48630:17;;48607:20;:40;;;;:::i;:::-;48606:79;;;;:::i;:::-;48581:104;;48698:21;48739:1;48722:14;:18;;;;:::i;:::-;48698:42;;48751:26;48797:13;48780:14;:30;;;;:::i;:::-;48751:59;;48821;48861:18;48838:20;:41;;;;:::i;:::-;48821:16;:59::i;:::-;48893:26;48946:14;48922:21;:38;;;;:::i;:::-;48893:67;;48973:203;49008:16;;;;;;;;;;;49162:1;49156:2;49136:17;;:22;;;;:::i;:::-;49135:28;;;;:::i;:::-;49129:2;49105:21:::0;::::1;:26;;;;:::i;:::-;:59;;;;:::i;:::-;49080:2;49064:13;;:18;;;;:::i;:::-;49041;49040:43;;;;:::i;:::-;49039:126;;;;:::i;:::-;48973:20;:203::i;:::-;49187;49222:16;;;;;;;;;;;49376:1;49370:2;49350:17;;:22;;;;:::i;:::-;49349:28;;;;:::i;:::-;49343:2;49319:21:::0;::::1;:26;;;;:::i;:::-;:59;;;;:::i;:::-;49294:2;49278:13;;:18;;;;:::i;:::-;49255;49254:43;;;;:::i;:::-;49253:126;;;;:::i;:::-;49187:20;:203::i;:::-;49401:199;49436:14;;;;;;;;;;;49586:1;49580:2;49560:17;;:22;;;;:::i;:::-;49559:28;;;;:::i;:::-;49553:2;49529:21:::0;::::1;:26;;;;:::i;:::-;:59;;;;:::i;:::-;49504:2;49490:11;;:16;;;;:::i;:::-;49467:18;49466:41;;;;:::i;:::-;49465:124;;;;:::i;:::-;49401:20;:199::i;:::-;49613:24;49782:1;49776:2;49756:17;;:22;;;;:::i;:::-;49755:28;;;;:::i;:::-;49748:2;49724:21:::0;::::1;:26;;;;:::i;:::-;49723:61;;;;:::i;:::-;49703:1;49697:2;49677:17;;:22;;;;:::i;:::-;49676:28;;;;:::i;:::-;49641:18;:64;;;;:::i;:::-;49640:145;;;;:::i;:::-;49613:172;;49798:50;49811:18;49831:16;49798:12;:50::i;:::-;49866:117;49895:13;49923:16;49954:18;49866:117;;;;;;;;:::i;:::-;;;;;;;;48513:1478;;;;;;40023:5:::0;40004:16;;:24;;;;;;;;;;;;;;;;;;48443:1548;:::o;46620:318::-;46766:7;46761:55;;46790:14;:12;:14::i;:::-;46761:55;46828:34;46846:4;46852:2;46856:5;46828:17;:34::i;:::-;46880:7;46875:56;;46904:15;:13;:15::i;:::-;46875:56;46620:318;;;;:::o;27670:124::-;;;;:::o;49999:658::-;50125:21;50163:1;50149:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50125:40;;50194:4;50176;50181:1;50176:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;50220:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;50210:4;50215:1;50210:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;50255:62;50272:4;50287:15;50305:11;50255:8;:62::i;:::-;50356:15;:66;;;50437:11;50463:1;50507:4;50534;50570:15;50356:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50614:35;50631:11;50644:4;50614:35;;;;;;;:::i;:::-;;;;;;;;50054:603;49999:658;:::o;53137:140::-;53243:9;:18;;:26;53262:6;53243:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53137:140;;:::o;51266:513::-;51414:62;51431:4;51446:15;51464:11;51414:8;:62::i;:::-;51519:15;:31;;;51558:9;51591:4;51611:11;51637:1;51680;51723:7;:5;:7::i;:::-;51745:15;51519:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;51266:513;;:::o;46946:426::-;47068:22;47093:26;47112:6;47093:18;:26::i;:::-;47068:51;;47168:6;47150:9;:15;47160:4;47150:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;47132:9;:15;47142:4;47132:15;;;;;;;;;;;;;;;:42;;;;47217:14;47201:9;:13;47211:2;47201:13;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;47185:9;:13;47195:2;47185:13;;;;;;;;;;;;;;;:46;;;;47244:29;47260:4;47266:6;47244:15;:29::i;:::-;47284:28;47299:4;47305:6;47284:14;:28::i;:::-;47345:2;47330:34;;47339:4;47330:34;;;47349:14;47330:34;;;;;;:::i;:::-;;;;;;;;47057:315;46946:426;;;:::o;47380:226::-;47446:7;47466:16;47485:28;47506:6;47485:20;:28::i;:::-;47466:47;;47524:22;47558:8;47549:6;:17;;;;:::i;:::-;47524:42;;47584:14;47577:21;;;;47380:226;;;:::o;47882:275::-;47958:15;47998:3;47986:8;;47977:6;:17;;;;:::i;:::-;47976:25;;;;:::i;:::-;47958:43;;48026:1;48016:7;:11;48012:138;;;48074:7;48059:12;;:22;;;;:::i;:::-;48044:12;:37;;;;48126:1;48101:37;;48110:6;48101:37;;;48130:7;48101:37;;;;;;:::i;:::-;;;;;;;;48012:138;47947:210;47882:275;;:::o;48165:270::-;48240:17;48295:3;48270:21;;48261:6;:30;;;;:::i;:::-;48260:38;;;;:::i;:::-;48240:58;;48363:9;48336;:24;48354:4;48336:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;48309:9;:24;48327:4;48309:24;;;;;;;;;;;;;;;:63;;;;48413:4;48388:39;;48397:6;48388:39;;;48420:6;48388:39;;;;;;:::i;:::-;;;;;;;;48229:206;48165:270;;:::o;47614:260::-;47709:7;47734:16;47777:8;;47753:21;;:32;;;;:::i;:::-;47734:51;;47796:16;47837:3;47825:8;47816:6;:17;;;;:::i;:::-;47815:25;;;;:::i;:::-;47796:44;;47858:8;47851:15;;;;47614:260;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:118::-;6206:24;6224:5;6206:24;:::i;:::-;6201:3;6194:37;6119:118;;:::o;6243:222::-;6336:4;6374:2;6363:9;6359:18;6351:26;;6387:71;6455:1;6444:9;6440:17;6431:6;6387:71;:::i;:::-;6243:222;;;;:::o;6471:86::-;6506:7;6546:4;6539:5;6535:16;6524:27;;6471:86;;;:::o;6563:112::-;6646:22;6662:5;6646:22;:::i;:::-;6641:3;6634:35;6563:112;;:::o;6681:214::-;6770:4;6808:2;6797:9;6793:18;6785:26;;6821:67;6885:1;6874:9;6870:17;6861:6;6821:67;:::i;:::-;6681:214;;;;:::o;6901:104::-;6946:7;6975:24;6993:5;6975:24;:::i;:::-;6964:35;;6901:104;;;:::o;7011:142::-;7114:32;7140:5;7114:32;:::i;:::-;7109:3;7102:45;7011:142;;:::o;7159:254::-;7268:4;7306:2;7295:9;7291:18;7283:26;;7319:87;7403:1;7392:9;7388:17;7379:6;7319:87;:::i;:::-;7159:254;;;;:::o;7419:116::-;7489:21;7504:5;7489:21;:::i;:::-;7482:5;7479:32;7469:60;;7525:1;7522;7515:12;7469:60;7419:116;:::o;7541:133::-;7584:5;7622:6;7609:20;7600:29;;7638:30;7662:5;7638:30;:::i;:::-;7541:133;;;;:::o;7680:323::-;7736:6;7785:2;7773:9;7764:7;7760:23;7756:32;7753:119;;;7791:79;;:::i;:::-;7753:119;7911:1;7936:50;7978:7;7969:6;7958:9;7954:22;7936:50;:::i;:::-;7926:60;;7882:114;7680:323;;;;:::o;8009:474::-;8077:6;8085;8134:2;8122:9;8113:7;8109:23;8105:32;8102:119;;;8140:79;;:::i;:::-;8102:119;8260:1;8285:53;8330:7;8321:6;8310:9;8306:22;8285:53;:::i;:::-;8275:63;;8231:117;8387:2;8413:53;8458:7;8449:6;8438:9;8434:22;8413:53;:::i;:::-;8403:63;;8358:118;8009:474;;;;;:::o;8489:180::-;8537:77;8534:1;8527:88;8634:4;8631:1;8624:15;8658:4;8655:1;8648:15;8675:320;8719:6;8756:1;8750:4;8746:12;8736:22;;8803:1;8797:4;8793:12;8824:18;8814:81;;8880:4;8872:6;8868:17;8858:27;;8814:81;8942:2;8934:6;8931:14;8911:18;8908:38;8905:84;;8961:18;;:::i;:::-;8905:84;8726:269;8675:320;;;:::o;9001:182::-;9141:34;9137:1;9129:6;9125:14;9118:58;9001:182;:::o;9189:366::-;9331:3;9352:67;9416:2;9411:3;9352:67;:::i;:::-;9345:74;;9428:93;9517:3;9428:93;:::i;:::-;9546:2;9541:3;9537:12;9530:19;;9189:366;;;:::o;9561:419::-;9727:4;9765:2;9754:9;9750:18;9742:26;;9814:9;9808:4;9804:20;9800:1;9789:9;9785:17;9778:47;9842:131;9968:4;9842:131;:::i;:::-;9834:139;;9561:419;;;:::o;9986:180::-;10034:77;10031:1;10024:88;10131:4;10128:1;10121:15;10155:4;10152:1;10145:15;10172:305;10212:3;10231:20;10249:1;10231:20;:::i;:::-;10226:25;;10265:20;10283:1;10265:20;:::i;:::-;10260:25;;10419:1;10351:66;10347:74;10344:1;10341:81;10338:107;;;10425:18;;:::i;:::-;10338:107;10469:1;10466;10462:9;10455:16;;10172:305;;;;:::o;10483:227::-;10623:34;10619:1;10611:6;10607:14;10600:58;10692:10;10687:2;10679:6;10675:15;10668:35;10483:227;:::o;10716:366::-;10858:3;10879:67;10943:2;10938:3;10879:67;:::i;:::-;10872:74;;10955:93;11044:3;10955:93;:::i;:::-;11073:2;11068:3;11064:12;11057:19;;10716:366;;;:::o;11088:419::-;11254:4;11292:2;11281:9;11277:18;11269:26;;11341:9;11335:4;11331:20;11327:1;11316:9;11312:17;11305:47;11369:131;11495:4;11369:131;:::i;:::-;11361:139;;11088:419;;;:::o;11513:223::-;11653:34;11649:1;11641:6;11637:14;11630:58;11722:6;11717:2;11709:6;11705:15;11698:31;11513:223;:::o;11742:366::-;11884:3;11905:67;11969:2;11964:3;11905:67;:::i;:::-;11898:74;;11981:93;12070:3;11981:93;:::i;:::-;12099:2;12094:3;12090:12;12083:19;;11742:366;;;:::o;12114:419::-;12280:4;12318:2;12307:9;12303:18;12295:26;;12367:9;12361:4;12357:20;12353:1;12342:9;12338:17;12331:47;12395:131;12521:4;12395:131;:::i;:::-;12387:139;;12114:419;;;:::o;12539:224::-;12679:34;12675:1;12667:6;12663:14;12656:58;12748:7;12743:2;12735:6;12731:15;12724:32;12539:224;:::o;12769:366::-;12911:3;12932:67;12996:2;12991:3;12932:67;:::i;:::-;12925:74;;13008:93;13097:3;13008:93;:::i;:::-;13126:2;13121:3;13117:12;13110:19;;12769:366;;;:::o;13141:419::-;13307:4;13345:2;13334:9;13330:18;13322:26;;13394:9;13388:4;13384:20;13380:1;13369:9;13365:17;13358:47;13422:131;13548:4;13422:131;:::i;:::-;13414:139;;13141:419;;;:::o;13566:225::-;13706:34;13702:1;13694:6;13690:14;13683:58;13775:8;13770:2;13762:6;13758:15;13751:33;13566:225;:::o;13797:366::-;13939:3;13960:67;14024:2;14019:3;13960:67;:::i;:::-;13953:74;;14036:93;14125:3;14036:93;:::i;:::-;14154:2;14149:3;14145:12;14138:19;;13797:366;;;:::o;14169:419::-;14335:4;14373:2;14362:9;14358:18;14350:26;;14422:9;14416:4;14412:20;14408:1;14397:9;14393:17;14386:47;14450:131;14576:4;14450:131;:::i;:::-;14442:139;;14169:419;;;:::o;14594:223::-;14734:34;14730:1;14722:6;14718:14;14711:58;14803:6;14798:2;14790:6;14786:15;14779:31;14594:223;:::o;14823:366::-;14965:3;14986:67;15050:2;15045:3;14986:67;:::i;:::-;14979:74;;15062:93;15151:3;15062:93;:::i;:::-;15180:2;15175:3;15171:12;15164:19;;14823:366;;;:::o;15195:419::-;15361:4;15399:2;15388:9;15384:18;15376:26;;15448:9;15442:4;15438:20;15434:1;15423:9;15419:17;15412:47;15476:131;15602:4;15476:131;:::i;:::-;15468:139;;15195:419;;;:::o;15620:221::-;15760:34;15756:1;15748:6;15744:14;15737:58;15829:4;15824:2;15816:6;15812:15;15805:29;15620:221;:::o;15847:366::-;15989:3;16010:67;16074:2;16069:3;16010:67;:::i;:::-;16003:74;;16086:93;16175:3;16086:93;:::i;:::-;16204:2;16199:3;16195:12;16188:19;;15847:366;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16219:419;;;:::o;16644:224::-;16784:34;16780:1;16772:6;16768:14;16761:58;16853:7;16848:2;16840:6;16836:15;16829:32;16644:224;:::o;16874:366::-;17016:3;17037:67;17101:2;17096:3;17037:67;:::i;:::-;17030:74;;17113:93;17202:3;17113:93;:::i;:::-;17231:2;17226:3;17222:12;17215:19;;16874:366;;;:::o;17246:419::-;17412:4;17450:2;17439:9;17435:18;17427:26;;17499:9;17493:4;17489:20;17485:1;17474:9;17470:17;17463:47;17527:131;17653:4;17527:131;:::i;:::-;17519:139;;17246:419;;;:::o;17671:222::-;17811:34;17807:1;17799:6;17795:14;17788:58;17880:5;17875:2;17867:6;17863:15;17856:30;17671:222;:::o;17899:366::-;18041:3;18062:67;18126:2;18121:3;18062:67;:::i;:::-;18055:74;;18138:93;18227:3;18138:93;:::i;:::-;18256:2;18251:3;18247:12;18240:19;;17899:366;;;:::o;18271:419::-;18437:4;18475:2;18464:9;18460:18;18452:26;;18524:9;18518:4;18514:20;18510:1;18499:9;18495:17;18488:47;18552:131;18678:4;18552:131;:::i;:::-;18544:139;;18271:419;;;:::o;18696:228::-;18836:34;18832:1;18824:6;18820:14;18813:58;18905:11;18900:2;18892:6;18888:15;18881:36;18696:228;:::o;18930:366::-;19072:3;19093:67;19157:2;19152:3;19093:67;:::i;:::-;19086:74;;19169:93;19258:3;19169:93;:::i;:::-;19287:2;19282:3;19278:12;19271:19;;18930:366;;;:::o;19302:419::-;19468:4;19506:2;19495:9;19491:18;19483:26;;19555:9;19549:4;19545:20;19541:1;19530:9;19526:17;19519:47;19583:131;19709:4;19583:131;:::i;:::-;19575:139;;19302:419;;;:::o;19727:225::-;19867:34;19863:1;19855:6;19851:14;19844:58;19936:8;19931:2;19923:6;19919:15;19912:33;19727:225;:::o;19958:366::-;20100:3;20121:67;20185:2;20180:3;20121:67;:::i;:::-;20114:74;;20197:93;20286:3;20197:93;:::i;:::-;20315:2;20310:3;20306:12;20299:19;;19958:366;;;:::o;20330:419::-;20496:4;20534:2;20523:9;20519:18;20511:26;;20583:9;20577:4;20573:20;20569:1;20558:9;20554:17;20547:47;20611:131;20737:4;20611:131;:::i;:::-;20603:139;;20330:419;;;:::o;20755:227::-;20895:34;20891:1;20883:6;20879:14;20872:58;20964:10;20959:2;20951:6;20947:15;20940:35;20755:227;:::o;20988:366::-;21130:3;21151:67;21215:2;21210:3;21151:67;:::i;:::-;21144:74;;21227:93;21316:3;21227:93;:::i;:::-;21345:2;21340:3;21336:12;21329:19;;20988:366;;;:::o;21360:419::-;21526:4;21564:2;21553:9;21549:18;21541:26;;21613:9;21607:4;21603:20;21599:1;21588:9;21584:17;21577:47;21641:131;21767:4;21641:131;:::i;:::-;21633:139;;21360:419;;;:::o;21785:220::-;21925:34;21921:1;21913:6;21909:14;21902:58;21994:3;21989:2;21981:6;21977:15;21970:28;21785:220;:::o;22011:366::-;22153:3;22174:67;22238:2;22233:3;22174:67;:::i;:::-;22167:74;;22250:93;22339:3;22250:93;:::i;:::-;22368:2;22363:3;22359:12;22352:19;;22011:366;;;:::o;22383:419::-;22549:4;22587:2;22576:9;22572:18;22564:26;;22636:9;22630:4;22626:20;22622:1;22611:9;22607:17;22600:47;22664:131;22790:4;22664:131;:::i;:::-;22656:139;;22383:419;;;:::o;22808:221::-;22948:34;22944:1;22936:6;22932:14;22925:58;23017:4;23012:2;23004:6;23000:15;22993:29;22808:221;:::o;23035:366::-;23177:3;23198:67;23262:2;23257:3;23198:67;:::i;:::-;23191:74;;23274:93;23363:3;23274:93;:::i;:::-;23392:2;23387:3;23383:12;23376:19;;23035:366;;;:::o;23407:419::-;23573:4;23611:2;23600:9;23596:18;23588:26;;23660:9;23654:4;23650:20;23646:1;23635:9;23631:17;23624:47;23688:131;23814:4;23688:131;:::i;:::-;23680:139;;23407:419;;;:::o;23832:191::-;23872:4;23892:20;23910:1;23892:20;:::i;:::-;23887:25;;23926:20;23944:1;23926:20;:::i;:::-;23921:25;;23965:1;23962;23959:8;23956:34;;;23970:18;;:::i;:::-;23956:34;24015:1;24012;24008:9;24000:17;;23832:191;;;;:::o;24029:348::-;24069:7;24092:20;24110:1;24092:20;:::i;:::-;24087:25;;24126:20;24144:1;24126:20;:::i;:::-;24121:25;;24314:1;24246:66;24242:74;24239:1;24236:81;24231:1;24224:9;24217:17;24213:105;24210:131;;;24321:18;;:::i;:::-;24210:131;24369:1;24366;24362:9;24351:20;;24029:348;;;;:::o;24383:180::-;24431:77;24428:1;24421:88;24528:4;24525:1;24518:15;24552:4;24549:1;24542:15;24569:185;24609:1;24626:20;24644:1;24626:20;:::i;:::-;24621:25;;24660:20;24678:1;24660:20;:::i;:::-;24655:25;;24699:1;24689:35;;24704:18;;:::i;:::-;24689:35;24746:1;24743;24739:9;24734:14;;24569:185;;;;:::o;24760:442::-;24909:4;24947:2;24936:9;24932:18;24924:26;;24960:71;25028:1;25017:9;25013:17;25004:6;24960:71;:::i;:::-;25041:72;25109:2;25098:9;25094:18;25085:6;25041:72;:::i;:::-;25123;25191:2;25180:9;25176:18;25167:6;25123:72;:::i;:::-;24760:442;;;;;;:::o;25208:180::-;25256:77;25253:1;25246:88;25353:4;25350:1;25343:15;25377:4;25374:1;25367:15;25394:180;25442:77;25439:1;25432:88;25539:4;25536:1;25529:15;25563:4;25560:1;25553:15;25580:143;25637:5;25668:6;25662:13;25653:22;;25684:33;25711:5;25684:33;:::i;:::-;25580:143;;;;:::o;25729:351::-;25799:6;25848:2;25836:9;25827:7;25823:23;25819:32;25816:119;;;25854:79;;:::i;:::-;25816:119;25974:1;25999:64;26055:7;26046:6;26035:9;26031:22;25999:64;:::i;:::-;25989:74;;25945:128;25729:351;;;;:::o;26086:85::-;26131:7;26160:5;26149:16;;26086:85;;;:::o;26177:158::-;26235:9;26268:61;26286:42;26295:32;26321:5;26295:32;:::i;:::-;26286:42;:::i;:::-;26268:61;:::i;:::-;26255:74;;26177:158;;;:::o;26341:147::-;26436:45;26475:5;26436:45;:::i;:::-;26431:3;26424:58;26341:147;;:::o;26494:114::-;26561:6;26595:5;26589:12;26579:22;;26494:114;;;:::o;26614:184::-;26713:11;26747:6;26742:3;26735:19;26787:4;26782:3;26778:14;26763:29;;26614:184;;;;:::o;26804:132::-;26871:4;26894:3;26886:11;;26924:4;26919:3;26915:14;26907:22;;26804:132;;;:::o;26942:108::-;27019:24;27037:5;27019:24;:::i;:::-;27014:3;27007:37;26942:108;;:::o;27056:179::-;27125:10;27146:46;27188:3;27180:6;27146:46;:::i;:::-;27224:4;27219:3;27215:14;27201:28;;27056:179;;;;:::o;27241:113::-;27311:4;27343;27338:3;27334:14;27326:22;;27241:113;;;:::o;27390:732::-;27509:3;27538:54;27586:5;27538:54;:::i;:::-;27608:86;27687:6;27682:3;27608:86;:::i;:::-;27601:93;;27718:56;27768:5;27718:56;:::i;:::-;27797:7;27828:1;27813:284;27838:6;27835:1;27832:13;27813:284;;;27914:6;27908:13;27941:63;28000:3;27985:13;27941:63;:::i;:::-;27934:70;;28027:60;28080:6;28027:60;:::i;:::-;28017:70;;27873:224;27860:1;27857;27853:9;27848:14;;27813:284;;;27817:14;28113:3;28106:10;;27514:608;;;27390:732;;;;:::o;28128:831::-;28391:4;28429:3;28418:9;28414:19;28406:27;;28443:71;28511:1;28500:9;28496:17;28487:6;28443:71;:::i;:::-;28524:80;28600:2;28589:9;28585:18;28576:6;28524:80;:::i;:::-;28651:9;28645:4;28641:20;28636:2;28625:9;28621:18;28614:48;28679:108;28782:4;28773:6;28679:108;:::i;:::-;28671:116;;28797:72;28865:2;28854:9;28850:18;28841:6;28797:72;:::i;:::-;28879:73;28947:3;28936:9;28932:19;28923:6;28879:73;:::i;:::-;28128:831;;;;;;;;:::o;28965:483::-;29136:4;29174:2;29163:9;29159:18;29151:26;;29187:71;29255:1;29244:9;29240:17;29231:6;29187:71;:::i;:::-;29305:9;29299:4;29295:20;29290:2;29279:9;29275:18;29268:48;29333:108;29436:4;29427:6;29333:108;:::i;:::-;29325:116;;28965:483;;;;;:::o;29454:807::-;29703:4;29741:3;29730:9;29726:19;29718:27;;29755:71;29823:1;29812:9;29808:17;29799:6;29755:71;:::i;:::-;29836:72;29904:2;29893:9;29889:18;29880:6;29836:72;:::i;:::-;29918:80;29994:2;29983:9;29979:18;29970:6;29918:80;:::i;:::-;30008;30084:2;30073:9;30069:18;30060:6;30008:80;:::i;:::-;30098:73;30166:3;30155:9;30151:19;30142:6;30098:73;:::i;:::-;30181;30249:3;30238:9;30234:19;30225:6;30181:73;:::i;:::-;29454:807;;;;;;;;;:::o;30267:143::-;30324:5;30355:6;30349:13;30340:22;;30371:33;30398:5;30371:33;:::i;:::-;30267:143;;;;:::o;30416:663::-;30504:6;30512;30520;30569:2;30557:9;30548:7;30544:23;30540:32;30537:119;;;30575:79;;:::i;:::-;30537:119;30695:1;30720:64;30776:7;30767:6;30756:9;30752:22;30720:64;:::i;:::-;30710:74;;30666:128;30833:2;30859:64;30915:7;30906:6;30895:9;30891:22;30859:64;:::i;:::-;30849:74;;30804:129;30972:2;30998:64;31054:7;31045:6;31034:9;31030:22;30998:64;:::i;:::-;30988:74;;30943:129;30416:663;;;;;:::o
Swarm Source
ipfs://7cde2bde4152f41a088c11836db3a05fcacba8d0d944610043f0549f02426c82
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,378.34 | 0.0062319 | $14.82 |
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.