ERC-20
DeFi
Overview
Max Total Supply
1,000,000,000,000 FUZZY
Holders
975 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 12 Decimals)
Balance
3,288,512,789.945643297391 FUZZYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FuzzyInu
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-05-17 */ // FuzzyInu // Fuzzy is the people-friendly, transparent memecoin. // Join the chat! // Website: https://fuzzyinu.info // Telegram: t.me/FuzzyInu // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; /* * @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) { 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); } 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) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 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"); // 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"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (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"); // solhint-disable-next-line avoid-low-level-calls (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"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private 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 // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } 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 () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), 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 { 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 FuzzyInu 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 = 1000000000000 * 10**12; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = 'FuzzyInu'; string private _symbol = 'FUZZY'; uint8 private _decimals = 12; uint256 public _maxTxAmount = 5000000000 * 10**12; constructor () public { _rOwned[_msgSender()] = _rTotal; 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 view 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 setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() { _maxTxAmount = _tTotal.mul(maxTxPercent).div( 10**2 ); } 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(sender != owner() && recipient != owner()) require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); 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) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _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) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _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) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _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) = _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); _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 tTransferAmount, uint256 tFee) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee); } function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) { uint256 tFee = tAmount.div(100).mul(2); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); 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); } }
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":"_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":[],"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":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","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":"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"}]
Contract Creation Code
608060405269d3c21bcecceda10000006000196200001e9190620003f1565b6000196200002d919062000376565b6006556040518060400160405280600881526020017f46757a7a79496e75000000000000000000000000000000000000000000000000815250600890805190602001906200007d92919062000298565b506040518060400160405280600581526020017f46555a5a5900000000000000000000000000000000000000000000000000000081525060099080519060200190620000cb92919062000298565b50600c600a60006101000a81548160ff021916908360ff16021790555069010f0cf064dd59200000600b553480156200010357600080fd5b506000620001166200029060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460016000620001cb6200029060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002196200029060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda100000060405162000282919062000359565b60405180910390a3620004b6565b600033905090565b828054620002a690620003bb565b90600052602060002090601f016020900481019282620002ca576000855562000316565b82601f10620002e557805160ff191683800117855562000316565b8280016001018555821562000316579182015b8281111562000315578251825591602001919060010190620002f8565b5b50905062000325919062000329565b5090565b5b80821115620003445760008160009055506001016200032a565b5090565b6200035381620003b1565b82525050565b600060208201905062000370600083018462000348565b92915050565b60006200038382620003b1565b91506200039083620003b1565b925082821015620003a657620003a562000429565b5b828203905092915050565b6000819050919050565b60006002820490506001821680620003d457607f821691505b60208210811415620003eb57620003ea62000487565b5b50919050565b6000620003fe82620003b1565b91506200040b83620003b1565b9250826200041e576200041d62000458565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613b8880620004c66000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cba0e9961161007c578063cba0e996146103ca578063d543dbeb146103fa578063dd62ed3e14610416578063f2cc0c1814610446578063f2fde38b14610462578063f84354f11461047e5761014d565b8063715018a6146103065780637d1db4a5146103105780638da5cb5b1461032e57806395d89b411461034c578063a457c2d71461036a578063a9059cbb1461039a5761014d565b806323b872dd1161011557806323b872dd146101f85780632d83811914610228578063313ce5671461025857806339509351146102765780634549b039146102a657806370a08231146102d65761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c57806313114a9d146101bc57806318160ddd146101da575b600080fd5b61016c60048036038101906101679190612f22565b61049a565b005b610176610614565b604051610183919061321c565b60405180910390f35b6101a660048036038101906101a19190612ee6565b6106a6565b6040516101b39190613201565b60405180910390f35b6101c46106c4565b6040516101d191906133fe565b60405180910390f35b6101e26106ce565b6040516101ef91906133fe565b60405180910390f35b610212600480360381019061020d9190612e97565b6106e0565b60405161021f9190613201565b60405180910390f35b610242600480360381019061023d9190612f22565b6107b9565b60405161024f91906133fe565b60405180910390f35b610260610827565b60405161026d9190613419565b60405180910390f35b610290600480360381019061028b9190612ee6565b61083e565b60405161029d9190613201565b60405180910390f35b6102c060048036038101906102bb9190612f4b565b6108f1565b6040516102cd91906133fe565b60405180910390f35b6102f060048036038101906102eb9190612e32565b61097b565b6040516102fd91906133fe565b60405180910390f35b61030e610a66565b005b610318610ba0565b60405161032591906133fe565b60405180910390f35b610336610ba6565b60405161034391906131e6565b60405180910390f35b610354610bcf565b604051610361919061321c565b60405180910390f35b610384600480360381019061037f9190612ee6565b610c61565b6040516103919190613201565b60405180910390f35b6103b460048036038101906103af9190612ee6565b610d2e565b6040516103c19190613201565b60405180910390f35b6103e460048036038101906103df9190612e32565b610d4c565b6040516103f19190613201565b60405180910390f35b610414600480360381019061040f9190612f22565b610da2565b005b610430600480360381019061042b9190612e5b565b610e57565b60405161043d91906133fe565b60405180910390f35b610460600480360381019061045b9190612e32565b610ede565b005b61047c60048036038101906104779190612e32565b611179565b005b61049860048036038101906104939190612e32565b611322565b005b60006104a46116f0565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a906133de565b60405180910390fd5b600061053e836116f8565b50505050905061059681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105ee8160065461175090919063ffffffff16565b6006819055506106098360075461179a90919063ffffffff16565b600781905550505050565b606060088054610623906135ed565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906135ed565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106ba6106b36116f0565b84846117f8565b6001905092915050565b6000600754905090565b600069d3c21bcecceda1000000905090565b60006106ed8484846119c3565b6107ae846106f96116f0565b6107a985604051806060016040528060288152602001613b0660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075f6116f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9b9092919063ffffffff16565b6117f8565b600190509392505050565b6000600654821115610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f79061325e565b60405180910390fd5b600061080a611eff565b905061081f8184611f2a90919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b60006108e761084b6116f0565b846108e2856003600061085c6116f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b6117f8565b6001905092915050565b600069d3c21bcecceda1000000831115610940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610937906132fe565b60405180910390fd5b8161095f576000610950846116f8565b50505050905080915050610975565b600061096a846116f8565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a1657600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610a61565b610a5e600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b9565b90505b919050565b610a6e6116f0565b73ffffffffffffffffffffffffffffffffffffffff16610a8c610ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad99061335e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610bde906135ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0a906135ed565b8015610c575780601f10610c2c57610100808354040283529160200191610c57565b820191906000526020600020905b815481529060010190602001808311610c3a57829003601f168201915b5050505050905090565b6000610d24610c6e6116f0565b84610d1f85604051806060016040528060258152602001613b2e6025913960036000610c986116f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9b9092919063ffffffff16565b6117f8565b6001905092915050565b6000610d42610d3b6116f0565b84846119c3565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610daa6116f0565b73ffffffffffffffffffffffffffffffffffffffff16610dc8610ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e159061335e565b60405180910390fd5b610e4e6064610e408369d3c21bcecceda1000000611f7490919063ffffffff16565b611f2a90919063ffffffff16565b600b8190555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ee66116f0565b73ffffffffffffffffffffffffffffffffffffffff16610f04610ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f519061335e565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde906132de565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156110bb57611077600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b9565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111816116f0565b73ffffffffffffffffffffffffffffffffffffffff1661119f610ba6565b73ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec9061335e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c9061327e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61132a6116f0565b73ffffffffffffffffffffffffffffffffffffffff16611348610ba6565b73ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113959061335e565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661142a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611421906132de565b60405180910390fd5b60005b6005805490508110156116ec578173ffffffffffffffffffffffffffffffffffffffff166005828154811061148b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116d957600560016005805490506114e69190613531565b8154811061151d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611582577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061169f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556116ec565b80806116e49061361f565b91505061142d565b5050565b600033905090565b600080600080600080600061170c88611fef565b91509150600061171a611eff565b9050600080600061172c8c8686612041565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600061179283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e9b565b905092915050565b60008082846117a99190613450565b9050838110156117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906132be565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185f906133be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf9061329e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119b691906133fe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a9061339e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061323e565b60405180910390fd5b60008111611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add9061337e565b60405180910390fd5b611aee610ba6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5c5750611b2c610ba6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ba757600b54811115611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061331e565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c4a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c5f57611c5a83838361209f565b611e96565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d025750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d1757611d128383836122f2565b611e95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dbb5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd057611dcb838383612545565b611e94565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e725750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e8757611e82838383612703565b611e93565b611e92838383612545565b5b5b5b5b505050565b6000838311158290611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda919061321c565b60405180910390fd5b5060008385611ef29190613531565b9050809150509392505050565b6000806000611f0c6129eb565b91509150611f238183611f2a90919063ffffffff16565b9250505090565b6000611f6c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d56565b905092915050565b600080831415611f875760009050611fe9565b60008284611f9591906134d7565b9050828482611fa491906134a6565b14611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb9061333e565b60405180910390fd5b809150505b92915050565b600080600061201b600261200d606487611f2a90919063ffffffff16565b611f7490919063ffffffff16565b90506000612032828661175090919063ffffffff16565b90508082935093505050915091565b60008060008061205a8588611f7490919063ffffffff16565b905060006120718688611f7490919063ffffffff16565b90506000612088828461175090919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006120b0866116f8565b9450945094509450945061210c86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121a185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122838382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122e091906133fe565b60405180910390a35050505050505050565b6000806000806000612303866116f8565b9450945094509450945061235f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f482600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248984600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d68382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253391906133fe565b60405180910390a35050505050505050565b6000806000806000612556866116f8565b945094509450945094506125b285600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126948382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126f191906133fe565b60405180910390a35050505050505050565b6000806000806000612714866116f8565b9450945094509450945061277086600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292f84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297c8382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129d991906133fe565b60405180910390a35050505050505050565b60008060006006549050600069d3c21bcecceda1000000905060005b600580549050811015612d0957826001600060058481548110612a53577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b675750816002600060058481548110612aff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b865760065469d3c21bcecceda100000094509450505050612d52565b612c3c6001600060058481548110612bc7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461175090919063ffffffff16565b9250612cf46002600060058481548110612c7f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361175090919063ffffffff16565b91508080612d019061361f565b915050612a07565b50612d2969d3c21bcecceda1000000600654611f2a90919063ffffffff16565b821015612d495760065469d3c21bcecceda1000000935093505050612d52565b81819350935050505b9091565b60008083118290612d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d94919061321c565b60405180910390fd5b5060008385612dac91906134a6565b9050809150509392505050565b612dce8260065461175090919063ffffffff16565b600681905550612de98160075461179a90919063ffffffff16565b6007819055505050565b600081359050612e0281613ac0565b92915050565b600081359050612e1781613ad7565b92915050565b600081359050612e2c81613aee565b92915050565b600060208284031215612e4457600080fd5b6000612e5284828501612df3565b91505092915050565b60008060408385031215612e6e57600080fd5b6000612e7c85828601612df3565b9250506020612e8d85828601612df3565b9150509250929050565b600080600060608486031215612eac57600080fd5b6000612eba86828701612df3565b9350506020612ecb86828701612df3565b9250506040612edc86828701612e1d565b9150509250925092565b60008060408385031215612ef957600080fd5b6000612f0785828601612df3565b9250506020612f1885828601612e1d565b9150509250929050565b600060208284031215612f3457600080fd5b6000612f4284828501612e1d565b91505092915050565b60008060408385031215612f5e57600080fd5b6000612f6c85828601612e1d565b9250506020612f7d85828601612e08565b9150509250929050565b612f9081613565565b82525050565b612f9f81613577565b82525050565b6000612fb082613434565b612fba818561343f565b9350612fca8185602086016135ba565b612fd3816136f5565b840191505092915050565b6000612feb60238361343f565b9150612ff682613706565b604082019050919050565b600061300e602a8361343f565b915061301982613755565b604082019050919050565b600061303160268361343f565b915061303c826137a4565b604082019050919050565b600061305460228361343f565b915061305f826137f3565b604082019050919050565b6000613077601b8361343f565b915061308282613842565b602082019050919050565b600061309a601b8361343f565b91506130a58261386b565b602082019050919050565b60006130bd601f8361343f565b91506130c882613894565b602082019050919050565b60006130e060288361343f565b91506130eb826138bd565b604082019050919050565b600061310360218361343f565b915061310e8261390c565b604082019050919050565b600061312660208361343f565b91506131318261395b565b602082019050919050565b600061314960298361343f565b915061315482613984565b604082019050919050565b600061316c60258361343f565b9150613177826139d3565b604082019050919050565b600061318f60248361343f565b915061319a82613a22565b604082019050919050565b60006131b2602c8361343f565b91506131bd82613a71565b604082019050919050565b6131d1816135a3565b82525050565b6131e0816135ad565b82525050565b60006020820190506131fb6000830184612f87565b92915050565b60006020820190506132166000830184612f96565b92915050565b600060208201905081810360008301526132368184612fa5565b905092915050565b6000602082019050818103600083015261325781612fde565b9050919050565b6000602082019050818103600083015261327781613001565b9050919050565b6000602082019050818103600083015261329781613024565b9050919050565b600060208201905081810360008301526132b781613047565b9050919050565b600060208201905081810360008301526132d78161306a565b9050919050565b600060208201905081810360008301526132f78161308d565b9050919050565b60006020820190508181036000830152613317816130b0565b9050919050565b60006020820190508181036000830152613337816130d3565b9050919050565b60006020820190508181036000830152613357816130f6565b9050919050565b6000602082019050818103600083015261337781613119565b9050919050565b600060208201905081810360008301526133978161313c565b9050919050565b600060208201905081810360008301526133b78161315f565b9050919050565b600060208201905081810360008301526133d781613182565b9050919050565b600060208201905081810360008301526133f7816131a5565b9050919050565b600060208201905061341360008301846131c8565b92915050565b600060208201905061342e60008301846131d7565b92915050565b600081519050919050565b600082825260208201905092915050565b600061345b826135a3565b9150613466836135a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561349b5761349a613668565b5b828201905092915050565b60006134b1826135a3565b91506134bc836135a3565b9250826134cc576134cb613697565b5b828204905092915050565b60006134e2826135a3565b91506134ed836135a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561352657613525613668565b5b828202905092915050565b600061353c826135a3565b9150613547836135a3565b92508282101561355a57613559613668565b5b828203905092915050565b600061357082613583565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156135d85780820151818401526020810190506135bd565b838111156135e7576000848401525b50505050565b6000600282049050600182168061360557607f821691505b60208210811415613619576136186136c6565b5b50919050565b600061362a826135a3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365d5761365c613668565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b613ac981613565565b8114613ad457600080fd5b50565b613ae081613577565b8114613aeb57600080fd5b50565b613af7816135a3565b8114613b0257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205064ab830999c911f3d71054464cea622cedcb6923cca2f359dcdcb85a58a48764736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cba0e9961161007c578063cba0e996146103ca578063d543dbeb146103fa578063dd62ed3e14610416578063f2cc0c1814610446578063f2fde38b14610462578063f84354f11461047e5761014d565b8063715018a6146103065780637d1db4a5146103105780638da5cb5b1461032e57806395d89b411461034c578063a457c2d71461036a578063a9059cbb1461039a5761014d565b806323b872dd1161011557806323b872dd146101f85780632d83811914610228578063313ce5671461025857806339509351146102765780634549b039146102a657806370a08231146102d65761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c57806313114a9d146101bc57806318160ddd146101da575b600080fd5b61016c60048036038101906101679190612f22565b61049a565b005b610176610614565b604051610183919061321c565b60405180910390f35b6101a660048036038101906101a19190612ee6565b6106a6565b6040516101b39190613201565b60405180910390f35b6101c46106c4565b6040516101d191906133fe565b60405180910390f35b6101e26106ce565b6040516101ef91906133fe565b60405180910390f35b610212600480360381019061020d9190612e97565b6106e0565b60405161021f9190613201565b60405180910390f35b610242600480360381019061023d9190612f22565b6107b9565b60405161024f91906133fe565b60405180910390f35b610260610827565b60405161026d9190613419565b60405180910390f35b610290600480360381019061028b9190612ee6565b61083e565b60405161029d9190613201565b60405180910390f35b6102c060048036038101906102bb9190612f4b565b6108f1565b6040516102cd91906133fe565b60405180910390f35b6102f060048036038101906102eb9190612e32565b61097b565b6040516102fd91906133fe565b60405180910390f35b61030e610a66565b005b610318610ba0565b60405161032591906133fe565b60405180910390f35b610336610ba6565b60405161034391906131e6565b60405180910390f35b610354610bcf565b604051610361919061321c565b60405180910390f35b610384600480360381019061037f9190612ee6565b610c61565b6040516103919190613201565b60405180910390f35b6103b460048036038101906103af9190612ee6565b610d2e565b6040516103c19190613201565b60405180910390f35b6103e460048036038101906103df9190612e32565b610d4c565b6040516103f19190613201565b60405180910390f35b610414600480360381019061040f9190612f22565b610da2565b005b610430600480360381019061042b9190612e5b565b610e57565b60405161043d91906133fe565b60405180910390f35b610460600480360381019061045b9190612e32565b610ede565b005b61047c60048036038101906104779190612e32565b611179565b005b61049860048036038101906104939190612e32565b611322565b005b60006104a46116f0565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a906133de565b60405180910390fd5b600061053e836116f8565b50505050905061059681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105ee8160065461175090919063ffffffff16565b6006819055506106098360075461179a90919063ffffffff16565b600781905550505050565b606060088054610623906135ed565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906135ed565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106ba6106b36116f0565b84846117f8565b6001905092915050565b6000600754905090565b600069d3c21bcecceda1000000905090565b60006106ed8484846119c3565b6107ae846106f96116f0565b6107a985604051806060016040528060288152602001613b0660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075f6116f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9b9092919063ffffffff16565b6117f8565b600190509392505050565b6000600654821115610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f79061325e565b60405180910390fd5b600061080a611eff565b905061081f8184611f2a90919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b60006108e761084b6116f0565b846108e2856003600061085c6116f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b6117f8565b6001905092915050565b600069d3c21bcecceda1000000831115610940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610937906132fe565b60405180910390fd5b8161095f576000610950846116f8565b50505050905080915050610975565b600061096a846116f8565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a1657600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610a61565b610a5e600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b9565b90505b919050565b610a6e6116f0565b73ffffffffffffffffffffffffffffffffffffffff16610a8c610ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad99061335e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610bde906135ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0a906135ed565b8015610c575780601f10610c2c57610100808354040283529160200191610c57565b820191906000526020600020905b815481529060010190602001808311610c3a57829003601f168201915b5050505050905090565b6000610d24610c6e6116f0565b84610d1f85604051806060016040528060258152602001613b2e6025913960036000610c986116f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9b9092919063ffffffff16565b6117f8565b6001905092915050565b6000610d42610d3b6116f0565b84846119c3565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610daa6116f0565b73ffffffffffffffffffffffffffffffffffffffff16610dc8610ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e159061335e565b60405180910390fd5b610e4e6064610e408369d3c21bcecceda1000000611f7490919063ffffffff16565b611f2a90919063ffffffff16565b600b8190555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ee66116f0565b73ffffffffffffffffffffffffffffffffffffffff16610f04610ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f519061335e565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde906132de565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156110bb57611077600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b9565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111816116f0565b73ffffffffffffffffffffffffffffffffffffffff1661119f610ba6565b73ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec9061335e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c9061327e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61132a6116f0565b73ffffffffffffffffffffffffffffffffffffffff16611348610ba6565b73ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113959061335e565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661142a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611421906132de565b60405180910390fd5b60005b6005805490508110156116ec578173ffffffffffffffffffffffffffffffffffffffff166005828154811061148b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116d957600560016005805490506114e69190613531565b8154811061151d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611582577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061169f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556116ec565b80806116e49061361f565b91505061142d565b5050565b600033905090565b600080600080600080600061170c88611fef565b91509150600061171a611eff565b9050600080600061172c8c8686612041565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600061179283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e9b565b905092915050565b60008082846117a99190613450565b9050838110156117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906132be565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185f906133be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf9061329e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119b691906133fe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a9061339e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061323e565b60405180910390fd5b60008111611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add9061337e565b60405180910390fd5b611aee610ba6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5c5750611b2c610ba6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ba757600b54811115611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061331e565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c4a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c5f57611c5a83838361209f565b611e96565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d025750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d1757611d128383836122f2565b611e95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dbb5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd057611dcb838383612545565b611e94565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e725750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e8757611e82838383612703565b611e93565b611e92838383612545565b5b5b5b5b505050565b6000838311158290611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda919061321c565b60405180910390fd5b5060008385611ef29190613531565b9050809150509392505050565b6000806000611f0c6129eb565b91509150611f238183611f2a90919063ffffffff16565b9250505090565b6000611f6c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d56565b905092915050565b600080831415611f875760009050611fe9565b60008284611f9591906134d7565b9050828482611fa491906134a6565b14611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb9061333e565b60405180910390fd5b809150505b92915050565b600080600061201b600261200d606487611f2a90919063ffffffff16565b611f7490919063ffffffff16565b90506000612032828661175090919063ffffffff16565b90508082935093505050915091565b60008060008061205a8588611f7490919063ffffffff16565b905060006120718688611f7490919063ffffffff16565b90506000612088828461175090919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006120b0866116f8565b9450945094509450945061210c86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121a185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122838382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122e091906133fe565b60405180910390a35050505050505050565b6000806000806000612303866116f8565b9450945094509450945061235f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f482600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248984600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d68382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253391906133fe565b60405180910390a35050505050505050565b6000806000806000612556866116f8565b945094509450945094506125b285600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126948382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126f191906133fe565b60405180910390a35050505050505050565b6000806000806000612714866116f8565b9450945094509450945061277086600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175090919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292f84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179a90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297c8382612db9565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129d991906133fe565b60405180910390a35050505050505050565b60008060006006549050600069d3c21bcecceda1000000905060005b600580549050811015612d0957826001600060058481548110612a53577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b675750816002600060058481548110612aff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b865760065469d3c21bcecceda100000094509450505050612d52565b612c3c6001600060058481548110612bc7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461175090919063ffffffff16565b9250612cf46002600060058481548110612c7f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361175090919063ffffffff16565b91508080612d019061361f565b915050612a07565b50612d2969d3c21bcecceda1000000600654611f2a90919063ffffffff16565b821015612d495760065469d3c21bcecceda1000000935093505050612d52565b81819350935050505b9091565b60008083118290612d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d94919061321c565b60405180910390fd5b5060008385612dac91906134a6565b9050809150509392505050565b612dce8260065461175090919063ffffffff16565b600681905550612de98160075461179a90919063ffffffff16565b6007819055505050565b600081359050612e0281613ac0565b92915050565b600081359050612e1781613ad7565b92915050565b600081359050612e2c81613aee565b92915050565b600060208284031215612e4457600080fd5b6000612e5284828501612df3565b91505092915050565b60008060408385031215612e6e57600080fd5b6000612e7c85828601612df3565b9250506020612e8d85828601612df3565b9150509250929050565b600080600060608486031215612eac57600080fd5b6000612eba86828701612df3565b9350506020612ecb86828701612df3565b9250506040612edc86828701612e1d565b9150509250925092565b60008060408385031215612ef957600080fd5b6000612f0785828601612df3565b9250506020612f1885828601612e1d565b9150509250929050565b600060208284031215612f3457600080fd5b6000612f4284828501612e1d565b91505092915050565b60008060408385031215612f5e57600080fd5b6000612f6c85828601612e1d565b9250506020612f7d85828601612e08565b9150509250929050565b612f9081613565565b82525050565b612f9f81613577565b82525050565b6000612fb082613434565b612fba818561343f565b9350612fca8185602086016135ba565b612fd3816136f5565b840191505092915050565b6000612feb60238361343f565b9150612ff682613706565b604082019050919050565b600061300e602a8361343f565b915061301982613755565b604082019050919050565b600061303160268361343f565b915061303c826137a4565b604082019050919050565b600061305460228361343f565b915061305f826137f3565b604082019050919050565b6000613077601b8361343f565b915061308282613842565b602082019050919050565b600061309a601b8361343f565b91506130a58261386b565b602082019050919050565b60006130bd601f8361343f565b91506130c882613894565b602082019050919050565b60006130e060288361343f565b91506130eb826138bd565b604082019050919050565b600061310360218361343f565b915061310e8261390c565b604082019050919050565b600061312660208361343f565b91506131318261395b565b602082019050919050565b600061314960298361343f565b915061315482613984565b604082019050919050565b600061316c60258361343f565b9150613177826139d3565b604082019050919050565b600061318f60248361343f565b915061319a82613a22565b604082019050919050565b60006131b2602c8361343f565b91506131bd82613a71565b604082019050919050565b6131d1816135a3565b82525050565b6131e0816135ad565b82525050565b60006020820190506131fb6000830184612f87565b92915050565b60006020820190506132166000830184612f96565b92915050565b600060208201905081810360008301526132368184612fa5565b905092915050565b6000602082019050818103600083015261325781612fde565b9050919050565b6000602082019050818103600083015261327781613001565b9050919050565b6000602082019050818103600083015261329781613024565b9050919050565b600060208201905081810360008301526132b781613047565b9050919050565b600060208201905081810360008301526132d78161306a565b9050919050565b600060208201905081810360008301526132f78161308d565b9050919050565b60006020820190508181036000830152613317816130b0565b9050919050565b60006020820190508181036000830152613337816130d3565b9050919050565b60006020820190508181036000830152613357816130f6565b9050919050565b6000602082019050818103600083015261337781613119565b9050919050565b600060208201905081810360008301526133978161313c565b9050919050565b600060208201905081810360008301526133b78161315f565b9050919050565b600060208201905081810360008301526133d781613182565b9050919050565b600060208201905081810360008301526133f7816131a5565b9050919050565b600060208201905061341360008301846131c8565b92915050565b600060208201905061342e60008301846131d7565b92915050565b600081519050919050565b600082825260208201905092915050565b600061345b826135a3565b9150613466836135a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561349b5761349a613668565b5b828201905092915050565b60006134b1826135a3565b91506134bc836135a3565b9250826134cc576134cb613697565b5b828204905092915050565b60006134e2826135a3565b91506134ed836135a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561352657613525613668565b5b828202905092915050565b600061353c826135a3565b9150613547836135a3565b92508282101561355a57613559613668565b5b828203905092915050565b600061357082613583565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156135d85780820151818401526020810190506135bd565b838111156135e7576000848401525b50505050565b6000600282049050600182168061360557607f821691505b60208210811415613619576136186136c6565b5b50919050565b600061362a826135a3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365d5761365c613668565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b613ac981613565565b8114613ad457600080fd5b50565b613ae081613577565b8114613aeb57600080fd5b50565b613af7816135a3565b8114613b0257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205064ab830999c911f3d71054464cea622cedcb6923cca2f359dcdcb85a58a48764736f6c63430008040033
Deployed Bytecode Sourcemap
18202:10554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21406:376;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19114:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20026:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21137:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19391:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20195:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22232:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19300:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20516:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21790:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19494:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17646:148;;;:::i;:::-;;18917:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16995:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19205;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20742:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19700:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21019:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21236:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19875:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22493:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17949:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22833:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21406:376;21458:14;21475:12;:10;:12::i;:::-;21458:29;;21507:11;:19;21519:6;21507:19;;;;;;;;;;;;;;;;;;;;;;;;;21506:20;21498:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;21587:15;21610:19;21621:7;21610:10;:19::i;:::-;21586:43;;;;;;21658:28;21678:7;21658;:15;21666:6;21658:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21640:7;:15;21648:6;21640:15;;;;;;;;;;;;;;;:46;;;;21707:20;21719:7;21707;;:11;;:20;;;;:::i;:::-;21697:7;:30;;;;21751:23;21766:7;21751:10;;:14;;:23;;;;:::i;:::-;21738:10;:36;;;;21406:376;;;:::o;19114:83::-;19151:13;19184:5;19177:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19114:83;:::o;20026:161::-;20101:4;20118:39;20127:12;:10;:12::i;:::-;20141:7;20150:6;20118:8;:39::i;:::-;20175:4;20168:11;;20026:161;;;;:::o;21137:87::-;21179:7;21206:10;;21199:17;;21137:87;:::o;19391:95::-;19444:7;18677:22;19464:14;;19391:95;:::o;20195:313::-;20293:4;20310:36;20320:6;20328:9;20339:6;20310:9;:36::i;:::-;20357:121;20366:6;20374:12;:10;:12::i;:::-;20388:89;20426:6;20388:89;;;;;;;;;;;;;;;;;:11;:19;20400:6;20388:19;;;;;;;;;;;;;;;:33;20408:12;:10;:12::i;:::-;20388:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20357:8;:121::i;:::-;20496:4;20489:11;;20195:313;;;;;:::o;22232:253::-;22298:7;22337;;22326;:18;;22318:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22402:19;22425:10;:8;:10::i;:::-;22402:33;;22453:24;22465:11;22453:7;:11;;:24;;;;:::i;:::-;22446:31;;;22232:253;;;:::o;19300:83::-;19341:5;19366:9;;;;;;;;;;;19359:16;;19300:83;:::o;20516:218::-;20604:4;20621:83;20630:12;:10;:12::i;:::-;20644:7;20653:50;20692:10;20653:11;:25;20665:12;:10;:12::i;:::-;20653:25;;;;;;;;;;;;;;;:34;20679:7;20653:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20621:8;:83::i;:::-;20722:4;20715:11;;20516:218;;;;:::o;21790:434::-;21880:7;18677:22;21908:7;:18;;21900:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21978:17;21973:244;;22013:15;22036:19;22047:7;22036:10;:19::i;:::-;22012:43;;;;;;22077:7;22070:14;;;;;21973:244;22119:23;22149:19;22160:7;22149:10;:19::i;:::-;22117:51;;;;;;22190:15;22183:22;;;21790:434;;;;;:::o;19494:198::-;19560:7;19584:11;:20;19596:7;19584:20;;;;;;;;;;;;;;;;;;;;;;;;;19580:49;;;19613:7;:16;19621:7;19613:16;;;;;;;;;;;;;;;;19606:23;;;;19580:49;19647:37;19667:7;:16;19675:7;19667:16;;;;;;;;;;;;;;;;19647:19;:37::i;:::-;19640:44;;19494:198;;;;:::o;17646:148::-;17226:12;:10;:12::i;:::-;17215:23;;:7;:5;:7::i;:::-;:23;;;17207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17753:1:::1;17716:40;;17737:6;::::0;::::1;;;;;;;;17716:40;;;;;;;;;;;;17784:1;17767:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;17646:148::o:0;18917:49::-;;;;:::o;16995:87::-;17041:7;17068:6;;;;;;;;;;;17061:13;;16995:87;:::o;19205:::-;19244:13;19277:7;19270:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19205:87;:::o;20742:269::-;20835:4;20852:129;20861:12;:10;:12::i;:::-;20875:7;20884:96;20923:15;20884:96;;;;;;;;;;;;;;;;;:11;:25;20896:12;:10;:12::i;:::-;20884:25;;;;;;;;;;;;;;;:34;20910:7;20884:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20852:8;:129::i;:::-;20999:4;20992:11;;20742:269;;;;:::o;19700:167::-;19778:4;19795:42;19805:12;:10;:12::i;:::-;19819:9;19830:6;19795:9;:42::i;:::-;19855:4;19848:11;;19700:167;;;;:::o;21019:110::-;21077:4;21101:11;:20;21113:7;21101:20;;;;;;;;;;;;;;;;;;;;;;;;;21094:27;;21019:110;;;:::o;21236:162::-;17226:12;:10;:12::i;:::-;17215:23;;:7;:5;:7::i;:::-;:23;;;17207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21330:60:::1;21374:5;21330:25;21342:12;18677:22;21330:11;;:25;;;;:::i;:::-;:29;;:60;;;;:::i;:::-;21315:12;:75;;;;21236:162:::0;:::o;19875:143::-;19956:7;19983:11;:18;19995:5;19983:18;;;;;;;;;;;;;;;:27;20002:7;19983:27;;;;;;;;;;;;;;;;19976:34;;19875:143;;;;:::o;22493:332::-;17226:12;:10;:12::i;:::-;17215:23;;:7;:5;:7::i;:::-;:23;;;17207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22575:11:::1;:20;22587:7;22575:20;;;;;;;;;;;;;;;;;;;;;;;;;22574:21;22566:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;22660:1;22641:7;:16;22649:7;22641:16;;;;;;;;;;;;;;;;:20;22638:108;;;22697:37;22717:7;:16;22725:7;22717:16;;;;;;;;;;;;;;;;22697:19;:37::i;:::-;22678:7;:16;22686:7;22678:16;;;;;;;;;;;;;;;:56;;;;22638:108;22779:4;22756:11;:20;22768:7;22756:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22794:9;22809:7;22794:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22493:332:::0;:::o;17949:244::-;17226:12;:10;:12::i;:::-;17215:23;;:7;:5;:7::i;:::-;:23;;;17207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18058:1:::1;18038:22;;:8;:22;;;;18030:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18148:8;18119:38;;18140:6;::::0;::::1;;;;;;;;18119:38;;;;;;;;;;;;18177:8;18168:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;17949:244:::0;:::o;22833:478::-;17226:12;:10;:12::i;:::-;17215:23;;:7;:5;:7::i;:::-;:23;;;17207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22914:11:::1;:20;22926:7;22914:20;;;;;;;;;;;;;;;;;;;;;;;;;22906:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22982:9;22977:327;23001:9;:16;;;;22997:1;:20;22977:327;;;23059:7;23043:23;;:9;23053:1;23043:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;23039:254;;;23102:9;23131:1;23112:9;:16;;;;:20;;;;:::i;:::-;23102:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23087:9;23097:1;23087:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23171:1;23152:7;:16;23160:7;23152:16;;;;;;;;;;;;;;;:20;;;;23214:5;23191:11;:20;23203:7;23191:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23238:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23272:5;;23039:254;23019:3;;;;;:::i;:::-;;;;22977:327;;;;22833:478:::0;:::o;762:98::-;815:7;842:10;835:17;;762:98;:::o;27022:411::-;27081:7;27090;27099;27108;27117;27138:23;27163:12;27179:20;27191:7;27179:11;:20::i;:::-;27137:62;;;;27210:19;27233:10;:8;:10::i;:::-;27210:33;;27255:15;27272:23;27297:12;27313:39;27325:7;27334:4;27340:11;27313;:39::i;:::-;27254:98;;;;;;27371:7;27380:15;27397:4;27403:15;27420:4;27363:62;;;;;;;;;;;;;;;;27022:411;;;;;;;:::o;4554:136::-;4612:7;4639:43;4643:1;4646;4639:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4632:50;;4554:136;;;;:::o;4090:181::-;4148:7;4168:9;4184:1;4180;:5;;;;:::i;:::-;4168:17;;4209:1;4204;:6;;4196:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4262:1;4255:8;;;4090:181;;;;:::o;23319:337::-;23429:1;23412:19;;:5;:19;;;;23404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23510:1;23491:21;;:7;:21;;;;23483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23594:6;23564:11;:18;23576:5;23564:18;;;;;;;;;;;;;;;:27;23583:7;23564:27;;;;;;;;;;;;;;;:36;;;;23632:7;23616:32;;23625:5;23616:32;;;23641:6;23616:32;;;;;;:::i;:::-;;;;;;;;23319:337;;;:::o;23664:1088::-;23779:1;23761:20;;:6;:20;;;;23753:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23863:1;23842:23;;:9;:23;;;;23834:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;23933:1;23924:6;:10;23916:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24004:7;:5;:7::i;:::-;23994:17;;:6;:17;;;;:41;;;;;24028:7;:5;:7::i;:::-;24015:20;;:9;:20;;;;23994:41;23991:132;;;24066:12;;24056:6;:22;;24048:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;23991:132;24152:11;:19;24164:6;24152:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;24176:11;:22;24188:9;24176:22;;;;;;;;;;;;;;;;;;;;;;;;;24175:23;24152:46;24148:597;;;24215:48;24237:6;24245:9;24256:6;24215:21;:48::i;:::-;24148:597;;;24286:11;:19;24298:6;24286:19;;;;;;;;;;;;;;;;;;;;;;;;;24285:20;:46;;;;;24309:11;:22;24321:9;24309:22;;;;;;;;;;;;;;;;;;;;;;;;;24285:46;24281:464;;;24348:46;24368:6;24376:9;24387:6;24348:19;:46::i;:::-;24281:464;;;24417:11;:19;24429:6;24417:19;;;;;;;;;;;;;;;;;;;;;;;;;24416:20;:47;;;;;24441:11;:22;24453:9;24441:22;;;;;;;;;;;;;;;;;;;;;;;;;24440:23;24416:47;24412:333;;;24480:44;24498:6;24506:9;24517:6;24480:17;:44::i;:::-;24412:333;;;24546:11;:19;24558:6;24546:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;24569:11;:22;24581:9;24569:22;;;;;;;;;;;;;;;;;;;;;;;;;24546:45;24542:203;;;24608:48;24630:6;24638:9;24649:6;24608:21;:48::i;:::-;24542:203;;;24689:44;24707:6;24715:9;24726:6;24689:17;:44::i;:::-;24542:203;24412:333;24281:464;24148:597;23664:1088;;;:::o;4993:192::-;5079:7;5112:1;5107;:6;;5115:12;5099:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5139:9;5155:1;5151;:5;;;;:::i;:::-;5139:17;;5176:1;5169:8;;;4993:192;;;;;:::o;28021:163::-;28062:7;28083:15;28100;28119:19;:17;:19::i;:::-;28082:56;;;;28156:20;28168:7;28156;:11;;:20;;;;:::i;:::-;28149:27;;;;28021:163;:::o;6391:132::-;6449:7;6476:39;6480:1;6483;6476:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6469:46;;6391:132;;;;:::o;5444:471::-;5502:7;5752:1;5747;:6;5743:47;;;5777:1;5770:8;;;;5743:47;5802:9;5818:1;5814;:5;;;;:::i;:::-;5802:17;;5847:1;5842;5838;:5;;;;:::i;:::-;:10;5830:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5906:1;5899:8;;;5444:471;;;;;:::o;27441:230::-;27501:7;27510;27530:12;27545:23;27566:1;27545:16;27557:3;27545:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;27530:38;;27579:23;27605:17;27617:4;27605:7;:11;;:17;;;;:::i;:::-;27579:43;;27641:15;27658:4;27633:30;;;;;;27441:230;;;:::o;27679:334::-;27774:7;27783;27792;27812:15;27830:24;27842:11;27830:7;:11;;:24;;;;:::i;:::-;27812:42;;27865:12;27880:21;27889:11;27880:4;:8;;:21;;;;:::i;:::-;27865:36;;27912:23;27938:17;27950:4;27938:7;:11;;:17;;;;:::i;:::-;27912:43;;27974:7;27983:15;28000:4;27966:39;;;;;;;;;27679:334;;;;;;;:::o;25757:509::-;25860:15;25877:23;25902:12;25916:23;25941:12;25957:19;25968:7;25957:10;:19::i;:::-;25859:117;;;;;;;;;;26005:28;26025:7;26005;:15;26013:6;26005:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25987:7;:15;25995:6;25987:15;;;;;;;;;;;;;;;:46;;;;26062:28;26082:7;26062;:15;26070:6;26062:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26044:7;:15;26052:6;26044:15;;;;;;;;;;;;;;;:46;;;;26122:39;26145:15;26122:7;:18;26130:9;26122:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26101:7;:18;26109:9;26101:18;;;;;;;;;;;;;;;:60;;;;26175:23;26187:4;26193;26175:11;:23::i;:::-;26231:9;26214:44;;26223:6;26214:44;;;26242:15;26214:44;;;;;;:::i;:::-;;;;;;;;25757:509;;;;;;;;:::o;25220:529::-;25321:15;25338:23;25363:12;25377:23;25402:12;25418:19;25429:7;25418:10;:19::i;:::-;25320:117;;;;;;;;;;25466:28;25486:7;25466;:15;25474:6;25466:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25448:7;:15;25456:6;25448:15;;;;;;;;;;;;;;;:46;;;;25526:39;25549:15;25526:7;:18;25534:9;25526:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25505:7;:18;25513:9;25505:18;;;;;;;;;;;;;;;:60;;;;25597:39;25620:15;25597:7;:18;25605:9;25597:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25576:7;:18;25584:9;25576:18;;;;;;;;;;;;;;;:60;;;;25658:23;25670:4;25676;25658:11;:23::i;:::-;25714:9;25697:44;;25706:6;25697:44;;;25725:15;25697:44;;;;;;:::i;:::-;;;;;;;;25220:529;;;;;;;;:::o;24760:452::-;24859:15;24876:23;24901:12;24915:23;24940:12;24956:19;24967:7;24956:10;:19::i;:::-;24858:117;;;;;;;;;;25004:28;25024:7;25004;:15;25012:6;25004:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24986:7;:15;24994:6;24986:15;;;;;;;;;;;;;;;:46;;;;25064:39;25087:15;25064:7;:18;25072:9;25064:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25043:7;:18;25051:9;25043:18;;;;;;;;;;;;;;;:60;;;;25121:23;25133:4;25139;25121:11;:23::i;:::-;25177:9;25160:44;;25169:6;25160:44;;;25188:15;25160:44;;;;;;:::i;:::-;;;;;;;;24760:452;;;;;;;;:::o;26274:585::-;26377:15;26394:23;26419:12;26433:23;26458:12;26474:19;26485:7;26474:10;:19::i;:::-;26376:117;;;;;;;;;;26522:28;26542:7;26522;:15;26530:6;26522:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26504:7;:15;26512:6;26504:15;;;;;;;;;;;;;;;:46;;;;26579:28;26599:7;26579;:15;26587:6;26579:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26561:7;:15;26569:6;26561:15;;;;;;;;;;;;;;;:46;;;;26639:39;26662:15;26639:7;:18;26647:9;26639:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26618:7;:18;26626:9;26618:18;;;;;;;;;;;;;;;:60;;;;26710:39;26733:15;26710:7;:18;26718:9;26710:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26689:7;:18;26697:9;26689:18;;;;;;;;;;;;;;;:60;;;;26768:23;26780:4;26786;26768:11;:23::i;:::-;26824:9;26807:44;;26816:6;26807:44;;;26835:15;26807:44;;;;;;:::i;:::-;;;;;;;;26274:585;;;;;;;;:::o;28192:561::-;28242:7;28251;28271:15;28289:7;;28271:25;;28307:15;18677:22;28307:25;;28354:9;28349:289;28373:9;:16;;;;28369:1;:20;28349:289;;;28439:7;28415;:21;28423:9;28433:1;28423:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28415:21;;;;;;;;;;;;;;;;:31;:66;;;;28474:7;28450;:21;28458:9;28468:1;28458:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28450:21;;;;;;;;;;;;;;;;:31;28415:66;28411:97;;;28491:7;;18677:22;28483:25;;;;;;;;;28411:97;28533:34;28545:7;:21;28553:9;28563:1;28553:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28545:21;;;;;;;;;;;;;;;;28533:7;:11;;:34;;;;:::i;:::-;28523:44;;28592:34;28604:7;:21;28612:9;28622:1;28612:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28604:21;;;;;;;;;;;;;;;;28592:7;:11;;:34;;;;:::i;:::-;28582:44;;28391:3;;;;;:::i;:::-;;;;28349:289;;;;28662:20;18677:22;28662:7;;:11;;:20;;;;:::i;:::-;28652:7;:30;28648:61;;;28692:7;;18677:22;28684:25;;;;;;;;28648:61;28728:7;28737;28720:25;;;;;;28192:561;;;:::o;7019:278::-;7105:7;7137:1;7133;:5;7140:12;7125:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7164:9;7180:1;7176;:5;;;;:::i;:::-;7164:17;;7288:1;7281:8;;;7019:278;;;;;:::o;26867:147::-;26945:17;26957:4;26945:7;;:11;;:17;;;;:::i;:::-;26935:7;:27;;;;26986:20;27001:4;26986:10;;:14;;:20;;;;:::i;:::-;26973:10;:33;;;;26867:147;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;495:6;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;772:6;780;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;1194:6;1202;1210;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:407::-;1743:6;1751;1800:2;1788:9;1779:7;1775:23;1771:32;1768:2;;;1816:1;1813;1806:12;1768:2;1859:1;1884:53;1929:7;1920:6;1909:9;1905:22;1884:53;:::i;:::-;1874:63;;1830:117;1986:2;2012:53;2057:7;2048:6;2037:9;2033:22;2012:53;:::i;:::-;2002:63;;1957:118;1758:324;;;;;:::o;2088:262::-;2147:6;2196:2;2184:9;2175:7;2171:23;2167:32;2164:2;;;2212:1;2209;2202:12;2164:2;2255:1;2280:53;2325:7;2316:6;2305:9;2301:22;2280:53;:::i;:::-;2270:63;;2226:117;2154:196;;;;:::o;2356:401::-;2421:6;2429;2478:2;2466:9;2457:7;2453:23;2449:32;2446:2;;;2494:1;2491;2484:12;2446:2;2537:1;2562:53;2607:7;2598:6;2587:9;2583:22;2562:53;:::i;:::-;2552:63;;2508:117;2664:2;2690:50;2732:7;2723:6;2712:9;2708:22;2690:50;:::i;:::-;2680:60;;2635:115;2436:321;;;;;:::o;2763:118::-;2850:24;2868:5;2850:24;:::i;:::-;2845:3;2838:37;2828:53;;:::o;2887:109::-;2968:21;2983:5;2968:21;:::i;:::-;2963:3;2956:34;2946:50;;:::o;3002:364::-;3090:3;3118:39;3151:5;3118:39;:::i;:::-;3173:71;3237:6;3232:3;3173:71;:::i;:::-;3166:78;;3253:52;3298:6;3293:3;3286:4;3279:5;3275:16;3253:52;:::i;:::-;3330:29;3352:6;3330:29;:::i;:::-;3325:3;3321:39;3314:46;;3094:272;;;;;:::o;3372:366::-;3514:3;3535:67;3599:2;3594:3;3535:67;:::i;:::-;3528:74;;3611:93;3700:3;3611:93;:::i;:::-;3729:2;3724:3;3720:12;3713:19;;3518:220;;;:::o;3744:366::-;3886:3;3907:67;3971:2;3966:3;3907:67;:::i;:::-;3900:74;;3983:93;4072:3;3983:93;:::i;:::-;4101:2;4096:3;4092:12;4085:19;;3890:220;;;:::o;4116:366::-;4258:3;4279:67;4343:2;4338:3;4279:67;:::i;:::-;4272:74;;4355:93;4444:3;4355:93;:::i;:::-;4473:2;4468:3;4464:12;4457:19;;4262:220;;;:::o;4488:366::-;4630:3;4651:67;4715:2;4710:3;4651:67;:::i;:::-;4644:74;;4727:93;4816:3;4727:93;:::i;:::-;4845:2;4840:3;4836:12;4829:19;;4634:220;;;:::o;4860:366::-;5002:3;5023:67;5087:2;5082:3;5023:67;:::i;:::-;5016:74;;5099:93;5188:3;5099:93;:::i;:::-;5217:2;5212:3;5208:12;5201:19;;5006:220;;;:::o;5232:366::-;5374:3;5395:67;5459:2;5454:3;5395:67;:::i;:::-;5388:74;;5471:93;5560:3;5471:93;:::i;:::-;5589:2;5584:3;5580:12;5573:19;;5378:220;;;:::o;5604:366::-;5746:3;5767:67;5831:2;5826:3;5767:67;:::i;:::-;5760:74;;5843:93;5932:3;5843:93;:::i;:::-;5961:2;5956:3;5952:12;5945:19;;5750:220;;;:::o;5976:366::-;6118:3;6139:67;6203:2;6198:3;6139:67;:::i;:::-;6132:74;;6215:93;6304:3;6215:93;:::i;:::-;6333:2;6328:3;6324:12;6317:19;;6122:220;;;:::o;6348:366::-;6490:3;6511:67;6575:2;6570:3;6511:67;:::i;:::-;6504:74;;6587:93;6676:3;6587:93;:::i;:::-;6705:2;6700:3;6696:12;6689:19;;6494:220;;;:::o;6720:366::-;6862:3;6883:67;6947:2;6942:3;6883:67;:::i;:::-;6876:74;;6959:93;7048:3;6959:93;:::i;:::-;7077:2;7072:3;7068:12;7061:19;;6866:220;;;:::o;7092:366::-;7234:3;7255:67;7319:2;7314:3;7255:67;:::i;:::-;7248:74;;7331:93;7420:3;7331:93;:::i;:::-;7449:2;7444:3;7440:12;7433:19;;7238:220;;;:::o;7464:366::-;7606:3;7627:67;7691:2;7686:3;7627:67;:::i;:::-;7620:74;;7703:93;7792:3;7703:93;:::i;:::-;7821:2;7816:3;7812:12;7805:19;;7610:220;;;:::o;7836:366::-;7978:3;7999:67;8063:2;8058:3;7999:67;:::i;:::-;7992:74;;8075:93;8164:3;8075:93;:::i;:::-;8193:2;8188:3;8184:12;8177:19;;7982:220;;;:::o;8208:366::-;8350:3;8371:67;8435:2;8430:3;8371:67;:::i;:::-;8364:74;;8447:93;8536:3;8447:93;:::i;:::-;8565:2;8560:3;8556:12;8549:19;;8354:220;;;:::o;8580:118::-;8667:24;8685:5;8667:24;:::i;:::-;8662:3;8655:37;8645:53;;:::o;8704:112::-;8787:22;8803:5;8787:22;:::i;:::-;8782:3;8775:35;8765:51;;:::o;8822:222::-;8915:4;8953:2;8942:9;8938:18;8930:26;;8966:71;9034:1;9023:9;9019:17;9010:6;8966:71;:::i;:::-;8920:124;;;;:::o;9050:210::-;9137:4;9175:2;9164:9;9160:18;9152:26;;9188:65;9250:1;9239:9;9235:17;9226:6;9188:65;:::i;:::-;9142:118;;;;:::o;9266:313::-;9379:4;9417:2;9406:9;9402:18;9394:26;;9466:9;9460:4;9456:20;9452:1;9441:9;9437:17;9430:47;9494:78;9567:4;9558:6;9494:78;:::i;:::-;9486:86;;9384:195;;;;:::o;9585:419::-;9751:4;9789:2;9778:9;9774:18;9766:26;;9838:9;9832:4;9828:20;9824:1;9813:9;9809:17;9802:47;9866:131;9992:4;9866:131;:::i;:::-;9858:139;;9756:248;;;:::o;10010:419::-;10176:4;10214:2;10203:9;10199:18;10191:26;;10263:9;10257:4;10253:20;10249:1;10238:9;10234:17;10227:47;10291:131;10417:4;10291:131;:::i;:::-;10283:139;;10181:248;;;:::o;10435:419::-;10601:4;10639:2;10628:9;10624:18;10616:26;;10688:9;10682:4;10678:20;10674:1;10663:9;10659:17;10652:47;10716:131;10842:4;10716:131;:::i;:::-;10708:139;;10606:248;;;:::o;10860:419::-;11026:4;11064:2;11053:9;11049:18;11041:26;;11113:9;11107:4;11103:20;11099:1;11088:9;11084:17;11077:47;11141:131;11267:4;11141:131;:::i;:::-;11133:139;;11031:248;;;:::o;11285:419::-;11451:4;11489:2;11478:9;11474:18;11466:26;;11538:9;11532:4;11528:20;11524:1;11513:9;11509:17;11502:47;11566:131;11692:4;11566:131;:::i;:::-;11558:139;;11456:248;;;:::o;11710:419::-;11876:4;11914:2;11903:9;11899:18;11891:26;;11963:9;11957:4;11953:20;11949:1;11938:9;11934:17;11927:47;11991:131;12117:4;11991:131;:::i;:::-;11983:139;;11881:248;;;:::o;12135:419::-;12301:4;12339:2;12328:9;12324:18;12316:26;;12388:9;12382:4;12378:20;12374:1;12363:9;12359:17;12352:47;12416:131;12542:4;12416:131;:::i;:::-;12408:139;;12306:248;;;:::o;12560:419::-;12726:4;12764:2;12753:9;12749:18;12741:26;;12813:9;12807:4;12803:20;12799:1;12788:9;12784:17;12777:47;12841:131;12967:4;12841:131;:::i;:::-;12833:139;;12731:248;;;:::o;12985:419::-;13151:4;13189:2;13178:9;13174:18;13166:26;;13238:9;13232:4;13228:20;13224:1;13213:9;13209:17;13202:47;13266:131;13392:4;13266:131;:::i;:::-;13258:139;;13156:248;;;:::o;13410:419::-;13576:4;13614:2;13603:9;13599:18;13591:26;;13663:9;13657:4;13653:20;13649:1;13638:9;13634:17;13627:47;13691:131;13817:4;13691:131;:::i;:::-;13683:139;;13581:248;;;:::o;13835:419::-;14001:4;14039:2;14028:9;14024:18;14016:26;;14088:9;14082:4;14078:20;14074:1;14063:9;14059:17;14052:47;14116:131;14242:4;14116:131;:::i;:::-;14108:139;;14006:248;;;:::o;14260:419::-;14426:4;14464:2;14453:9;14449:18;14441:26;;14513:9;14507:4;14503:20;14499:1;14488:9;14484:17;14477:47;14541:131;14667:4;14541:131;:::i;:::-;14533:139;;14431:248;;;:::o;14685:419::-;14851:4;14889:2;14878:9;14874:18;14866:26;;14938:9;14932:4;14928:20;14924:1;14913:9;14909:17;14902:47;14966:131;15092:4;14966:131;:::i;:::-;14958:139;;14856:248;;;:::o;15110:419::-;15276:4;15314:2;15303:9;15299:18;15291:26;;15363:9;15357:4;15353:20;15349:1;15338:9;15334:17;15327:47;15391:131;15517:4;15391:131;:::i;:::-;15383:139;;15281:248;;;:::o;15535:222::-;15628:4;15666:2;15655:9;15651:18;15643:26;;15679:71;15747:1;15736:9;15732:17;15723:6;15679:71;:::i;:::-;15633:124;;;;:::o;15763:214::-;15852:4;15890:2;15879:9;15875:18;15867:26;;15903:67;15967:1;15956:9;15952:17;15943:6;15903:67;:::i;:::-;15857:120;;;;:::o;15983:99::-;16035:6;16069:5;16063:12;16053:22;;16042:40;;;:::o;16088:169::-;16172:11;16206:6;16201:3;16194:19;16246:4;16241:3;16237:14;16222:29;;16184:73;;;;:::o;16263:305::-;16303:3;16322:20;16340:1;16322:20;:::i;:::-;16317:25;;16356:20;16374:1;16356:20;:::i;:::-;16351:25;;16510:1;16442:66;16438:74;16435:1;16432:81;16429:2;;;16516:18;;:::i;:::-;16429:2;16560:1;16557;16553:9;16546:16;;16307:261;;;;:::o;16574:185::-;16614:1;16631:20;16649:1;16631:20;:::i;:::-;16626:25;;16665:20;16683:1;16665:20;:::i;:::-;16660:25;;16704:1;16694:2;;16709:18;;:::i;:::-;16694:2;16751:1;16748;16744:9;16739:14;;16616:143;;;;:::o;16765:348::-;16805:7;16828:20;16846:1;16828:20;:::i;:::-;16823:25;;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;17050:1;16982:66;16978:74;16975:1;16972:81;16967:1;16960:9;16953:17;16949:105;16946:2;;;17057:18;;:::i;:::-;16946:2;17105:1;17102;17098:9;17087:20;;16813:300;;;;:::o;17119:191::-;17159:4;17179:20;17197:1;17179:20;:::i;:::-;17174:25;;17213:20;17231:1;17213:20;:::i;:::-;17208:25;;17252:1;17249;17246:8;17243:2;;;17257:18;;:::i;:::-;17243:2;17302:1;17299;17295:9;17287:17;;17164:146;;;;:::o;17316:96::-;17353:7;17382:24;17400:5;17382:24;:::i;:::-;17371:35;;17361:51;;;:::o;17418:90::-;17452:7;17495:5;17488:13;17481:21;17470:32;;17460:48;;;:::o;17514:126::-;17551:7;17591:42;17584:5;17580:54;17569:65;;17559:81;;;:::o;17646:77::-;17683:7;17712:5;17701:16;;17691:32;;;:::o;17729:86::-;17764:7;17804:4;17797:5;17793:16;17782:27;;17772:43;;;:::o;17821:307::-;17889:1;17899:113;17913:6;17910:1;17907:13;17899:113;;;17998:1;17993:3;17989:11;17983:18;17979:1;17974:3;17970:11;17963:39;17935:2;17932:1;17928:10;17923:15;;17899:113;;;18030:6;18027:1;18024:13;18021:2;;;18110:1;18101:6;18096:3;18092:16;18085:27;18021:2;17870:258;;;;:::o;18134:320::-;18178:6;18215:1;18209:4;18205:12;18195:22;;18262:1;18256:4;18252:12;18283:18;18273:2;;18339:4;18331:6;18327:17;18317:27;;18273:2;18401;18393:6;18390:14;18370:18;18367:38;18364:2;;;18420:18;;:::i;:::-;18364:2;18185:269;;;;:::o;18460:233::-;18499:3;18522:24;18540:5;18522:24;:::i;:::-;18513:33;;18568:66;18561:5;18558:77;18555:2;;;18638:18;;:::i;:::-;18555:2;18685:1;18678:5;18674:13;18667:20;;18503:190;;;:::o;18699:180::-;18747:77;18744:1;18737:88;18844:4;18841:1;18834:15;18868:4;18865:1;18858:15;18885:180;18933:77;18930:1;18923:88;19030:4;19027:1;19020:15;19054:4;19051:1;19044:15;19071:180;19119:77;19116:1;19109:88;19216:4;19213:1;19206:15;19240:4;19237:1;19230:15;19257:102;19298:6;19349:2;19345:7;19340:2;19333:5;19329:14;19325:28;19315:38;;19305:54;;;:::o;19365:222::-;19505:34;19501:1;19493:6;19489:14;19482:58;19574:5;19569:2;19561:6;19557:15;19550:30;19471:116;:::o;19593:229::-;19733:34;19729:1;19721:6;19717:14;19710:58;19802:12;19797:2;19789:6;19785:15;19778:37;19699:123;:::o;19828:225::-;19968:34;19964:1;19956:6;19952:14;19945:58;20037:8;20032:2;20024:6;20020:15;20013:33;19934:119;:::o;20059:221::-;20199:34;20195:1;20187:6;20183:14;20176:58;20268:4;20263:2;20255:6;20251:15;20244:29;20165:115;:::o;20286:177::-;20426:29;20422:1;20414:6;20410:14;20403:53;20392:71;:::o;20469:177::-;20609:29;20605:1;20597:6;20593:14;20586:53;20575:71;:::o;20652:181::-;20792:33;20788:1;20780:6;20776:14;20769:57;20758:75;:::o;20839:227::-;20979:34;20975:1;20967:6;20963:14;20956:58;21048:10;21043:2;21035:6;21031:15;21024:35;20945:121;:::o;21072:220::-;21212:34;21208:1;21200:6;21196:14;21189:58;21281:3;21276:2;21268:6;21264:15;21257:28;21178:114;:::o;21298:182::-;21438:34;21434:1;21426:6;21422:14;21415:58;21404:76;:::o;21486:228::-;21626:34;21622:1;21614:6;21610:14;21603:58;21695:11;21690:2;21682:6;21678:15;21671:36;21592:122;:::o;21720:224::-;21860:34;21856:1;21848:6;21844:14;21837:58;21929:7;21924:2;21916:6;21912:15;21905:32;21826:118;:::o;21950:223::-;22090:34;22086:1;22078:6;22074:14;22067:58;22159:6;22154:2;22146:6;22142:15;22135:31;22056:117;:::o;22179:231::-;22319:34;22315:1;22307:6;22303:14;22296:58;22388:14;22383:2;22375:6;22371:15;22364:39;22285:125;:::o;22416:122::-;22489:24;22507:5;22489:24;:::i;:::-;22482:5;22479:35;22469:2;;22528:1;22525;22518:12;22469:2;22459:79;:::o;22544:116::-;22614:21;22629:5;22614:21;:::i;:::-;22607:5;22604:32;22594:2;;22650:1;22647;22640:12;22594:2;22584:76;:::o;22666:122::-;22739:24;22757:5;22739:24;:::i;:::-;22732:5;22729:35;22719:2;;22778:1;22775;22768:12;22719:2;22709:79;:::o
Swarm Source
ipfs://5064ab830999c911f3d71054464cea622cedcb6923cca2f359dcdcb85a58a487
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.