Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 SleepyETH
Holders
13
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SleepyETH
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-08-18 */ /** *Submitted for verification at Etherscan.io on 2021-08-17 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.6; /* * @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 GSN 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 memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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 Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @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 * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @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"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); 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 // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @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. */ 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 () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract SleepyETH is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100 * 10**6 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; address payable private _charityWalletAddress; string private _name = 'SleepyETH'; string private _symbol = 'SleepyETH'; uint8 private _decimals = 18; uint256 public _charityFee = 2; uint256 private _previousCharityFee = _charityFee; constructor () { _rOwned[_msgSender()] = _rTotal; _charityWalletAddress = payable(0xEa8346C7DE82AB7862002d4a62d2F4b42D483fEE); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function reflect(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _approve(address owner, address spender, uint256 amount) private { 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); } function _transfer(address sender, address recipient, uint256 amount) private { 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"); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeCharity(tCharity, sender); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeCharity(tCharity, sender); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeCharity(tCharity, sender); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeCharity(tCharity, sender); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tCharity, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tCharity); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256,uint256) { uint256 tFee = (tAmount.mul(8)).div(100); uint256 tCharity = calculateCharityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tCharity); return (tTransferAmount, tFee, tCharity); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tCharity, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rCharity); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeCharity(uint256 tCharity, address sender) private { uint256 currentRate = _getRate(); uint256 rCharity = tCharity.mul(currentRate); _rOwned[_charityWalletAddress] = _rOwned[_charityWalletAddress].add(rCharity); if(_isExcluded[_charityWalletAddress]) _tOwned[_charityWalletAddress] = _tOwned[_charityWalletAddress].add(tCharity); emit Transfer(sender, _charityWalletAddress, tCharity); } function calculateCharityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_charityFee).div(100); } function _setCharityWalletAddress(address payable charityWalletAddress) external onlyOwner() { _charityWalletAddress = charityWalletAddress; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_charityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"charityWalletAddress","type":"address"}],"name":"_setCharityWalletAddress","outputs":[],"stateMutability":"nonpayable","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]
Contract Creation Code
60806040526200001d6a52b7d2dcc80cd2e40000006000196200029c565b6200002b9060001962000239565b600655604080518082019091526009808252680a6d8cacae0f28aa8960bb1b60209092019182526200005e918162000193565b50604080518082019091526009808252680a6d8cacae0f28aa8960bb1b60209092019182526200009191600a9162000193565b50600b805460ff191660121790556002600c819055600d55348015620000b657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600081815260016020526040902091909155600880546001600160a01b03191673ea8346c7de82ab7862002d4a62d2f4b42d483fee1790556001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e40000006040516200018591815260200190565b60405180910390a3620002bf565b828054620001a1906200025f565b90600052602060002090601f016020900481019282620001c5576000855562000210565b82601f10620001e057805160ff191683800117855562000210565b8280016001018555821562000210579182015b8281111562000210578251825591602001919060010190620001f3565b506200021e92915062000222565b5090565b5b808211156200021e576000815560010162000223565b6000828210156200025a57634e487b7160e01b600052601160045260246000fd5b500390565b600181811c908216806200027457607f821691505b602082108114156200029657634e487b7160e01b600052602260045260246000fd5b50919050565b600082620002ba57634e487b7160e01b600052601260045260246000fd5b500690565b611b3f80620002cf6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063bbbaf2191161007c578063bbbaf21914610299578063cba0e996146102ac578063dd62ed3e146102d8578063f2cc0c1814610311578063f2fde38b14610324578063f84354f11461033757600080fd5b806370a0823114610235578063715018a6146102485780638da5cb5b1461025057806395d89b411461026b578063a457c2d714610273578063a9059cbb1461028657600080fd5b806323b872dd1161011557806323b872dd146101cb5780632d838119146101de578063313ce567146101f1578063395093511461020657806340f8007a146102195780634549b0391461022257600080fd5b8063053ab1821461015257806306fdde0314610167578063095ea7b31461018557806313114a9d146101a857806318160ddd146101ba575b600080fd5b6101656101603660046118cf565b61034a565b005b61016f610439565b60405161017c9190611912565b60405180910390f35b6101986101933660046118a3565b6104cb565b604051901515815260200161017c565b6007545b60405190815260200161017c565b6a52b7d2dcc80cd2e40000006101ac565b6101986101d9366004611862565b6104e2565b6101ac6101ec3660046118cf565b61054b565b600b5460405160ff909116815260200161017c565b6101986102143660046118a3565b6105cf565b6101ac600c5481565b6101ac6102303660046118e8565b610605565b6101ac61024336600461180c565b61069b565b6101656106fa565b6000546040516001600160a01b03909116815260200161017c565b61016f61076e565b6101986102813660046118a3565b61077d565b6101986102943660046118a3565b6107cc565b6101656102a736600461180c565b6107d9565b6101986102ba36600461180c565b6001600160a01b031660009081526004602052604090205460ff1690565b6101ac6102e6366004611829565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61016561031f36600461180c565b610825565b61016561033236600461180c565b610978565b61016561034536600461180c565b610a62565b3360008181526004602052604090205460ff16156103c45760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b60006103cf83610c19565b505050506001600160a01b0384166000908152600160205260409020549192506103fb91905082610c70565b6001600160a01b0383166000908152600160205260409020556006546104219082610c70565b6006556007546104319084610cb2565b600755505050565b60606009805461044890611a0c565b80601f016020809104026020016040519081016040528092919081815260200182805461047490611a0c565b80156104c15780601f10610496576101008083540402835291602001916104c1565b820191906000526020600020905b8154815290600101906020018083116104a457829003601f168201915b5050505050905090565b60006104d8338484610d11565b5060015b92915050565b60006104ef848484610e35565b610541843361053c85604051806060016040528060288152602001611abd602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906110b1565b610d11565b5060019392505050565b60006006548211156105b25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103bb565b60006105bc6110eb565b90506105c8838261110e565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104d891859061053c9086610cb2565b60006a52b7d2dcc80cd2e40000008311156106625760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016103bb565b8161068157600061067284610c19565b509395506104dc945050505050565b600061068c84610c19565b509295506104dc945050505050565b6001600160a01b03811660009081526004602052604081205460ff16156106d857506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104dc9061054b565b6000546001600160a01b031633146107245760405162461bcd60e51b81526004016103bb90611967565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600a805461044890611a0c565b60006104d8338461053c85604051806060016040528060258152602001611ae5602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906110b1565b60006104d8338484610e35565b6000546001600160a01b031633146108035760405162461bcd60e51b81526004016103bb90611967565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461084f5760405162461bcd60e51b81526004016103bb90611967565b6001600160a01b03811660009081526004602052604090205460ff16156108b85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016103bb565b6001600160a01b03811660009081526001602052604090205415610912576001600160a01b0381166000908152600160205260409020546108f89061054b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b031633146109a25760405162461bcd60e51b81526004016103bb90611967565b6001600160a01b038116610a075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a8c5760405162461bcd60e51b81526004016103bb90611967565b6001600160a01b03811660009081526004602052604090205460ff16610af45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016103bb565b60005b600554811015610c1557816001600160a01b031660058281548110610b1e57610b1e611a8e565b6000918252602090912001546001600160a01b03161415610c035760058054610b49906001906119f5565b81548110610b5957610b59611a8e565b600091825260209091200154600580546001600160a01b039092169183908110610b8557610b85611a8e565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610bdd57610bdd611a78565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610c0d81611a47565b915050610af7565b5050565b6000806000806000806000806000610c308a611150565b9250925092506000610c406110eb565b90506000806000610c538e87878761119e565b919e509c509a509598509396509194505050505091939550919395565b60006105c883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b1565b600080610cbf838561199c565b9050838110156105c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103bb565b6001600160a01b038316610d735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103bb565b6001600160a01b038216610dd45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103bb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103bb565b6001600160a01b038216610efb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103bb565b60008111610f5d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103bb565b6001600160a01b03831660009081526004602052604090205460ff168015610f9e57506001600160a01b03821660009081526004602052604090205460ff16155b15610fb357610fae8383836111ee565b505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610ff457506001600160a01b03821660009081526004602052604090205460ff165b1561100457610fae838383611315565b6001600160a01b03831660009081526004602052604090205460ff1615801561104657506001600160a01b03821660009081526004602052604090205460ff16155b1561105657610fae8383836113be565b6001600160a01b03831660009081526004602052604090205460ff16801561109657506001600160a01b03821660009081526004602052604090205460ff165b156110a657610fae838383611402565b610fae8383836113be565b600081848411156110d55760405162461bcd60e51b81526004016103bb9190611912565b5060006110e284866119f5565b95945050505050565b60008060006110f8611475565b9092509050611107828261110e565b9250505090565b60006105c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611619565b600080808061116b6064611165876008611647565b9061110e565b90506000611178866116c6565b905060006111908261118a8986610c70565b90610c70565b979296509094509092505050565b60008080806111ad8886611647565b905060006111bb8887611647565b905060006111c98888611647565b905060006111db8261118a8686610c70565b939b939a50919850919650505050505050565b60008060008060008061120087610c19565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112329088610c70565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546112619087610c70565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546112909086610cb2565b6001600160a01b0389166000908152600160205260409020556112b3818a6116e2565b6112bd84836117e8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161130291815260200190565b60405180910390a3505050505050505050565b60008060008060008061132787610c19565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506113599087610c70565b6001600160a01b03808b16600090815260016020908152604080832094909455918b1681526002909152205461138f9084610cb2565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546112909086610cb2565b6000806000806000806113d087610c19565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506112619087610c70565b60008060008060008061141487610c19565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114469088610c70565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546113599087610c70565b60065460009081906a52b7d2dcc80cd2e4000000825b6005548110156115d8578260016000600584815481106114ad576114ad611a8e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061151857508160026000600584815481106114f1576114f1611a8e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611536575050600654936a52b7d2dcc80cd2e40000009350915050565b61157c600160006005848154811061155057611550611a8e565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490610c70565b92506115c4600260006005848154811061159857611598611a8e565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390610c70565b9150806115d081611a47565b91505061148b565b506006546115f1906a52b7d2dcc80cd2e400000061110e565b821015611610575050600654926a52b7d2dcc80cd2e400000092509050565b90939092509050565b6000818361163a5760405162461bcd60e51b81526004016103bb9190611912565b5060006110e284866119b4565b600082611656575060006104dc565b600061166283856119d6565b90508261166f85836119b4565b146105c85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103bb565b60006104dc6064611165600c548561164790919063ffffffff16565b60006116ec6110eb565b905060006116fa8483611647565b6008546001600160a01b03166000908152600160205260409020549091506117229082610cb2565b600880546001600160a01b03908116600090815260016020908152604080832095909555925490911681526004909152205460ff161561179d576008546001600160a01b03166000908152600260205260409020546117819085610cb2565b6008546001600160a01b03166000908152600260205260409020555b6008546040518581526001600160a01b03918216918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b6006546117f59083610c70565b6006556007546118059082610cb2565b6007555050565b60006020828403121561181e57600080fd5b81356105c881611aa4565b6000806040838503121561183c57600080fd5b823561184781611aa4565b9150602083013561185781611aa4565b809150509250929050565b60008060006060848603121561187757600080fd5b833561188281611aa4565b9250602084013561189281611aa4565b929592945050506040919091013590565b600080604083850312156118b657600080fd5b82356118c181611aa4565b946020939093013593505050565b6000602082840312156118e157600080fd5b5035919050565b600080604083850312156118fb57600080fd5b823591506020830135801515811461185757600080fd5b600060208083528351808285015260005b8181101561193f57858101830151858201604001528201611923565b81811115611951576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156119af576119af611a62565b500190565b6000826119d157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119f0576119f0611a62565b500290565b600082821015611a0757611a07611a62565b500390565b600181811c90821680611a2057607f821691505b60208210811415611a4157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a5b57611a5b611a62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611ab957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122092941552ce9463efe7e357c3af739862e3533753611d2954edb9d54306e51de064736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063bbbaf2191161007c578063bbbaf21914610299578063cba0e996146102ac578063dd62ed3e146102d8578063f2cc0c1814610311578063f2fde38b14610324578063f84354f11461033757600080fd5b806370a0823114610235578063715018a6146102485780638da5cb5b1461025057806395d89b411461026b578063a457c2d714610273578063a9059cbb1461028657600080fd5b806323b872dd1161011557806323b872dd146101cb5780632d838119146101de578063313ce567146101f1578063395093511461020657806340f8007a146102195780634549b0391461022257600080fd5b8063053ab1821461015257806306fdde0314610167578063095ea7b31461018557806313114a9d146101a857806318160ddd146101ba575b600080fd5b6101656101603660046118cf565b61034a565b005b61016f610439565b60405161017c9190611912565b60405180910390f35b6101986101933660046118a3565b6104cb565b604051901515815260200161017c565b6007545b60405190815260200161017c565b6a52b7d2dcc80cd2e40000006101ac565b6101986101d9366004611862565b6104e2565b6101ac6101ec3660046118cf565b61054b565b600b5460405160ff909116815260200161017c565b6101986102143660046118a3565b6105cf565b6101ac600c5481565b6101ac6102303660046118e8565b610605565b6101ac61024336600461180c565b61069b565b6101656106fa565b6000546040516001600160a01b03909116815260200161017c565b61016f61076e565b6101986102813660046118a3565b61077d565b6101986102943660046118a3565b6107cc565b6101656102a736600461180c565b6107d9565b6101986102ba36600461180c565b6001600160a01b031660009081526004602052604090205460ff1690565b6101ac6102e6366004611829565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61016561031f36600461180c565b610825565b61016561033236600461180c565b610978565b61016561034536600461180c565b610a62565b3360008181526004602052604090205460ff16156103c45760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b60006103cf83610c19565b505050506001600160a01b0384166000908152600160205260409020549192506103fb91905082610c70565b6001600160a01b0383166000908152600160205260409020556006546104219082610c70565b6006556007546104319084610cb2565b600755505050565b60606009805461044890611a0c565b80601f016020809104026020016040519081016040528092919081815260200182805461047490611a0c565b80156104c15780601f10610496576101008083540402835291602001916104c1565b820191906000526020600020905b8154815290600101906020018083116104a457829003601f168201915b5050505050905090565b60006104d8338484610d11565b5060015b92915050565b60006104ef848484610e35565b610541843361053c85604051806060016040528060288152602001611abd602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906110b1565b610d11565b5060019392505050565b60006006548211156105b25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103bb565b60006105bc6110eb565b90506105c8838261110e565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104d891859061053c9086610cb2565b60006a52b7d2dcc80cd2e40000008311156106625760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016103bb565b8161068157600061067284610c19565b509395506104dc945050505050565b600061068c84610c19565b509295506104dc945050505050565b6001600160a01b03811660009081526004602052604081205460ff16156106d857506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104dc9061054b565b6000546001600160a01b031633146107245760405162461bcd60e51b81526004016103bb90611967565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600a805461044890611a0c565b60006104d8338461053c85604051806060016040528060258152602001611ae5602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906110b1565b60006104d8338484610e35565b6000546001600160a01b031633146108035760405162461bcd60e51b81526004016103bb90611967565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461084f5760405162461bcd60e51b81526004016103bb90611967565b6001600160a01b03811660009081526004602052604090205460ff16156108b85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016103bb565b6001600160a01b03811660009081526001602052604090205415610912576001600160a01b0381166000908152600160205260409020546108f89061054b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b031633146109a25760405162461bcd60e51b81526004016103bb90611967565b6001600160a01b038116610a075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a8c5760405162461bcd60e51b81526004016103bb90611967565b6001600160a01b03811660009081526004602052604090205460ff16610af45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016103bb565b60005b600554811015610c1557816001600160a01b031660058281548110610b1e57610b1e611a8e565b6000918252602090912001546001600160a01b03161415610c035760058054610b49906001906119f5565b81548110610b5957610b59611a8e565b600091825260209091200154600580546001600160a01b039092169183908110610b8557610b85611a8e565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610bdd57610bdd611a78565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610c0d81611a47565b915050610af7565b5050565b6000806000806000806000806000610c308a611150565b9250925092506000610c406110eb565b90506000806000610c538e87878761119e565b919e509c509a509598509396509194505050505091939550919395565b60006105c883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b1565b600080610cbf838561199c565b9050838110156105c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103bb565b6001600160a01b038316610d735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103bb565b6001600160a01b038216610dd45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103bb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103bb565b6001600160a01b038216610efb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103bb565b60008111610f5d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103bb565b6001600160a01b03831660009081526004602052604090205460ff168015610f9e57506001600160a01b03821660009081526004602052604090205460ff16155b15610fb357610fae8383836111ee565b505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610ff457506001600160a01b03821660009081526004602052604090205460ff165b1561100457610fae838383611315565b6001600160a01b03831660009081526004602052604090205460ff1615801561104657506001600160a01b03821660009081526004602052604090205460ff16155b1561105657610fae8383836113be565b6001600160a01b03831660009081526004602052604090205460ff16801561109657506001600160a01b03821660009081526004602052604090205460ff165b156110a657610fae838383611402565b610fae8383836113be565b600081848411156110d55760405162461bcd60e51b81526004016103bb9190611912565b5060006110e284866119f5565b95945050505050565b60008060006110f8611475565b9092509050611107828261110e565b9250505090565b60006105c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611619565b600080808061116b6064611165876008611647565b9061110e565b90506000611178866116c6565b905060006111908261118a8986610c70565b90610c70565b979296509094509092505050565b60008080806111ad8886611647565b905060006111bb8887611647565b905060006111c98888611647565b905060006111db8261118a8686610c70565b939b939a50919850919650505050505050565b60008060008060008061120087610c19565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112329088610c70565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546112619087610c70565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546112909086610cb2565b6001600160a01b0389166000908152600160205260409020556112b3818a6116e2565b6112bd84836117e8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161130291815260200190565b60405180910390a3505050505050505050565b60008060008060008061132787610c19565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506113599087610c70565b6001600160a01b03808b16600090815260016020908152604080832094909455918b1681526002909152205461138f9084610cb2565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546112909086610cb2565b6000806000806000806113d087610c19565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506112619087610c70565b60008060008060008061141487610c19565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114469088610c70565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546113599087610c70565b60065460009081906a52b7d2dcc80cd2e4000000825b6005548110156115d8578260016000600584815481106114ad576114ad611a8e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061151857508160026000600584815481106114f1576114f1611a8e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611536575050600654936a52b7d2dcc80cd2e40000009350915050565b61157c600160006005848154811061155057611550611a8e565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490610c70565b92506115c4600260006005848154811061159857611598611a8e565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390610c70565b9150806115d081611a47565b91505061148b565b506006546115f1906a52b7d2dcc80cd2e400000061110e565b821015611610575050600654926a52b7d2dcc80cd2e400000092509050565b90939092509050565b6000818361163a5760405162461bcd60e51b81526004016103bb9190611912565b5060006110e284866119b4565b600082611656575060006104dc565b600061166283856119d6565b90508261166f85836119b4565b146105c85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103bb565b60006104dc6064611165600c548561164790919063ffffffff16565b60006116ec6110eb565b905060006116fa8483611647565b6008546001600160a01b03166000908152600160205260409020549091506117229082610cb2565b600880546001600160a01b03908116600090815260016020908152604080832095909555925490911681526004909152205460ff161561179d576008546001600160a01b03166000908152600260205260409020546117819085610cb2565b6008546001600160a01b03166000908152600260205260409020555b6008546040518581526001600160a01b03918216918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b6006546117f59083610c70565b6006556007546118059082610cb2565b6007555050565b60006020828403121561181e57600080fd5b81356105c881611aa4565b6000806040838503121561183c57600080fd5b823561184781611aa4565b9150602083013561185781611aa4565b809150509250929050565b60008060006060848603121561187757600080fd5b833561188281611aa4565b9250602084013561189281611aa4565b929592945050506040919091013590565b600080604083850312156118b657600080fd5b82356118c181611aa4565b946020939093013593505050565b6000602082840312156118e157600080fd5b5035919050565b600080604083850312156118fb57600080fd5b823591506020830135801515811461185757600080fd5b600060208083528351808285015260005b8181101561193f57858101830151858201604001528201611923565b81811115611951576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156119af576119af611a62565b500190565b6000826119d157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119f0576119f0611a62565b500290565b600082821015611a0757611a07611a62565b500390565b600181811c90821680611a2057607f821691505b60208210811415611a4157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a5b57611a5b611a62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611ab957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122092941552ce9463efe7e357c3af739862e3533753611d2954edb9d54306e51de064736f6c63430008070033
Deployed Bytecode Sourcemap
17391:11661:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20606:377;;;;;;:::i;:::-;;:::i;:::-;;18488:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19400:161;;;;;;:::i;:::-;;:::i;:::-;;;2604:14:1;;2597:22;2579:41;;2567:2;2552:18;19400:161:0;2439:187:1;20511:87:0;20580:10;;20511:87;;;8473:25:1;;;8461:2;8446:18;20511:87:0;8327:177:1;18765:95:0;17867:20;18765:95;;19569:313;;;;;;:::i;:::-;;:::i;21435:253::-;;;;;;:::i;:::-;;:::i;18674:83::-;18740:9;;18674:83;;18740:9;;;;8651:36:1;;8639:2;8624:18;18674:83:0;8509:184:1;19890:218:0;;;;;;:::i;:::-;;:::i;18162:30::-;;;;;;20991:436;;;;;;:::i;:::-;;:::i;18868:198::-;;;;;;:::i;:::-;;:::i;16835:148::-;;;:::i;16193:79::-;16231:7;16258:6;16193:79;;-1:-1:-1;;;;;16258:6:0;;;2377:51:1;;2365:2;2350:18;16193:79:0;2231:203:1;18579:87:0;;;:::i;20116:269::-;;;;;;:::i;:::-;;:::i;19074:167::-;;;;;;:::i;:::-;;:::i;28885:164::-;;;;;;:::i;:::-;;:::i;20393:110::-;;;;;;:::i;:::-;-1:-1:-1;;;;;20475:20:0;20451:4;20475:20;;;:11;:20;;;;;;;;;20393:110;19249:143;;;;;;:::i;:::-;-1:-1:-1;;;;;19357:18:0;;;19330:7;19357:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19249:143;21696:332;;;;;;:::i;:::-;;:::i;17138:244::-;;;;;;:::i;:::-;;:::i;22036:478::-;;;;;;:::i;:::-;;:::i;20606:377::-;756:10;20658:14;20707:19;;;:11;:19;;;;;;;;20706:20;20698:77;;;;-1:-1:-1;;;20698:77:0;;8116:2:1;20698:77:0;;;8098:21:1;8155:2;8135:18;;;8128:30;8194:34;8174:18;;;8167:62;-1:-1:-1;;;8245:18:1;;;8238:42;8297:19;;20698:77:0;;;;;;;;;20787:15;20811:19;20822:7;20811:10;:19::i;:::-;-1:-1:-1;;;;;;;;;20859:15:0;;;;;;:7;:15;;;;;;20786:44;;-1:-1:-1;20859:28:0;;:15;-1:-1:-1;20786:44:0;20859:19;:28::i;:::-;-1:-1:-1;;;;;20841:15:0;;;;;;:7;:15;;;;;:46;20908:7;;:20;;20920:7;20908:11;:20::i;:::-;20898:7;:30;20952:10;;:23;;20967:7;20952:14;:23::i;:::-;20939:10;:36;-1:-1:-1;;;20606:377:0:o;18488:83::-;18525:13;18558:5;18551:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18488:83;:::o;19400:161::-;19475:4;19492:39;756:10;19515:7;19524:6;19492:8;:39::i;:::-;-1:-1:-1;19549:4:0;19400:161;;;;;:::o;19569:313::-;19667:4;19684:36;19694:6;19702:9;19713:6;19684:9;:36::i;:::-;19731:121;19740:6;756:10;19762:89;19800:6;19762:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19762:19:0;;;;;;:11;:19;;;;;;;;756:10;19762:33;;;;;;;;;;:37;:89::i;:::-;19731:8;:121::i;:::-;-1:-1:-1;19870:4:0;19569:313;;;;;:::o;21435:253::-;21501:7;21540;;21529;:18;;21521:73;;;;-1:-1:-1;;;21521:73:0;;3839:2:1;21521:73:0;;;3821:21:1;3878:2;3858:18;;;3851:30;3917:34;3897:18;;;3890:62;-1:-1:-1;;;3968:18:1;;;3961:40;4018:19;;21521:73:0;3637:406:1;21521:73:0;21605:19;21628:10;:8;:10::i;:::-;21605:33;-1:-1:-1;21656:24:0;:7;21605:33;21656:11;:24::i;:::-;21649:31;21435:253;-1:-1:-1;;;21435:253:0:o;19890:218::-;756:10;19978:4;20027:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20027:34:0;;;;;;;;;;19978:4;;19995:83;;20018:7;;20027:50;;20066:10;20027:38;:50::i;20991:436::-;21081:7;17867:20;21109:7;:18;;21101:62;;;;-1:-1:-1;;;21101:62:0;;5772:2:1;21101:62:0;;;5754:21:1;5811:2;5791:18;;;5784:30;5850:33;5830:18;;;5823:61;5901:18;;21101:62:0;5570:355:1;21101:62:0;21179:17;21174:246;;21214:15;21238:19;21249:7;21238:10;:19::i;:::-;-1:-1:-1;21213:44:0;;-1:-1:-1;21272:14:0;;-1:-1:-1;;;;;21272:14:0;21174:246;21321:23;21352:19;21363:7;21352:10;:19::i;:::-;-1:-1:-1;21319:52:0;;-1:-1:-1;21386:22:0;;-1:-1:-1;;;;;21386:22:0;18868:198;-1:-1:-1;;;;;18958:20:0;;18934:7;18958:20;;;:11;:20;;;;;;;;18954:49;;;-1:-1:-1;;;;;;18987:16:0;;;;;:7;:16;;;;;;;18868:198::o;18954:49::-;-1:-1:-1;;;;;19041:16:0;;;;;;:7;:16;;;;;;19021:37;;:19;:37::i;16835:148::-;16405:6;;-1:-1:-1;;;;;16405:6:0;756:10;16405:22;16397:67;;;;-1:-1:-1;;;16397:67:0;;;;;;;:::i;:::-;16942:1:::1;16926:6:::0;;16905:40:::1;::::0;-1:-1:-1;;;;;16926:6:0;;::::1;::::0;16905:40:::1;::::0;16942:1;;16905:40:::1;16973:1;16956:19:::0;;-1:-1:-1;;;;;;16956:19:0::1;::::0;;16835:148::o;18579:87::-;18618:13;18651:7;18644:14;;;;;:::i;20116:269::-;20209:4;20226:129;756:10;20249:7;20258:96;20297:15;20258:96;;;;;;;;;;;;;;;;;756:10;20258:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20258:34:0;;;;;;;;;;;;:38;:96::i;19074:167::-;19152:4;19169:42;756:10;19193:9;19204:6;19169:9;:42::i;28885:164::-;16405:6;;-1:-1:-1;;;;;16405:6:0;756:10;16405:22;16397:67;;;;-1:-1:-1;;;16397:67:0;;;;;;;:::i;:::-;28993:21:::1;:44:::0;;-1:-1:-1;;;;;;28993:44:0::1;-1:-1:-1::0;;;;;28993:44:0;;;::::1;::::0;;;::::1;::::0;;28885:164::o;21696:332::-;16405:6;;-1:-1:-1;;;;;16405:6:0;756:10;16405:22;16397:67;;;;-1:-1:-1;;;16397:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21778:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;21777:21;21769:61;;;::::0;-1:-1:-1;;;21769:61:0;;5416:2:1;21769:61:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;5494:29;5474:18;;;5467:57;5541:18;;21769:61:0::1;5214:351:1::0;21769:61:0::1;-1:-1:-1::0;;;;;21844:16:0;::::1;21863:1;21844:16:::0;;;:7:::1;:16;::::0;;;;;:20;21841:108:::1;;-1:-1:-1::0;;;;;21920:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;21900:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;21881:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;21841:108:::1;-1:-1:-1::0;;;;;21959:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;21959:27:0::1;21982:4;21959:27:::0;;::::1;::::0;;;21997:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;21997:23:0::1;::::0;;::::1;::::0;;21696:332::o;17138:244::-;16405:6;;-1:-1:-1;;;;;16405:6:0;756:10;16405:22;16397:67;;;;-1:-1:-1;;;16397:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17227:22:0;::::1;17219:73;;;::::0;-1:-1:-1;;;17219:73:0;;4250:2:1;17219:73:0::1;::::0;::::1;4232:21:1::0;4289:2;4269:18;;;4262:30;4328:34;4308:18;;;4301:62;-1:-1:-1;;;4379:18:1;;;4372:36;4425:19;;17219:73:0::1;4048:402:1::0;17219:73:0::1;17329:6;::::0;;17308:38:::1;::::0;-1:-1:-1;;;;;17308:38:0;;::::1;::::0;17329:6;::::1;::::0;17308:38:::1;::::0;::::1;17357:6;:17:::0;;-1:-1:-1;;;;;;17357:17:0::1;-1:-1:-1::0;;;;;17357:17:0;;;::::1;::::0;;;::::1;::::0;;17138:244::o;22036:478::-;16405:6;;-1:-1:-1;;;;;16405:6:0;756:10;16405:22;16397:67;;;;-1:-1:-1;;;16397:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22117:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22109:60;;;::::0;-1:-1:-1;;;22109:60:0;;5416:2:1;22109:60:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;5494:29;5474:18;;;5467:57;5541:18;;22109:60:0::1;5214:351:1::0;22109:60:0::1;22185:9;22180:327;22204:9;:16:::0;22200:20;::::1;22180:327;;;22262:7;-1:-1:-1::0;;;;;22246:23:0::1;:9;22256:1;22246:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22246:12:0::1;:23;22242:254;;;22305:9;22315:16:::0;;:20:::1;::::0;22334:1:::1;::::0;22315:20:::1;:::i;:::-;22305:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;22290:9:::1;:12:::0;;-1:-1:-1;;;;;22305:31:0;;::::1;::::0;22300:1;;22290:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22290:46:0::1;-1:-1:-1::0;;;;;22290:46:0;;::::1;;::::0;;22355:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22394:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22394:28:0::1;::::0;;22441:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;22441:15:0;;;;;-1:-1:-1;;;;;;22441:15:0::1;::::0;;;;;22180:327:::1;22036:478:::0;:::o;22242:254::-:1;22222:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22180:327;;;;22036:478:::0;:::o;26290:458::-;26349:7;26358;26367;26376;26385;26394;26415:23;26440:12;26454:16;26474:20;26486:7;26474:11;:20::i;:::-;26414:80;;;;;;26505:19;26528:10;:8;:10::i;:::-;26505:33;;26550:15;26567:23;26592:12;26608:49;26620:7;26629:4;26635:8;26645:11;26608;:49::i;:::-;26549:108;;-1:-1:-1;26549:108:0;-1:-1:-1;26549:108:0;-1:-1:-1;26708:15:0;;-1:-1:-1;26725:4:0;;-1:-1:-1;26731:8:0;;-1:-1:-1;;;;;26290:458:0;;;;;;;:::o;5039:136::-;5097:7;5124:43;5128:1;5131;5124:43;;;;;;;;;;;;;;;;;:3;:43::i;4575:181::-;4633:7;;4665:5;4669:1;4665;:5;:::i;:::-;4653:17;;4694:1;4689;:6;;4681:46;;;;-1:-1:-1;;;4681:46:0;;5060:2:1;4681:46:0;;;5042:21:1;5099:2;5079:18;;;5072:30;5138:29;5118:18;;;5111:57;5185:18;;4681:46:0;4858:351:1;22522:337:0;-1:-1:-1;;;;;22615:19:0;;22607:68;;;;-1:-1:-1;;;22607:68:0;;7711:2:1;22607:68:0;;;7693:21:1;7750:2;7730:18;;;7723:30;7789:34;7769:18;;;7762:62;-1:-1:-1;;;7840:18:1;;;7833:34;7884:19;;22607:68:0;7509:400:1;22607:68:0;-1:-1:-1;;;;;22694:21:0;;22686:68;;;;-1:-1:-1;;;22686:68:0;;4657:2:1;22686:68:0;;;4639:21:1;4696:2;4676:18;;;4669:30;4735:34;4715:18;;;4708:62;-1:-1:-1;;;4786:18:1;;;4779:32;4828:19;;22686:68:0;4455:398:1;22686:68:0;-1:-1:-1;;;;;22767:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22819:32;;8473:25:1;;;22819:32:0;;8446:18:1;22819:32:0;;;;;;;22522:337;;;:::o;22867:931::-;-1:-1:-1;;;;;22964:20:0;;22956:70;;;;-1:-1:-1;;;22956:70:0;;7305:2:1;22956:70:0;;;7287:21:1;7344:2;7324:18;;;7317:30;7383:34;7363:18;;;7356:62;-1:-1:-1;;;7434:18:1;;;7427:35;7479:19;;22956:70:0;7103:401:1;22956:70:0;-1:-1:-1;;;;;23045:23:0;;23037:71;;;;-1:-1:-1;;;23037:71:0;;3435:2:1;23037:71:0;;;3417:21:1;3474:2;3454:18;;;3447:30;3513:34;3493:18;;;3486:62;-1:-1:-1;;;3564:18:1;;;3557:33;3607:19;;23037:71:0;3233:399:1;23037:71:0;23136:1;23127:6;:10;23119:64;;;;-1:-1:-1;;;23119:64:0;;6895:2:1;23119:64:0;;;6877:21:1;6934:2;6914:18;;;6907:30;6973:34;6953:18;;;6946:62;-1:-1:-1;;;7024:18:1;;;7017:39;7073:19;;23119:64:0;6693:405:1;23119:64:0;-1:-1:-1;;;;;23198:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;23222:22:0;;;;;;:11;:22;;;;;;;;23221:23;23198:46;23194:597;;;23261:48;23283:6;23291:9;23302:6;23261:21;:48::i;:::-;22867:931;;;:::o;23194:597::-;-1:-1:-1;;;;;23332:19:0;;;;;;:11;:19;;;;;;;;23331:20;:46;;;;-1:-1:-1;;;;;;23355:22:0;;;;;;:11;:22;;;;;;;;23331:46;23327:464;;;23394:46;23414:6;23422:9;23433:6;23394:19;:46::i;23327:464::-;-1:-1:-1;;;;;23463:19:0;;;;;;:11;:19;;;;;;;;23462:20;:47;;;;-1:-1:-1;;;;;;23487:22:0;;;;;;:11;:22;;;;;;;;23486:23;23462:47;23458:333;;;23526:44;23544:6;23552:9;23563:6;23526:17;:44::i;23458:333::-;-1:-1:-1;;;;;23592:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;23615:22:0;;;;;;:11;:22;;;;;;;;23592:45;23588:203;;;23654:48;23676:6;23684:9;23695:6;23654:21;:48::i;23588:203::-;23735:44;23753:6;23761:9;23772:6;23735:17;:44::i;5478:192::-;5564:7;5600:12;5592:6;;;;5584:29;;;;-1:-1:-1;;;5584:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5624:9:0;5636:5;5640:1;5636;:5;:::i;:::-;5624:17;5478:192;-1:-1:-1;;;;;5478:192:0:o;27515:163::-;27556:7;27577:15;27594;27613:19;:17;:19::i;:::-;27576:56;;-1:-1:-1;27576:56:0;-1:-1:-1;27650:20:0;27576:56;;27650:11;:20::i;:::-;27643:27;;;;27515:163;:::o;6876:132::-;6934:7;6961:39;6965:1;6968;6961:39;;;;;;;;;;;;;;;;;:3;:39::i;26756:322::-;26816:7;;;;26868:25;26889:3;26869:14;:7;26881:1;26869:11;:14::i;:::-;26868:20;;:25::i;:::-;26853:40;;26904:16;26923:28;26943:7;26923:19;:28::i;:::-;26904:47;-1:-1:-1;26962:23:0;26988:31;26904:47;26988:17;:7;27000:4;26988:11;:17::i;:::-;:21;;:31::i;:::-;26962:57;27055:4;;-1:-1:-1;27061:8:0;;-1:-1:-1;26756:322:0;;-1:-1:-1;;;26756:322:0:o;27086:421::-;27199:7;;;;27255:24;:7;27267:11;27255;:24::i;:::-;27237:42;-1:-1:-1;27290:12:0;27305:21;:4;27314:11;27305:8;:21::i;:::-;27290:36;-1:-1:-1;27337:16:0;27356:25;:8;27369:11;27356:12;:25::i;:::-;27337:44;-1:-1:-1;27392:23:0;27418:31;27337:44;27418:17;:7;27430:4;27418:11;:17::i;:31::-;27468:7;;;;-1:-1:-1;27494:4:0;;-1:-1:-1;27086:421:0;;-1:-1:-1;;;;;;;27086:421:0:o;24915:565::-;25018:15;25035:23;25060:12;25074:23;25099:12;25113:16;25133:19;25144:7;25133:10;:19::i;:::-;-1:-1:-1;;;;;25181:15:0;;;;;;:7;:15;;;;;;25017:135;;-1:-1:-1;25017:135:0;;-1:-1:-1;25017:135:0;;-1:-1:-1;25017:135:0;-1:-1:-1;25017:135:0;-1:-1:-1;25017:135:0;-1:-1:-1;25181:28:0;;25201:7;25181:19;:28::i;:::-;-1:-1:-1;;;;;25163:15:0;;;;;;:7;:15;;;;;;;;:46;;;;25238:7;:15;;;;:28;;25258:7;25238:19;:28::i;:::-;-1:-1:-1;;;;;25220:15:0;;;;;;;:7;:15;;;;;;:46;;;;25298:18;;;;;;;:39;;25321:15;25298:22;:39::i;:::-;-1:-1:-1;;;;;25277:18:0;;;;;;:7;:18;;;;;:60;25348:30;25361:8;25371:6;25348:12;:30::i;:::-;25389:23;25401:4;25407;25389:11;:23::i;:::-;25445:9;-1:-1:-1;;;;;25428:44:0;25437:6;-1:-1:-1;;;;;25428:44:0;;25456:15;25428:44;;;;8473:25:1;;8461:2;8446:18;;8327:177;25428:44:0;;;;;;;;25006:474;;;;;;24915:565;;;:::o;24320:587::-;24421:15;24438:23;24463:12;24477:23;24502:12;24516:16;24536:19;24547:7;24536:10;:19::i;:::-;-1:-1:-1;;;;;24584:15:0;;;;;;:7;:15;;;;;;24420:135;;-1:-1:-1;24420:135:0;;-1:-1:-1;24420:135:0;;-1:-1:-1;24420:135:0;-1:-1:-1;24420:135:0;-1:-1:-1;24420:135:0;-1:-1:-1;24584:28:0;;24420:135;24584:19;:28::i;:::-;-1:-1:-1;;;;;24566:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;24644:18;;;;;:7;:18;;;;;:39;;24667:15;24644:22;:39::i;:::-;-1:-1:-1;;;;;24623:18:0;;;;;;:7;:18;;;;;;;;:60;;;;24715:7;:18;;;;:39;;24738:15;24715:22;:39::i;23806:506::-;23905:15;23922:23;23947:12;23961:23;23986:12;24000:16;24020:19;24031:7;24020:10;:19::i;:::-;-1:-1:-1;;;;;24068:15:0;;;;;;:7;:15;;;;;;23904:135;;-1:-1:-1;23904:135:0;;-1:-1:-1;23904:135:0;;-1:-1:-1;23904:135:0;-1:-1:-1;23904:135:0;-1:-1:-1;23904:135:0;-1:-1:-1;24068:28:0;;23904:135;24068:19;:28::i;25488:639::-;25591:15;25608:23;25633:12;25647:23;25672:12;25686:16;25706:19;25717:7;25706:10;:19::i;:::-;-1:-1:-1;;;;;25754:15:0;;;;;;:7;:15;;;;;;25590:135;;-1:-1:-1;25590:135:0;;-1:-1:-1;25590:135:0;;-1:-1:-1;25590:135:0;-1:-1:-1;25590:135:0;-1:-1:-1;25590:135:0;-1:-1:-1;25754:28:0;;25774:7;25754:19;:28::i;:::-;-1:-1:-1;;;;;25736:15:0;;;;;;:7;:15;;;;;;;;:46;;;;25811:7;:15;;;;:28;;25831:7;25811:19;:28::i;27686:561::-;27783:7;;27736;;;;17867:20;27736:7;27843:289;27867:9;:16;27863:20;;27843:289;;;27933:7;27909;:21;27917:9;27927:1;27917:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27917:12:0;27909:21;;;;;;;;;;;;;:31;;:66;;;27968:7;27944;:21;27952:9;27962:1;27952:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27952:12:0;27944:21;;;;;;;;;;;;;:31;27909:66;27905:97;;;-1:-1:-1;;27985:7:0;;;17867:20;;-1:-1:-1;27686:561:0;-1:-1:-1;;27686:561:0:o;27905:97::-;28027:34;28039:7;:21;28047:9;28057:1;28047:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28047:12:0;28039:21;;;;;;;;;;;;;28027:7;;:11;:34::i;:::-;28017:44;;28086:34;28098:7;:21;28106:9;28116:1;28106:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28106:12:0;28098:21;;;;;;;;;;;;;28086:7;;:11;:34::i;:::-;28076:44;-1:-1:-1;27885:3:0;;;;:::i;:::-;;;;27843:289;;;-1:-1:-1;28156:7:0;;:20;;17867;28156:11;:20::i;:::-;28146:7;:30;28142:61;;;-1:-1:-1;;28186:7:0;;;17867:20;;-1:-1:-1;27686:561:0;-1:-1:-1;27686:561:0:o;28142:61::-;28222:7;;28231;;-1:-1:-1;27686:561:0;-1:-1:-1;27686:561:0:o;7504:278::-;7590:7;7625:12;7618:5;7610:28;;;;-1:-1:-1;;;7610:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7649:9:0;7661:5;7665:1;7661;:5;:::i;5929:471::-;5987:7;6232:6;6228:47;;-1:-1:-1;6262:1:0;6255:8;;6228:47;6287:9;6299:5;6303:1;6299;:5;:::i;:::-;6287:17;-1:-1:-1;6332:1:0;6323:5;6327:1;6287:17;6323:5;:::i;:::-;:10;6315:56;;;;-1:-1:-1;;;6315:56:0;;6132:2:1;6315:56:0;;;6114:21:1;6171:2;6151:18;;;6144:30;6210:34;6190:18;;;6183:62;-1:-1:-1;;;6261:18:1;;;6254:31;6302:19;;6315:56:0;5930:397:1;28736:136:0;28804:7;28831:33;28860:3;28831:24;28843:11;;28831:7;:11;;:24;;;;:::i;28259:464::-;28334:19;28357:10;:8;:10::i;:::-;28334:33;-1:-1:-1;28378:16:0;28397:25;:8;28334:33;28397:12;:25::i;:::-;28474:21;;-1:-1:-1;;;;;28474:21:0;28466:30;;;;:7;:30;;;;;;28378:44;;-1:-1:-1;28466:44:0;;28378;28466:34;:44::i;:::-;28441:21;;;-1:-1:-1;;;;;28441:21:0;;;28433:30;;;;:7;:30;;;;;;;;:77;;;;28536:21;;;;;28524:34;;:11;:34;;;;;;;28521:129;;;28614:21;;-1:-1:-1;;;;;28614:21:0;28606:30;;;;:7;:30;;;;;;:44;;28641:8;28606:34;:44::i;:::-;28581:21;;-1:-1:-1;;;;;28581:21:0;28573:30;;;;:7;:30;;;;;:77;28521:129;28683:21;;28666:49;;8473:25:1;;;-1:-1:-1;;;;;28683:21:0;;;;28666:49;;;;;8461:2:1;8446:18;28666:49:0;;;;;;;28323:400;;28259:464;;:::o;26135:147::-;26213:7;;:17;;26225:4;26213:11;:17::i;:::-;26203:7;:27;26254:10;;:20;;26269:4;26254:14;:20::i;:::-;26241:10;:33;-1:-1:-1;;26135:147:0:o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;526:388::-;594:6;602;655:2;643:9;634:7;630:23;626:32;623:52;;;671:1;668;661:12;623:52;710:9;697:23;729:31;754:5;729:31;:::i;:::-;779:5;-1:-1:-1;836:2:1;821:18;;808:32;849:33;808:32;849:33;:::i;:::-;901:7;891:17;;;526:388;;;;;:::o;919:456::-;996:6;1004;1012;1065:2;1053:9;1044:7;1040:23;1036:32;1033:52;;;1081:1;1078;1071:12;1033:52;1120:9;1107:23;1139:31;1164:5;1139:31;:::i;:::-;1189:5;-1:-1:-1;1246:2:1;1231:18;;1218:32;1259:33;1218:32;1259:33;:::i;:::-;919:456;;1311:7;;-1:-1:-1;;;1365:2:1;1350:18;;;;1337:32;;919:456::o;1380:315::-;1448:6;1456;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;:::-;1633:5;1685:2;1670:18;;;;1657:32;;-1:-1:-1;;;1380:315:1:o;1700:180::-;1759:6;1812:2;1800:9;1791:7;1787:23;1783:32;1780:52;;;1828:1;1825;1818:12;1780:52;-1:-1:-1;1851:23:1;;1700:180;-1:-1:-1;1700:180:1:o;1885:341::-;1950:6;1958;2011:2;1999:9;1990:7;1986:23;1982:32;1979:52;;;2027:1;2024;2017:12;1979:52;2063:9;2050:23;2040:33;;2123:2;2112:9;2108:18;2095:32;2170:5;2163:13;2156:21;2149:5;2146:32;2136:60;;2192:1;2189;2182:12;2631:597;2743:4;2772:2;2801;2790:9;2783:21;2833:6;2827:13;2876:6;2871:2;2860:9;2856:18;2849:34;2901:1;2911:140;2925:6;2922:1;2919:13;2911:140;;;3020:14;;;3016:23;;3010:30;2986:17;;;3005:2;2982:26;2975:66;2940:10;;2911:140;;;3069:6;3066:1;3063:13;3060:91;;;3139:1;3134:2;3125:6;3114:9;3110:22;3106:31;3099:42;3060:91;-1:-1:-1;3212:2:1;3191:15;-1:-1:-1;;3187:29:1;3172:45;;;;3219:2;3168:54;;2631:597;-1:-1:-1;;;2631:597:1:o;6332:356::-;6534:2;6516:21;;;6553:18;;;6546:30;6612:34;6607:2;6592:18;;6585:62;6679:2;6664:18;;6332:356::o;8698:128::-;8738:3;8769:1;8765:6;8762:1;8759:13;8756:39;;;8775:18;;:::i;:::-;-1:-1:-1;8811:9:1;;8698:128::o;8831:217::-;8871:1;8897;8887:132;;8941:10;8936:3;8932:20;8929:1;8922:31;8976:4;8973:1;8966:15;9004:4;9001:1;8994:15;8887:132;-1:-1:-1;9033:9:1;;8831:217::o;9053:168::-;9093:7;9159:1;9155;9151:6;9147:14;9144:1;9141:21;9136:1;9129:9;9122:17;9118:45;9115:71;;;9166:18;;:::i;:::-;-1:-1:-1;9206:9:1;;9053:168::o;9226:125::-;9266:4;9294:1;9291;9288:8;9285:34;;;9299:18;;:::i;:::-;-1:-1:-1;9336:9:1;;9226:125::o;9356:380::-;9435:1;9431:12;;;;9478;;;9499:61;;9553:4;9545:6;9541:17;9531:27;;9499:61;9606:2;9598:6;9595:14;9575:18;9572:38;9569:161;;;9652:10;9647:3;9643:20;9640:1;9633:31;9687:4;9684:1;9677:15;9715:4;9712:1;9705:15;9569:161;;9356:380;;;:::o;9741:135::-;9780:3;-1:-1:-1;;9801:17:1;;9798:43;;;9821:18;;:::i;:::-;-1:-1:-1;9868:1:1;9857:13;;9741:135::o;9881:127::-;9942:10;9937:3;9933:20;9930:1;9923:31;9973:4;9970:1;9963:15;9997:4;9994:1;9987:15;10013:127;10074:10;10069:3;10065:20;10062:1;10055:31;10105:4;10102:1;10095:15;10129:4;10126:1;10119:15;10145:127;10206:10;10201:3;10197:20;10194:1;10187:31;10237:4;10234:1;10227:15;10261:4;10258:1;10251:15;10277:131;-1:-1:-1;;;;;10352:31:1;;10342:42;;10332:70;;10398:1;10395;10388:12;10332:70;10277:131;:::o
Swarm Source
ipfs://92941552ce9463efe7e357c3af739862e3533753611d2954edb9d54306e51de0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.