Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
256,723.87 Chill

Holders:
2
Profile Summary
Blockchain:
Base (8453)


Decimals:
18
Contract Source Code Verified (Exact Match)
Contract Name:
Wow

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Created At:
Mon, 25 Nov 2024 21:34:03 GMT
Wow.sol
contracts
Wow.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_protocolFeeRecipient",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_protocolRewards",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_weth",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_nonfungiblePositionManager",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_swapRouter",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "target",
        "type": "address"
      }
    ],
    "name": "AddressEmptyCode",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "AddressInsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "AddressZero",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "allowance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSpender",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "EthAmountTooSmall",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "EthTransferFailed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "FailedInnerCall",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InitialOrderSizeTooLarge",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientFunds",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientLiquidity",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidInitialization",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidMarketType",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MarketAlreadyGraduated",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MarketNotGraduated",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotInitializing",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyPool",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyWeth",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ReentrancyGuardReentrantCall",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "SafeERC20FailedOperation",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SlippageBoundsExceeded",
    "type": "error"
  },
  {
    "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": "uint64",
        "name": "version",
        "type": "uint64"
      }
    ],
    "name": "Initialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "tokenAddress",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "poolAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalEthLiquidity",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalTokenLiquidity",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "lpPositionId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "enum IWow.MarketType",
        "name": "marketType",
        "type": "uint8"
      }
    ],
    "name": "WowMarketGraduated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "buyer",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "orderReferrer",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalEth",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethSold",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensBought",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "buyerTokenBalance",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "comment",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalSupply",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "enum IWow.MarketType",
        "name": "marketType",
        "type": "uint8"
      }
    ],
    "name": "WowTokenBuy",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "tokenCreator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "platformReferrer",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "orderReferrer",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "protocolFeeRecipient",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokenCreatorFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "platformReferrerFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "orderReferrerFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "protocolFee",
        "type": "uint256"
      }
    ],
    "name": "WowTokenFees",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "totalAmountEth",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "totalAmountToken",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "creatorAmountEth",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "creatorAmountToken",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "platformReferrerAmountEth",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "platformReferrerAmountToken",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "protocolAmountEth",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "protocolAmountToken",
            "type": "uint256"
          }
        ],
        "indexed": false,
        "internalType": "struct IWow.SecondaryRewards",
        "name": "rewards",
        "type": "tuple"
      }
    ],
    "name": "WowTokenSecondaryRewards",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "seller",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "orderReferrer",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalEth",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethFee",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethBought",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensSold",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "sellerTokenBalance",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "comment",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalSupply",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "enum IWow.MarketType",
        "name": "marketType",
        "type": "uint8"
      }
    ],
    "name": "WowTokenSell",
    "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": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "fromTokenBalance",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "toTokenBalance",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalSupply",
        "type": "uint256"
      }
    ],
    "name": "WowTokenTransfer",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "MAX_TOTAL_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_ORDER_SIZE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ORDER_REFERRER_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "PLATFORM_REFERRER_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "PROTOCOL_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TOKEN_CREATOR_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TOTAL_FEE_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WETH",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "bondingCurve",
    "outputs": [
      {
        "internalType": "contract BondingCurve",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokensToBurn",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "refundRecipient",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "orderReferrer",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "comment",
        "type": "string"
      },
      {
        "internalType": "enum IWow.MarketType",
        "name": "expectedMarketType",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "minOrderSize",
        "type": "uint256"
      },
      {
        "internalType": "uint160",
        "name": "sqrtPriceLimitX96",
        "type": "uint160"
      }
    ],
    "name": "buy",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "pushEthRewards",
        "type": "bool"
      }
    ],
    "name": "claimSecondaryRewards",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "currentExchangeRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "ethOrderSize",
        "type": "uint256"
      }
    ],
    "name": "getEthBuyQuote",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "ethOrderSize",
        "type": "uint256"
      }
    ],
    "name": "getEthSellQuote",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenOrderSize",
        "type": "uint256"
      }
    ],
    "name": "getTokenBuyQuote",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenOrderSize",
        "type": "uint256"
      }
    ],
    "name": "getTokenSellQuote",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_tokenCreator",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_platformReferrer",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_bondingCurve",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_tokenURI",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lpTokenId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "marketType",
    "outputs": [
      {
        "internalType": "enum IWow.MarketType",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "nonfungiblePositionManager",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "",
        "type": "bytes"
      }
    ],
    "name": "onERC721Received",
    "outputs": [
      {
        "internalType": "bytes4",
        "name": "",
        "type": "bytes4"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "platformReferrer",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "poolAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "protocolFeeRecipient",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "protocolRewards",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokensToSell",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "orderReferrer",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "comment",
        "type": "string"
      },
      {
        "internalType": "enum IWow.MarketType",
        "name": "expectedMarketType",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "minPayoutSize",
        "type": "uint256"
      },
      {
        "internalType": "uint160",
        "name": "sqrtPriceLimitX96",
        "type": "uint160"
      }
    ],
    "name": "sell",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "state",
    "outputs": [
      {
        "components": [
          {
            "internalType": "enum IWow.MarketType",
            "name": "marketType",
            "type": "uint8"
          },
          {
            "internalType": "address",
            "name": "marketAddress",
            "type": "address"
          }
        ],
        "internalType": "struct IWow.MarketState",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapRouter",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tokenCreator",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "",
        "type": "bytes"
      }
    ],
    "name": "uniswapV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
6101203461043757601f615fb538819003918201601f19168301916001600160401b03918284118585101761043c578160a092869260409687528339810103126104375761004c83610452565b9061005960208501610452565b93610065848201610452565b9061007e608061007760608401610452565b9201610452565b917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0094855460ff81891c16159581168015908161042f575b6001149081610425575b15908161041c575b5061040b576001600160401b031981166001178755856103ee575b506001600160a01b03818116156103dd57808916156103dd57808316156103dd57808416156103dd578416156103cc5760e05261010096875260805260a05260c05261038c575b5051615b4e918261046783396080518281816105bd015281816105e70152818161060a0152818161064a015281816109560152818161099a01528181610a0001528181610a5a01528181610a8a01528181610aae01528181610ae101528181610b1401528181610b9401528181610f9a01528181611181015281816111c50152818161124b0152818161129b0152818161147e01528181611af801528181612010015281816126eb0152818161273001528181612797015281816127f1015281816128210152818161284501528181612878015281816128ab0152818161292c01528181612d1e01528181612ece01528181612f1101528181612f9701528181612fea01528181613add01528181613cce01528181613d1201528181613d7801528181613dd201528181613e0201528181613e2601528181613e5901528181613e8c01528181613f0c015281816142e40152818161445c015281816144a00152818161452b0152818161458101528181615060015261537d015260a0518281816106c4015281816109df01528181610a3201528181610cf901528181611a9801528181612776015281816127c901528181612a9101528181613d5701528181613daa015281816140710152614ffc015260c05182818161121201528181611309015281816118c501528181611fa401528181612f5e0152818161305b01526144e5015260e05182818161180e015281816122d20152818161243e01528181614b7601528181614dde01528181614ee70152818161546601526156280152518181816123770152818161334401528181614be001528181614e2101526155110152f35b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26020825160018152a13861012a565b8651639fabe1c160e01b8152600490fd5b8751639fabe1c160e01b8152600490fd5b6001600160481b03191668010000000000000001178655386100e3565b875163f92ee8a960e01b8152600490fd5b905015386100c8565b303b1591506100c0565b8791506100b6565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036104375756fe6080806040526004361015610025575b50361561001b57600080fd5b610023613ada565b005b6000803560e01c9182630242d7121461369f5750816306fdde03146135d2578163095ea7b314613522578163150b7a02146134a85781631755ff211461348057816318160ddd1461345657816323b872dd1461337357816329df64791461332f5781632dd4890914613306578163313ce567146132eb57816333039d3d146132c557816336480dd5146132165781633c130d901461317c57816342966c6814613134578163472e6490146124dd5781634be9f0761461232957816351845bf61461230157816364df049e146122bd5781636c1f20d1146122415781636f28507c1461222657816370a08231146121e1578163810a94d7146121655781639352c82514611cf057816395d89b4114611c0c578163a368497714611b58578163a9059cbb14611b27578163ad5c464814611ae3578163b0604fcb14611ac7578163b44a272214611a83578163b69f9d56146119a7578163be3782281461198b578163c19d93fb146118f4578163c2f30aea146101f7578163c31c9c07146118b0578163cd28eb80146102ee578163d3f82d8e146102cf578163db84252c146102a7578163dd62ed3e1461025e578163eff1d50e14610238578163fa461e33146101fc575063fcdc67cf146101f7573861000f565b613914565b34610235576060366003190112610235576044356001600160401b0381116102315761022c90369060040161373b565b505080f35b5080fd5b80fd5b34610235578060031936011261023557546040516001600160a01b039091168152602090f35b34610235576040366003190112610235576102776136f9565b61028861028261370f565b91613a1f565b9060018060a01b03166000526020526020604060002054604051908152f35b346102355780600319360112610235576003546040516001600160a01b039091168152602090f35b34610235578060031936011261023557602060405164174876e8008152f35b60c0366003190112610235576103026136f9565b9061030b61370f565b610313613725565b6064356001600160401b0381116118ac576103329036906004016138b7565b6084356001600160401b0381116113bf576103519036906004016138b7565b9260a4356001600160401b0381116118a8576103719036906004016138b7565b600080516020615af983398151915254946001600160401b03861680159081611898575b600114908161188e575b159081611885575b506118735760016001600160401b0319871617600080516020615af98339815191525560ff8660401c1615611846575b826001600160a01b03891615611834576001600160a01b03861615611834576001600160a01b03161561180c575b61040d61588c565b61041561588c565b8051906001600160401b0382116117f85781906104406000805160206159d983398151915254613775565b601f8111611779575b50602090601f83116001146116e95789926116de575b50508160011b916000199060031b1c1916176000805160206159d9833981519152555b8051906001600160401b0382116116ca5781906104ad600080516020615a1983398151915254613775565b601f811161164b575b50602090601f83116001146115bb5788926115b0575b50508160011b916000199060031b1c191617600080516020615a19833981519152555b6104f761588c565b6104ff61588c565b6001600080516020615ad98339815191528190556000805460ff60a01b1916905580546001600160a01b03199081166001600160a01b0393841617909155600380549091169187169190911790558051906001600160401b03821161159c57819061056b600454613775565b601f811161152a575b50602090601f83116001146114b45786926114a9575b50508160011b916000199060031b1c1916176004555b82546001600160a01b0319166001600160a01b03918216178355307f000000000000000000000000000000000000000000000000000000000000000090911610156114a3577f00000000000000000000000000000000000000000000000000000000000000005b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316101561147c5730905b6001600160a01b0390811691907f000000000000000000000000000000000000000000000000000000000000000016820361146a576d13c4b57968ceb7aab7ea377e80c9905b6040516309f56ab160e11b815260048101939093526001600160a01b039081166024840152612710604484015290811660648301526020908290608490829087907f0000000000000000000000000000000000000000000000000000000000000000165af190811561145f578391611419575b5060018060a01b03166bffffffffffffffffffffffff60a01b600254161760025534610786575b60ff91925060401c161561072c5780f35b68ff000000000000000019600080516020615af98339815191525416600080516020615af9833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b604051926107938461382a565b8284526000906107a1614908565b8154600260ff8260a01c1610156114035760ff8160a01c166113f15764174876e80034106113df576000918296600160ff859460a01c1614611159575b8454600260ff8260a01c1610156111455760ff8160a01c161561086e575b50968161085160ff989961081e6000805160206159b983398151915295613a58565b5490600080516020615a3983398151915254908b8a5460a01c169260405196879660018060a01b03169a339a34896139d7565b0390a46001600080516020615ad98339815191525582915061071b565b60049850349796959450925083806127106108888a613a7f565b04946108948634613931565b600080516020615a398339815191525460405163486b050760e11b81529c8d0181905260248d01919091529060208c6044816001600160a01b0385165afa91821561113a5788999a9b9c8993611103575b5082986110f2576b0295be96e6406697200000009283828103116110dc5781840381146110d3575b81840310611019575b50505061092e85610929889c9887615276565b614a66565b80610fea575b50610940575b886107fc565b6000805460ff60a01b1916600160a01b179055477f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610fe557604051630d0e30db60e41b8152600081600481857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610fd957610fc5575b506109d93061517c565b610a2d817f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166157d1565b610a577f000000000000000000000000000000000000000000000000000000000000000030615652565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015610fbe577f0000000000000000000000000000000000000000000000000000000000000000905b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015610f9857305b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015610f8757815b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015610f80576aa56fa5b99019a5c8000000915b600254604051633850c7bd60e01b81526001600160a01b039091169060e081600481855afa908115610f75578c91610eaf575b50516001600160a01b0390811690307f00000000000000000000000000000000000000000000000000000000000000009091161015610e9d578b6d13c4b57968ceb7aab7ea377e80c95b6001600160a01b031692838303610e10575b5050505060405194610bf08661380e565b60018060a01b0316855260018060a01b031660208501526127106040850152620d899f196060850152620d89a0608085015260a084015260c08301528660e083015286610100830152306101208301524261014083015261014060405192634418b22b60e11b845260018060a01b03815116600485015260018060a01b03602082015116602485015262ffffff6040820151166044850152606081015160020b6064850152608081015160020b608485015260a081015160a485015260c081015160c485015260e081015160e485015261010081015161010485015260018060a01b03610120820151166101248501520151610144830152608082610164818a60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215610e05578792610db7575b5060ff98999282610851926000805160206159b98339815191529694600555610d8560018060a01b0360025416928d8c5460a01c16906040519384526aa56fa5b99019a5c8000000602085015260408401526060830190613768565b7f9b932ef08aec7b34ee4d1c09579d92521b437379b5cab356f34588f1cdbbf96860803092a39299985050915061093a565b9091506080813d608011610dfd575b81610dd36080938361387b565b81010312610df957602081519101516001600160801b03811603610df9579060ff610d29565b8680fd5b3d9150610dc6565b6040513d89823e3d90fd5b604092849260c49285519687958694630251596160e31b865230600487015211602485015260646044850152606484015260a060848401528160a48401525af18015610e9257610e63575b808b81610bdf565b604090813d8311610e8b575b610e79818361387b565b81010312610e87578d610e5b565b8980fd5b503d610e6f565b6040513d8d823e3d90fd5b8b6a0cf330de50b81bb3db441b610bcd565b905060e0813d60e011610f6d575b81610eca60e0938361387b565b81010312610f695760405190610edf826137d8565b80516001600160a01b0381168103610f6557825260208101518060020b8103610f65576020830152610f136040820161534b565b6040830152610f246060820161534b565b6060830152610f356080820161534b565b608083015260a081015160ff81168103610f655760a0830152610f5a9060c00161393e565b60c08201528f610b83565b8d80fd5b8b80fd5b3d9150610ebd565b6040513d8e823e3d90fd5b8291610b50565b6aa56fa5b99019a5c8000000610b11565b7f0000000000000000000000000000000000000000000000000000000000000000610ade565b3090610aab565b610fd09196506137af565b600094896109cf565b6040513d6000823e3d90fd5b600080fd5b600080808093875af1610ffb6139a7565b50156110075789610934565b604051630db2c7f160e31b8152600490fd5b60405163447df22960e01b815260048101829052920360248301819052929b50919650945060209150849060449082906001600160a01b03165afa928315610fd95760009361109f575b5061107b61271061107385613a7f565b048094614938565b9788341161108f575b6001908a8080610916565b5061109a8834613931565b611084565b9092506020813d6020116110cb575b816110bb6020938361387b565b81010312610fe557519188611063565b3d91506110ae565b6001955061090d565b634e487b7160e01b600052601160045260246000fd5b60405162be12ab60e31b8152600490fd5b985091506020883d602011611132575b816111206020938361387b565b81010312610fe557889751918d6108e5565b3d9150611113565b6040513d8a823e3d90fd5b634e487b7160e01b86526021600452602486fd5b965091505061271061116a34613a7f565b046111758134613931565b9161117f82614a66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610fe557604051630d0e30db60e41b8152600081600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610fd9576113cb575b5060405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526024810184905260208180604481010381887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156113835761138e575b506113046020604051611292816137d8565b60018060a01b037f00000000000000000000000000000000000000000000000000000000000000001681523082820152612710604082015260018060a01b03841660608201528560808201528660a08201528660c0820152604051809381926304e45aaf60e01b83526004830161394b565b0381887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115611383578591611351575b509661134b614f5c565b506107de565b90506020813d60201161137b575b8161136c6020938361387b565b81010312610fe5575188611341565b3d915061135f565b6040513d87823e3d90fd5b6020813d6020116113c3575b816113a76020938361387b565b810103126113bf576113b89061393e565b5087611280565b8480fd5b3d915061139a565b6113d69194506137af565b600092876111fa565b6040516303c2e61b60e61b8152600490fd5b60405163b7c0802f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b90506020813d602011611457575b816114346020938361387b565b8101031261145357516001600160a01b038116810361145357846106f4565b8280fd5b3d9150611427565b6040513d85823e3d90fd5b6a0cf330de50b81bb3db441b90610681565b7f00000000000000000000000000000000000000000000000000000000000000009061063b565b30610607565b01519050868061058a565b925060048652600080516020615ab98339815191529086935b601f198416851061150f576001945083601f198116106114f6575b505050811b016004556105a0565b015160001960f88460031b161c191690558680806114e8565b818101518355602094850194600190930192909101906114cd565b90915060048652601f830160051c600080516020615ab98339815191520160208410611587575b908392915b601f820160051c600080516020615ab98339815191520181106115795750610574565b878155849350600101611556565b50600080516020615ab9833981519152611551565b634e487b7160e01b85526041600452602485fd5b0151905088806104cc565b9250600080516020615a198339815191528852600080516020615a998339815191529088935b601f1984168510611630576001945083601f19811610611617575b505050811b01600080516020615a19833981519152556104ef565b015160001960f88460031b161c191690558880806115fc565b818101518355602094850194600190930192909101906115e1565b909150600080516020615a198339815191528852601f830160051c600080516020615a9983398151915201602084106116b5575b908392915b601f820160051c600080516020615a998339815191520181106116a757506104b6565b898155849350600101611684565b50600080516020615a9983398151915261167f565b634e487b7160e01b87526041600452602487fd5b01519050898061045f565b92506000805160206159d983398151915289526000805160206159998339815191529089935b601f198416851061175e576001945083601f19811610611745575b505050811b016000805160206159d983398151915255610482565b015160001960f88460031b161c1916905589808061172a565b8181015183556020948501946001909301929091019061170f565b9091506000805160206159d98339815191528952601f830160051c60008051602061599983398151915201602084106117e3575b908392915b601f820160051c6000805160206159998339815191520181106117d55750610449565b8a81558493506001016117b2565b506000805160206159998339815191526117ad565b634e487b7160e01b88526041600452602488fd5b7f00000000000000000000000000000000000000000000000000000000000000009250610405565b604051639fabe1c160e01b8152600490fd5b68ffffffffffffffffff1986166801000000000000000117600080516020615af9833981519152556103d7565b60405163f92ee8a960e01b8152600490fd5b905015896103a7565b303b15915061039f565b604088901c60ff16159150610395565b8580fd5b8380fd5b346102355780600319360112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610235578060031936011261023557806020604051611913816137f3565b828152015260ff815460a01c16600281101561197757604091508061196657305b60208351611941816137f3565b8381520160018060a01b03809216815261195d84518094613768565b51166020820152f35b6002546001600160a01b0316611934565b634e487b7160e01b82526021600452602482fd5b3461023557806003193601126102355760206040516107d08152f35b34610235576020908160031936011261023557805460ff8160a01c166002811015611a6f57600114611a5d5782600080516020615a3983398151915254604460405180948193631ccc5c5960e21b83526004830152600435602483015260018060a01b03165afa918215611a515791611a24575b50604051908152f35b90508181813d8311611a4a575b611a3b818361387b565b81010312610fe5575182611a1b565b503d611a31565b604051903d90823e3d90fd5b60405163032c737760e31b8152600490fd5b634e487b7160e01b83526021600452602483fd5b346102355780600319360112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023557806003193601126102355760206040516113888152f35b346102355780600319360112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023557604036600319011261023557611b4d611b436136f9565b602435903361468d565b602060405160018152f35b3461023557806003193601126102355760ff815460a01c16600281101561197757600114611a5d573081526000805160206159f983398151915260205260408120544791662386f26fc10000808410611c04575b50670de0b6b3a764000091828102928184041490151715611bf057508115611bda5760209160405191048152f35b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b81526011600452602490fd5b925083611bac565b34610235578060031936011261023557604051600080516020615a198339815191528054826000611c3c83613775565b9283835260209460019186600182169182600014611cce575050600114611c84575b5050611c6c9250038361387b565b611c806040519282849384528301906136b9565b0390f35b859250600052600080516020615a99833981519152906000915b858310611cb6575050611c6c93508201018580611c5e565b80548389018501528794508693909201918101611c9e565b9250935050611c6c94915060ff191682840152151560051b8201018580611c5e565b346102355760e03660031901126102355760043590611d0d61370f565b611d15613725565b916064356001600160401b03811161023157611d359036906004016138b7565b906084359360028510156102315760a43591611d4f6138fe565b93611d58614908565b60ff825460a01c16966002881015611a6f5787036113f1573382526000805160206159f983398151915297602098808a5260408420548211612153576001600160a01b03888116979096908815611834576001869b14611f87575b5084549060ff8260a01c166002811015611f735715611ec8575b5050908392918380808c9789611de28a613a7f565b61271090049d611df38f809c613931565b9a8b92611dff91614ca4565b5af1611e096139a7565b50156110075760ff845460a01c166002811015611eb457928a9795927f0693c83d190a3d36d2ed6c3ac51b1335d2a3588d96f3f3601c8b1e780d0f952a9795926001611e899614611ea6575b8a84528d5260408320549060ff600080516020615a3983398151915254945460a01c1694604051988998169c339b896139d7565b0390a46001600080516020615ad983398151915255604051908152f35b611eae614f5c565b50611e55565b634e487b7160e01b85526021600452602485fd5b909194939299508a8a6044600080516020615a39833981519152548a6040519687948593633079372f60e21b855260048501526024840152165afa918215611f68578492611f39575b5081106110f25764174876e80081106113df57611f2e89336147f5565b979091928a80611dcd565b9091508a81813d8311611f61575b611f51818361387b565b81010312610fe55751908b611f11565b503d611f47565b6040513d86823e3d90fd5b634e487b7160e01b87526021600452602487fd5b909950611f9583303361468d565b60405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811660048301526024820185905291908c816044818a305af18015610e0557928c928e928b95612110575b509061207291856040519161200a836137d8565b308352817f00000000000000000000000000000000000000000000000000000000000000001696878785015261271060408501523060608501528a608085015260a08401521660c0820152896040519687809581946304e45aaf60e01b83526004830161394b565b0393165af19182156120d65786926120e1575b50803b156118a857858091602460405180948193632e1a7d4d60e01b83528760048401525af180156120d6579086916120c2575b5050988b611db3565b6120cb906137af565b6113bf57848c6120b9565b6040513d88823e3d90fd5b9091508b81813d8311612109575b6120f9818361387b565b81010312610fe55751908c612085565b503d6120ef565b91945092509081813d811161214c575b61212a818361387b565b81010312610df95761207289938d938f936121449061393e565b509091611ff6565b503d612120565b60405163bb55fd2760e01b8152600490fd5b34610235576020908160031936011261023557805460ff8160a01c166002811015611a6f57600114611a5d5782600080516020615a3983398151915254604460405180948193633079372f60e21b83526004830152600435602483015260018060a01b03165afa918215611a515791611a245750604051908152f35b34610235576020366003190112610235576020906040906001600160a01b036122086136f9565b1681526000805160206159f983398151915283522054604051908152f35b34610235578060031936011261023557602060405160648152f35b34610235576020908160031936011261023557805460ff8160a01c166002811015611a6f57600114611a5d5782600080516020615a398339815191525460446040518094819363486b050760e11b83526004830152600435602483015260018060a01b03165afa918215611a515791611a245750604051908152f35b346102355780600319360112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102355780600319360112610235576001546040516001600160a01b039091168152602090f35b346102355760203660031901126102355760043580151581036102315761234e614f5c565b908151151590816124d5575b50612363575080f35b600354604082015192916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169281169190833b156113bf57604051636da8c6d960e11b8082526001600160a01b039490941660048201526024810196909652848660448183885af18015611383576124c1575b84955060015416608082015190843b156118a8576040518481526001600160a01b039190911660048201526024810191909152848160448183885af19081156113835785916124ad575b505060c00151823b156124a8576040519182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600483015260248201529082908290604490829084905af1801561249d5761248d57505080f35b612496906137af565b6102355780f35b6040513d84823e3d90fd5b505050fd5b6124b6906137af565b6124a8578386612429565b9390946124cd906137af565b9284906123df565b90508361235a565b60e0366003190112610235576124f16136f9565b6124f961370f565b90612502613725565b916064356001600160401b0381116113bf576125229036906004016138b7565b926084359060028210156118a8576125386138fe565b9486612542614908565b60ff815460a01c169360028510156119775784036113f15764174876e80034106113df576001600160a01b0386161561183457809481976001839614612ea3575b50885460ff8160a01c166002811015612e8f57156125fc575b5050506000805160206159b983398151915291611e8987926020996125c089613a58565b549160ff600080516020615a3983398151915254925460a01c169260405196879660018060a01b03169b60018060a01b03169a339a34896139d7565b899850349796509450879061271061261389613a7f565b0461261e8134613931565b600080516020615a398339815191525460405163486b050760e11b815260048101829052602481019290925297906020816044816001600160a01b0386165afa908115610f75578c91612e5d575b50809860a43582106110f2576b0295be96e640669720000000918282810311612e49578183038114612e40575b81830310612d7f575b50505090899a6126c287846126bd8c9d9e969b809f9d615276565b614ca4565b80612d61575b5050506126d7575b808061259c565b805460ff60a01b1916600160a01b179055477f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15612d5d57604051630d0e30db60e41b815288908181600481867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561249d57612d49575b50506127703061517c565b6127c4817f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166157d1565b6127ee7f000000000000000000000000000000000000000000000000000000000000000030615652565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015612d42577f0000000000000000000000000000000000000000000000000000000000000000905b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015612d1c57305b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015612d0b57815b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015612d04576aa56fa5b99019a5c8000000915b600254604051633850c7bd60e01b81526001600160a01b03909116908d9060e081600481865afa918215611a515791612c42575b50516001600160a01b0390811690307f00000000000000000000000000000000000000000000000000000000000000009091161015612c30578d6d13c4b57968ceb7aab7ea377e80c95b6001600160a01b031692838303612ba7575b50505050604051946129888661380e565b60018060a01b0316855260018060a01b031660208501526127106040850152620d899f196060850152620d89a0608085015260a084015260c08301528860e083015288610100830152306101208301524261014083015261014060405192634418b22b60e11b845260018060a01b03815116600485015260018060a01b03602082015116602485015262ffffff6040820151166044850152606081015160020b6064850152608081015160020b608485015260a081015160a485015260c081015160c485015260e081015160e485015261010081015161010485015260018060a01b03610120820151166101248501520151610144830152608082610164818c60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215612b9c578992612b4f575b50879260209983611e89936000805160206159b98339815191529795600555612b1e60018060a01b03600254169260ff855460a01c16906040519384528f6aa56fa5b99019a5c80000009085015260408401526060830190613768565b7f9b932ef08aec7b34ee4d1c09579d92521b437379b5cab356f34588f1cdbbf96860803092a39950925050916126d0565b9091506080813d608011612b94575b81612b6b6080938361387b565b81010312612b9057602081519101516001600160801b03811603612b90579087612ac1565b8880fd5b3d9150612b5e565b6040513d8b823e3d90fd5b604092849260c49285519687958694630251596160e31b865230600487015211602485015260646044850152606484015260a060848401528160a48401525af18015612c2557612bfa575b808d81612977565b604090813d8311612c1e575b612c10818361387b565b81010312610f69578c612bf2565b503d612c06565b6040513d8f823e3d90fd5b8d6a0cf330de50b81bb3db441b612965565b905060e0813d60e011612cfc575b81612c5d60e0938361387b565b81010312610f655760405190612c72826137d8565b80516001600160a01b0381168103612cf857825260208101518060020b8103612cf8576020830152612ca66040820161534b565b6040830152612cb76060820161534b565b6060830152612cc86080820161534b565b608083015260a081015160ff81168103612cf85760a0830152612ced9060c00161393e565b60c08201528e61291b565b8f80fd5b3d9150612c50565b82916128e7565b6aa56fa5b99019a5c80000006128a8565b7f0000000000000000000000000000000000000000000000000000000000000000612875565b3090612842565b612d52906137af565b612d5d578789612765565b8780fd5b8280929181925af1612d716139a7565b501561100757888a806126c8565b60405163447df22960e01b815260048101829052910360248201819052909c9a5097509192506020918b915060449082906001600160a01b03165afa98891561113a578899612e0c575b50978786979899612ddf61271061107385613a7f565b998a3411612dfc575b6126c287600195939450829d9c9b506126a2565b50612e078a34613931565b612de8565b98506020893d602011612e38575b81612e276020938361387b565b810103126102315797519787612dc9565b3d9150612e1a565b60019650612699565b634e487b7160e01b8e52601160045260248efd5b90506020813d602011612e87575b81612e786020938361387b565b810103126118a857518d61266c565b3d9150612e6b565b634e487b7160e01b8b52602160045260248bfd5b955096509250612710612eb534613a7f565b0492612ec18434613931565b94612ecc8486614ca4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b1561023157604051630d0e30db60e41b815282816004818a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561145f57613121575b5060405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260248101879052602081806044810103818d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015613116576130d6575b5060206130569160405190612fe0826137d8565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116835230848401526127106040808501919091528b82166060850152608084018b905260a43560a0850152911660c0830152516304e45aaf60e01b81529283918291906004830161394b565b03818c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115612b9c5789916130a4575b509661309d614f5c565b5089612583565b90506020813d6020116130ce575b816130bf6020938361387b565b81010312610231575189613093565b3d91506130b2565b6020813d60201161310e575b816130ef6020938361387b565b81010312610e87576130569161310660209261393e565b509150612fcc565b3d91506130e2565b6040513d8c823e3d90fd5b61312c9199506137af565b809789612f46565b346102355760203660031901126102355760ff815460a01c166002811015611977571561316a57613167600435336147f5565b80f35b604051630522bdf560e31b8152600490fd5b346102355780600319360112610235576040519080826004549161319f83613775565b9283835260209460019186600182169182600014611cce5750506001146131ce575050611c6c9250038361387b565b9085925060048252600080516020615ab98339815191525b8583106131fe575050611c6c93508201018580611c5e565b805483890185015287945086939092019181016131e6565b34610235576020908160031936011261023557805460ff8160a01c166002811015611a6f57600114611a5d5782600080516020615a398339815191525460446040518094819363447df22960e01b83526004830152600435602483015260018060a01b03165afa918215611a51578092613295575b5050604051908152f35b9091508282813d83116132be575b6132ad818361387b565b81010312610235575051828061328b565b503d6132a3565b3461023557806003193601126102355760206040516b033b2e3c9fd0803ce80000008152f35b34610235578060031936011261023557602060405160128152f35b3461023557806003193601126102355760ff6020915460a01c1661332d6040518092613768565bf35b346102355780600319360112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102355760603660031901126102355761338c6136f9565b61339461370f565b604435916133a181613a1f565b3385526020526040842054600181016133c0575b50611b4d935061468d565b83811061342f576001600160a01b038216156134165733156133fd5793604084611b4d966133ed85613a1f565b33855260205203912055846133b5565b604051634a1406b160e11b815260048101869052602490fd5b60405163e602df0560e01b815260048101869052602490fd5b604051637dc7a0d960e11b8152336004820152602481019190915260448101849052606490fd5b346102355780600319360112610235576020600080516020615a3983398151915254604051908152f35b346102355780600319360112610235576002546040516001600160a01b039091168152602090f35b34610235576080366003190112610235576134c16136f9565b506134ca61370f565b506064356001600160401b038111610231576134ea90369060040161373b565b50506002546001600160a01b0316330361351057604051630a85bd0160e11b8152602090f35b604051634b60273560e01b8152600490fd5b346102355760403660031901126102355761353b6136f9565b6024359033156135b9576001600160a01b03169182156135a1576040829161356233613a1f565b85825260205220556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60249060405190634a1406b160e11b82526004820152fd5b60405163e602df0560e01b815260048101849052602490fd5b346102355780600319360112610235576040519080826000805160206159d983398151915292835461360381613775565b938484526020956001928760018216918260001461367b575050600114613634575b505050611c6c9250038361387b565b8152859250906000805160206159998339815191525b858310613663575050611c6c9350820101858080613625565b8054838901850152879450869390920191810161364a565b935094505050611c6c94915060ff191682840152151560051b820101858080613625565b346102315781600319360112610231576020906005548152f35b919082519283825260005b8481106136e5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016136c4565b600435906001600160a01b0382168203610fe557565b602435906001600160a01b0382168203610fe557565b604435906001600160a01b0382168203610fe557565b9181601f84011215610fe5578235916001600160401b038311610fe55760208381860195010111610fe557565b9060028210156114035752565b90600182811c921680156137a5575b602083101461378f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691613784565b6001600160401b0381116137c257604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176137c257604052565b604081019081106001600160401b038211176137c257604052565b61016081019081106001600160401b038211176137c257604052565b602081019081106001600160401b038211176137c257604052565b60a081019081106001600160401b038211176137c257604052565b608081019081106001600160401b038211176137c257604052565b90601f801991011681019081106001600160401b038211176137c257604052565b6001600160401b0381116137c257601f01601f191660200190565b81601f82011215610fe5578035906138ce8261389c565b926138dc604051948561387b565b82845260208383010111610fe557816000926020809301838601378301015290565b60c435906001600160a01b0382168203610fe557565b34610fe5576000366003190112610fe55760206040516105dc8152f35b919082039182116110dc57565b51908115158203610fe557565b91909160c060e08201938160018060a01b039182815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a0860152015116910152565b3d156139d2573d906139b88261389c565b916139c6604051938461387b565b82523d6000602084013e565b606090565b939460e095613a1094613a1d999b9a989461010094885260208801526040870152606086015260808501528060a08501528301906136b9565b9560c08201520190613768565b565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b031660009081526000805160206159f98339815191526020526040902090565b906064820291808304606414901517156110dc57565b90611388918281029281840414901517156110dc57565b906105dc918281029281840414901517156110dc57565b906109c4918281029281840414901517156110dc57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614613a1d5760ff60005460a01c16604051613b1f8161382a565b60008152600091613b2e614908565b60ff60005460a01c169060028110156114035760028210156114035781036113f15764174876e80034106113df573315611834576000916000600160009314614432575b845460ff8160a01c166002811015611f735715613beb575b50906000805160206159b983398151915291613bd4613ba833613a58565b5492600080516020615a398339815191525460ff895460a01c1691604051958695339a339a34896139d7565b0390a46001600080516020615ad983398151915255565b959493508392503491905082612710613c0384613a7f565b0493613c0f8534613931565b600080516020615a398339815191525460405163486b050760e11b8152600481018290526024810192909252909860208a6044816001600160a01b0385165afa91821561113a5788999a89936143fb575b5082986110f2576b0295be96e6406697200000009283828103116110dc5781840381146143f2575b81840310614340575b505050613ca48561092988969833615276565b80614323575b50613cb7575b9038613b8a565b6000805460ff60a01b1916600160a01b17905547917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610fe557604051630d0e30db60e41b8152600081600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610fd95761430f575b50613d513061517c565b613da5837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166157d1565b613dcf7f000000000000000000000000000000000000000000000000000000000000000030615652565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161015614308577f0000000000000000000000000000000000000000000000000000000000000000925b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031610156142e257305b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031610156142d157815b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031610156142ca576aa56fa5b99019a5c8000000915b600254604051633850c7bd60e01b81526001600160a01b039091169060e081600481855afa908115610f75578c9161420c575b50516001600160a01b0390811690307f000000000000000000000000000000000000000000000000000000000000000090911610156141fa578b6d13c4b57968ceb7aab7ea377e80c95b6001600160a01b03169283830361417c575b5050505060405196613f688861380e565b60018060a01b0316875260018060a01b031660208701526127106040870152620d899f196060870152620d89a0608087015260a086015260c08501528660e085015286610100850152306101208501524261014085015261014060405194634418b22b60e11b865260018060a01b03815116600487015260018060a01b03602082015116602487015262ffffff6040820151166044870152606081015160020b6064870152608081015160020b608487015260a081015160a487015260c081015160c487015260e081015160e487015261010081015161010487015260018060a01b03610120820151166101248701520151610144850152608084610164818a60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115610e05578791614121575b6000805160206159b98339815191529450816005556140f460018060a01b03600254169260ff8a5460a01c16906040519384526aa56fa5b99019a5c8000000602085015260408401526060830190613768565b7f9b932ef08aec7b34ee4d1c09579d92521b437379b5cab356f34588f1cdbbf96860803092a39150613cb0565b91929390506080813d608011614174575b8161413f6080938361387b565b81010312610df957602081519101516001600160801b03811603610df9576000805160206159b98339815191529392916140a1565b3d9150614132565b604092849260c49285519687958694630251596160e31b865230600487015211602485015260646044850152606484015260a060848401528160a48401525af18015610e92576141cf575b808b81613f57565b604090813d83116141f3575b6141e5818361387b565b81010312610e8757386141c7565b503d6141db565b8b6a0cf330de50b81bb3db441b613f45565b905060e0813d60e0116142c2575b8161422760e0938361387b565b81010312610f69576040519061423c826137d8565b80516001600160a01b0381168103610f6557825260208101518060020b8103610f655760208301526142706040820161534b565b60408301526142816060820161534b565b60608301526142926080820161534b565b608083015260a081015160ff81168103610f655760a08301526142b79060c00161393e565b60c082015238613efb565b3d915061421a565b8291613ec8565b6aa56fa5b99019a5c8000000613e89565b7f0000000000000000000000000000000000000000000000000000000000000000613e56565b3092613e23565b61431a9196506137af565b60009438613d47565b600080808093335af16143346139a7565b50156110075738613caa565b60405163447df22960e01b815260048101829052920360248301819052975090955090935060209150849060449082906001600160a01b03165afa928315610fd9576000936143be575b5061439a61271061107385613a7f565b918234116143ae575b600190388080613c91565b506143b98234613931565b6143a3565b9092506020813d6020116143ea575b816143da6020938361387b565b81010312610fe55751913861438a565b3d91506143cd565b60019550613c88565b985091506020883d60201161442a575b816144186020938361387b565b81010312610fe5578897519138613c60565b3d915061440b565b50915050612710908161444434613a7f565b04906144508234613931565b9261445a83614a66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610fe557604051630d0e30db60e41b8152600081600481887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610fd957614679575b5060405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811660048301526024820186905260209290918381806044810103818b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561113a5791889391859361463a575b506040516145e19291614578826137d8565b60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000168252308583015260408201523360608201528860808201528460a08201528460c08201526040519485809481936304e45aaf60e01b83526004830161394b565b03926001600160a01b03165af19182156120d657869261460c575b5050614606614f5c565b50613b72565b90809250813d8311614633575b614623818361387b565b81010312610fe5575138806145fc565b503d614619565b9193509181813d8111614672575b614652818361387b565b81010312612d5d578792849261466a6145e19361393e565b509091614566565b503d614648565b6146849195506137af565b600093386144d5565b916001600160a01b038084169283156147dc5781169384156147c35760009160ff835460a01c1660028110156147af571590816147a1575b5061316a578382526000805160206159f9833981519152806020526040918284205490858210614770575091839185600080516020615a59833981519152969488608097528260205203828420558783528183208481540190558787600080516020615a7983398151915260208551888152a3868352602052808083205492888152205490600080516020615a398339815191525492815194855260208501528301526060820152a3565b835163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101859052606490fd5b9050600254168514386146c5565b634e487b7160e01b84526021600452602484fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03918183169182156147dc5760009360ff855460a01c166002811015611145571590816148fb575b5061316a578284526000805160206159f9833981519152908160205260409081862054908482106148ca5750918391600080516020615a5983398151915294608094878952836020520381882055600080516020615a3983398151915291838354038093558787600080516020615a7983398151915260208551888152a386885260205280872054908780528088205491815194855260208501528301526060820152a3565b825163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101849052606490fd5b9050600254161538614824565b600080516020615ad983398151915260028154146149265760029055565b604051633ee5aeb560e01b8152600490fd5b919082018092116110dc57565b8051156149525760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156149525760400190565b8051600210156149525760600190565b8051600310156149525760800190565b9092916080820160808352845180915260a083019060208096019060005b87828210614a4957505050508281038584015284808351928381520192019060005b86828210614a355750505050818103604083015283808451928381520193019060005b85828210614a1757505050506060818303910152600081520190565b83516001600160e01b031916865294850194909201916001016149fb565b8351855293840193909201916001016149d8565b83516001600160a01b0316855293840193909201916001016149b6565b6127109081614a7482613a95565b049180614a8083613aac565b049080614a8c84613aac565b04926107d0908181029181830414901517156110dc570492614abb84614ab685614ab68686614938565b614938565b93604093845193614acb85613845565b600485526080366020870137855196614ae388613845565b6004885260803660208a0137865195614afb87613845565b6004875260803660208901376003546001600160a01b0397908816614b1f83614945565b5286614b2a8b614945565b526303a5d31160e21b614b3c82614945565b528760015416614b4b83614968565b5283614b568b614968565b526305c67f0f60e01b614b6882614968565b52614b7282614978565b99887f000000000000000000000000000000000000000000000000000000000000000016809b5285614ba382614978565b52622eb61160e21b614bb483614978565b528a614bbf84614988565b5286614bca82614988565b5263105b063b60e21b614bdc83614988565b52887f00000000000000000000000000000000000000000000000000000000000000001690813b15610fe557614c2b946000948c519687958694859363300def9560e01b855260048501614998565b03925af18015614c9957917ff349fe0373a901f0506d5343f4a872f385a7f0c26371d7b9e6bf5584b69d75fc95939160a09593614c8a575b5086600354169660015416978051948a8652602086015284015260608301526080820152a4565b614c93906137af565b38614c63565b87513d6000823e3d90fd5b6001600160a01b0382811615614ee5575b61271080614cc284613a95565b049281614cce82613aac565b049180614cda83613aac565b04916107d0908181029181830414901517156110dc570490614d0482614ab683614ab6878a614938565b926040805194614d1386613845565b600486526080366020880137815195614d2b87613845565b6004875260803660208901378251614d4281613845565b6004815260803660208301378860035416614d5c83614945565b5289614d6789614945565b526303a5d31160e21b614d7982614945565b528860015416614d8883614968565b5284614d9389614968565b526305c67f0f60e01b614da582614968565b5288614db083614978565b9b16809b5285614dbf89614978565b52622eb61160e21b614dd082614978565b52614dda82614988565b97897f00000000000000000000000000000000000000000000000000000000000000001680995287614e0b82614988565b5263105b063b60e21b614e1d83614988565b52897f00000000000000000000000000000000000000000000000000000000000000001690813b15610fe557614e6c9460009487519687958694859363300def9560e01b855260048501614998565b03925af18015614eda579160a09593917ff349fe0373a901f0506d5343f4a872f385a7f0c26371d7b9e6bf5584b69d75fc979593614ecb575b5087600354169760015416988151958652602086015284015260608301526080820152a4565b614ed4906137af565b38614ea5565b82513d6000823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000009250614cb5565b6040519061010082018281106001600160401b038211176137c2576040528160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b614f64614f0d565b50600060ff815460a01c166002811015611977571561316a57600554604091825191608083018381106001600160401b03821117615168578452825230602083019081526001600160801b0383850181815260608501828152865163fc6f786560e01b81529551600487015292516001600160a01b0390811660248701529051821660448601529151166064840152908383608481847f000000000000000000000000000000000000000000000000000000000000000087165af191821561515c5781938293615105575b5092610100926150a26150a8937fa08a9f5d6f102189d671698496ba4a3f94f5c073d689395260033091bd3aa5d1967f0000000000000000000000000000000000000000000000000000000000000000903090821610806000146150fe5781925b50156150f8575030935b6150a2614f0d565b9161535a565b9280519084518252602085015160208301528085015190820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152a190565b9361509a565b3092615090565b935091508383813d8111615155575b61511e818361387b565b81010312610235578251602090930151917fa08a9f5d6f102189d671698496ba4a3f94f5c073d689395260033091bd3aa5d161502f565b503d615114565b508351903d90823e3d90fd5b634e487b7160e01b83526041600452602483fd5b6001600160a01b039081169081156147c35760009060ff825460a01c166002811015611a6f57159081615268575b5061316a57600080516020615a398339815191528054906aa56fa5b99019a5c800000091828101809111615254579181600080516020615a5983398151915293608093558585526000805160206159f983398151915290816020526040918287208481540190558787600080516020615a7983398151915260208651888152a3868052602052818620549187875280872054915492815194855260208501528301526060820152a3565b634e487b7160e01b84526011600452602484fd5b9050600254168214386151aa565b6001600160a01b039081169182156147c35760009160ff835460a01c1660028110156147af5715908161533d575b5061316a576080600080516020615a5983398151915291600080516020615a398339815191526152d5828254614938565b81558585526000805160206159f983398151915290816020526040918287208481540190558787600080516020615a7983398151915260208651888152a3868052602052818620549187875280872054915492815194855260208501528301526060820152a3565b9050600254168314386152a4565b519061ffff82168203610fe557565b90615363614f0d565b5060009181615373575b50505090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116929091821683036155b657823b156118ac5783806040946024865180948193632e1a7d4d60e01b83528760048401525af180156155ac57615599575b50808552612710806153eb83613a95565b04908487019182526153fc83613ac3565b04916080870192835261541d6154158851845190613931565b845190613931565b60c0880190815285519361543085613860565b600385526060366020870137856003541661544a86614945565b52856001541661545986614968565b5261546385614978565b867f000000000000000000000000000000000000000000000000000000000000000016905286519361549485613860565b600385526060366020870137516154aa85614945565b52516154b584614968565b52516154c083614978565b528451936154cd85613860565b60038552606036602087013763b62bdf9560e01b6154ea86614945565b52633131392b60e01b6154fc86614968565b5263aac3586760e01b61550e86614978565b527f00000000000000000000000000000000000000000000000000000000000000001692833b15610df957855163300def9560e01b815295948794879490938593909284926155609260048501614998565b03925af1908115615590575061557c575b50505b38808061536d565b61558682916137af565b6102355780615571565b513d84823e3d90fd5b6155a5909491946137af565b92386153da565b84513d87823e3d90fd5b915061564d92506156259060208501908382526156186156026154156127106155f0816155e28a613a95565b049860608c01998a52613ac3565b049460a08a0195865251875190613931565b9460e0880195865282600354169051903061468d565b600154169051903061468d565b517f00000000000000000000000000000000000000000000000000000000000000003061468d565b615574565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301819052939192919060209083168185604481845afa948515610fd9576000956157a2575b506aa56fa5b99019a5c800000085018095116110dc5760405163095ea7b360e01b8382018181526001600160a01b0390951660248301526044820196909652949260009081906156f588606481015b03601f1981018a528961387b565b87519082855af1906157056139a7565b82615768575b508161575d575b5015615720575b5050505050565b6157539461574e92604051928301526024820152600060448201526044815261574881613860565b826158bb565b6158bb565b3880808080615719565b90503b151538615712565b8091925051838115918215615783575b50509050903861570b565b8380929350010312610fe5578261579a910161393e565b808338615778565b9094508181813d83116157ca575b6157ba818361387b565b81010312610fe557519338615698565b503d6157b0565b604051636eb1769f60e11b81523060048201526001600160a01b03808416602483018190529490831693916020918282604481895afa8015610fd95760009061585d575b61581f9250614938565b60405163095ea7b360e01b8382018181526001600160a01b039095166024830152604482019290925294909260009081906156f588606481016156e7565b508282813d8311615885575b615873818361387b565b81010312610fe55761581f9151615815565b503d615869565b60ff600080516020615af98339815191525460401c16156158a957565b604051631afcd79f60e31b8152600490fd5b6000806158e49260018060a01b03169360208151910182865af16158dd6139a7565b9083615935565b8051908115159182615912575b50506158fa5750565b60249060405190635274afe760e01b82526004820152fd5b8192509060209181010312610fe557602061592d910161393e565b1538806158f1565b9061595c575080511561594a57805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061598f575b61596d575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561596556fe2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab049c4606c4f7f601127761fb65a512e6bca424f62b165476cf1cfdfa51772a6ab52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0452c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02d19736ba1cd2ffc8c99f90d6c6163e59274d333c89e471cd6668d93849835ac5ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fa1c0eece9737bf5b1906e0a888dc4487903130ee95f2b88ae23529433e719b664736f6c63430008190033000000000000000000000000c1f98958fd29e9f2a5a4a01e9330263944c9b6d20000000000000000000000007777777f279eba3d3ad8f4e708545291a6fdba8b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000002626664c2603336e57b271c5c0b26f421741e481
Constructor Arguments
(ABI-Encoded and is the last bytes of the Contract Creation Code above)
0x000000000000000000000000c1f98958fd29e9f2a5a4a01e9330263944c9b6d20000000000000000000000007777777f279eba3d3ad8f4e708545291a6fdba8b000000000000000000000000420000000000000000000000000000000000000600000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000002626664c2603336e57b271c5c0b26f421741e481

----Decoded View------------Arg [0] : _protocolFeeRecipient (address): 0xc1f98958FD29E9f2a5a4a01e9330263944c9b6d2Arg [1] : _protocolRewards (address): 0x7777777F279eba3d3Ad8F4E708545291A6fDBA8BArg [2] : _weth (address): 0x4200000000000000000000000000000000000006Arg [3] : _nonfungiblePositionManager (address): 0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1Arg [4] : _swapRouter (address): 0x2626664c2603336E57B271c5C0b26F421741e481

----Encoded View------------Arg [0] : 0x000000000000000000000000c1f98958fd29e9f2a5a4a01e9330263944c9b6d2Arg [1] : 0x0000000000000000000000007777777f279eba3d3ad8f4e708545291a6fdba8bArg [2] : 0x0000000000000000000000004200000000000000000000000000000000000006Arg [3] : 0x00000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f1Arg [4] : 0x0000000000000000000000002626664c2603336e57b271c5c0b26f421741e481