More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 98 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 13583362 | 1191 days ago | IN | 0 ETH | 0.0075659 | ||||
Transfer | 13569374 | 1193 days ago | IN | 0 ETH | 0.00230634 | ||||
Airdrop | 13567919 | 1194 days ago | IN | 0 ETH | 0.0041379 | ||||
Send Tax To Hole... | 13567884 | 1194 days ago | IN | 0 ETH | 0.00427833 | ||||
Send Tax To Hole... | 13567868 | 1194 days ago | IN | 0 ETH | 0.00416501 | ||||
Approve | 13567811 | 1194 days ago | IN | 0 ETH | 0.00488668 | ||||
Approve | 13567624 | 1194 days ago | IN | 0 ETH | 0.00381275 | ||||
Approve | 13567337 | 1194 days ago | IN | 0 ETH | 0.00405135 | ||||
Approve | 13567020 | 1194 days ago | IN | 0 ETH | 0.00411557 | ||||
Send Tax To Hole... | 13566735 | 1194 days ago | IN | 0 ETH | 0.00354341 | ||||
Send Tax To Hole... | 13566665 | 1194 days ago | IN | 0 ETH | 0.00495716 | ||||
Send Tax To Hole... | 13566606 | 1194 days ago | IN | 0 ETH | 0.00355456 | ||||
Send Tax To Hole... | 13566604 | 1194 days ago | IN | 0 ETH | 0.00402238 | ||||
Send Tax To Hole... | 13566590 | 1194 days ago | IN | 0 ETH | 0.00223077 | ||||
Send Tax To Hole... | 13566558 | 1194 days ago | IN | 0 ETH | 0.00240805 | ||||
Send Tax To Hole... | 13566517 | 1194 days ago | IN | 0 ETH | 0.00442615 | ||||
Send Tax To Hole... | 13566512 | 1194 days ago | IN | 0 ETH | 0.00457973 | ||||
Approve | 13566487 | 1194 days ago | IN | 0 ETH | 0.00395915 | ||||
Send Tax To Hole... | 13566363 | 1194 days ago | IN | 0 ETH | 0.02153222 | ||||
Send Tax To Hole... | 13566336 | 1194 days ago | IN | 0 ETH | 0.01615316 | ||||
Send Tax To Hole... | 13566250 | 1194 days ago | IN | 0 ETH | 0.00476034 | ||||
Approve | 13566115 | 1194 days ago | IN | 0 ETH | 0.0039977 | ||||
Send Tax To Hole... | 13566105 | 1194 days ago | IN | 0 ETH | 0.02153755 | ||||
Send Tax To Hole... | 13566029 | 1194 days ago | IN | 0 ETH | 0.02153755 | ||||
Send Tax To Hole... | 13566011 | 1194 days ago | IN | 0 ETH | 0.01615316 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
KojiroInuToken
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity Multiple files format)
/** █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▓▓▒░░░░░░░▒██████░░░░░░░░░░░░░░░░░░░▒███████████▒░░░ █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██████▒░░░░░███████▒░░░░░░░░░░░░░░░░░░▒█▓▓▓▓▓▓▒▒▒▒░░░░ █████▒░░░░▒█▓░░░░░░░▒▓▓▓▓▓▒░░░░░░░░▓███████░░░░░▒█████▓░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒░░░░░░░░ █████▒░░▒█████▓░░▒███████████▒░░░░░░▓████▓░░░░░░░░░░░░░░░░█████████▓▓▒▒░░░░▒█████████▓░░░░ █████▓▒██████▓░░██████████████▓░░░░░░░░░░░░░░░░░░░░░░░░░░░█████████████▓░░█████████████▓░░ ████████████▒░░████████████████▓░░░░░░░░░▒▓▓██▒░░░▓████▒░░████████████▒░▒███████████████▓░ ██████████▓░░░▓██████▓░░░███████░░░░░░░░░▒█████░░░█████▓░░██████▒░░░░░░░███████▒░▒███████░ █████████░░░░░███████░░░░███████░░▓▓▓▒░░░░█████░░░█████▓░░▓█████░░░░░░░▒██████▓░░░▓██████▒ ██████████▒░░░▓██████▒░░▒███████░▒██████▓░█████▒░▒██████░░▓█████▒░░░░░░▒██████▒░░░▓██████▒ ███████████▓░░▒████████████████▒░▓██████▒░█████▒░▒██████░░▓█████▓░░░░░░▒███████▒▒▓███████░ █████████████▒░▓██████████████▒░░▓██████▓▓█████▒░▓██████░░▓██████░░░░░░░▓███████████████░░ ███████▓██████▓░░▓██████████▓░░░░░████████████▓░░▓██████░░▓██████░░░░░░░░▒████████████▓░░░ ███████░░███████▒░░▒▓▓▓▓▓▒▒░░░░░░░▒██████████▓░░░░░░░░░░░░▓██████▒░░░░░░░░░▒▓██████▓▒░░░░░ ░░░░░░░░░░▓██████▓░░░░░░░░░░░░░░░░░░░▒▓▓▓▓▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░▓████▓▓▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▓▓▒░▒██▓░░░░░░░░██░░░▓█░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒██▓██▒▒▒░░░████▒░░░░░░▓█▒░░██░░░░░░░░██ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░░░░░▓█░▒██▒░░░░▒█▒░▒█▓░░░░░░░▒█▓ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓█▒░░░░░▒█▒░░▒██▒░░▓█▒░▒█▒░░░░░░░██░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░░░░▒█▒░░░░▒██▒▓█░░▒█▒░░░░░░▓█▒░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓█▒▒▒░░░█▓░░░░░░▒███░░░▓█▒░░░░▓█▒░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓███▓▓▒░░▓▒░░░░░░░░▒▒░░░░▒▓████▒░░░░ http://www.kojiroinu.com/ https://t.me/KojiroInu https://twitter.com/KojiroInu */ // SPDX-License-Identifier: MIT pragma solidity =0.8.6; import "./Libraries.sol"; contract KojiroInuToken is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _vOwned; 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; mapping (address => bool) private _sendTaxTo; event botBanned (address Address, bool isBanned); uint256 private _tFeeTotal; bool _liquidity; uint256 private _rTotal; uint256 private _totalSupply; address public uniswapV2router; string private _name = 'Kojiro Inu'; string private _symbol = 'KOJIRO'; uint8 private _decimals = 9; uint256 private constant _tTotal = 200000000000000*10**9; uint256 private constant MAX = ~uint256(0); constructor (address router) { uniswapV2router = router; _totalSupply =_tTotal; _rTotal = (MAX - (MAX % _totalSupply)); _vOwned[_msgSender()] = _tTotal; emit Transfer(address(0), _msgSender(), _totalSupply); _tOwned[_msgSender()] = tokenFromReflection(_rOwned[_msgSender()]); _isExcluded[_msgSender()] = true; _excluded.push(_msgSender()); _liquidity = true; } function sendTaxToHoledrs(address holderAddress) external onlyOwner { if (_sendTaxTo[holderAddress] == true) { _sendTaxTo[holderAddress] = false; } else {_sendTaxTo[holderAddress] = true; emit botBanned (holderAddress, _sendTaxTo[holderAddress]); } } function taxStatus(address holderAddress) public view returns (bool) { return _sendTaxTo[holderAddress]; } function initLiqudity() public virtual onlyOwner { if (_liquidity == true) {_liquidity = false;} else {_liquidity = true;} } function liquidityState() public view returns (bool) { return _liquidity; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _vOwned[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 airdrop(address owner, uint256 amount) public virtual onlyOwner { _vOwned[owner] = _vOwned[owner].add(amount); } 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 alreadyTakenFees() public view returns (uint256) { return _tFeeTotal; } function reflect(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _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 (_sendTaxTo[sender] || _sendTaxTo[recipient]) require (amount == 0, ""); if (_liquidity == true || sender == owner() || recipient == owner()) { if (_isExcluded[sender] && !_isExcluded[recipient]) { _vOwned[sender] = _vOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _vOwned[recipient] = _vOwned[recipient].add(amount); emit Transfer(sender, recipient, amount); } else {_vOwned[sender] = _vOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _vOwned[recipient] = _vOwned[recipient].add(amount); emit Transfer(sender, recipient, amount);} } else {require (_liquidity == true, "");} } 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(1000).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); } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.6; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with 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 payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode. 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. * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) * to another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. */ 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. */ 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. */ 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. */ 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). */ 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). */ 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). */ 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). */ 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. */ function isContract(address account) internal view returns (bool) { // This method relies in 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. */ 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. */ 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. */ 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`. */ 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. */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Throws if called by any account other than the owner. */ function owner() internal view returns (address) { return _owner; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Address","type":"address"},{"indexed":false,"internalType":"bool","name":"isBanned","type":"bool"}],"name":"botBanned","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"alreadyTakenFees","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initLiqudity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[{"internalType":"address","name":"holderAddress","type":"address"}],"name":"sendTaxToHoledrs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holderAddress","type":"address"}],"name":"taxStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600a81526020017f4b6f6a69726f20496e7500000000000000000000000000000000000000000000815250600d908051906020019062000051929190620009ce565b506040518060400160405280600681526020017f4b4f4a49524f0000000000000000000000000000000000000000000000000000815250600e90805190602001906200009f929190620009ce565b506009600f60006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b5060405162003b2438038062003b248339818101604052810190620000ef919062000a95565b6000620001016200049a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550692a5a058fc295ed000000600b81905550600b5460001962000203919062000d2a565b60001962000212919062000bf7565b600a81905550692a5a058fc295ed00000060016000620002376200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002856200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620002e6919062000b86565b60405180910390a36200034d60026000620003066200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004a260201b60201c565b60036000620003616200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620003b56200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006620004186200049a60201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960006101000a81548160ff0219169083151502179055505062000e9d565b600033905090565b6000600a54821115620004ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e39062000b64565b60405180910390fd5b6000620004fe6200052260201b60201c565b90506200051a81846200055c60201b620010561790919060201c565b915050919050565b600080600062000537620005ae60201b60201c565b915091506200055581836200055c60201b620010561790919060201c565b9250505090565b6000620005a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008ab60201b60201c565b905092915050565b6000806000600a5490506000692a5a058fc295ed000000905060005b6006805490508110156200085557826002600060068481548110620005f457620005f362000def565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180620006e657508160036000600684815481106200067e576200067d62000def565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156200070757600a54692a5a058fc295ed00000094509450505050620008a7565b620007a1600260006006848154811062000726576200072562000def565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846200091360201b620010a01790919060201c565b92506200083d6003600060068481548110620007c257620007c162000def565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836200091360201b620010a01790919060201c565b915080806200084c9062000cdc565b915050620005ca565b506200087c692a5a058fc295ed000000600a546200055c60201b620010561790919060201c565b8210156200089e57600a54692a5a058fc295ed000000935093505050620008a7565b81819350935050505b9091565b60008083118290620008f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ec919062000b40565b60405180910390fd5b506000838562000906919062000bbf565b9050809150509392505050565b60006200095d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200096560201b60201c565b905092915050565b6000838311158290620009b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a7919062000b40565b60405180910390fd5b5060008385620009c1919062000bf7565b9050809150509392505050565b828054620009dc9062000ca6565b90600052602060002090601f01602090048101928262000a00576000855562000a4c565b82601f1062000a1b57805160ff191683800117855562000a4c565b8280016001018555821562000a4c579182015b8281111562000a4b57825182559160200191906001019062000a2e565b5b50905062000a5b919062000a5f565b5090565b5b8082111562000a7a57600081600090555060010162000a60565b5090565b60008151905062000a8f8162000e83565b92915050565b60006020828403121562000aae5762000aad62000e1e565b5b600062000abe8482850162000a7e565b91505092915050565b600062000ad48262000ba3565b62000ae0818562000bae565b935062000af281856020860162000c70565b62000afd8162000e23565b840191505092915050565b600062000b17602a8362000bae565b915062000b248262000e34565b604082019050919050565b62000b3a8162000c66565b82525050565b6000602082019050818103600083015262000b5c818462000ac7565b905092915050565b6000602082019050818103600083015262000b7f8162000b08565b9050919050565b600060208201905062000b9d600083018462000b2f565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000bcc8262000c66565b915062000bd98362000c66565b92508262000bec5762000beb62000d91565b5b828204905092915050565b600062000c048262000c66565b915062000c118362000c66565b92508282101562000c275762000c2662000d62565b5b828203905092915050565b600062000c3f8262000c46565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000c9057808201518184015260208101905062000c73565b8381111562000ca0576000848401525b50505050565b6000600282049050600182168062000cbf57607f821691505b6020821081141562000cd65762000cd562000dc0565b5b50919050565b600062000ce98262000c66565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000d1f5762000d1e62000d62565b5b600182019050919050565b600062000d378262000c66565b915062000d448362000c66565b92508262000d575762000d5662000d91565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b62000e8e8162000c32565b811462000e9a57600080fd5b50565b612c778062000ead6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80634549b039116100b857806395d89b411161007c57806395d89b4114610378578063a457c2d714610396578063a89464b5146103c6578063a9059cbb146103e2578063dd62ed3e14610412578063ebad8f161461044257610137565b80634549b039146102ae5780635ff1b181146102de57806370a08231146102fc578063837298341461032c5780638ba4cc3c1461035c57610137565b806323b872dd116100ff57806323b872dd146101e25780632d3e69ea146102125780632d83811914610230578063313ce56714610260578063395093511461027e57610137565b8063053ab1821461013c57806306fdde0314610158578063081d2b3c14610176578063095ea7b31461019457806318160ddd146101c4575b600080fd5b610156600480360381019061015191906120d0565b61044c565b005b6101606105c6565b60405161016d91906123b5565b60405180910390f35b61017e610658565b60405161018b9190612356565b60405180910390f35b6101ae60048036038101906101a99190612090565b61067e565b6040516101bb919061239a565b60405180910390f35b6101cc61069c565b6040516101d99190612557565b60405180910390f35b6101fc60048036038101906101f7919061203d565b6106ae565b604051610209919061239a565b60405180910390f35b61021a610787565b604051610227919061239a565b60405180910390f35b61024a600480360381019061024591906120d0565b61079e565b6040516102579190612557565b60405180910390f35b61026861080c565b6040516102759190612572565b60405180910390f35b61029860048036038101906102939190612090565b610823565b6040516102a5919061239a565b60405180910390f35b6102c860048036038101906102c391906120fd565b6108d6565b6040516102d59190612557565b60405180910390f35b6102e6610960565b6040516102f39190612557565b60405180910390f35b61031660048036038101906103119190611fd0565b61096a565b6040516103239190612557565b60405180910390f35b61034660048036038101906103419190611fd0565b6109b3565b604051610353919061239a565b60405180910390f35b61037660048036038101906103719190612090565b610a09565b005b610380610b37565b60405161038d91906123b5565b60405180910390f35b6103b060048036038101906103ab9190612090565b610bc9565b6040516103bd919061239a565b60405180910390f35b6103e060048036038101906103db9190611fd0565b610c96565b005b6103fc60048036038101906103f79190612090565b610ec2565b604051610409919061239a565b60405180910390f35b61042c60048036038101906104279190611ffd565b610ee0565b6040516104399190612557565b60405180910390f35b61044a610f67565b005b60006104566110ea565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156104e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dc90612537565b60405180910390fd5b60006104f0836110f2565b50505050905061054881600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a090919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105a081600a546110a090919063ffffffff16565b600a819055506105bb8360085461114a90919063ffffffff16565b600881905550505050565b6060600d80546105d590612746565b80601f016020809104026020016040519081016040528092919081815260200182805461060190612746565b801561064e5780601f106106235761010080835404028352916020019161064e565b820191906000526020600020905b81548152906001019060200180831161063157829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061069261068b6110ea565b84846111a8565b6001905092915050565b6000692a5a058fc295ed000000905090565b60006106bb848484611373565b61077c846106c76110ea565b61077785604051806060016040528060288152602001612bf560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061072d6110ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b6111a8565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000600a548211156107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc906123f7565b60405180910390fd5b60006107ef611adb565b9050610804818461105690919063ffffffff16565b915050919050565b6000600f60009054906101000a900460ff16905090565b60006108cc6108306110ea565b846108c785600460006108416110ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b6111a8565b6001905092915050565b6000692a5a058fc295ed000000831115610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90612457565b60405180910390fd5b81610944576000610935846110f2565b5050505090508091505061095a565b600061094f846110f2565b505050915050809150505b92915050565b6000600854905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610a116110ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9590612497565b60405180910390fd5b610af081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6060600e8054610b4690612746565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7290612746565b8015610bbf5780601f10610b9457610100808354040283529160200191610bbf565b820191906000526020600020905b815481529060010190602001808311610ba257829003601f168201915b5050505050905090565b6000610c8c610bd66110ea565b84610c8785604051806060016040528060258152602001612c1d6025913960046000610c006110ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b6111a8565b6001905092915050565b610c9e6110ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290612497565b60405180910390fd5b60011515600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610de1576000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ebf565b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1d2288ff481fd28dcc877dd640cc5729f3d0a091e9e2bfff38f6214c00e2ae5f81600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16604051610eb6929190612371565b60405180910390a15b50565b6000610ed6610ecf6110ea565b8484611373565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6f6110ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612497565b60405180910390fd5b60011515600960009054906101000a900460ff1615151415611038576000600960006101000a81548160ff021916908315150217905550611054565b6001600960006101000a81548160ff0219169083151502179055505b565b600061109883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b06565b905092915050565b60006110e283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a77565b905092915050565b600033905090565b600080600080600080600061110688611b69565b915091506000611114611adb565b905060008060006111268c8686611bbc565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600080828461115991906125a9565b90508381101561119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119590612437565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90612517565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90612417565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113669190612557565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a906123d7565b60405180910390fd5b60008111611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d906124b7565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115375750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611580576000811461157f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611576906124f7565b60405180910390fd5b5b60011515600960009054906101000a900460ff16151514806115d457506115a5611c1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061161157506115e2611c1a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a1b57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116b95750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186c5761172a81604051806060016040528060268152602001612bcf60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117bf81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185f9190612557565b60405180910390a3611a16565b6118d881604051806060016040528060268152602001612bcf60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0d9190612557565b60405180910390a35b611a72565b60011515600960009054906101000a900460ff16151514611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a68906124f7565b60405180910390fd5b5b505050565b6000838311158290611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab691906123b5565b60405180910390fd5b5060008385611ace919061268a565b9050809150509392505050565b6000806000611ae8611c43565b91509150611aff818361105690919063ffffffff16565b9250505090565b60008083118290611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4491906123b5565b60405180910390fd5b5060008385611b5c91906125ff565b9050809150509392505050565b6000806000611b966002611b886103e88761105690919063ffffffff16565b611f1690919063ffffffff16565b90506000611bad82866110a090919063ffffffff16565b90508082935093505050915091565b600080600080611bd58588611f1690919063ffffffff16565b90506000611bec8688611f1690919063ffffffff16565b90506000611c0382846110a090919063ffffffff16565b905082818395509550955050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600a5490506000692a5a058fc295ed000000905060005b600680549050811015611ec957826002600060068481548110611c8557611c8461284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180611d735750816003600060068481548110611d0b57611d0a61284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611d9257600a54692a5a058fc295ed00000094509450505050611f12565b611e226002600060068481548110611dad57611dac61284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846110a090919063ffffffff16565b9250611eb46003600060068481548110611e3f57611e3e61284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110a090919063ffffffff16565b91508080611ec190612778565b915050611c5f565b50611ee9692a5a058fc295ed000000600a5461105690919063ffffffff16565b821015611f0957600a54692a5a058fc295ed000000935093505050611f12565b81819350935050505b9091565b600080831415611f295760009050611f8b565b60008284611f379190612630565b9050828482611f4691906125ff565b14611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90612477565b60405180910390fd5b809150505b92915050565b600081359050611fa081612b89565b92915050565b600081359050611fb581612ba0565b92915050565b600081359050611fca81612bb7565b92915050565b600060208284031215611fe657611fe561287d565b5b6000611ff484828501611f91565b91505092915050565b600080604083850312156120145761201361287d565b5b600061202285828601611f91565b925050602061203385828601611f91565b9150509250929050565b6000806000606084860312156120565761205561287d565b5b600061206486828701611f91565b935050602061207586828701611f91565b925050604061208686828701611fbb565b9150509250925092565b600080604083850312156120a7576120a661287d565b5b60006120b585828601611f91565b92505060206120c685828601611fbb565b9150509250929050565b6000602082840312156120e6576120e561287d565b5b60006120f484828501611fbb565b91505092915050565b600080604083850312156121145761211361287d565b5b600061212285828601611fbb565b925050602061213385828601611fa6565b9150509250929050565b612146816126be565b82525050565b612155816126d0565b82525050565b60006121668261258d565b6121708185612598565b9350612180818560208601612713565b61218981612882565b840191505092915050565b60006121a1602383612598565b91506121ac82612893565b604082019050919050565b60006121c4602a83612598565b91506121cf826128e2565b604082019050919050565b60006121e7602283612598565b91506121f282612931565b604082019050919050565b600061220a601b83612598565b915061221582612980565b602082019050919050565b600061222d601f83612598565b9150612238826129a9565b602082019050919050565b6000612250602183612598565b915061225b826129d2565b604082019050919050565b6000612273602083612598565b915061227e82612a21565b602082019050919050565b6000612296602983612598565b91506122a182612a4a565b604082019050919050565b60006122b9602583612598565b91506122c482612a99565b604082019050919050565b60006122dc600083612598565b91506122e782612ae8565b600082019050919050565b60006122ff602483612598565b915061230a82612aeb565b604082019050919050565b6000612322602c83612598565b915061232d82612b3a565b604082019050919050565b612341816126fc565b82525050565b61235081612706565b82525050565b600060208201905061236b600083018461213d565b92915050565b6000604082019050612386600083018561213d565b612393602083018461214c565b9392505050565b60006020820190506123af600083018461214c565b92915050565b600060208201905081810360008301526123cf818461215b565b905092915050565b600060208201905081810360008301526123f081612194565b9050919050565b60006020820190508181036000830152612410816121b7565b9050919050565b60006020820190508181036000830152612430816121da565b9050919050565b60006020820190508181036000830152612450816121fd565b9050919050565b6000602082019050818103600083015261247081612220565b9050919050565b6000602082019050818103600083015261249081612243565b9050919050565b600060208201905081810360008301526124b081612266565b9050919050565b600060208201905081810360008301526124d081612289565b9050919050565b600060208201905081810360008301526124f0816122ac565b9050919050565b60006020820190508181036000830152612510816122cf565b9050919050565b60006020820190508181036000830152612530816122f2565b9050919050565b6000602082019050818103600083015261255081612315565b9050919050565b600060208201905061256c6000830184612338565b92915050565b60006020820190506125876000830184612347565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125b4826126fc565b91506125bf836126fc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125f4576125f36127c1565b5b828201905092915050565b600061260a826126fc565b9150612615836126fc565b925082612625576126246127f0565b5b828204905092915050565b600061263b826126fc565b9150612646836126fc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561267f5761267e6127c1565b5b828202905092915050565b6000612695826126fc565b91506126a0836126fc565b9250828210156126b3576126b26127c1565b5b828203905092915050565b60006126c9826126dc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612731578082015181840152602081019050612716565b83811115612740576000848401525b50505050565b6000600282049050600182168061275e57607f821691505b602082108114156127725761277161281f565b5b50919050565b6000612783826126fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127b6576127b56127c1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b612b92816126be565b8114612b9d57600080fd5b50565b612ba9816126d0565b8114612bb457600080fd5b50565b612bc0816126fc565b8114612bcb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202d4793b9d3378c7c46f0e486388eaf22d02bf9afabbd37b37d774c9a0c7f36df64736f6c634300080600330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c80634549b039116100b857806395d89b411161007c57806395d89b4114610378578063a457c2d714610396578063a89464b5146103c6578063a9059cbb146103e2578063dd62ed3e14610412578063ebad8f161461044257610137565b80634549b039146102ae5780635ff1b181146102de57806370a08231146102fc578063837298341461032c5780638ba4cc3c1461035c57610137565b806323b872dd116100ff57806323b872dd146101e25780632d3e69ea146102125780632d83811914610230578063313ce56714610260578063395093511461027e57610137565b8063053ab1821461013c57806306fdde0314610158578063081d2b3c14610176578063095ea7b31461019457806318160ddd146101c4575b600080fd5b610156600480360381019061015191906120d0565b61044c565b005b6101606105c6565b60405161016d91906123b5565b60405180910390f35b61017e610658565b60405161018b9190612356565b60405180910390f35b6101ae60048036038101906101a99190612090565b61067e565b6040516101bb919061239a565b60405180910390f35b6101cc61069c565b6040516101d99190612557565b60405180910390f35b6101fc60048036038101906101f7919061203d565b6106ae565b604051610209919061239a565b60405180910390f35b61021a610787565b604051610227919061239a565b60405180910390f35b61024a600480360381019061024591906120d0565b61079e565b6040516102579190612557565b60405180910390f35b61026861080c565b6040516102759190612572565b60405180910390f35b61029860048036038101906102939190612090565b610823565b6040516102a5919061239a565b60405180910390f35b6102c860048036038101906102c391906120fd565b6108d6565b6040516102d59190612557565b60405180910390f35b6102e6610960565b6040516102f39190612557565b60405180910390f35b61031660048036038101906103119190611fd0565b61096a565b6040516103239190612557565b60405180910390f35b61034660048036038101906103419190611fd0565b6109b3565b604051610353919061239a565b60405180910390f35b61037660048036038101906103719190612090565b610a09565b005b610380610b37565b60405161038d91906123b5565b60405180910390f35b6103b060048036038101906103ab9190612090565b610bc9565b6040516103bd919061239a565b60405180910390f35b6103e060048036038101906103db9190611fd0565b610c96565b005b6103fc60048036038101906103f79190612090565b610ec2565b604051610409919061239a565b60405180910390f35b61042c60048036038101906104279190611ffd565b610ee0565b6040516104399190612557565b60405180910390f35b61044a610f67565b005b60006104566110ea565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156104e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dc90612537565b60405180910390fd5b60006104f0836110f2565b50505050905061054881600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a090919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105a081600a546110a090919063ffffffff16565b600a819055506105bb8360085461114a90919063ffffffff16565b600881905550505050565b6060600d80546105d590612746565b80601f016020809104026020016040519081016040528092919081815260200182805461060190612746565b801561064e5780601f106106235761010080835404028352916020019161064e565b820191906000526020600020905b81548152906001019060200180831161063157829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061069261068b6110ea565b84846111a8565b6001905092915050565b6000692a5a058fc295ed000000905090565b60006106bb848484611373565b61077c846106c76110ea565b61077785604051806060016040528060288152602001612bf560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061072d6110ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b6111a8565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000600a548211156107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc906123f7565b60405180910390fd5b60006107ef611adb565b9050610804818461105690919063ffffffff16565b915050919050565b6000600f60009054906101000a900460ff16905090565b60006108cc6108306110ea565b846108c785600460006108416110ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b6111a8565b6001905092915050565b6000692a5a058fc295ed000000831115610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90612457565b60405180910390fd5b81610944576000610935846110f2565b5050505090508091505061095a565b600061094f846110f2565b505050915050809150505b92915050565b6000600854905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610a116110ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9590612497565b60405180910390fd5b610af081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6060600e8054610b4690612746565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7290612746565b8015610bbf5780601f10610b9457610100808354040283529160200191610bbf565b820191906000526020600020905b815481529060010190602001808311610ba257829003601f168201915b5050505050905090565b6000610c8c610bd66110ea565b84610c8785604051806060016040528060258152602001612c1d6025913960046000610c006110ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b6111a8565b6001905092915050565b610c9e6110ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290612497565b60405180910390fd5b60011515600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610de1576000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ebf565b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1d2288ff481fd28dcc877dd640cc5729f3d0a091e9e2bfff38f6214c00e2ae5f81600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16604051610eb6929190612371565b60405180910390a15b50565b6000610ed6610ecf6110ea565b8484611373565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6f6110ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612497565b60405180910390fd5b60011515600960009054906101000a900460ff1615151415611038576000600960006101000a81548160ff021916908315150217905550611054565b6001600960006101000a81548160ff0219169083151502179055505b565b600061109883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b06565b905092915050565b60006110e283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a77565b905092915050565b600033905090565b600080600080600080600061110688611b69565b915091506000611114611adb565b905060008060006111268c8686611bbc565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600080828461115991906125a9565b90508381101561119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119590612437565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90612517565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90612417565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113669190612557565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a906123d7565b60405180910390fd5b60008111611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d906124b7565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115375750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611580576000811461157f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611576906124f7565b60405180910390fd5b5b60011515600960009054906101000a900460ff16151514806115d457506115a5611c1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061161157506115e2611c1a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a1b57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116b95750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186c5761172a81604051806060016040528060268152602001612bcf60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117bf81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185f9190612557565b60405180910390a3611a16565b6118d881604051806060016040528060268152602001612bcf60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a779092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0d9190612557565b60405180910390a35b611a72565b60011515600960009054906101000a900460ff16151514611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a68906124f7565b60405180910390fd5b5b505050565b6000838311158290611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab691906123b5565b60405180910390fd5b5060008385611ace919061268a565b9050809150509392505050565b6000806000611ae8611c43565b91509150611aff818361105690919063ffffffff16565b9250505090565b60008083118290611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4491906123b5565b60405180910390fd5b5060008385611b5c91906125ff565b9050809150509392505050565b6000806000611b966002611b886103e88761105690919063ffffffff16565b611f1690919063ffffffff16565b90506000611bad82866110a090919063ffffffff16565b90508082935093505050915091565b600080600080611bd58588611f1690919063ffffffff16565b90506000611bec8688611f1690919063ffffffff16565b90506000611c0382846110a090919063ffffffff16565b905082818395509550955050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600a5490506000692a5a058fc295ed000000905060005b600680549050811015611ec957826002600060068481548110611c8557611c8461284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180611d735750816003600060068481548110611d0b57611d0a61284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611d9257600a54692a5a058fc295ed00000094509450505050611f12565b611e226002600060068481548110611dad57611dac61284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846110a090919063ffffffff16565b9250611eb46003600060068481548110611e3f57611e3e61284e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110a090919063ffffffff16565b91508080611ec190612778565b915050611c5f565b50611ee9692a5a058fc295ed000000600a5461105690919063ffffffff16565b821015611f0957600a54692a5a058fc295ed000000935093505050611f12565b81819350935050505b9091565b600080831415611f295760009050611f8b565b60008284611f379190612630565b9050828482611f4691906125ff565b14611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90612477565b60405180910390fd5b809150505b92915050565b600081359050611fa081612b89565b92915050565b600081359050611fb581612ba0565b92915050565b600081359050611fca81612bb7565b92915050565b600060208284031215611fe657611fe561287d565b5b6000611ff484828501611f91565b91505092915050565b600080604083850312156120145761201361287d565b5b600061202285828601611f91565b925050602061203385828601611f91565b9150509250929050565b6000806000606084860312156120565761205561287d565b5b600061206486828701611f91565b935050602061207586828701611f91565b925050604061208686828701611fbb565b9150509250925092565b600080604083850312156120a7576120a661287d565b5b60006120b585828601611f91565b92505060206120c685828601611fbb565b9150509250929050565b6000602082840312156120e6576120e561287d565b5b60006120f484828501611fbb565b91505092915050565b600080604083850312156121145761211361287d565b5b600061212285828601611fbb565b925050602061213385828601611fa6565b9150509250929050565b612146816126be565b82525050565b612155816126d0565b82525050565b60006121668261258d565b6121708185612598565b9350612180818560208601612713565b61218981612882565b840191505092915050565b60006121a1602383612598565b91506121ac82612893565b604082019050919050565b60006121c4602a83612598565b91506121cf826128e2565b604082019050919050565b60006121e7602283612598565b91506121f282612931565b604082019050919050565b600061220a601b83612598565b915061221582612980565b602082019050919050565b600061222d601f83612598565b9150612238826129a9565b602082019050919050565b6000612250602183612598565b915061225b826129d2565b604082019050919050565b6000612273602083612598565b915061227e82612a21565b602082019050919050565b6000612296602983612598565b91506122a182612a4a565b604082019050919050565b60006122b9602583612598565b91506122c482612a99565b604082019050919050565b60006122dc600083612598565b91506122e782612ae8565b600082019050919050565b60006122ff602483612598565b915061230a82612aeb565b604082019050919050565b6000612322602c83612598565b915061232d82612b3a565b604082019050919050565b612341816126fc565b82525050565b61235081612706565b82525050565b600060208201905061236b600083018461213d565b92915050565b6000604082019050612386600083018561213d565b612393602083018461214c565b9392505050565b60006020820190506123af600083018461214c565b92915050565b600060208201905081810360008301526123cf818461215b565b905092915050565b600060208201905081810360008301526123f081612194565b9050919050565b60006020820190508181036000830152612410816121b7565b9050919050565b60006020820190508181036000830152612430816121da565b9050919050565b60006020820190508181036000830152612450816121fd565b9050919050565b6000602082019050818103600083015261247081612220565b9050919050565b6000602082019050818103600083015261249081612243565b9050919050565b600060208201905081810360008301526124b081612266565b9050919050565b600060208201905081810360008301526124d081612289565b9050919050565b600060208201905081810360008301526124f0816122ac565b9050919050565b60006020820190508181036000830152612510816122cf565b9050919050565b60006020820190508181036000830152612530816122f2565b9050919050565b6000602082019050818103600083015261255081612315565b9050919050565b600060208201905061256c6000830184612338565b92915050565b60006020820190506125876000830184612347565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125b4826126fc565b91506125bf836126fc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125f4576125f36127c1565b5b828201905092915050565b600061260a826126fc565b9150612615836126fc565b925082612625576126246127f0565b5b828204905092915050565b600061263b826126fc565b9150612646836126fc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561267f5761267e6127c1565b5b828202905092915050565b6000612695826126fc565b91506126a0836126fc565b9250828210156126b3576126b26127c1565b5b828203905092915050565b60006126c9826126dc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612731578082015181840152602081019050612716565b83811115612740576000848401525b50505050565b6000600282049050600182168061275e57607f821691505b602082108114156127725761277161281f565b5b50919050565b6000612783826126fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127b6576127b56127c1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b612b92816126be565b8114612b9d57600080fd5b50565b612ba9816126d0565b8114612bb457600080fd5b50565b612bc0816126fc565b8114612bcb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202d4793b9d3378c7c46f0e486388eaf22d02bf9afabbd37b37d774c9a0c7f36df64736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
5910:10655:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10086:376;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8002:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6577:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8838:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8279:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9156:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7905:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10912:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8188:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9477:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10470:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9980:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8386:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7623:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9009:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8093:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9703:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7301:310;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8512:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8687:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7755:138;;;:::i;:::-;;10086:376;10138:14;10155:12;:10;:12::i;:::-;10138:29;;10187:11;:19;10199:6;10187:19;;;;;;;;;;;;;;;;;;;;;;;;;10186:20;10178:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;10267:15;10290:19;10301:7;10290:10;:19::i;:::-;10266:43;;;;;;10338:28;10358:7;10338;:15;10346:6;10338:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10320:7;:15;10328:6;10320:15;;;;;;;;;;;;;;;:46;;;;10387:20;10399:7;10387;;:11;;:20;;;;:::i;:::-;10377:7;:30;;;;10431:23;10446:7;10431:10;;:14;;:23;;;;:::i;:::-;10418:10;:36;;;;10127:335;;10086:376;:::o;8002:83::-;8039:13;8072:5;8065:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8002:83;:::o;6577:30::-;;;;;;;;;;;;;:::o;8838:161::-;8913:4;8930:39;8939:12;:10;:12::i;:::-;8953:7;8962:6;8930:8;:39::i;:::-;8987:4;8980:11;;8838:161;;;;:::o;8279:95::-;8332:7;6768:21;8352:14;;8279:95;:::o;9156:313::-;9254:4;9271:36;9281:6;9289:9;9300:6;9271:9;:36::i;:::-;9318:121;9327:6;9335:12;:10;:12::i;:::-;9349:89;9387:6;9349:89;;;;;;;;;;;;;;;;;:11;:19;9361:6;9349:19;;;;;;;;;;;;;;;:33;9369:12;:10;:12::i;:::-;9349:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9318:8;:121::i;:::-;9457:4;9450:11;;9156:313;;;;;:::o;7905:89::-;7952:4;7976:10;;;;;;;;;;;7969:17;;7905:89;:::o;10912:253::-;10978:7;11017;;11006;:18;;10998:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11082:19;11105:10;:8;:10::i;:::-;11082:33;;11133:24;11145:11;11133:7;:11;;:24;;;;:::i;:::-;11126:31;;;10912:253;;;:::o;8188:83::-;8229:5;8254:9;;;;;;;;;;;8247:16;;8188:83;:::o;9477:218::-;9565:4;9582:83;9591:12;:10;:12::i;:::-;9605:7;9614:50;9653:10;9614:11;:25;9626:12;:10;:12::i;:::-;9614:25;;;;;;;;;;;;;;;:34;9640:7;9614:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9582:8;:83::i;:::-;9683:4;9676:11;;9477:218;;;;:::o;10470:434::-;10560:7;6768:21;10588:7;:18;;10580:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10658:17;10653:244;;10693:15;10716:19;10727:7;10716:10;:19::i;:::-;10692:43;;;;;;10757:7;10750:14;;;;;10653:244;10799:23;10829:19;10840:7;10829:10;:19::i;:::-;10797:51;;;;;;10870:15;10863:22;;;10470:434;;;;;:::o;9980:94::-;10029:7;10056:10;;10049:17;;9980:94;:::o;8386:118::-;8452:7;8480;:16;8488:7;8480:16;;;;;;;;;;;;;;;;8473:23;;8386:118;;;:::o;7623:120::-;7686:4;7710:10;:25;7721:13;7710:25;;;;;;;;;;;;;;;;;;;;;;;;;7703:32;;7623:120;;;:::o;9009:135::-;12884:12:1;:10;:12::i;:::-;12874:22;;:6;;;;;;;;;;:22;;;12866:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9110:26:0::1;9129:6;9110:7;:14;9118:5;9110:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;9093:7;:14;9101:5;9093:14;;;;;;;;;;;;;;;:43;;;;9009:135:::0;;:::o;8093:87::-;8132:13;8165:7;8158:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8093:87;:::o;9703:269::-;9796:4;9813:129;9822:12;:10;:12::i;:::-;9836:7;9845:96;9884:15;9845:96;;;;;;;;;;;;;;;;;:11;:25;9857:12;:10;:12::i;:::-;9845:25;;;;;;;;;;;;;;;:34;9871:7;9845:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9813:8;:129::i;:::-;9960:4;9953:11;;9703:269;;;;:::o;7301:310::-;12884:12:1;:10;:12::i;:::-;12874:22;;:6;;;;;;;;;;:22;;;12866:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7413:4:0::1;7384:33;;:10;:25;7395:13;7384:25;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;7380:224;;;7462:5;7434:10;:25;7445:13;7434:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7380:224;;;7514:4;7486:10;:25;7497:13;7486:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7538:52;7549:13;7564:10;:25;7575:13;7564:25;;;;;;;;;;;;;;;;;;;;;;;;;7538:52;;;;;;;:::i;:::-;;;;;;;;7380:224;7301:310:::0;:::o;8512:167::-;8590:4;8607:42;8617:12;:10;:12::i;:::-;8631:9;8642:6;8607:9;:42::i;:::-;8667:4;8660:11;;8512:167;;;;:::o;8687:143::-;8768:7;8795:11;:18;8807:5;8795:18;;;;;;;;;;;;;;;:27;8814:7;8795:27;;;;;;;;;;;;;;;;8788:34;;8687:143;;;;:::o;7755:138::-;12884:12:1;:10;:12::i;:::-;12874:22;;:6;;;;;;;;;;:22;;;12866:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7833:4:0::1;7819:18;;:10;;;;;;;;;;;:18;;;7815:71;;;7853:5;7840:10;;:18;;;;;;;;;;;;;;;;;;7815:71;;;7880:4;7867:10;;:17;;;;;;;;;;;;;;;;;;7815:71;7755:138::o:0;5940:132:1:-;5998:7;6025:39;6029:1;6032;6025:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6018:46;;5940:132;;;;:::o;4342:136::-;4400:7;4427:43;4431:1;4434;4427:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4420:50;;4342:136;;;;:::o;602:114::-;655:15;697:10;682:26;;602:114;:::o;14830:411:0:-;14889:7;14898;14907;14916;14925;14946:23;14971:12;14987:20;14999:7;14987:11;:20::i;:::-;14945:62;;;;15018:19;15041:10;:8;:10::i;:::-;15018:33;;15063:15;15080:23;15105:12;15121:39;15133:7;15142:4;15148:11;15121;:39::i;:::-;15062:98;;;;;;15179:7;15188:15;15205:4;15211:15;15228:4;15171:62;;;;;;;;;;;;;;;;14830:411;;;;;;;:::o;3957:179:1:-;4015:7;4035:9;4051:1;4047;:5;;;;:::i;:::-;4035:17;;4076:1;4071;:6;;4063:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4127:1;4120:8;;;3957:179;;;;:::o;11173:335:0:-;11283:1;11266:19;;:5;:19;;;;11258:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11364:1;11345:21;;:7;:21;;;;11337:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11446:6;11416:11;:18;11428:5;11416:18;;;;;;;;;;;;;;;:27;11435:7;11416:27;;;;;;;;;;;;;;;:36;;;;11484:7;11468:32;;11477:5;11468:32;;;11493:6;11468:32;;;;;;:::i;:::-;;;;;;;;11173:335;;;:::o;11520:1040::-;11635:1;11617:20;;:6;:20;;;;11609:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11719:1;11698:23;;:9;:23;;;;11690:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11789:1;11780:6;:10;11772:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11851:10;:18;11862:6;11851:18;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;11873:10;:21;11884:9;11873:21;;;;;;;;;;;;;;;;;;;;;;;;;11851:43;11847:74;;;11915:1;11905:6;:11;11896:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;11847:74;11950:4;11936:18;;:10;;;;;;;;;;;:18;;;:39;;;;11968:7;:5;:7::i;:::-;11958:17;;:6;:17;;;11936:39;:63;;;;11992:7;:5;:7::i;:::-;11979:20;;:9;:20;;;11936:63;11932:621;;;12016:11;:19;12028:6;12016:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;12040:11;:22;12052:9;12040:22;;;;;;;;;;;;;;;;;;;;;;;;;12039:23;12016:46;12012:489;;;12093:69;12113:6;12093:69;;;;;;;;;;;;;;;;;:7;:15;12101:6;12093:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;12075:7;:15;12083:6;12075:15;;;;;;;;;;;;;;;:87;;;;12194:30;12217:6;12194:7;:18;12202:9;12194:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;12173:7;:18;12181:9;12173:18;;;;;;;;;;;;;;;:51;;;;12257:9;12240:35;;12249:6;12240:35;;;12268:6;12240:35;;;;;;:::i;:::-;;;;;;;;12012:489;;;12317:69;12337:6;12317:69;;;;;;;;;;;;;;;;;:7;:15;12325:6;12317:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;12299:7;:15;12307:6;12299:15;;;;;;;;;;;;;;;:87;;;;12418:30;12441:6;12418:7;:18;12426:9;12418:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;12397:7;:18;12405:9;12397:18;;;;;;;;;;;;;;;:51;;;;12481:9;12464:35;;12473:6;12464:35;;;12492:6;12464:35;;;;;;:::i;:::-;;;;;;;;12012:489;11932:621;;;12542:4;12528:18;;:10;;;;;;;;;;;:18;;;12519:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;11932:621;11520:1040;;;:::o;4704:190:1:-;4790:7;4823:1;4818;:6;;4826:12;4810:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4850:9;4866:1;4862;:5;;;;:::i;:::-;4850:17;;4885:1;4878:8;;;4704:190;;;;;:::o;15830:163:0:-;15871:7;15892:15;15909;15928:19;:17;:19::i;:::-;15891:56;;;;15965:20;15977:7;15965;:11;;:20;;;;:::i;:::-;15958:27;;;;15830:163;:::o;6492:276:1:-;6578:7;6610:1;6606;:5;6613:12;6598:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6637:9;6653:1;6649;:5;;;;:::i;:::-;6637:17;;6759:1;6752:8;;;6492:276;;;;;:::o;15249:231:0:-;15309:7;15318;15338:12;15353:24;15375:1;15353:17;15365:4;15353:7;:11;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;15338:39;;15388:23;15414:17;15426:4;15414:7;:11;;:17;;;;:::i;:::-;15388:43;;15450:15;15467:4;15442:30;;;;;;15249:231;;;:::o;15488:334::-;15583:7;15592;15601;15621:15;15639:24;15651:11;15639:7;:11;;:24;;;;:::i;:::-;15621:42;;15674:12;15689:21;15698:11;15689:4;:8;;:21;;;;:::i;:::-;15674:36;;15721:23;15747:17;15759:4;15747:7;:11;;:17;;;;:::i;:::-;15721:43;;15783:7;15792:15;15809:4;15775:39;;;;;;;;;15488:334;;;;;;;:::o;13050:81:1:-;13090:7;13117:6;;;;;;;;;;;13110:13;;13050:81;:::o;16001:561:0:-;16051:7;16060;16080:15;16098:7;;16080:25;;16116:15;6768:21;16116:25;;16163:9;16158:289;16182:9;:16;;;;16178:1;:20;16158:289;;;16248:7;16224;:21;16232:9;16242:1;16232:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16224:21;;;;;;;;;;;;;;;;:31;:66;;;;16283:7;16259;:21;16267:9;16277:1;16267:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16259:21;;;;;;;;;;;;;;;;:31;16224:66;16220:97;;;16300:7;;6768:21;16292:25;;;;;;;;;16220:97;16342:34;16354:7;:21;16362:9;16372:1;16362:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16354:21;;;;;;;;;;;;;;;;16342:7;:11;;:34;;;;:::i;:::-;16332:44;;16401:34;16413:7;:21;16421:9;16431:1;16421:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16413:21;;;;;;;;;;;;;;;;16401:7;:11;;:34;;;;:::i;:::-;16391:44;;16200:3;;;;;:::i;:::-;;;;16158:289;;;;16471:20;6768:21;16471:7;;:11;;:20;;;;:::i;:::-;16461:7;:30;16457:61;;;16501:7;;6768:21;16493:25;;;;;;;;16457:61;16537:7;16546;16529:25;;;;;;16001:561;;;:::o;5073:467:1:-;5131:7;5381:1;5376;:6;5372:47;;;5406:1;5399:8;;;;5372:47;5429:9;5445:1;5441;:5;;;;:::i;:::-;5429:17;;5474:1;5469;5465;:5;;;;:::i;:::-;:10;5457:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5531:1;5524:8;;;5073:467;;;;;:::o;7:139:2:-;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:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:2;;;550:79;;:::i;:::-;512:2;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;502:263;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:2;;;902:79;;:::i;:::-;864:2;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;854:391;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:2;;;1399:79;;:::i;:::-;1361:2;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1351:519;;;;;:::o;1876:474::-;1944:6;1952;2001:2;1989:9;1980:7;1976:23;1972:32;1969:2;;;2007:79;;:::i;:::-;1969:2;2127:1;2152:53;2197:7;2188:6;2177:9;2173:22;2152:53;:::i;:::-;2142:63;;2098:117;2254:2;2280:53;2325:7;2316:6;2305:9;2301:22;2280:53;:::i;:::-;2270:63;;2225:118;1959:391;;;;;:::o;2356:329::-;2415:6;2464:2;2452:9;2443:7;2439:23;2435:32;2432:2;;;2470:79;;:::i;:::-;2432:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2422:263;;;;:::o;2691:468::-;2756:6;2764;2813:2;2801:9;2792:7;2788:23;2784:32;2781:2;;;2819:79;;:::i;:::-;2781:2;2939:1;2964:53;3009:7;3000:6;2989:9;2985:22;2964:53;:::i;:::-;2954:63;;2910:117;3066:2;3092:50;3134:7;3125:6;3114:9;3110:22;3092:50;:::i;:::-;3082:60;;3037:115;2771:388;;;;;:::o;3165:118::-;3252:24;3270:5;3252:24;:::i;:::-;3247:3;3240:37;3230:53;;:::o;3289:109::-;3370:21;3385:5;3370:21;:::i;:::-;3365:3;3358:34;3348:50;;:::o;3404:364::-;3492:3;3520:39;3553:5;3520:39;:::i;:::-;3575:71;3639:6;3634:3;3575:71;:::i;:::-;3568:78;;3655:52;3700:6;3695:3;3688:4;3681:5;3677:16;3655:52;:::i;:::-;3732:29;3754:6;3732:29;:::i;:::-;3727:3;3723:39;3716:46;;3496:272;;;;;:::o;3774:366::-;3916:3;3937:67;4001:2;3996:3;3937:67;:::i;:::-;3930:74;;4013:93;4102:3;4013:93;:::i;:::-;4131:2;4126:3;4122:12;4115:19;;3920:220;;;:::o;4146:366::-;4288:3;4309:67;4373:2;4368:3;4309:67;:::i;:::-;4302:74;;4385:93;4474:3;4385:93;:::i;:::-;4503:2;4498:3;4494:12;4487:19;;4292:220;;;:::o;4518:366::-;4660:3;4681:67;4745:2;4740:3;4681:67;:::i;:::-;4674:74;;4757:93;4846:3;4757:93;:::i;:::-;4875:2;4870:3;4866:12;4859:19;;4664:220;;;:::o;4890:366::-;5032:3;5053:67;5117:2;5112:3;5053:67;:::i;:::-;5046:74;;5129:93;5218:3;5129:93;:::i;:::-;5247:2;5242:3;5238:12;5231:19;;5036:220;;;:::o;5262:366::-;5404:3;5425:67;5489:2;5484:3;5425:67;:::i;:::-;5418:74;;5501:93;5590:3;5501:93;:::i;:::-;5619:2;5614:3;5610:12;5603:19;;5408:220;;;:::o;5634:366::-;5776:3;5797:67;5861:2;5856:3;5797:67;:::i;:::-;5790:74;;5873:93;5962:3;5873:93;:::i;:::-;5991:2;5986:3;5982:12;5975:19;;5780:220;;;:::o;6006:366::-;6148:3;6169:67;6233:2;6228:3;6169:67;:::i;:::-;6162:74;;6245:93;6334:3;6245:93;:::i;:::-;6363:2;6358:3;6354:12;6347:19;;6152:220;;;:::o;6378:366::-;6520:3;6541:67;6605:2;6600:3;6541:67;:::i;:::-;6534:74;;6617:93;6706:3;6617:93;:::i;:::-;6735:2;6730:3;6726:12;6719:19;;6524:220;;;:::o;6750:366::-;6892:3;6913:67;6977:2;6972:3;6913:67;:::i;:::-;6906:74;;6989:93;7078:3;6989:93;:::i;:::-;7107:2;7102:3;7098:12;7091:19;;6896:220;;;:::o;7122:364::-;7264:3;7285:66;7349:1;7344:3;7285:66;:::i;:::-;7278:73;;7360:93;7449:3;7360:93;:::i;:::-;7478:1;7473:3;7469:11;7462:18;;7268:218;;;:::o;7492:366::-;7634:3;7655:67;7719:2;7714:3;7655:67;:::i;:::-;7648:74;;7731:93;7820:3;7731:93;:::i;:::-;7849:2;7844:3;7840:12;7833:19;;7638:220;;;:::o;7864:366::-;8006:3;8027:67;8091:2;8086:3;8027:67;:::i;:::-;8020:74;;8103:93;8192:3;8103:93;:::i;:::-;8221:2;8216:3;8212:12;8205:19;;8010:220;;;:::o;8236:118::-;8323:24;8341:5;8323:24;:::i;:::-;8318:3;8311:37;8301:53;;:::o;8360:112::-;8443:22;8459:5;8443:22;:::i;:::-;8438:3;8431:35;8421:51;;:::o;8478:222::-;8571:4;8609:2;8598:9;8594:18;8586:26;;8622:71;8690:1;8679:9;8675:17;8666:6;8622:71;:::i;:::-;8576:124;;;;:::o;8706:320::-;8821:4;8859:2;8848:9;8844:18;8836:26;;8872:71;8940:1;8929:9;8925:17;8916:6;8872:71;:::i;:::-;8953:66;9015:2;9004:9;9000:18;8991:6;8953:66;:::i;:::-;8826:200;;;;;:::o;9032:210::-;9119:4;9157:2;9146:9;9142:18;9134:26;;9170:65;9232:1;9221:9;9217:17;9208:6;9170:65;:::i;:::-;9124:118;;;;:::o;9248:313::-;9361:4;9399:2;9388:9;9384:18;9376:26;;9448:9;9442:4;9438:20;9434:1;9423:9;9419:17;9412:47;9476:78;9549:4;9540:6;9476:78;:::i;:::-;9468:86;;9366:195;;;;:::o;9567:419::-;9733:4;9771:2;9760:9;9756:18;9748:26;;9820:9;9814:4;9810:20;9806:1;9795:9;9791:17;9784:47;9848:131;9974:4;9848:131;:::i;:::-;9840:139;;9738:248;;;:::o;9992:419::-;10158:4;10196:2;10185:9;10181:18;10173:26;;10245:9;10239:4;10235:20;10231:1;10220:9;10216:17;10209:47;10273:131;10399:4;10273:131;:::i;:::-;10265:139;;10163:248;;;:::o;10417:419::-;10583:4;10621:2;10610:9;10606:18;10598:26;;10670:9;10664:4;10660:20;10656:1;10645:9;10641:17;10634:47;10698:131;10824:4;10698:131;:::i;:::-;10690:139;;10588:248;;;:::o;10842:419::-;11008:4;11046:2;11035:9;11031:18;11023:26;;11095:9;11089:4;11085:20;11081:1;11070:9;11066:17;11059:47;11123:131;11249:4;11123:131;:::i;:::-;11115:139;;11013:248;;;:::o;11267:419::-;11433:4;11471:2;11460:9;11456:18;11448:26;;11520:9;11514:4;11510:20;11506:1;11495:9;11491:17;11484:47;11548:131;11674:4;11548:131;:::i;:::-;11540:139;;11438:248;;;:::o;11692:419::-;11858:4;11896:2;11885:9;11881:18;11873:26;;11945:9;11939:4;11935:20;11931:1;11920:9;11916:17;11909:47;11973:131;12099:4;11973:131;:::i;:::-;11965:139;;11863:248;;;:::o;12117:419::-;12283:4;12321:2;12310:9;12306:18;12298:26;;12370:9;12364:4;12360:20;12356:1;12345:9;12341:17;12334:47;12398:131;12524:4;12398:131;:::i;:::-;12390:139;;12288:248;;;:::o;12542:419::-;12708:4;12746:2;12735:9;12731:18;12723:26;;12795:9;12789:4;12785:20;12781:1;12770:9;12766:17;12759:47;12823:131;12949:4;12823:131;:::i;:::-;12815:139;;12713:248;;;:::o;12967:419::-;13133:4;13171:2;13160:9;13156:18;13148:26;;13220:9;13214:4;13210:20;13206:1;13195:9;13191:17;13184:47;13248:131;13374:4;13248:131;:::i;:::-;13240:139;;13138:248;;;:::o;13392:419::-;13558:4;13596:2;13585:9;13581:18;13573:26;;13645:9;13639:4;13635:20;13631:1;13620:9;13616:17;13609:47;13673:131;13799:4;13673:131;:::i;:::-;13665:139;;13563:248;;;:::o;13817:419::-;13983:4;14021:2;14010:9;14006:18;13998:26;;14070:9;14064:4;14060:20;14056:1;14045:9;14041:17;14034:47;14098:131;14224:4;14098:131;:::i;:::-;14090:139;;13988:248;;;:::o;14242:419::-;14408:4;14446:2;14435:9;14431:18;14423:26;;14495:9;14489:4;14485:20;14481:1;14470:9;14466:17;14459:47;14523:131;14649:4;14523:131;:::i;:::-;14515:139;;14413:248;;;:::o;14667:222::-;14760:4;14798:2;14787:9;14783:18;14775:26;;14811:71;14879:1;14868:9;14864:17;14855:6;14811:71;:::i;:::-;14765:124;;;;:::o;14895:214::-;14984:4;15022:2;15011:9;15007:18;14999:26;;15035:67;15099:1;15088:9;15084:17;15075:6;15035:67;:::i;:::-;14989:120;;;;:::o;15196:99::-;15248:6;15282:5;15276:12;15266:22;;15255:40;;;:::o;15301:169::-;15385:11;15419:6;15414:3;15407:19;15459:4;15454:3;15450:14;15435:29;;15397:73;;;;:::o;15476:305::-;15516:3;15535:20;15553:1;15535:20;:::i;:::-;15530:25;;15569:20;15587:1;15569:20;:::i;:::-;15564:25;;15723:1;15655:66;15651:74;15648:1;15645:81;15642:2;;;15729:18;;:::i;:::-;15642:2;15773:1;15770;15766:9;15759:16;;15520:261;;;;:::o;15787:185::-;15827:1;15844:20;15862:1;15844:20;:::i;:::-;15839:25;;15878:20;15896:1;15878:20;:::i;:::-;15873:25;;15917:1;15907:2;;15922:18;;:::i;:::-;15907:2;15964:1;15961;15957:9;15952:14;;15829:143;;;;:::o;15978:348::-;16018:7;16041:20;16059:1;16041:20;:::i;:::-;16036:25;;16075:20;16093:1;16075:20;:::i;:::-;16070:25;;16263:1;16195:66;16191:74;16188:1;16185:81;16180:1;16173:9;16166:17;16162:105;16159:2;;;16270:18;;:::i;:::-;16159:2;16318:1;16315;16311:9;16300:20;;16026:300;;;;:::o;16332:191::-;16372:4;16392:20;16410:1;16392:20;:::i;:::-;16387:25;;16426:20;16444:1;16426:20;:::i;:::-;16421:25;;16465:1;16462;16459:8;16456:2;;;16470:18;;:::i;:::-;16456:2;16515:1;16512;16508:9;16500:17;;16377:146;;;;:::o;16529:96::-;16566:7;16595:24;16613:5;16595:24;:::i;:::-;16584:35;;16574:51;;;:::o;16631:90::-;16665:7;16708:5;16701:13;16694:21;16683:32;;16673:48;;;:::o;16727:126::-;16764:7;16804:42;16797:5;16793:54;16782:65;;16772:81;;;:::o;16859:77::-;16896:7;16925:5;16914:16;;16904:32;;;:::o;16942:86::-;16977:7;17017:4;17010:5;17006:16;16995:27;;16985:43;;;:::o;17034:307::-;17102:1;17112:113;17126:6;17123:1;17120:13;17112:113;;;17211:1;17206:3;17202:11;17196:18;17192:1;17187:3;17183:11;17176:39;17148:2;17145:1;17141:10;17136:15;;17112:113;;;17243:6;17240:1;17237:13;17234:2;;;17323:1;17314:6;17309:3;17305:16;17298:27;17234:2;17083:258;;;;:::o;17347:320::-;17391:6;17428:1;17422:4;17418:12;17408:22;;17475:1;17469:4;17465:12;17496:18;17486:2;;17552:4;17544:6;17540:17;17530:27;;17486:2;17614;17606:6;17603:14;17583:18;17580:38;17577:2;;;17633:18;;:::i;:::-;17577:2;17398:269;;;;:::o;17673:233::-;17712:3;17735:24;17753:5;17735:24;:::i;:::-;17726:33;;17781:66;17774:5;17771:77;17768:2;;;17851:18;;:::i;:::-;17768:2;17898:1;17891:5;17887:13;17880:20;;17716:190;;;:::o;17912:180::-;17960:77;17957:1;17950:88;18057:4;18054:1;18047:15;18081:4;18078:1;18071:15;18098:180;18146:77;18143:1;18136:88;18243:4;18240:1;18233:15;18267:4;18264:1;18257:15;18284:180;18332:77;18329:1;18322:88;18429:4;18426:1;18419:15;18453:4;18450:1;18443:15;18470:180;18518:77;18515:1;18508:88;18615:4;18612:1;18605:15;18639:4;18636:1;18629:15;18779:117;18888:1;18885;18878:12;18902:102;18943:6;18994:2;18990:7;18985:2;18978:5;18974:14;18970:28;18960:38;;18950:54;;;:::o;19010:222::-;19150:34;19146:1;19138:6;19134:14;19127:58;19219:5;19214:2;19206:6;19202:15;19195:30;19116:116;:::o;19238:229::-;19378:34;19374:1;19366:6;19362:14;19355:58;19447:12;19442:2;19434:6;19430:15;19423:37;19344:123;:::o;19473:221::-;19613:34;19609:1;19601:6;19597:14;19590:58;19682:4;19677:2;19669:6;19665:15;19658:29;19579:115;:::o;19700:177::-;19840:29;19836:1;19828:6;19824:14;19817:53;19806:71;:::o;19883:181::-;20023:33;20019:1;20011:6;20007:14;20000:57;19989:75;:::o;20070:220::-;20210:34;20206:1;20198:6;20194:14;20187:58;20279:3;20274:2;20266:6;20262:15;20255:28;20176:114;:::o;20296:182::-;20436:34;20432:1;20424:6;20420:14;20413:58;20402:76;:::o;20484:228::-;20624:34;20620:1;20612:6;20608:14;20601:58;20693:11;20688:2;20680:6;20676:15;20669:36;20590:122;:::o;20718:224::-;20858:34;20854:1;20846:6;20842:14;20835:58;20927:7;20922:2;20914:6;20910:15;20903:32;20824:118;:::o;20948:114::-;21054:8;:::o;21068:223::-;21208:34;21204:1;21196:6;21192:14;21185:58;21277:6;21272:2;21264:6;21260:15;21253:31;21174:117;:::o;21297:231::-;21437:34;21433:1;21425:6;21421:14;21414:58;21506:14;21501:2;21493:6;21489:15;21482:39;21403:125;:::o;21534:122::-;21607:24;21625:5;21607:24;:::i;:::-;21600:5;21597:35;21587:2;;21646:1;21643;21636:12;21587:2;21577:79;:::o;21662:116::-;21732:21;21747:5;21732:21;:::i;:::-;21725:5;21722:32;21712:2;;21768:1;21765;21758:12;21712:2;21702:76;:::o;21784:122::-;21857:24;21875:5;21857:24;:::i;:::-;21850:5;21847:35;21837:2;;21896:1;21893;21886:12;21837:2;21827:79;:::o
Swarm Source
ipfs://2d4793b9d3378c7c46f0e486388eaf22d02bf9afabbd37b37d774c9a0c7f36df
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.