ERC-20
Overview
Max Total Supply
1,000,000,000 ERC20 ***
Holders
74
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.563189378113255344 ERC20 ***Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BitcoinBrinter
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; import "hardhat/console.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ /** * ERC20 standard interface. */ interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address _owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit(uint256 amount) external; function claimDividend(address shareholder) external; function getDividendsClaimedOf( address shareholder ) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public immutable REWARD; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalClaimed; } address[] private shareholders; mapping(address => uint256) private shareholderIndexes; mapping(address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalClaimed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor(address owner, address rewardToken) { _token = msg.sender; _owner = owner; REWARD = address(rewardToken); } receive() external payable {} function setShare( address shareholder, uint256 amount ) external override onlyToken { if (shares[shareholder].amount > 0) { distributeDividend(shareholder); } if (amount > 0 && shares[shareholder].amount == 0) { addShareholder(shareholder); } else if (amount == 0 && shares[shareholder].amount > 0) { removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit(uint256 amount) external override onlyToken { if (amount > 0) { totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add( dividendsPerShareAccuracyFactor.mul(amount).div(totalShares) ); } } function distributeDividend(address shareholder) internal { if (shares[shareholder].amount == 0) { return; } uint256 amount = getClaimableDividendOf(shareholder); if (amount > 0) { totalClaimed = totalClaimed.add(amount); shares[shareholder].totalClaimed = shares[shareholder] .totalClaimed .add(amount); shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); IERC20(REWARD).transfer(shareholder, amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getClaimableDividendOf( address shareholder ) public view returns (uint256) { if (shares[shareholder].amount == 0) { return 0; } uint256 shareholderTotalDividends = getCumulativeDividends( shares[shareholder].amount ); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if (shareholderTotalDividends <= shareholderTotalExcluded) { return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends( uint256 share ) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[ shareholders.length - 1 ]; shareholderIndexes[ shareholders[shareholders.length - 1] ] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } function getDividendsClaimedOf( address shareholder ) external view returns (uint256) { require( shares[shareholder].amount > 0, "You're not a PRINTER shareholder!" ); return shares[shareholder].totalClaimed; } function manualSendGenesis() external onlyToken { IERC20(REWARD).transfer( msg.sender, IERC20(REWARD).balanceOf(address(this)) ); } } contract BitcoinBrinter is IERC20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; address public immutable REWARD; string private constant _name = "HarryPotterObamaSonic10Inu Brinter"; string private constant _symbol = "WBTC"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => uint256) private cooldown; mapping(address => bool) private isFeeExempt; mapping(address => bool) private isDividendExempt; mapping(address => bool) private isBot; address payable public marketingWallet = payable(0x223BbB1437216C8fdf3F2C0F19C493dE8E776f57); address public devaddress = address(0x223BbB1437216C8fdf3F2C0F19C493dE8E776f57); IDEXRouter public router; address public pair; uint256 public launchedAt; bool private tradingOpen; bool private buyLimit = true; uint256 public numTokensSellToAddToLiquidity = 1000000 * 10 ** _decimals; DividendDistributor private distributor; uint private taxBuyPercentage = 20; uint private taxSellPercentage = 40; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor( address _owner, address router_, address _rewardToken ) Auth(_owner) { router = IDEXRouter(router_); WETH = router.WETH(); REWARD = address(_rewardToken); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner, _rewardToken); isFeeExempt[_owner] = true; isFeeExempt[marketingWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[_owner] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable {} function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance( address holder, address spender ) external view override returns (uint256) { return _allowances[holder][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer( address recipient, uint256 amount ) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (sender != owner && recipient != owner) require(tradingOpen, "Trading not yet OPEN"); //transfers disabled before openTrading require(!isBot[sender] && !isBot[recipient], "BOT ALERT"); if (buyLimit) { if (sender != owner && recipient != owner) require(amount <= getMaxBuy(), "NOT AUTHORIZED"); } if ( sender == pair && recipient != address(router) && !isFeeExempt[recipient] ) { require(cooldown[recipient] < block.timestamp); cooldown[recipient] = block.timestamp + 60 seconds; } if (inSwap) { return _basicTransfer(sender, recipient, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; bool runRewards = (overMinTokenBalance && recipient == pair && balanceOf(address(this)) > 0); if (runRewards) { runRewardsForHolders(); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount, recipient == pair) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if (sender != pair && !isDividendExempt[sender]) { try distributor.setShare(sender, _balances[sender]) {} catch {} } if (recipient != pair && !isDividendExempt[recipient]) { try distributor.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee( address sender, address recipient ) internal view returns (bool) { return (!(isFeeExempt[sender] || isFeeExempt[recipient]) && (sender == pair || recipient == pair)); } function takeFee( address sender, uint256 amount, bool isSell ) internal returns (uint256) { uint tax = (amount / 100) * getTaxPercentage(isSell); _balances[address(this)] = _balances[address(this)].add(tax); emit Transfer(sender, address(this), tax); return amount - tax; } function runRewardsForHolders() internal swapping { uint256 amountToSwap = balanceOf(address(this)); swapTokensForEth(amountToSwap.div(2)); swapTokensForREWARD(amountToSwap.div(2)); bool success = IERC20(REWARD).transfer( address(distributor), IERC20(REWARD).balanceOf(address(this)) ); if (success) { distributor.deposit(IERC20(REWARD).balanceOf(address(distributor))); } payable(marketingWallet).transfer(address(this).balance); } function swapTokensForREWARD(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = WETH; path[2] = REWARD; // make the swap router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if (exempt) { distributor.setShare(holder, 0); } else { distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt( address holder, bool exempt ) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(marketingWallet).transfer(contractETHBalance); } function claimDividend() external { distributor.claimDividend(msg.sender); } function renounceOwnership() external onlyOwner { owner = DEAD; } function getClaimableDividendOf( address shareholder ) public view returns (uint256) { return distributor.getClaimableDividendOf(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function getTotalDividends() external view returns (uint256) { return distributor.totalDividends(); } function getTotalClaimed() external view returns (uint256) { return distributor.totalClaimed(); } function getDividendsClaimedOf( address shareholder ) external view returns (uint256) { return distributor.getDividendsClaimedOf(shareholder); } function removeBuyLimit() external onlyOwner { buyLimit = false; } function checkBot(address account) public view returns (bool) { return isBot[account]; } function setSwapThresholdAmount(uint256 amount) external { require( msg.sender == owner || msg.sender == devaddress, "NOT AUTHORIZED" ); require(amount <= _totalSupply.div(100), "can't exceed 1%"); numTokensSellToAddToLiquidity = amount * 10 ** _decimals; } function getTaxPercentage(bool isSell) private view returns (uint256) { return isSell ? taxSellPercentage : taxBuyPercentage; } function setTax(bool isSell, uint percentage) external onlyOwner { if (isSell) { taxSellPercentage = percentage; } else { taxBuyPercentage = percentage; } } function getMaxBuy() public view returns (uint256) { if (buyLimit) { return _totalSupply.div(100).mul(1); } return _totalSupply; } function manualSendGenesis() external { require(msg.sender == owner || msg.sender == devaddress, "No access"); distributor.manualSendGenesis(); uint256 rewardsForHolders = IERC20(REWARD).balanceOf(address(this)); if (rewardsForHolders > 0) { IERC20(REWARD).transfer(marketingWallet, rewardsForHolders); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
// SPDX-License-Identifier: MIT pragma solidity >= 0.4.22 <0.9.0; library console { address constant CONSOLE_ADDRESS = 0x000000000000000000636F6e736F6c652e6c6f67; function _sendLogPayload(bytes memory payload) private view { address consoleAddress = CONSOLE_ADDRESS; /// @solidity memory-safe-assembly assembly { pop(staticcall(gas(), consoleAddress, add(payload, 32), mload(payload), 0, 0)) } } function log() internal view { _sendLogPayload(abi.encodeWithSignature("log()")); } function logInt(int256 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(int256)", p0)); } function logUint(uint256 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256)", p0)); } function logString(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function logBool(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function logAddress(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function logBytes(bytes memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); } function logBytes1(bytes1 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); } function logBytes2(bytes2 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); } function logBytes3(bytes3 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); } function logBytes4(bytes4 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); } function logBytes5(bytes5 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); } function logBytes6(bytes6 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); } function logBytes7(bytes7 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); } function logBytes8(bytes8 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); } function logBytes9(bytes9 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); } function logBytes10(bytes10 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); } function logBytes11(bytes11 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); } function logBytes12(bytes12 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); } function logBytes13(bytes13 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); } function logBytes14(bytes14 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); } function logBytes15(bytes15 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); } function logBytes16(bytes16 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); } function logBytes17(bytes17 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); } function logBytes18(bytes18 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); } function logBytes19(bytes19 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); } function logBytes20(bytes20 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); } function logBytes21(bytes21 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); } function logBytes22(bytes22 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); } function logBytes23(bytes23 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); } function logBytes24(bytes24 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); } function logBytes25(bytes25 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); } function logBytes26(bytes26 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); } function logBytes27(bytes27 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); } function logBytes28(bytes28 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); } function logBytes29(bytes29 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); } function logBytes30(bytes30 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); } function logBytes31(bytes31 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); } function logBytes32(bytes32 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); } function log(uint256 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256)", p0)); } function log(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function log(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function log(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function log(uint256 p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256)", p0, p1)); } function log(uint256 p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string)", p0, p1)); } function log(uint256 p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool)", p0, p1)); } function log(uint256 p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address)", p0, p1)); } function log(string memory p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256)", p0, p1)); } function log(string memory p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); } function log(string memory p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); } function log(string memory p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); } function log(bool p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256)", p0, p1)); } function log(bool p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); } function log(bool p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); } function log(bool p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); } function log(address p0, uint256 p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256)", p0, p1)); } function log(address p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); } function log(address p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); } function log(address p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); } function log(uint256 p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address)", p0, p1, p2)); } function log(uint256 p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256)", p0, p1, p2)); } function log(uint256 p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string)", p0, p1, p2)); } function log(uint256 p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool)", p0, p1, p2)); } function log(uint256 p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address)", p0, p1, p2)); } function log(uint256 p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256)", p0, p1, p2)); } function log(uint256 p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string)", p0, p1, p2)); } function log(uint256 p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool)", p0, p1, p2)); } function log(uint256 p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address)", p0, p1, p2)); } function log(uint256 p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256)", p0, p1, p2)); } function log(uint256 p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string)", p0, p1, p2)); } function log(uint256 p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool)", p0, p1, p2)); } function log(uint256 p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address)", p0, p1, p2)); } function log(string memory p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256)", p0, p1, p2)); } function log(string memory p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string)", p0, p1, p2)); } function log(string memory p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool)", p0, p1, p2)); } function log(string memory p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address)", p0, p1, p2)); } function log(string memory p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256)", p0, p1, p2)); } function log(string memory p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); } function log(string memory p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); } function log(string memory p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); } function log(string memory p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256)", p0, p1, p2)); } function log(string memory p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); } function log(string memory p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); } function log(string memory p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); } function log(string memory p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256)", p0, p1, p2)); } function log(string memory p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); } function log(string memory p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); } function log(string memory p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); } function log(bool p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256)", p0, p1, p2)); } function log(bool p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string)", p0, p1, p2)); } function log(bool p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool)", p0, p1, p2)); } function log(bool p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address)", p0, p1, p2)); } function log(bool p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256)", p0, p1, p2)); } function log(bool p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); } function log(bool p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); } function log(bool p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); } function log(bool p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256)", p0, p1, p2)); } function log(bool p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); } function log(bool p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); } function log(bool p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); } function log(bool p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256)", p0, p1, p2)); } function log(bool p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); } function log(bool p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); } function log(bool p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); } function log(address p0, uint256 p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256)", p0, p1, p2)); } function log(address p0, uint256 p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string)", p0, p1, p2)); } function log(address p0, uint256 p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool)", p0, p1, p2)); } function log(address p0, uint256 p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address)", p0, p1, p2)); } function log(address p0, string memory p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256)", p0, p1, p2)); } function log(address p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); } function log(address p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); } function log(address p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); } function log(address p0, bool p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256)", p0, p1, p2)); } function log(address p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); } function log(address p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); } function log(address p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); } function log(address p0, address p1, uint256 p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256)", p0, p1, p2)); } function log(address p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); } function log(address p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); } function log(address p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); } function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,address)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,uint256)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,string)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,bool)", p0, p1, p2, p3)); } function log(uint256 p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,string)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint256)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,address)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,string)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,bool)", p0, p1, p2, p3)); } function log(bool p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint256)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,address)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,uint256)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,string)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,bool)", p0, p1, p2, p3)); } function log(address p0, uint256 p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint256)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint256)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,string)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, uint256 p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,address)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, uint256 p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint256)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"_rewardToken","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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"REWARD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSendGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isSell","type":"bool"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600280546001600160a01b031990811661dead17909155600380549091169055620000326012600a62000507565b6200004290633b9aca006200051f565b6004819055600555600c80546001600160a01b031990811673223bbb1437216c8fdf3f2c0f19c493de8e776f57908117909255600d805490911690911790556011805461ff0019166101001790556200009e6012600a62000507565b620000ad90620f42406200051f565b601255601480556028601555348015620000c657600080fd5b506040516200358e3803806200358e833981016040819052620000e9916200055e565b600080546001600160a01b038086166001600160a01b031992831617909255600e80549285169290911682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001799190620005a8565b600180546001600160a01b0319166001600160a01b03928316179055818116608052600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002049190620005a8565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c9190620005a8565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600e54909416835292905281902060001990555183908290620002cd90620003e4565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562000301573d6000803e3d6000fd5b50601380546001600160a01b0319166001600160a01b039283161790558381166000818152600960209081526040808320805460ff199081166001908117909255600c54871685528285208054821683179055600f5487168552600a84528285208054821683179055308552828520805482168317905560025490961684528184208054871682179055848452818420805490961617909455600454600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050620005c6565b610d10806200287e83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004495781600019048211156200042d576200042d620003f2565b808516156200043b57918102915b93841c93908002906200040d565b509250929050565b600082620004625750600162000501565b81620004715750600062000501565b81600181146200048a57600281146200049557620004b5565b600191505062000501565b60ff841115620004a957620004a9620003f2565b50506001821b62000501565b5060208310610133831016604e8410600b8410161715620004da575081810a62000501565b620004e6838362000408565b8060001904821115620004fd57620004fd620003f2565b0290505b92915050565b60006200051860ff84168362000451565b9392505050565b60008160001904831182151516156200053c576200053c620003f2565b500290565b80516001600160a01b03811681146200055957600080fd5b919050565b6000806000606084860312156200057457600080fd5b6200057f8462000541565b92506200058f6020850162000541565b91506200059f6040850162000541565b90509250925092565b600060208284031215620005bb57600080fd5b620005188262000541565b608051612279620006056000396000818161065401528181610e7d01528181610f220152818161192801528181611a430152611d9c01526122796000f3fe60806040526004361061023f5760003560e01c806375f0a8741161012e578063c9567bf9116100ab578063f2fde38b1161006f578063f2fde38b146106e7578063f429389014610707578063f708a64f1461071c578063f882ddae1461073c578063f887ea401461075c57600080fd5b8063c9567bf91461062d578063cab34c0814610642578063d12a768814610676578063dd62ed3e1461068c578063f0fc6bca146106d257600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610589578063a9059cbb146105a9578063af5008e1146105c9578063b1a4e0dc146105de578063bf56b3711461061757600080fd5b806375f0a874146104d1578063893d20e8146105095780638ecc37fb1461052757806395d89b411461054757806396790d4a1461057457600080fd5b80633e07ce5b116101bc578063658d4b7f11610180578063658d4b7f1461043c57806367ee5f091461045c57806370a0823114610471578063715018a6146104a7578063736a83a1146104bc57600080fd5b80633e07ce5b146103a75780633e8499e8146103bc578063571ac8b0146103dc5780635cc33f74146103fc5780635d098b381461041c57600080fd5b806329e04b4a1161020357806329e04b4a146103055780632b112e49146103275780632f54bf6e1461033c578063313ce5671461036b578063342aa8b51461038757600080fd5b806306fdde031461024b578063095ea7b31461027657806318160ddd146102a657806323b63585146102c557806323b872dd146102e557600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061077c565b60405161026d9190611e2b565b60405180910390f35b34801561028257600080fd5b50610296610291366004611e95565b61079c565b604051901515815260200161026d565b3480156102b257600080fd5b506004545b60405190815260200161026d565b3480156102d157600080fd5b506102966102e0366004611ec1565b610809565b3480156102f157600080fd5b50610296610300366004611eda565b610855565b34801561031157600080fd5b50610325610320366004611ec1565b610917565b005b34801561033357600080fd5b506102b76109e2565b34801561034857600080fd5b50610296610357366004611f1b565b6000546001600160a01b0391821691161490565b34801561037757600080fd5b506040516012815260200161026d565b34801561039357600080fd5b506103256103a2366004611f46565b610a34565b3480156103b357600080fd5b50610325610a90565b3480156103c857600080fd5b506103256103d7366004611f7f565b610ac7565b3480156103e857600080fd5b506102966103f7366004611f1b565b610b03565b34801561040857600080fd5b506102b7610417366004611f1b565b610b11565b34801561042857600080fd5b50610325610437366004611f1b565b610b81565b34801561044857600080fd5b50610325610457366004611f46565b610bcd565b34801561046857600080fd5b506102b7610c22565b34801561047d57600080fd5b506102b761048c366004611f1b565b6001600160a01b031660009081526006602052604090205490565b3480156104b357600080fd5b50610325610c90565b3480156104c857600080fd5b506102b7610cde565b3480156104dd57600080fd5b50600c546104f1906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561051557600080fd5b506000546001600160a01b03166104f1565b34801561053357600080fd5b506102b7610542366004611f1b565b610d28565b34801561055357600080fd5b506040805180820190915260048152635742544360e01b6020820152610260565b34801561058057600080fd5b506102b7610d5b565b34801561059557600080fd5b50600f546104f1906001600160a01b031681565b3480156105b557600080fd5b506102966105c4366004611e95565b610d96565b3480156105d557600080fd5b50610325610da3565b3480156105ea57600080fd5b506102966105f9366004611f1b565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561062357600080fd5b506102b760105481565b34801561063957600080fd5b50610325610f94565b34801561064e57600080fd5b506104f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561068257600080fd5b506102b760125481565b34801561069857600080fd5b506102b76106a7366004611f9d565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106de57600080fd5b50610325610fd1565b3480156106f357600080fd5b50610325610702366004611f1b565b611030565b34801561071357600080fd5b506103256110ae565b34801561072857600080fd5b50610325610737366004611f46565b611112565b34801561074857600080fd5b50600d546104f1906001600160a01b031681565b34801561076857600080fd5b50600e546104f1906001600160a01b031681565b606060405180606001604052806022815260200161222260229139905090565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f79086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b0316331461083d5760405162461bcd60e51b815260040161083490611fcb565b60405180910390fd5b6002546108039030906001600160a01b031684611146565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610902576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108dd91849061122c565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61090d848484611258565b90505b9392505050565b6000546001600160a01b031633148061093a5750600d546001600160a01b031633145b6109775760405162461bcd60e51b815260206004820152600e60248201526d1393d5081055551213d49256915160921b6044820152606401610834565b60045461098590606461177f565b8111156109c65760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610834565b6109d26012600a6120e5565b6109dc90826120f4565b60125550565b6003546001600160a01b0316600090815260066020526040812054610a2f906002546001600160a01b0316600090815260066020526040902054610a29906004549061178b565b9061178b565b905090565b6000546001600160a01b03163314610a5e5760405162461bcd60e51b815260040161083490611fcb565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610a8c8282611797565b5050565b6000546001600160a01b03163314610aba5760405162461bcd60e51b815260040161083490611fcb565b6011805461ff0019169055565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161083490611fcb565b8115610afd5760155550565b60145550565b60006108038260001961079c565b601354604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108039190612113565b6000546001600160a01b03163314610bab5760405162461bcd60e51b815260040161083490611fcb565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bf75760405162461bcd60e51b815260040161083490611fcb565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6013546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f9190612113565b6000546001600160a01b03163314610cba5760405162461bcd60e51b815260040161083490611fcb565b600254600080546001600160a01b0319166001600160a01b03909216919091179055565b6013546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c6c573d6000803e3d6000fd5b601354604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b40565b601154600090610100900460ff1615610d8f57610a2f6001610d89606460045461177f90919063ffffffff16565b906118a8565b5060045490565b6000610910338484611258565b6000546001600160a01b0316331480610dc65750600d546001600160a01b031633145b610dfe5760405162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b6044820152606401610834565b601360009054906101000a90046001600160a01b03166001600160a01b031663af5008e16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e4e57600080fd5b505af1158015610e62573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691506370a0823190602401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190612113565b90508015610f9157600c5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015610f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c919061212c565b50565b6000546001600160a01b03163314610fbe5760405162461bcd60e51b815260040161083490611fcb565b436010556011805460ff19166001179055565b601354604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461105a5760405162461bcd60e51b815260040161083490611fcb565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146110d85760405162461bcd60e51b815260040161083490611fcb565b600c5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a8c573d6000803e3d6000fd5b6000546001600160a01b0316331461113c5760405162461bcd60e51b815260040161083490611fcb565b610a8c8282611797565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461119791849061122c565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546111c690836118b4565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121a9086815260200190565b60405180910390a35060019392505050565b600081848411156112505760405162461bcd60e51b81526004016108349190611e2b565b505050900390565b600080546001600160a01b0385811691161480159061128557506000546001600160a01b03848116911614155b156112d35760115460ff166112d35760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1027a822a760611b6044820152606401610834565b6001600160a01b0384166000908152600b602052604090205460ff1615801561131557506001600160a01b0383166000908152600b602052604090205460ff16155b61134d5760405162461bcd60e51b81526020600482015260096024820152681093d508105311549560ba1b6044820152606401610834565b601154610100900460ff16156113d6576000546001600160a01b0385811691161480159061138957506000546001600160a01b03848116911614155b156113d657611396610d5b565b8211156113d65760405162461bcd60e51b815260206004820152600e60248201526d1393d5081055551213d49256915160921b6044820152606401610834565b600f546001600160a01b0385811691161480156114015750600e546001600160a01b03848116911614155b801561142657506001600160a01b03831660009081526009602052604090205460ff16155b15611474576001600160a01b038316600090815260086020526040902054421161144f57600080fd5b61145a42603c612149565b6001600160a01b0384166000908152600860205260409020555b60165460ff16156114915761148a848484611146565b9050610910565b3060009081526006602052604081205460125490919082108015919082906114c65750600f546001600160a01b038781169116145b80156114df575030600090815260066020526040812054115b905080156114ef576114ef6118c0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526006909152919091205461154191879061122c565b6001600160a01b0388166000908152600660205260408120919091556115678888611b49565b611571578561158f565b600f5461158f90899088906001600160a01b038b8116911614611bbe565b6001600160a01b0388166000908152600660205260409020549091506115b590826118b4565b6001600160a01b03808916600090815260066020526040902091909155600f5489821691161480159061160157506001600160a01b0388166000908152600a602052604090205460ff16155b15611677576013546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561166457600080fd5b505af1925050508015611675575060015b505b600f546001600160a01b038881169116148015906116ae57506001600160a01b0387166000908152600a602052604090205460ff16155b15611724576013546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561171157600080fd5b505af1925050508015611722575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176991815260200190565b60405180910390a3506001979650505050505050565b60006109108284612161565b60006109108284612183565b6001600160a01b03821630148015906117be5750600f546001600160a01b03838116911614155b6117c757600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561185f57601354604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050505050565b6013546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611829565b600061091082846120f4565b60006109108284612149565b6016805460ff191660011790553060009081526006602052604081205490506118f26118ed82600261177f565b611c68565b61190561190082600261177f565b611d13565b6013546040516370a0823160e01b81523060048201526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190612113565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156119ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a10919061212c565b90508015611b01576013546040516370a0823160e01b81526001600160a01b03918216600482018190529163b6b55f25917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab09190612113565b6040518263ffffffff1660e01b8152600401611ace91815260200190565b600060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050505b600c546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611b3a573d6000803e3d6000fd5b50506016805460ff1916905550565b6001600160a01b03821660009081526009602052604081205460ff1680611b8857506001600160a01b03821660009081526009602052604090205460ff165b1580156109105750600f546001600160a01b0384811691161480610910575050600f546001600160a01b03908116911614919050565b600080611bca83611e14565b611bd5606486612161565b611bdf91906120f4565b30600090815260066020526040902054909150611bfc90826118b4565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c4d9085815260200190565b60405180910390a3611c5f8185612183565b95945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c9d57611c9d61219a565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611ccd57611ccd61219a565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac947906118299085906000908690309042906004016121b0565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611d4a57611d4a61219a565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611d7a57611d7a61219a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611dce57611dce61219a565b6001600160a01b039283166020918202929092010152600e54604051635c11d79560e01b8152911690635c11d795906118299085906000908690309042906004016121b0565b600081611e2357601454610803565b505060155490565b600060208083528351808285015260005b81811015611e5857858101830151858201604001528201611e3c565b81811115611e6a576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f9157600080fd5b60008060408385031215611ea857600080fd5b8235611eb381611e80565b946020939093013593505050565b600060208284031215611ed357600080fd5b5035919050565b600080600060608486031215611eef57600080fd5b8335611efa81611e80565b92506020840135611f0a81611e80565b929592945050506040919091013590565b600060208284031215611f2d57600080fd5b813561091081611e80565b8015158114610f9157600080fd5b60008060408385031215611f5957600080fd5b8235611f6481611e80565b91506020830135611f7481611f38565b809150509250929050565b60008060408385031215611f9257600080fd5b8235611eb381611f38565b60008060408385031215611fb057600080fd5b8235611fbb81611e80565b91506020830135611f7481611e80565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561203c57816000190482111561202257612022611feb565b8085161561202f57918102915b93841c9390800290612006565b509250929050565b60008261205357506001610803565b8161206057506000610803565b816001811461207657600281146120805761209c565b6001915050610803565b60ff84111561209157612091611feb565b50506001821b610803565b5060208310610133831016604e8410600b84101617156120bf575081810a610803565b6120c98383612001565b80600019048211156120dd576120dd611feb565b029392505050565b600061091060ff841683612044565b600081600019048311821515161561210e5761210e611feb565b500290565b60006020828403121561212557600080fd5b5051919050565b60006020828403121561213e57600080fd5b815161091081611f38565b6000821982111561215c5761215c611feb565b500190565b60008261217e57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561219557612195611feb565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122005784516001600160a01b0316835293830193918301916001016121db565b50506001600160a01b0396909616606085015250505060800152939250505056fe4861727279506f747465724f62616d61536f6e69633130496e75204272696e746572a2646970667358221220513f4d4718a7e8d6173b7f52800dde55b51bc4a760e3207034e28180fc45f61564736f6c634300080d003360a06040526ec097ce7bc90715b34b9f100000000060095534801561002357600080fd5b50604051610d10380380610d1083398101604081905261004291610091565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03938416179055166080526100c4565b80516001600160a01b038116811461008c57600080fd5b919050565b600080604083850312156100a457600080fd5b6100ad83610075565b91506100bb60208401610075565b90509250929050565b608051610c236100ed600039600081816102580152818161066101526108780152610c236000f3fe6080604052600436106100ec5760003560e01c8063af5008e11161008a578063ce7c2ac211610059578063ce7c2ac21461027a578063d54ad2a1146102d1578063e2d2e219146102e7578063ecd0c0c3146102fd57600080fd5b8063af5008e1146101d9578063b2bdfa7b146101ee578063b6b55f2514610226578063cab34c081461024657600080fd5b80633a98ef39116100c65780633a98ef391461015a5780635cc33f74146101835780638ecc37fb146101a3578063997664d7146101c357600080fd5b80631014edf5146100f857806314b6ca961461011a57806315f7e05e1461013a57600080fd5b366100f357005b600080fd5b34801561010457600080fd5b50610118610113366004610a76565b61031d565b005b34801561012657600080fd5b50610118610135366004610aa2565b61037d565b34801561014657600080fd5b50610118610155366004610acc565b6104f5565b34801561016657600080fd5b5061017060055481565b6040519081526020015b60405180910390f35b34801561018f57600080fd5b5061017061019e366004610acc565b610518565b3480156101af57600080fd5b506101706101be366004610acc565b6105aa565b3480156101cf57600080fd5b5061017060065481565b3480156101e557600080fd5b50610118610635565b3480156101fa57600080fd5b5060015461020e906001600160a01b031681565b6040516001600160a01b03909116815260200161017a565b34801561023257600080fd5b50610118610241366004610ae7565b61074d565b34801561025257600080fd5b5061020e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561028657600080fd5b506102b6610295366004610acc565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161017a565b3480156102dd57600080fd5b5061017060075481565b3480156102f357600080fd5b5061017060085481565b34801561030957600080fd5b5060005461020e906001600160a01b031681565b6001546001600160a01b0316331461033457600080fd5b476001600160a01b0382166108fc8461034d578261034f565b845b6040518115909202916000818181858888f19350505050158015610377573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461039457600080fd5b6001600160a01b038216600090815260046020526040902054156103bb576103bb826107a7565b6000811180156103e157506001600160a01b038216600090815260046020526040902054155b1561044757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561047a565b8015801561046c57506001600160a01b03821660009081526004602052604090205415155b1561047a5761047a826108eb565b6001600160a01b0382166000908152600460205260409020546005546104ab9183916104a591610a00565b90610a13565b6005556001600160a01b03821660009081526004602052604090208190556104d281610a1f565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b0316331461050c57600080fd5b610515816107a7565b50565b6001600160a01b03811660009081526004602052604081205461058b5760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b606482015260840160405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105d157506000919050565b6001600160a01b0382166000908152600460205260408120546105f390610a1f565b6001600160a01b038416600090815260046020526040902060010154909150808211610623575060009392505050565b61062d8282610a00565b949350505050565b6000546001600160a01b0316331461064c57600080fd5b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de9190610b00565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610729573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105159190610b19565b6000546001600160a01b0316331461076457600080fd5b8015610515576006546107779082610a13565b6006556005546009546107a191610798916107929085610a42565b90610a4e565b60085490610a13565b60085550565b6001600160a01b03811660009081526004602052604081205490036107c95750565b60006107d4826105aa565b905080156108e7576007546107e99082610a13565b6007556001600160a01b0382166000908152600460205260409020600201546108129082610a13565b6001600160a01b038316600090815260046020526040902060028101919091555461083c90610a1f565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190610b19565b505b5050565b600280546108fb90600190610b51565b8154811061090b5761090b610b68565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061094957610949610b68565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161099590600190610b51565b815481106109a5576109a5610b68565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806109db576109db610b7e565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610a0c8284610b51565b9392505050565b6000610a0c8284610b94565b6000610a3c60095461079260085485610a4290919063ffffffff16565b92915050565b6000610a0c8284610bac565b6000610a0c8284610bcb565b80356001600160a01b0381168114610a7157600080fd5b919050565b60008060408385031215610a8957600080fd5b82359150610a9960208401610a5a565b90509250929050565b60008060408385031215610ab557600080fd5b610abe83610a5a565b946020939093013593505050565b600060208284031215610ade57600080fd5b610a0c82610a5a565b600060208284031215610af957600080fd5b5035919050565b600060208284031215610b1257600080fd5b5051919050565b600060208284031215610b2b57600080fd5b81518015158114610a0c57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610b6357610b63610b3b565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610ba757610ba7610b3b565b500190565b6000816000190483118215151615610bc657610bc6610b3b565b500290565b600082610be857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f5ad499d0f2bd9f58a4801388d0748c734d066dca955c0c0d4862f604b859e1d64736f6c634300080d00330000000000000000000000007177cf50b5edfba234c135ebf088ef236b8bb22d0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea9
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806375f0a8741161012e578063c9567bf9116100ab578063f2fde38b1161006f578063f2fde38b146106e7578063f429389014610707578063f708a64f1461071c578063f882ddae1461073c578063f887ea401461075c57600080fd5b8063c9567bf91461062d578063cab34c0814610642578063d12a768814610676578063dd62ed3e1461068c578063f0fc6bca146106d257600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610589578063a9059cbb146105a9578063af5008e1146105c9578063b1a4e0dc146105de578063bf56b3711461061757600080fd5b806375f0a874146104d1578063893d20e8146105095780638ecc37fb1461052757806395d89b411461054757806396790d4a1461057457600080fd5b80633e07ce5b116101bc578063658d4b7f11610180578063658d4b7f1461043c57806367ee5f091461045c57806370a0823114610471578063715018a6146104a7578063736a83a1146104bc57600080fd5b80633e07ce5b146103a75780633e8499e8146103bc578063571ac8b0146103dc5780635cc33f74146103fc5780635d098b381461041c57600080fd5b806329e04b4a1161020357806329e04b4a146103055780632b112e49146103275780632f54bf6e1461033c578063313ce5671461036b578063342aa8b51461038757600080fd5b806306fdde031461024b578063095ea7b31461027657806318160ddd146102a657806323b63585146102c557806323b872dd146102e557600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061077c565b60405161026d9190611e2b565b60405180910390f35b34801561028257600080fd5b50610296610291366004611e95565b61079c565b604051901515815260200161026d565b3480156102b257600080fd5b506004545b60405190815260200161026d565b3480156102d157600080fd5b506102966102e0366004611ec1565b610809565b3480156102f157600080fd5b50610296610300366004611eda565b610855565b34801561031157600080fd5b50610325610320366004611ec1565b610917565b005b34801561033357600080fd5b506102b76109e2565b34801561034857600080fd5b50610296610357366004611f1b565b6000546001600160a01b0391821691161490565b34801561037757600080fd5b506040516012815260200161026d565b34801561039357600080fd5b506103256103a2366004611f46565b610a34565b3480156103b357600080fd5b50610325610a90565b3480156103c857600080fd5b506103256103d7366004611f7f565b610ac7565b3480156103e857600080fd5b506102966103f7366004611f1b565b610b03565b34801561040857600080fd5b506102b7610417366004611f1b565b610b11565b34801561042857600080fd5b50610325610437366004611f1b565b610b81565b34801561044857600080fd5b50610325610457366004611f46565b610bcd565b34801561046857600080fd5b506102b7610c22565b34801561047d57600080fd5b506102b761048c366004611f1b565b6001600160a01b031660009081526006602052604090205490565b3480156104b357600080fd5b50610325610c90565b3480156104c857600080fd5b506102b7610cde565b3480156104dd57600080fd5b50600c546104f1906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561051557600080fd5b506000546001600160a01b03166104f1565b34801561053357600080fd5b506102b7610542366004611f1b565b610d28565b34801561055357600080fd5b506040805180820190915260048152635742544360e01b6020820152610260565b34801561058057600080fd5b506102b7610d5b565b34801561059557600080fd5b50600f546104f1906001600160a01b031681565b3480156105b557600080fd5b506102966105c4366004611e95565b610d96565b3480156105d557600080fd5b50610325610da3565b3480156105ea57600080fd5b506102966105f9366004611f1b565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561062357600080fd5b506102b760105481565b34801561063957600080fd5b50610325610f94565b34801561064e57600080fd5b506104f17f00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea981565b34801561068257600080fd5b506102b760125481565b34801561069857600080fd5b506102b76106a7366004611f9d565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106de57600080fd5b50610325610fd1565b3480156106f357600080fd5b50610325610702366004611f1b565b611030565b34801561071357600080fd5b506103256110ae565b34801561072857600080fd5b50610325610737366004611f46565b611112565b34801561074857600080fd5b50600d546104f1906001600160a01b031681565b34801561076857600080fd5b50600e546104f1906001600160a01b031681565b606060405180606001604052806022815260200161222260229139905090565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f79086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b0316331461083d5760405162461bcd60e51b815260040161083490611fcb565b60405180910390fd5b6002546108039030906001600160a01b031684611146565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610902576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108dd91849061122c565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61090d848484611258565b90505b9392505050565b6000546001600160a01b031633148061093a5750600d546001600160a01b031633145b6109775760405162461bcd60e51b815260206004820152600e60248201526d1393d5081055551213d49256915160921b6044820152606401610834565b60045461098590606461177f565b8111156109c65760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610834565b6109d26012600a6120e5565b6109dc90826120f4565b60125550565b6003546001600160a01b0316600090815260066020526040812054610a2f906002546001600160a01b0316600090815260066020526040902054610a29906004549061178b565b9061178b565b905090565b6000546001600160a01b03163314610a5e5760405162461bcd60e51b815260040161083490611fcb565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610a8c8282611797565b5050565b6000546001600160a01b03163314610aba5760405162461bcd60e51b815260040161083490611fcb565b6011805461ff0019169055565b6000546001600160a01b03163314610af15760405162461bcd60e51b815260040161083490611fcb565b8115610afd5760155550565b60145550565b60006108038260001961079c565b601354604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108039190612113565b6000546001600160a01b03163314610bab5760405162461bcd60e51b815260040161083490611fcb565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bf75760405162461bcd60e51b815260040161083490611fcb565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6013546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f9190612113565b6000546001600160a01b03163314610cba5760405162461bcd60e51b815260040161083490611fcb565b600254600080546001600160a01b0319166001600160a01b03909216919091179055565b6013546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c6c573d6000803e3d6000fd5b601354604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b40565b601154600090610100900460ff1615610d8f57610a2f6001610d89606460045461177f90919063ffffffff16565b906118a8565b5060045490565b6000610910338484611258565b6000546001600160a01b0316331480610dc65750600d546001600160a01b031633145b610dfe5760405162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b6044820152606401610834565b601360009054906101000a90046001600160a01b03166001600160a01b031663af5008e16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e4e57600080fd5b505af1158015610e62573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092507f00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea96001600160a01b031691506370a0823190602401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190612113565b90508015610f9157600c5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390527f00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea99091169063a9059cbb906044016020604051808303816000875af1158015610f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c919061212c565b50565b6000546001600160a01b03163314610fbe5760405162461bcd60e51b815260040161083490611fcb565b436010556011805460ff19166001179055565b601354604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b15801561101657600080fd5b505af115801561102a573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461105a5760405162461bcd60e51b815260040161083490611fcb565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146110d85760405162461bcd60e51b815260040161083490611fcb565b600c5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a8c573d6000803e3d6000fd5b6000546001600160a01b0316331461113c5760405162461bcd60e51b815260040161083490611fcb565b610a8c8282611797565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461119791849061122c565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546111c690836118b4565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121a9086815260200190565b60405180910390a35060019392505050565b600081848411156112505760405162461bcd60e51b81526004016108349190611e2b565b505050900390565b600080546001600160a01b0385811691161480159061128557506000546001600160a01b03848116911614155b156112d35760115460ff166112d35760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1027a822a760611b6044820152606401610834565b6001600160a01b0384166000908152600b602052604090205460ff1615801561131557506001600160a01b0383166000908152600b602052604090205460ff16155b61134d5760405162461bcd60e51b81526020600482015260096024820152681093d508105311549560ba1b6044820152606401610834565b601154610100900460ff16156113d6576000546001600160a01b0385811691161480159061138957506000546001600160a01b03848116911614155b156113d657611396610d5b565b8211156113d65760405162461bcd60e51b815260206004820152600e60248201526d1393d5081055551213d49256915160921b6044820152606401610834565b600f546001600160a01b0385811691161480156114015750600e546001600160a01b03848116911614155b801561142657506001600160a01b03831660009081526009602052604090205460ff16155b15611474576001600160a01b038316600090815260086020526040902054421161144f57600080fd5b61145a42603c612149565b6001600160a01b0384166000908152600860205260409020555b60165460ff16156114915761148a848484611146565b9050610910565b3060009081526006602052604081205460125490919082108015919082906114c65750600f546001600160a01b038781169116145b80156114df575030600090815260066020526040812054115b905080156114ef576114ef6118c0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526006909152919091205461154191879061122c565b6001600160a01b0388166000908152600660205260408120919091556115678888611b49565b611571578561158f565b600f5461158f90899088906001600160a01b038b8116911614611bbe565b6001600160a01b0388166000908152600660205260409020549091506115b590826118b4565b6001600160a01b03808916600090815260066020526040902091909155600f5489821691161480159061160157506001600160a01b0388166000908152600a602052604090205460ff16155b15611677576013546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561166457600080fd5b505af1925050508015611675575060015b505b600f546001600160a01b038881169116148015906116ae57506001600160a01b0387166000908152600a602052604090205460ff16155b15611724576013546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561171157600080fd5b505af1925050508015611722575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176991815260200190565b60405180910390a3506001979650505050505050565b60006109108284612161565b60006109108284612183565b6001600160a01b03821630148015906117be5750600f546001600160a01b03838116911614155b6117c757600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561185f57601354604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050505050565b6013546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611829565b600061091082846120f4565b60006109108284612149565b6016805460ff191660011790553060009081526006602052604081205490506118f26118ed82600261177f565b611c68565b61190561190082600261177f565b611d13565b6013546040516370a0823160e01b81523060048201526000916001600160a01b037f00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea981169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190612113565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156119ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a10919061212c565b90508015611b01576013546040516370a0823160e01b81526001600160a01b03918216600482018190529163b6b55f25917f00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea9909116906370a0823190602401602060405180830381865afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab09190612113565b6040518263ffffffff1660e01b8152600401611ace91815260200190565b600060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050505b600c546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611b3a573d6000803e3d6000fd5b50506016805460ff1916905550565b6001600160a01b03821660009081526009602052604081205460ff1680611b8857506001600160a01b03821660009081526009602052604090205460ff165b1580156109105750600f546001600160a01b0384811691161480610910575050600f546001600160a01b03908116911614919050565b600080611bca83611e14565b611bd5606486612161565b611bdf91906120f4565b30600090815260066020526040902054909150611bfc90826118b4565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c4d9085815260200190565b60405180910390a3611c5f8185612183565b95945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c9d57611c9d61219a565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611ccd57611ccd61219a565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac947906118299085906000908690309042906004016121b0565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611d4a57611d4a61219a565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611d7a57611d7a61219a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea981600281518110611dce57611dce61219a565b6001600160a01b039283166020918202929092010152600e54604051635c11d79560e01b8152911690635c11d795906118299085906000908690309042906004016121b0565b600081611e2357601454610803565b505060155490565b600060208083528351808285015260005b81811015611e5857858101830151858201604001528201611e3c565b81811115611e6a576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f9157600080fd5b60008060408385031215611ea857600080fd5b8235611eb381611e80565b946020939093013593505050565b600060208284031215611ed357600080fd5b5035919050565b600080600060608486031215611eef57600080fd5b8335611efa81611e80565b92506020840135611f0a81611e80565b929592945050506040919091013590565b600060208284031215611f2d57600080fd5b813561091081611e80565b8015158114610f9157600080fd5b60008060408385031215611f5957600080fd5b8235611f6481611e80565b91506020830135611f7481611f38565b809150509250929050565b60008060408385031215611f9257600080fd5b8235611eb381611f38565b60008060408385031215611fb057600080fd5b8235611fbb81611e80565b91506020830135611f7481611e80565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561203c57816000190482111561202257612022611feb565b8085161561202f57918102915b93841c9390800290612006565b509250929050565b60008261205357506001610803565b8161206057506000610803565b816001811461207657600281146120805761209c565b6001915050610803565b60ff84111561209157612091611feb565b50506001821b610803565b5060208310610133831016604e8410600b84101617156120bf575081810a610803565b6120c98383612001565b80600019048211156120dd576120dd611feb565b029392505050565b600061091060ff841683612044565b600081600019048311821515161561210e5761210e611feb565b500290565b60006020828403121561212557600080fd5b5051919050565b60006020828403121561213e57600080fd5b815161091081611f38565b6000821982111561215c5761215c611feb565b500190565b60008261217e57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561219557612195611feb565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122005784516001600160a01b0316835293830193918301916001016121db565b50506001600160a01b0396909616606085015250505060800152939250505056fe4861727279506f747465724f62616d61536f6e69633130496e75204272696e746572a2646970667358221220513f4d4718a7e8d6173b7f52800dde55b51bc4a760e3207034e28180fc45f61564736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007177cf50b5edfba234c135ebf088ef236b8bb22d0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea9
-----Decoded View---------------
Arg [0] : _owner (address): 0x7177cF50b5eDfbA234C135EBf088eF236B8Bb22D
Arg [1] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [2] : _rewardToken (address): 0x72e4f9F808C49A2a61dE9C5896298920Dc4EEEa9
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007177cf50b5edfba234c135ebf088ef236b8bb22d
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [2] : 00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.