{
  "contractName": "TickBitmap",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"The mapping uses int16 for keys since ticks are represented as int24 and there are 256 (2^8) values per word.\",\"methods\":{},\"title\":\"Packed tick initialized state library\"},\"userdoc\":{\"methods\":{},\"notice\":\"Stores a packed mapping of tick index to its initialized state\"}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/uniswap/TickBitmap.sol\":\"TickBitmap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/uniswap/BitMath.sol\":{\"keccak256\":\"0x82e425066110aac05ed8a9fc90f9ee85142b6f434769447e49d4438a8d9fcd82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://77a97078bc992c18c59cb61e07fa4632c8a26b6babf00f3b16eabb5dcaa953b4\",\"dweb:/ipfs/QmTj15ufLWk6AxedSVXBcLp5cYf2DCJAeDi94cVemCkm54\"]},\"project:/contracts/interfaces/uniswap/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"project:/contracts/interfaces/uniswap/TickBitmap.sol\":{\"keccak256\":\"0x9bfc4ae1794f3fecb6a3c8817500dcdd4a05689c654e1075e9dd1e6fd653a685\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7658bd80a3c3812fd92bb169842743c634989ede97366a418663067fc54f6a7b\",\"dweb:/ipfs/QmZLZNFhSdXQ3NC2Rz38668TCyrGXMysbGR33CrszaTbAW\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220893719093f49c16089a6c57c67bcb1ddb89094c388ad8dd12b9373df1349251f64736f6c63430006080033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220893719093f49c16089a6c57c67bcb1ddb89094c388ad8dd12b9373df1349251f64736f6c63430006080033",
  "immutableReferences": {},
  "sourceMap": "367:3788:41:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
  "deployedSourceMap": "367:3788:41:-:0;;;;;;12:1:-1;9;2:12",
  "source": "// SPDX-License-Identifier: BUSL-1.1\npragma solidity >=0.5.0;\n\nimport './BitMath.sol';\nimport './IUniswapV3PoolState.sol';\n\n/// @title Packed tick initialized state library\n/// @notice Stores a packed mapping of tick index to its initialized state\n/// @dev The mapping uses int16 for keys since ticks are represented as int24 and there are 256 (2^8) values per word.\nlibrary TickBitmap {\n    /// @notice Computes the position in the mapping where the initialized bit for a tick lives\n    /// @param tick The tick for which to compute the position\n    /// @return wordPos The key in the mapping containing the word in which the bit is stored\n    /// @return bitPos The bit position in the word where the flag is stored\n    function position(int24 tick) private pure returns (int16 wordPos, uint8 bitPos) {\n        wordPos = int16(tick >> 8);\n        bitPos = uint8(tick % 256);\n    }\n\n    /// @notice Flips the initialized state for a given tick from false to true, or vice versa\n    /// @param self The mapping in which to flip the tick\n    /// @param tick The tick to flip\n    /// @param tickSpacing The spacing between usable ticks\n    function flipTick(\n        mapping(int16 => uint256) storage self,\n        int24 tick,\n        int24 tickSpacing\n    ) internal {\n        require(tick % tickSpacing == 0); // ensure that the tick is spaced\n        (int16 wordPos, uint8 bitPos) = position(tick / tickSpacing);\n        uint256 mask = 1 << bitPos;\n        self[wordPos] ^= mask;\n    }\n\n    /// @notice Returns the next initialized tick contained in the same word (or adjacent word) as the tick that is either\n    /// to the left (less than or equal to) or right (greater than) of the given tick\n    /// @param pool The mapping in which to compute the next initialized tick\n    /// @param tick The starting tick\n    /// @param tickSpacing The spacing between usable ticks\n    /// @param lte Whether to search for the next initialized tick to the left (less than or equal to the starting tick)\n    /// @return next The next initialized or uninitialized tick up to 256 ticks away from the current tick\n    /// @return initialized Whether the next tick is initialized, as the function only searches within up to 256 ticks\n    function nextInitializedTickWithinOneWord(\n        IUniswapV3PoolState pool,\n        int24 tick,\n        int24 tickSpacing,\n        bool lte\n    ) internal view returns (int24 next, bool initialized) {\n        int24 compressed = tick / tickSpacing;\n        if (tick < 0 && tick % tickSpacing != 0) compressed--; // round towards negative infinity\n\n        if (lte) {\n            (int16 wordPos, uint8 bitPos) = position(compressed);\n            // all the 1s at or to the right of the current bitPos\n            uint256 mask = (1 << bitPos) - 1 + (1 << bitPos);\n            uint256 masked = pool.tickBitmap(wordPos) & mask;\n\n            // if there are no initialized ticks to the right of or at the current tick, return rightmost in the word\n            initialized = masked != 0;\n            // overflow/underflow is possible, but prevented externally by limiting both tickSpacing and tick\n            next = initialized\n                ? (compressed - int24(bitPos - BitMath.mostSignificantBit(masked))) * tickSpacing\n                : (compressed - int24(bitPos)) * tickSpacing;\n        } else {\n            // start from the word of the next tick, since the current tick state doesn't matter\n            (int16 wordPos, uint8 bitPos) = position(compressed + 1);\n            // all the 1s at or to the left of the bitPos\n            uint256 mask = ~((1 << bitPos) - 1);\n            uint256 masked = pool.tickBitmap(wordPos) & mask;\n\n            // if there are no initialized ticks to the left of the current tick, return leftmost in the word\n            initialized = masked != 0;\n            // overflow/underflow is possible, but prevented externally by limiting both tickSpacing and tick\n            next = initialized\n                ? (compressed + 1 + int24(BitMath.leastSignificantBit(masked) - bitPos)) * tickSpacing\n                : (compressed + 1 + int24(type(uint8).max - bitPos)) * tickSpacing;\n        }\n    }\n}\n",
  "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/interfaces/uniswap/TickBitmap.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/uniswap/TickBitmap.sol",
    "exportedSymbols": {
      "TickBitmap": [
        4365
      ]
    },
    "id": 4366,
    "license": "BUSL-1.1",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4110,
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "37:24:41"
      },
      {
        "absolutePath": "project:/contracts/interfaces/uniswap/BitMath.sol",
        "file": "./BitMath.sol",
        "id": 4111,
        "nodeType": "ImportDirective",
        "scope": 4366,
        "sourceUnit": 2163,
        "src": "63:23:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV3PoolState.sol",
        "file": "./IUniswapV3PoolState.sol",
        "id": 4112,
        "nodeType": "ImportDirective",
        "scope": 4366,
        "sourceUnit": 3066,
        "src": "87:35:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 4113,
          "nodeType": "StructuredDocumentation",
          "src": "124:243:41",
          "text": "@title Packed tick initialized state library\n @notice Stores a packed mapping of tick index to its initialized state\n @dev The mapping uses int16 for keys since ticks are represented as int24 and there are 256 (2^8) values per word."
        },
        "fullyImplemented": true,
        "id": 4365,
        "linearizedBaseContracts": [
          4365
        ],
        "name": "TickBitmap",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 4141,
              "nodeType": "Block",
              "src": "803:79:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4123,
                      "name": "wordPos",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4119,
                      "src": "813:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "id": 4128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4126,
                            "name": "tick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4116,
                            "src": "829:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 4127,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "837:1:41",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "829:9:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        ],
                        "id": 4125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "823:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int16_$",
                          "typeString": "type(int16)"
                        },
                        "typeName": {
                          "id": 4124,
                          "name": "int16",
                          "nodeType": "ElementaryTypeName",
                          "src": "823:5:41",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 4129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "823:16:41",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "src": "813:26:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "id": 4131,
                  "nodeType": "ExpressionStatement",
                  "src": "813:26:41"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4132,
                      "name": "bitPos",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4121,
                      "src": "849:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "id": 4137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4135,
                            "name": "tick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4116,
                            "src": "864:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "%",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "323536",
                            "id": 4136,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "871:3:41",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_256_by_1",
                              "typeString": "int_const 256"
                            },
                            "value": "256"
                          },
                          "src": "864:10:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        ],
                        "id": 4134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "858:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint8_$",
                          "typeString": "type(uint8)"
                        },
                        "typeName": {
                          "id": 4133,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "858:5:41",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 4138,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "858:17:41",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "849:26:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 4140,
                  "nodeType": "ExpressionStatement",
                  "src": "849:26:41"
                }
              ]
            },
            "documentation": {
              "id": 4114,
              "nodeType": "StructuredDocumentation",
              "src": "392:325:41",
              "text": "@notice Computes the position in the mapping where the initialized bit for a tick lives\n @param tick The tick for which to compute the position\n @return wordPos The key in the mapping containing the word in which the bit is stored\n @return bitPos The bit position in the word where the flag is stored"
            },
            "id": 4142,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "position",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4116,
                  "mutability": "mutable",
                  "name": "tick",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4142,
                  "src": "740:10:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4115,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "740:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "739:12:41"
            },
            "returnParameters": {
              "id": 4122,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4119,
                  "mutability": "mutable",
                  "name": "wordPos",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4142,
                  "src": "774:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4118,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "774:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4121,
                  "mutability": "mutable",
                  "name": "bitPos",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4142,
                  "src": "789:12:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 4120,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "789:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "773:29:41"
            },
            "scope": 4365,
            "src": "722:160:41",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 4184,
              "nodeType": "Block",
              "src": "1266:220:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 4159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "id": 4157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4155,
                            "name": "tick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4149,
                            "src": "1284:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "%",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4156,
                            "name": "tickSpacing",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4151,
                            "src": "1291:11:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "src": "1284:18:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4158,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1306:1:41",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1284:23:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4154,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1276:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1276:32:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4161,
                  "nodeType": "ExpressionStatement",
                  "src": "1276:32:41"
                },
                {
                  "assignments": [
                    4163,
                    4165
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4163,
                      "mutability": "mutable",
                      "name": "wordPos",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4184,
                      "src": "1353:13:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "typeName": {
                        "id": 4162,
                        "name": "int16",
                        "nodeType": "ElementaryTypeName",
                        "src": "1353:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 4165,
                      "mutability": "mutable",
                      "name": "bitPos",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4184,
                      "src": "1368:12:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 4164,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "1368:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4171,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 4169,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4167,
                          "name": "tick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4149,
                          "src": "1393:4:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4168,
                          "name": "tickSpacing",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4151,
                          "src": "1400:11:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "src": "1393:18:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      ],
                      "id": 4166,
                      "name": "position",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4142,
                      "src": "1384:8:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int24_$returns$_t_int16_$_t_uint8_$",
                        "typeString": "function (int24) pure returns (int16,uint8)"
                      }
                    },
                    "id": 4170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1384:28:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_int16_$_t_uint8_$",
                      "typeString": "tuple(int16,uint8)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1352:60:41"
                },
                {
                  "assignments": [
                    4173
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4173,
                      "mutability": "mutable",
                      "name": "mask",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4184,
                      "src": "1422:12:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4172,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1422:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4177,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 4176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 4174,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1437:1:41",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4175,
                      "name": "bitPos",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4165,
                      "src": "1442:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "1437:11:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1422:26:41"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4178,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4147,
                        "src": "1458:4:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_int16_$_t_uint256_$",
                          "typeString": "mapping(int16 => uint256)"
                        }
                      },
                      "id": 4180,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4179,
                        "name": "wordPos",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4163,
                        "src": "1463:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1458:13:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "^=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4181,
                      "name": "mask",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4173,
                      "src": "1475:4:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1458:21:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4183,
                  "nodeType": "ExpressionStatement",
                  "src": "1458:21:41"
                }
              ]
            },
            "documentation": {
              "id": 4143,
              "nodeType": "StructuredDocumentation",
              "src": "888:245:41",
              "text": "@notice Flips the initialized state for a given tick from false to true, or vice versa\n @param self The mapping in which to flip the tick\n @param tick The tick to flip\n @param tickSpacing The spacing between usable ticks"
            },
            "id": 4185,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "flipTick",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4147,
                  "mutability": "mutable",
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4185,
                  "src": "1165:38:41",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_int16_$_t_uint256_$",
                    "typeString": "mapping(int16 => uint256)"
                  },
                  "typeName": {
                    "id": 4146,
                    "keyType": {
                      "id": 4144,
                      "name": "int16",
                      "nodeType": "ElementaryTypeName",
                      "src": "1173:5:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "nodeType": "Mapping",
                    "src": "1165:25:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_int16_$_t_uint256_$",
                      "typeString": "mapping(int16 => uint256)"
                    },
                    "valueType": {
                      "id": 4145,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1182:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4149,
                  "mutability": "mutable",
                  "name": "tick",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4185,
                  "src": "1213:10:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4148,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1213:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4151,
                  "mutability": "mutable",
                  "name": "tickSpacing",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4185,
                  "src": "1233:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4150,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1233:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1155:101:41"
            },
            "returnParameters": {
              "id": 4153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1266:0:41"
            },
            "scope": 4365,
            "src": "1138:348:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4363,
              "nodeType": "Block",
              "src": "2424:1729:41",
              "statements": [
                {
                  "assignments": [
                    4202
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4202,
                      "mutability": "mutable",
                      "name": "compressed",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4363,
                      "src": "2434:16:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "typeName": {
                        "id": 4201,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "2434:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4206,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    },
                    "id": 4205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4203,
                      "name": "tick",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4190,
                      "src": "2453:4:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4204,
                      "name": "tickSpacing",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "2460:11:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "src": "2453:18:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2434:37:41"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4215,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "id": 4209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4207,
                        "name": "tick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4190,
                        "src": "2485:4:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2492:1:41",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "2485:8:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "id": 4214,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 4212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4210,
                          "name": "tick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4190,
                          "src": "2497:4:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "%",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4211,
                          "name": "tickSpacing",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "2504:11:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "src": "2497:18:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4213,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2519:1:41",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "2497:23:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2485:35:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4219,
                  "nodeType": "IfStatement",
                  "src": "2481:53:41",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4217,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "--",
                      "prefix": false,
                      "src": "2522:12:41",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4216,
                        "name": "compressed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4202,
                        "src": "2522:10:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "id": 4218,
                    "nodeType": "ExpressionStatement",
                    "src": "2522:12:41"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4220,
                    "name": "lte",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4194,
                    "src": "2584:3:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 4361,
                    "nodeType": "Block",
                    "src": "3322:825:41",
                    "statements": [
                      {
                        "assignments": [
                          4288,
                          4290
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4288,
                            "mutability": "mutable",
                            "name": "wordPos",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4361,
                            "src": "3434:13:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int16",
                              "typeString": "int16"
                            },
                            "typeName": {
                              "id": 4287,
                              "name": "int16",
                              "nodeType": "ElementaryTypeName",
                              "src": "3434:5:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 4290,
                            "mutability": "mutable",
                            "name": "bitPos",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4361,
                            "src": "3449:12:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 4289,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "3449:5:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4296,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "id": 4294,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 4292,
                                "name": "compressed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4202,
                                "src": "3474:10:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4293,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3487:1:41",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "3474:14:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            ],
                            "id": 4291,
                            "name": "position",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4142,
                            "src": "3465:8:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_int24_$returns$_t_int16_$_t_uint8_$",
                              "typeString": "function (int24) pure returns (int16,uint8)"
                            }
                          },
                          "id": 4295,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3465:24:41",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_int16_$_t_uint8_$",
                            "typeString": "tuple(int16,uint8)"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3433:56:41"
                      },
                      {
                        "assignments": [
                          4298
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4298,
                            "mutability": "mutable",
                            "name": "mask",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4361,
                            "src": "3561:12:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4297,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3561:7:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4307,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 4306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "~",
                          "prefix": true,
                          "src": "3576:20:41",
                          "subExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 4304,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 4301,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 4299,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3579:1:41",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<<",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 4300,
                                        "name": "bitPos",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4290,
                                        "src": "3584:6:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "src": "3579:11:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 4302,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "3578:13:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 4303,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3594:1:41",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "3578:17:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "id": 4305,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "3577:19:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3561:35:41"
                      },
                      {
                        "assignments": [
                          4309
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4309,
                            "mutability": "mutable",
                            "name": "masked",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4361,
                            "src": "3610:14:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4308,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3610:7:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4316,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4312,
                                "name": "wordPos",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4288,
                                "src": "3643:7:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int16",
                                  "typeString": "int16"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int16",
                                  "typeString": "int16"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4310,
                                "name": "pool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4188,
                                "src": "3627:4:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IUniswapV3PoolState_$3065",
                                  "typeString": "contract IUniswapV3PoolState"
                                }
                              },
                              "id": 4311,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "tickBitmap",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3034,
                              "src": "3627:15:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_int16_$returns$_t_uint256_$",
                                "typeString": "function (int16) view external returns (uint256)"
                              }
                            },
                            "id": 4313,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3627:24:41",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4314,
                            "name": "mask",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4298,
                            "src": "3654:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3627:31:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3610:48:41"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4317,
                            "name": "initialized",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4199,
                            "src": "3783:11:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4320,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4318,
                              "name": "masked",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4309,
                              "src": "3797:6:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 4319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3807:1:41",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "3797:11:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "3783:25:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4322,
                        "nodeType": "ExpressionStatement",
                        "src": "3783:25:41"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4323,
                            "name": "next",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4197,
                            "src": "3932:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "id": 4324,
                              "name": "initialized",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4199,
                              "src": "3939:11:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "id": 4357,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    },
                                    "id": 4354,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      },
                                      "id": 4343,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 4341,
                                        "name": "compressed",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4202,
                                        "src": "4073:10:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "+",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 4342,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "4086:1:41",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "4073:14:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 4352,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "id": 4348,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "nodeType": "ElementaryTypeNameExpression",
                                                  "src": "4101:5:41",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                  },
                                                  "typeName": {
                                                    "id": 4347,
                                                    "name": "uint8",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "4101:5:41",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": null,
                                                      "typeString": null
                                                    }
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                  }
                                                ],
                                                "id": 4346,
                                                "name": "type",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": -27,
                                                "src": "4096:4:41",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                                  "typeString": "function () pure"
                                                }
                                              },
                                              "id": 4349,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "4096:11:41",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_meta_type_t_uint8",
                                                "typeString": "type(uint8)"
                                              }
                                            },
                                            "id": 4350,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "memberName": "max",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "4096:15:41",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 4351,
                                            "name": "bitPos",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4290,
                                            "src": "4114:6:41",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "src": "4096:24:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 4345,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "4090:5:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_int24_$",
                                          "typeString": "type(int24)"
                                        },
                                        "typeName": {
                                          "id": 4344,
                                          "name": "int24",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "4090:5:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4353,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4090:31:41",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "src": "4073:48:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "id": 4355,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "4072:50:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 4356,
                                "name": "tickSpacing",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4192,
                                "src": "4125:11:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "src": "4072:64:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "id": 4358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "3939:197:41",
                            "trueExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "id": 4340,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    },
                                    "id": 4337,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      },
                                      "id": 4327,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 4325,
                                        "name": "compressed",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4202,
                                        "src": "3970:10:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "+",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 4326,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3983:1:41",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "3970:14:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 4335,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 4332,
                                                "name": "masked",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4309,
                                                "src": "4021:6:41",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 4330,
                                                "name": "BitMath",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2162,
                                                "src": "3993:7:41",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_contract$_BitMath_$2162_$",
                                                  "typeString": "type(library BitMath)"
                                                }
                                              },
                                              "id": 4331,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "leastSignificantBit",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 2161,
                                              "src": "3993:27:41",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$",
                                                "typeString": "function (uint256) pure returns (uint8)"
                                              }
                                            },
                                            "id": 4333,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3993:35:41",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 4334,
                                            "name": "bitPos",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4290,
                                            "src": "4031:6:41",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "src": "3993:44:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 4329,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "3987:5:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_int24_$",
                                          "typeString": "type(int24)"
                                        },
                                        "typeName": {
                                          "id": 4328,
                                          "name": "int24",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "3987:5:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4336,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "3987:51:41",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "src": "3970:68:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "id": 4338,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "3969:70:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 4339,
                                "name": "tickSpacing",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4192,
                                "src": "4042:11:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "src": "3969:84:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "src": "3932:204:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "id": 4360,
                        "nodeType": "ExpressionStatement",
                        "src": "3932:204:41"
                      }
                    ]
                  },
                  "id": 4362,
                  "nodeType": "IfStatement",
                  "src": "2580:1567:41",
                  "trueBody": {
                    "id": 4286,
                    "nodeType": "Block",
                    "src": "2589:727:41",
                    "statements": [
                      {
                        "assignments": [
                          4222,
                          4224
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4222,
                            "mutability": "mutable",
                            "name": "wordPos",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4286,
                            "src": "2604:13:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int16",
                              "typeString": "int16"
                            },
                            "typeName": {
                              "id": 4221,
                              "name": "int16",
                              "nodeType": "ElementaryTypeName",
                              "src": "2604:5:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 4224,
                            "mutability": "mutable",
                            "name": "bitPos",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4286,
                            "src": "2619:12:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 4223,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "2619:5:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4228,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4226,
                              "name": "compressed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4202,
                              "src": "2644:10:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            ],
                            "id": 4225,
                            "name": "position",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4142,
                            "src": "2635:8:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_int24_$returns$_t_int16_$_t_uint8_$",
                              "typeString": "function (int24) pure returns (int16,uint8)"
                            }
                          },
                          "id": 4227,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2635:20:41",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_int16_$_t_uint8_$",
                            "typeString": "tuple(int16,uint8)"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2603:52:41"
                      },
                      {
                        "assignments": [
                          4230
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4230,
                            "mutability": "mutable",
                            "name": "mask",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4286,
                            "src": "2736:12:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4229,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2736:7:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4242,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 4241,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 4236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 4233,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 4231,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2752:1:41",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "id": 4232,
                                    "name": "bitPos",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4224,
                                    "src": "2757:6:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "src": "2752:11:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 4234,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2751:13:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 4235,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2767:1:41",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "2751:17:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 4239,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 4237,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2772:1:41",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 4238,
                                  "name": "bitPos",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4224,
                                  "src": "2777:6:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "src": "2772:11:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "id": 4240,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2771:13:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "2751:33:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2736:48:41"
                      },
                      {
                        "assignments": [
                          4244
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4244,
                            "mutability": "mutable",
                            "name": "masked",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4286,
                            "src": "2798:14:41",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4243,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2798:7:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4251,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4250,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4247,
                                "name": "wordPos",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4222,
                                "src": "2831:7:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int16",
                                  "typeString": "int16"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int16",
                                  "typeString": "int16"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4245,
                                "name": "pool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4188,
                                "src": "2815:4:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IUniswapV3PoolState_$3065",
                                  "typeString": "contract IUniswapV3PoolState"
                                }
                              },
                              "id": 4246,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "tickBitmap",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3034,
                              "src": "2815:15:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_int16_$returns$_t_uint256_$",
                                "typeString": "function (int16) view external returns (uint256)"
                              }
                            },
                            "id": 4248,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2815:24:41",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4249,
                            "name": "mask",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4230,
                            "src": "2842:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2815:31:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2798:48:41"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4256,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4252,
                            "name": "initialized",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4199,
                            "src": "2979:11:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4255,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4253,
                              "name": "masked",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4244,
                              "src": "2993:6:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 4254,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3003:1:41",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "2993:11:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "2979:25:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4257,
                        "nodeType": "ExpressionStatement",
                        "src": "2979:25:41"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4284,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4258,
                            "name": "next",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4197,
                            "src": "3128:4:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "id": 4259,
                              "name": "initialized",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4199,
                              "src": "3135:11:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "id": 4282,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    },
                                    "id": 4279,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 4274,
                                      "name": "compressed",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4202,
                                      "src": "3264:10:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 4277,
                                          "name": "bitPos",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4224,
                                          "src": "3283:6:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 4276,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "3277:5:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_int24_$",
                                          "typeString": "type(int24)"
                                        },
                                        "typeName": {
                                          "id": 4275,
                                          "name": "int24",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "3277:5:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4278,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "3277:13:41",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "src": "3264:26:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "id": 4280,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "3263:28:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 4281,
                                "name": "tickSpacing",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4192,
                                "src": "3294:11:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "src": "3263:42:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "id": 4283,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "3135:170:41",
                            "trueExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "id": 4273,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    },
                                    "id": 4270,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 4260,
                                      "name": "compressed",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4202,
                                      "src": "3166:10:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 4268,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 4263,
                                            "name": "bitPos",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4224,
                                            "src": "3185:6:41",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 4266,
                                                "name": "masked",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4244,
                                                "src": "3221:6:41",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 4264,
                                                "name": "BitMath",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2162,
                                                "src": "3194:7:41",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_contract$_BitMath_$2162_$",
                                                  "typeString": "type(library BitMath)"
                                                }
                                              },
                                              "id": 4265,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "mostSignificantBit",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 2000,
                                              "src": "3194:26:41",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$",
                                                "typeString": "function (uint256) pure returns (uint8)"
                                              }
                                            },
                                            "id": 4267,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3194:34:41",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "src": "3185:43:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 4262,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "3179:5:41",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_int24_$",
                                          "typeString": "type(int24)"
                                        },
                                        "typeName": {
                                          "id": 4261,
                                          "name": "int24",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "3179:5:41",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4269,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "3179:50:41",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    "src": "3166:63:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "id": 4271,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "3165:65:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 4272,
                                "name": "tickSpacing",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4192,
                                "src": "3233:11:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "src": "3165:79:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "src": "3128:177:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "id": 4285,
                        "nodeType": "ExpressionStatement",
                        "src": "3128:177:41"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 4186,
              "nodeType": "StructuredDocumentation",
              "src": "1492:727:41",
              "text": "@notice Returns the next initialized tick contained in the same word (or adjacent word) as the tick that is either\n to the left (less than or equal to) or right (greater than) of the given tick\n @param pool The mapping in which to compute the next initialized tick\n @param tick The starting tick\n @param tickSpacing The spacing between usable ticks\n @param lte Whether to search for the next initialized tick to the left (less than or equal to the starting tick)\n @return next The next initialized or uninitialized tick up to 256 ticks away from the current tick\n @return initialized Whether the next tick is initialized, as the function only searches within up to 256 ticks"
            },
            "id": 4364,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "nextInitializedTickWithinOneWord",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4188,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4364,
                  "src": "2275:24:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV3PoolState_$3065",
                    "typeString": "contract IUniswapV3PoolState"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4187,
                    "name": "IUniswapV3PoolState",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3065,
                    "src": "2275:19:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IUniswapV3PoolState_$3065",
                      "typeString": "contract IUniswapV3PoolState"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4190,
                  "mutability": "mutable",
                  "name": "tick",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4364,
                  "src": "2309:10:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4189,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "2309:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4192,
                  "mutability": "mutable",
                  "name": "tickSpacing",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4364,
                  "src": "2329:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4191,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "2329:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4194,
                  "mutability": "mutable",
                  "name": "lte",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4364,
                  "src": "2356:8:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4193,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2356:4:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2265:105:41"
            },
            "returnParameters": {
              "id": 4200,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4197,
                  "mutability": "mutable",
                  "name": "next",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4364,
                  "src": "2394:10:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4196,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "2394:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4199,
                  "mutability": "mutable",
                  "name": "initialized",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4364,
                  "src": "2406:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4198,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2406:4:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2393:30:41"
            },
            "scope": 4365,
            "src": "2224:1929:41",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 4366,
        "src": "367:3788:41"
      }
    ],
    "src": "37:4119:41"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/interfaces/uniswap/TickBitmap.sol",
      "exportedSymbols": {
        "TickBitmap": [
          4365
        ]
      },
      "license": "BUSL-1.1"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.5",
            ".0"
          ]
        },
        "id": 4110,
        "name": "PragmaDirective",
        "src": "37:24:41"
      },
      {
        "attributes": {
          "SourceUnit": 2163,
          "absolutePath": "project:/contracts/interfaces/uniswap/BitMath.sol",
          "file": "./BitMath.sol",
          "scope": 4366,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4111,
        "name": "ImportDirective",
        "src": "63:23:41"
      },
      {
        "attributes": {
          "SourceUnit": 3066,
          "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV3PoolState.sol",
          "file": "./IUniswapV3PoolState.sol",
          "scope": 4366,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4112,
        "name": "ImportDirective",
        "src": "87:35:41"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            4365
          ],
          "name": "TickBitmap",
          "scope": 4366
        },
        "children": [
          {
            "attributes": {
              "text": "@title Packed tick initialized state library\n @notice Stores a packed mapping of tick index to its initialized state\n @dev The mapping uses int16 for keys since ticks are represented as int24 and there are 256 (2^8) values per word."
            },
            "id": 4113,
            "name": "StructuredDocumentation",
            "src": "124:243:41"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "position",
              "overrides": null,
              "scope": 4365,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": "@notice Computes the position in the mapping where the initialized bit for a tick lives\n @param tick The tick for which to compute the position\n @return wordPos The key in the mapping containing the word in which the bit is stored\n @return bitPos The bit position in the word where the flag is stored"
                },
                "id": 4114,
                "name": "StructuredDocumentation",
                "src": "392:325:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tick",
                      "overrides": null,
                      "scope": 4142,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4115,
                        "name": "ElementaryTypeName",
                        "src": "740:5:41"
                      }
                    ],
                    "id": 4116,
                    "name": "VariableDeclaration",
                    "src": "740:10:41"
                  }
                ],
                "id": 4117,
                "name": "ParameterList",
                "src": "739:12:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "wordPos",
                      "overrides": null,
                      "scope": 4142,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4118,
                        "name": "ElementaryTypeName",
                        "src": "774:5:41"
                      }
                    ],
                    "id": 4119,
                    "name": "VariableDeclaration",
                    "src": "774:13:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "bitPos",
                      "overrides": null,
                      "scope": 4142,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 4120,
                        "name": "ElementaryTypeName",
                        "src": "789:5:41"
                      }
                    ],
                    "id": 4121,
                    "name": "VariableDeclaration",
                    "src": "789:12:41"
                  }
                ],
                "id": 4122,
                "name": "ParameterList",
                "src": "773:29:41"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "int16"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4119,
                              "type": "int16",
                              "value": "wordPos"
                            },
                            "id": 4123,
                            "name": "Identifier",
                            "src": "813:7:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "int16",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int16)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int16",
                                      "type": null
                                    },
                                    "id": 4124,
                                    "name": "ElementaryTypeName",
                                    "src": "823:5:41"
                                  }
                                ],
                                "id": 4125,
                                "name": "ElementaryTypeNameExpression",
                                "src": "823:5:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4116,
                                      "type": "int24",
                                      "value": "tick"
                                    },
                                    "id": 4126,
                                    "name": "Identifier",
                                    "src": "829:4:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "38",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "8"
                                    },
                                    "id": 4127,
                                    "name": "Literal",
                                    "src": "837:1:41"
                                  }
                                ],
                                "id": 4128,
                                "name": "BinaryOperation",
                                "src": "829:9:41"
                              }
                            ],
                            "id": 4129,
                            "name": "FunctionCall",
                            "src": "823:16:41"
                          }
                        ],
                        "id": 4130,
                        "name": "Assignment",
                        "src": "813:26:41"
                      }
                    ],
                    "id": 4131,
                    "name": "ExpressionStatement",
                    "src": "813:26:41"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint8"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4121,
                              "type": "uint8",
                              "value": "bitPos"
                            },
                            "id": 4132,
                            "name": "Identifier",
                            "src": "849:6:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint8",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint8)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint8",
                                      "type": null
                                    },
                                    "id": 4133,
                                    "name": "ElementaryTypeName",
                                    "src": "858:5:41"
                                  }
                                ],
                                "id": 4134,
                                "name": "ElementaryTypeNameExpression",
                                "src": "858:5:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "%",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4116,
                                      "type": "int24",
                                      "value": "tick"
                                    },
                                    "id": 4135,
                                    "name": "Identifier",
                                    "src": "864:4:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "323536",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 256",
                                      "value": "256"
                                    },
                                    "id": 4136,
                                    "name": "Literal",
                                    "src": "871:3:41"
                                  }
                                ],
                                "id": 4137,
                                "name": "BinaryOperation",
                                "src": "864:10:41"
                              }
                            ],
                            "id": 4138,
                            "name": "FunctionCall",
                            "src": "858:17:41"
                          }
                        ],
                        "id": 4139,
                        "name": "Assignment",
                        "src": "849:26:41"
                      }
                    ],
                    "id": 4140,
                    "name": "ExpressionStatement",
                    "src": "849:26:41"
                  }
                ],
                "id": 4141,
                "name": "Block",
                "src": "803:79:41"
              }
            ],
            "id": 4142,
            "name": "FunctionDefinition",
            "src": "722:160:41"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "flipTick",
              "overrides": null,
              "scope": 4365,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": "@notice Flips the initialized state for a given tick from false to true, or vice versa\n @param self The mapping in which to flip the tick\n @param tick The tick to flip\n @param tickSpacing The spacing between usable ticks"
                },
                "id": 4143,
                "name": "StructuredDocumentation",
                "src": "888:245:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "self",
                      "overrides": null,
                      "scope": 4185,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "mapping(int16 => uint256)",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "type": "mapping(int16 => uint256)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int16",
                              "type": "int16"
                            },
                            "id": 4144,
                            "name": "ElementaryTypeName",
                            "src": "1173:5:41"
                          },
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 4145,
                            "name": "ElementaryTypeName",
                            "src": "1182:7:41"
                          }
                        ],
                        "id": 4146,
                        "name": "Mapping",
                        "src": "1165:25:41"
                      }
                    ],
                    "id": 4147,
                    "name": "VariableDeclaration",
                    "src": "1165:38:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tick",
                      "overrides": null,
                      "scope": 4185,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4148,
                        "name": "ElementaryTypeName",
                        "src": "1213:5:41"
                      }
                    ],
                    "id": 4149,
                    "name": "VariableDeclaration",
                    "src": "1213:10:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tickSpacing",
                      "overrides": null,
                      "scope": 4185,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4150,
                        "name": "ElementaryTypeName",
                        "src": "1233:5:41"
                      }
                    ],
                    "id": 4151,
                    "name": "VariableDeclaration",
                    "src": "1233:17:41"
                  }
                ],
                "id": 4152,
                "name": "ParameterList",
                "src": "1155:101:41"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4153,
                "name": "ParameterList",
                "src": "1266:0:41"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4154,
                            "name": "Identifier",
                            "src": "1276:7:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "%",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4149,
                                      "type": "int24",
                                      "value": "tick"
                                    },
                                    "id": 4155,
                                    "name": "Identifier",
                                    "src": "1284:4:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4151,
                                      "type": "int24",
                                      "value": "tickSpacing"
                                    },
                                    "id": 4156,
                                    "name": "Identifier",
                                    "src": "1291:11:41"
                                  }
                                ],
                                "id": 4157,
                                "name": "BinaryOperation",
                                "src": "1284:18:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4158,
                                "name": "Literal",
                                "src": "1306:1:41"
                              }
                            ],
                            "id": 4159,
                            "name": "BinaryOperation",
                            "src": "1284:23:41"
                          }
                        ],
                        "id": 4160,
                        "name": "FunctionCall",
                        "src": "1276:32:41"
                      }
                    ],
                    "id": 4161,
                    "name": "ExpressionStatement",
                    "src": "1276:32:41"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4163,
                        4165
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "wordPos",
                          "overrides": null,
                          "scope": 4184,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int16",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int16",
                              "type": "int16"
                            },
                            "id": 4162,
                            "name": "ElementaryTypeName",
                            "src": "1353:5:41"
                          }
                        ],
                        "id": 4163,
                        "name": "VariableDeclaration",
                        "src": "1353:13:41"
                      },
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "bitPos",
                          "overrides": null,
                          "scope": 4184,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint8",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint8",
                              "type": "uint8"
                            },
                            "id": 4164,
                            "name": "ElementaryTypeName",
                            "src": "1368:5:41"
                          }
                        ],
                        "id": 4165,
                        "name": "VariableDeclaration",
                        "src": "1368:12:41"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple(int16,uint8)",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4142,
                              "type": "function (int24) pure returns (int16,uint8)",
                              "value": "position"
                            },
                            "id": 4166,
                            "name": "Identifier",
                            "src": "1384:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "/",
                              "type": "int24"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4149,
                                  "type": "int24",
                                  "value": "tick"
                                },
                                "id": 4167,
                                "name": "Identifier",
                                "src": "1393:4:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4151,
                                  "type": "int24",
                                  "value": "tickSpacing"
                                },
                                "id": 4168,
                                "name": "Identifier",
                                "src": "1400:11:41"
                              }
                            ],
                            "id": 4169,
                            "name": "BinaryOperation",
                            "src": "1393:18:41"
                          }
                        ],
                        "id": 4170,
                        "name": "FunctionCall",
                        "src": "1384:28:41"
                      }
                    ],
                    "id": 4171,
                    "name": "VariableDeclarationStatement",
                    "src": "1352:60:41"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4173
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "mask",
                          "overrides": null,
                          "scope": 4184,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 4172,
                            "name": "ElementaryTypeName",
                            "src": "1422:7:41"
                          }
                        ],
                        "id": 4173,
                        "name": "VariableDeclaration",
                        "src": "1422:12:41"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<<",
                          "type": "uint8"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 4174,
                            "name": "Literal",
                            "src": "1437:1:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4165,
                              "type": "uint8",
                              "value": "bitPos"
                            },
                            "id": 4175,
                            "name": "Identifier",
                            "src": "1442:6:41"
                          }
                        ],
                        "id": 4176,
                        "name": "BinaryOperation",
                        "src": "1437:11:41"
                      }
                    ],
                    "id": 4177,
                    "name": "VariableDeclarationStatement",
                    "src": "1422:26:41"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "^=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4147,
                                  "type": "mapping(int16 => uint256)",
                                  "value": "self"
                                },
                                "id": 4178,
                                "name": "Identifier",
                                "src": "1458:4:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4163,
                                  "type": "int16",
                                  "value": "wordPos"
                                },
                                "id": 4179,
                                "name": "Identifier",
                                "src": "1463:7:41"
                              }
                            ],
                            "id": 4180,
                            "name": "IndexAccess",
                            "src": "1458:13:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4173,
                              "type": "uint256",
                              "value": "mask"
                            },
                            "id": 4181,
                            "name": "Identifier",
                            "src": "1475:4:41"
                          }
                        ],
                        "id": 4182,
                        "name": "Assignment",
                        "src": "1458:21:41"
                      }
                    ],
                    "id": 4183,
                    "name": "ExpressionStatement",
                    "src": "1458:21:41"
                  }
                ],
                "id": 4184,
                "name": "Block",
                "src": "1266:220:41"
              }
            ],
            "id": 4185,
            "name": "FunctionDefinition",
            "src": "1138:348:41"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "nextInitializedTickWithinOneWord",
              "overrides": null,
              "scope": 4365,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": "@notice Returns the next initialized tick contained in the same word (or adjacent word) as the tick that is either\n to the left (less than or equal to) or right (greater than) of the given tick\n @param pool The mapping in which to compute the next initialized tick\n @param tick The starting tick\n @param tickSpacing The spacing between usable ticks\n @param lte Whether to search for the next initialized tick to the left (less than or equal to the starting tick)\n @return next The next initialized or uninitialized tick up to 256 ticks away from the current tick\n @return initialized Whether the next tick is initialized, as the function only searches within up to 256 ticks"
                },
                "id": 4186,
                "name": "StructuredDocumentation",
                "src": "1492:727:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 4364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IUniswapV3PoolState",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IUniswapV3PoolState",
                          "referencedDeclaration": 3065,
                          "type": "contract IUniswapV3PoolState"
                        },
                        "id": 4187,
                        "name": "UserDefinedTypeName",
                        "src": "2275:19:41"
                      }
                    ],
                    "id": 4188,
                    "name": "VariableDeclaration",
                    "src": "2275:24:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tick",
                      "overrides": null,
                      "scope": 4364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4189,
                        "name": "ElementaryTypeName",
                        "src": "2309:5:41"
                      }
                    ],
                    "id": 4190,
                    "name": "VariableDeclaration",
                    "src": "2309:10:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tickSpacing",
                      "overrides": null,
                      "scope": 4364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4191,
                        "name": "ElementaryTypeName",
                        "src": "2329:5:41"
                      }
                    ],
                    "id": 4192,
                    "name": "VariableDeclaration",
                    "src": "2329:17:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "lte",
                      "overrides": null,
                      "scope": 4364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 4193,
                        "name": "ElementaryTypeName",
                        "src": "2356:4:41"
                      }
                    ],
                    "id": 4194,
                    "name": "VariableDeclaration",
                    "src": "2356:8:41"
                  }
                ],
                "id": 4195,
                "name": "ParameterList",
                "src": "2265:105:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "next",
                      "overrides": null,
                      "scope": 4364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4196,
                        "name": "ElementaryTypeName",
                        "src": "2394:5:41"
                      }
                    ],
                    "id": 4197,
                    "name": "VariableDeclaration",
                    "src": "2394:10:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "initialized",
                      "overrides": null,
                      "scope": 4364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 4198,
                        "name": "ElementaryTypeName",
                        "src": "2406:4:41"
                      }
                    ],
                    "id": 4199,
                    "name": "VariableDeclaration",
                    "src": "2406:16:41"
                  }
                ],
                "id": 4200,
                "name": "ParameterList",
                "src": "2393:30:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        4202
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "compressed",
                          "overrides": null,
                          "scope": 4363,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int24",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int24",
                              "type": "int24"
                            },
                            "id": 4201,
                            "name": "ElementaryTypeName",
                            "src": "2434:5:41"
                          }
                        ],
                        "id": 4202,
                        "name": "VariableDeclaration",
                        "src": "2434:16:41"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "/",
                          "type": "int24"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4190,
                              "type": "int24",
                              "value": "tick"
                            },
                            "id": 4203,
                            "name": "Identifier",
                            "src": "2453:4:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4192,
                              "type": "int24",
                              "value": "tickSpacing"
                            },
                            "id": 4204,
                            "name": "Identifier",
                            "src": "2460:11:41"
                          }
                        ],
                        "id": 4205,
                        "name": "BinaryOperation",
                        "src": "2453:18:41"
                      }
                    ],
                    "id": 4206,
                    "name": "VariableDeclarationStatement",
                    "src": "2434:37:41"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "&&",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4190,
                                  "type": "int24",
                                  "value": "tick"
                                },
                                "id": 4207,
                                "name": "Identifier",
                                "src": "2485:4:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4208,
                                "name": "Literal",
                                "src": "2492:1:41"
                              }
                            ],
                            "id": 4209,
                            "name": "BinaryOperation",
                            "src": "2485:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "%",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4190,
                                      "type": "int24",
                                      "value": "tick"
                                    },
                                    "id": 4210,
                                    "name": "Identifier",
                                    "src": "2497:4:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4192,
                                      "type": "int24",
                                      "value": "tickSpacing"
                                    },
                                    "id": 4211,
                                    "name": "Identifier",
                                    "src": "2504:11:41"
                                  }
                                ],
                                "id": 4212,
                                "name": "BinaryOperation",
                                "src": "2497:18:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4213,
                                "name": "Literal",
                                "src": "2519:1:41"
                              }
                            ],
                            "id": 4214,
                            "name": "BinaryOperation",
                            "src": "2497:23:41"
                          }
                        ],
                        "id": 4215,
                        "name": "BinaryOperation",
                        "src": "2485:35:41"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "--",
                              "prefix": false,
                              "type": "int24"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4202,
                                  "type": "int24",
                                  "value": "compressed"
                                },
                                "id": 4216,
                                "name": "Identifier",
                                "src": "2522:10:41"
                              }
                            ],
                            "id": 4217,
                            "name": "UnaryOperation",
                            "src": "2522:12:41"
                          }
                        ],
                        "id": 4218,
                        "name": "ExpressionStatement",
                        "src": "2522:12:41"
                      }
                    ],
                    "id": 4219,
                    "name": "IfStatement",
                    "src": "2481:53:41"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 4194,
                          "type": "bool",
                          "value": "lte"
                        },
                        "id": 4220,
                        "name": "Identifier",
                        "src": "2584:3:41"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                4222,
                                4224
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "wordPos",
                                  "overrides": null,
                                  "scope": 4286,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "int16",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int16",
                                      "type": "int16"
                                    },
                                    "id": 4221,
                                    "name": "ElementaryTypeName",
                                    "src": "2604:5:41"
                                  }
                                ],
                                "id": 4222,
                                "name": "VariableDeclaration",
                                "src": "2604:13:41"
                              },
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "bitPos",
                                  "overrides": null,
                                  "scope": 4286,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint8",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint8",
                                      "type": "uint8"
                                    },
                                    "id": 4223,
                                    "name": "ElementaryTypeName",
                                    "src": "2619:5:41"
                                  }
                                ],
                                "id": 4224,
                                "name": "VariableDeclaration",
                                "src": "2619:12:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple(int16,uint8)",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4142,
                                      "type": "function (int24) pure returns (int16,uint8)",
                                      "value": "position"
                                    },
                                    "id": 4225,
                                    "name": "Identifier",
                                    "src": "2635:8:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4202,
                                      "type": "int24",
                                      "value": "compressed"
                                    },
                                    "id": 4226,
                                    "name": "Identifier",
                                    "src": "2644:10:41"
                                  }
                                ],
                                "id": 4227,
                                "name": "FunctionCall",
                                "src": "2635:20:41"
                              }
                            ],
                            "id": 4228,
                            "name": "VariableDeclarationStatement",
                            "src": "2603:52:41"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                4230
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "mask",
                                  "overrides": null,
                                  "scope": 4286,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 4229,
                                    "name": "ElementaryTypeName",
                                    "src": "2736:7:41"
                                  }
                                ],
                                "id": 4230,
                                "name": "VariableDeclaration",
                                "src": "2736:12:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+",
                                  "type": "uint8"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "uint8"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "uint8"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "<<",
                                              "type": "uint8"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 4231,
                                                "name": "Literal",
                                                "src": "2752:1:41"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4224,
                                                  "type": "uint8",
                                                  "value": "bitPos"
                                                },
                                                "id": 4232,
                                                "name": "Identifier",
                                                "src": "2757:6:41"
                                              }
                                            ],
                                            "id": 4233,
                                            "name": "BinaryOperation",
                                            "src": "2752:11:41"
                                          }
                                        ],
                                        "id": 4234,
                                        "name": "TupleExpression",
                                        "src": "2751:13:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 4235,
                                        "name": "Literal",
                                        "src": "2767:1:41"
                                      }
                                    ],
                                    "id": 4236,
                                    "name": "BinaryOperation",
                                    "src": "2751:17:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint8"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<",
                                          "type": "uint8"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 4237,
                                            "name": "Literal",
                                            "src": "2772:1:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4224,
                                              "type": "uint8",
                                              "value": "bitPos"
                                            },
                                            "id": 4238,
                                            "name": "Identifier",
                                            "src": "2777:6:41"
                                          }
                                        ],
                                        "id": 4239,
                                        "name": "BinaryOperation",
                                        "src": "2772:11:41"
                                      }
                                    ],
                                    "id": 4240,
                                    "name": "TupleExpression",
                                    "src": "2771:13:41"
                                  }
                                ],
                                "id": 4241,
                                "name": "BinaryOperation",
                                "src": "2751:33:41"
                              }
                            ],
                            "id": 4242,
                            "name": "VariableDeclarationStatement",
                            "src": "2736:48:41"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                4244
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "masked",
                                  "overrides": null,
                                  "scope": 4286,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 4243,
                                    "name": "ElementaryTypeName",
                                    "src": "2798:7:41"
                                  }
                                ],
                                "id": 4244,
                                "name": "VariableDeclaration",
                                "src": "2798:14:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int16",
                                              "typeString": "int16"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "tickBitmap",
                                          "referencedDeclaration": 3034,
                                          "type": "function (int16) view external returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4188,
                                              "type": "contract IUniswapV3PoolState",
                                              "value": "pool"
                                            },
                                            "id": 4245,
                                            "name": "Identifier",
                                            "src": "2815:4:41"
                                          }
                                        ],
                                        "id": 4246,
                                        "name": "MemberAccess",
                                        "src": "2815:15:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4222,
                                          "type": "int16",
                                          "value": "wordPos"
                                        },
                                        "id": 4247,
                                        "name": "Identifier",
                                        "src": "2831:7:41"
                                      }
                                    ],
                                    "id": 4248,
                                    "name": "FunctionCall",
                                    "src": "2815:24:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4230,
                                      "type": "uint256",
                                      "value": "mask"
                                    },
                                    "id": 4249,
                                    "name": "Identifier",
                                    "src": "2842:4:41"
                                  }
                                ],
                                "id": 4250,
                                "name": "BinaryOperation",
                                "src": "2815:31:41"
                              }
                            ],
                            "id": 4251,
                            "name": "VariableDeclarationStatement",
                            "src": "2798:48:41"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4199,
                                      "type": "bool",
                                      "value": "initialized"
                                    },
                                    "id": 4252,
                                    "name": "Identifier",
                                    "src": "2979:11:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "!=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4244,
                                          "type": "uint256",
                                          "value": "masked"
                                        },
                                        "id": 4253,
                                        "name": "Identifier",
                                        "src": "2993:6:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 4254,
                                        "name": "Literal",
                                        "src": "3003:1:41"
                                      }
                                    ],
                                    "id": 4255,
                                    "name": "BinaryOperation",
                                    "src": "2993:11:41"
                                  }
                                ],
                                "id": 4256,
                                "name": "Assignment",
                                "src": "2979:25:41"
                              }
                            ],
                            "id": 4257,
                            "name": "ExpressionStatement",
                            "src": "2979:25:41"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4197,
                                      "type": "int24",
                                      "value": "next"
                                    },
                                    "id": 4258,
                                    "name": "Identifier",
                                    "src": "3128:4:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "int24"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4199,
                                          "type": "bool",
                                          "value": "initialized"
                                        },
                                        "id": 4259,
                                        "name": "Identifier",
                                        "src": "3135:11:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int24",
                                            "typeString": "int24"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "int24"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "int24"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_int24",
                                                    "typeString": "int24"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "-",
                                                  "type": "int24"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4202,
                                                      "type": "int24",
                                                      "value": "compressed"
                                                    },
                                                    "id": 4260,
                                                    "name": "Identifier",
                                                    "src": "3166:10:41"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "tryCall": false,
                                                      "type": "int24",
                                                      "type_conversion": true
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_uint8",
                                                              "typeString": "uint8"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "type": "type(int24)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "name": "int24",
                                                              "type": null
                                                            },
                                                            "id": 4261,
                                                            "name": "ElementaryTypeName",
                                                            "src": "3179:5:41"
                                                          }
                                                        ],
                                                        "id": 4262,
                                                        "name": "ElementaryTypeNameExpression",
                                                        "src": "3179:5:41"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "type": "uint8"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4224,
                                                              "type": "uint8",
                                                              "value": "bitPos"
                                                            },
                                                            "id": 4263,
                                                            "name": "Identifier",
                                                            "src": "3185:6:41"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "isStructConstructorCall": false,
                                                              "lValueRequested": false,
                                                              "names": [
                                                                null
                                                              ],
                                                              "tryCall": false,
                                                              "type": "uint8",
                                                              "type_conversion": false
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": [
                                                                    {
                                                                      "typeIdentifier": "t_uint256",
                                                                      "typeString": "uint256"
                                                                    }
                                                                  ],
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": false,
                                                                  "lValueRequested": false,
                                                                  "member_name": "mostSignificantBit",
                                                                  "referencedDeclaration": 2000,
                                                                  "type": "function (uint256) pure returns (uint8)"
                                                                },
                                                                "children": [
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 2162,
                                                                      "type": "type(library BitMath)",
                                                                      "value": "BitMath"
                                                                    },
                                                                    "id": 4264,
                                                                    "name": "Identifier",
                                                                    "src": "3194:7:41"
                                                                  }
                                                                ],
                                                                "id": 4265,
                                                                "name": "MemberAccess",
                                                                "src": "3194:26:41"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 4244,
                                                                  "type": "uint256",
                                                                  "value": "masked"
                                                                },
                                                                "id": 4266,
                                                                "name": "Identifier",
                                                                "src": "3221:6:41"
                                                              }
                                                            ],
                                                            "id": 4267,
                                                            "name": "FunctionCall",
                                                            "src": "3194:34:41"
                                                          }
                                                        ],
                                                        "id": 4268,
                                                        "name": "BinaryOperation",
                                                        "src": "3185:43:41"
                                                      }
                                                    ],
                                                    "id": 4269,
                                                    "name": "FunctionCall",
                                                    "src": "3179:50:41"
                                                  }
                                                ],
                                                "id": 4270,
                                                "name": "BinaryOperation",
                                                "src": "3166:63:41"
                                              }
                                            ],
                                            "id": 4271,
                                            "name": "TupleExpression",
                                            "src": "3165:65:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4192,
                                              "type": "int24",
                                              "value": "tickSpacing"
                                            },
                                            "id": 4272,
                                            "name": "Identifier",
                                            "src": "3233:11:41"
                                          }
                                        ],
                                        "id": 4273,
                                        "name": "BinaryOperation",
                                        "src": "3165:79:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int24",
                                            "typeString": "int24"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "int24"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "int24"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_int24",
                                                    "typeString": "int24"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "-",
                                                  "type": "int24"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4202,
                                                      "type": "int24",
                                                      "value": "compressed"
                                                    },
                                                    "id": 4274,
                                                    "name": "Identifier",
                                                    "src": "3264:10:41"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "tryCall": false,
                                                      "type": "int24",
                                                      "type_conversion": true
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_uint8",
                                                              "typeString": "uint8"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "type": "type(int24)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "name": "int24",
                                                              "type": null
                                                            },
                                                            "id": 4275,
                                                            "name": "ElementaryTypeName",
                                                            "src": "3277:5:41"
                                                          }
                                                        ],
                                                        "id": 4276,
                                                        "name": "ElementaryTypeNameExpression",
                                                        "src": "3277:5:41"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 4224,
                                                          "type": "uint8",
                                                          "value": "bitPos"
                                                        },
                                                        "id": 4277,
                                                        "name": "Identifier",
                                                        "src": "3283:6:41"
                                                      }
                                                    ],
                                                    "id": 4278,
                                                    "name": "FunctionCall",
                                                    "src": "3277:13:41"
                                                  }
                                                ],
                                                "id": 4279,
                                                "name": "BinaryOperation",
                                                "src": "3264:26:41"
                                              }
                                            ],
                                            "id": 4280,
                                            "name": "TupleExpression",
                                            "src": "3263:28:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4192,
                                              "type": "int24",
                                              "value": "tickSpacing"
                                            },
                                            "id": 4281,
                                            "name": "Identifier",
                                            "src": "3294:11:41"
                                          }
                                        ],
                                        "id": 4282,
                                        "name": "BinaryOperation",
                                        "src": "3263:42:41"
                                      }
                                    ],
                                    "id": 4283,
                                    "name": "Conditional",
                                    "src": "3135:170:41"
                                  }
                                ],
                                "id": 4284,
                                "name": "Assignment",
                                "src": "3128:177:41"
                              }
                            ],
                            "id": 4285,
                            "name": "ExpressionStatement",
                            "src": "3128:177:41"
                          }
                        ],
                        "id": 4286,
                        "name": "Block",
                        "src": "2589:727:41"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                4288,
                                4290
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "wordPos",
                                  "overrides": null,
                                  "scope": 4361,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "int16",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int16",
                                      "type": "int16"
                                    },
                                    "id": 4287,
                                    "name": "ElementaryTypeName",
                                    "src": "3434:5:41"
                                  }
                                ],
                                "id": 4288,
                                "name": "VariableDeclaration",
                                "src": "3434:13:41"
                              },
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "bitPos",
                                  "overrides": null,
                                  "scope": 4361,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint8",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint8",
                                      "type": "uint8"
                                    },
                                    "id": 4289,
                                    "name": "ElementaryTypeName",
                                    "src": "3449:5:41"
                                  }
                                ],
                                "id": 4290,
                                "name": "VariableDeclaration",
                                "src": "3449:12:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple(int16,uint8)",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4142,
                                      "type": "function (int24) pure returns (int16,uint8)",
                                      "value": "position"
                                    },
                                    "id": 4291,
                                    "name": "Identifier",
                                    "src": "3465:8:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+",
                                      "type": "int24"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4202,
                                          "type": "int24",
                                          "value": "compressed"
                                        },
                                        "id": 4292,
                                        "name": "Identifier",
                                        "src": "3474:10:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 4293,
                                        "name": "Literal",
                                        "src": "3487:1:41"
                                      }
                                    ],
                                    "id": 4294,
                                    "name": "BinaryOperation",
                                    "src": "3474:14:41"
                                  }
                                ],
                                "id": 4295,
                                "name": "FunctionCall",
                                "src": "3465:24:41"
                              }
                            ],
                            "id": 4296,
                            "name": "VariableDeclarationStatement",
                            "src": "3433:56:41"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                4298
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "mask",
                                  "overrides": null,
                                  "scope": 4361,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 4297,
                                    "name": "ElementaryTypeName",
                                    "src": "3561:7:41"
                                  }
                                ],
                                "id": 4298,
                                "name": "VariableDeclaration",
                                "src": "3561:12:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "~",
                                  "prefix": true,
                                  "type": "uint8"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint8"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint8"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "uint8"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "<<",
                                                  "type": "uint8"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "hexvalue": "31",
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "subdenomination": null,
                                                      "token": "number",
                                                      "type": "int_const 1",
                                                      "value": "1"
                                                    },
                                                    "id": 4299,
                                                    "name": "Literal",
                                                    "src": "3579:1:41"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4290,
                                                      "type": "uint8",
                                                      "value": "bitPos"
                                                    },
                                                    "id": 4300,
                                                    "name": "Identifier",
                                                    "src": "3584:6:41"
                                                  }
                                                ],
                                                "id": 4301,
                                                "name": "BinaryOperation",
                                                "src": "3579:11:41"
                                              }
                                            ],
                                            "id": 4302,
                                            "name": "TupleExpression",
                                            "src": "3578:13:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 4303,
                                            "name": "Literal",
                                            "src": "3594:1:41"
                                          }
                                        ],
                                        "id": 4304,
                                        "name": "BinaryOperation",
                                        "src": "3578:17:41"
                                      }
                                    ],
                                    "id": 4305,
                                    "name": "TupleExpression",
                                    "src": "3577:19:41"
                                  }
                                ],
                                "id": 4306,
                                "name": "UnaryOperation",
                                "src": "3576:20:41"
                              }
                            ],
                            "id": 4307,
                            "name": "VariableDeclarationStatement",
                            "src": "3561:35:41"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                4309
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "masked",
                                  "overrides": null,
                                  "scope": 4361,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 4308,
                                    "name": "ElementaryTypeName",
                                    "src": "3610:7:41"
                                  }
                                ],
                                "id": 4309,
                                "name": "VariableDeclaration",
                                "src": "3610:14:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int16",
                                              "typeString": "int16"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "tickBitmap",
                                          "referencedDeclaration": 3034,
                                          "type": "function (int16) view external returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4188,
                                              "type": "contract IUniswapV3PoolState",
                                              "value": "pool"
                                            },
                                            "id": 4310,
                                            "name": "Identifier",
                                            "src": "3627:4:41"
                                          }
                                        ],
                                        "id": 4311,
                                        "name": "MemberAccess",
                                        "src": "3627:15:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4288,
                                          "type": "int16",
                                          "value": "wordPos"
                                        },
                                        "id": 4312,
                                        "name": "Identifier",
                                        "src": "3643:7:41"
                                      }
                                    ],
                                    "id": 4313,
                                    "name": "FunctionCall",
                                    "src": "3627:24:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4298,
                                      "type": "uint256",
                                      "value": "mask"
                                    },
                                    "id": 4314,
                                    "name": "Identifier",
                                    "src": "3654:4:41"
                                  }
                                ],
                                "id": 4315,
                                "name": "BinaryOperation",
                                "src": "3627:31:41"
                              }
                            ],
                            "id": 4316,
                            "name": "VariableDeclarationStatement",
                            "src": "3610:48:41"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4199,
                                      "type": "bool",
                                      "value": "initialized"
                                    },
                                    "id": 4317,
                                    "name": "Identifier",
                                    "src": "3783:11:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "!=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4309,
                                          "type": "uint256",
                                          "value": "masked"
                                        },
                                        "id": 4318,
                                        "name": "Identifier",
                                        "src": "3797:6:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 4319,
                                        "name": "Literal",
                                        "src": "3807:1:41"
                                      }
                                    ],
                                    "id": 4320,
                                    "name": "BinaryOperation",
                                    "src": "3797:11:41"
                                  }
                                ],
                                "id": 4321,
                                "name": "Assignment",
                                "src": "3783:25:41"
                              }
                            ],
                            "id": 4322,
                            "name": "ExpressionStatement",
                            "src": "3783:25:41"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4197,
                                      "type": "int24",
                                      "value": "next"
                                    },
                                    "id": 4323,
                                    "name": "Identifier",
                                    "src": "3932:4:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "int24"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4199,
                                          "type": "bool",
                                          "value": "initialized"
                                        },
                                        "id": 4324,
                                        "name": "Identifier",
                                        "src": "3939:11:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int24",
                                            "typeString": "int24"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "int24"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "int24"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_int24",
                                                    "typeString": "int24"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "+",
                                                  "type": "int24"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "commonType": {
                                                        "typeIdentifier": "t_int24",
                                                        "typeString": "int24"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "+",
                                                      "type": "int24"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 4202,
                                                          "type": "int24",
                                                          "value": "compressed"
                                                        },
                                                        "id": 4325,
                                                        "name": "Identifier",
                                                        "src": "3970:10:41"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "hexvalue": "31",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "subdenomination": null,
                                                          "token": "number",
                                                          "type": "int_const 1",
                                                          "value": "1"
                                                        },
                                                        "id": 4326,
                                                        "name": "Literal",
                                                        "src": "3983:1:41"
                                                      }
                                                    ],
                                                    "id": 4327,
                                                    "name": "BinaryOperation",
                                                    "src": "3970:14:41"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "tryCall": false,
                                                      "type": "int24",
                                                      "type_conversion": true
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_uint8",
                                                              "typeString": "uint8"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "type": "type(int24)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "name": "int24",
                                                              "type": null
                                                            },
                                                            "id": 4328,
                                                            "name": "ElementaryTypeName",
                                                            "src": "3987:5:41"
                                                          }
                                                        ],
                                                        "id": 4329,
                                                        "name": "ElementaryTypeNameExpression",
                                                        "src": "3987:5:41"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "type": "uint8"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "isStructConstructorCall": false,
                                                              "lValueRequested": false,
                                                              "names": [
                                                                null
                                                              ],
                                                              "tryCall": false,
                                                              "type": "uint8",
                                                              "type_conversion": false
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": [
                                                                    {
                                                                      "typeIdentifier": "t_uint256",
                                                                      "typeString": "uint256"
                                                                    }
                                                                  ],
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": false,
                                                                  "lValueRequested": false,
                                                                  "member_name": "leastSignificantBit",
                                                                  "referencedDeclaration": 2161,
                                                                  "type": "function (uint256) pure returns (uint8)"
                                                                },
                                                                "children": [
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 2162,
                                                                      "type": "type(library BitMath)",
                                                                      "value": "BitMath"
                                                                    },
                                                                    "id": 4330,
                                                                    "name": "Identifier",
                                                                    "src": "3993:7:41"
                                                                  }
                                                                ],
                                                                "id": 4331,
                                                                "name": "MemberAccess",
                                                                "src": "3993:27:41"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 4309,
                                                                  "type": "uint256",
                                                                  "value": "masked"
                                                                },
                                                                "id": 4332,
                                                                "name": "Identifier",
                                                                "src": "4021:6:41"
                                                              }
                                                            ],
                                                            "id": 4333,
                                                            "name": "FunctionCall",
                                                            "src": "3993:35:41"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4290,
                                                              "type": "uint8",
                                                              "value": "bitPos"
                                                            },
                                                            "id": 4334,
                                                            "name": "Identifier",
                                                            "src": "4031:6:41"
                                                          }
                                                        ],
                                                        "id": 4335,
                                                        "name": "BinaryOperation",
                                                        "src": "3993:44:41"
                                                      }
                                                    ],
                                                    "id": 4336,
                                                    "name": "FunctionCall",
                                                    "src": "3987:51:41"
                                                  }
                                                ],
                                                "id": 4337,
                                                "name": "BinaryOperation",
                                                "src": "3970:68:41"
                                              }
                                            ],
                                            "id": 4338,
                                            "name": "TupleExpression",
                                            "src": "3969:70:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4192,
                                              "type": "int24",
                                              "value": "tickSpacing"
                                            },
                                            "id": 4339,
                                            "name": "Identifier",
                                            "src": "4042:11:41"
                                          }
                                        ],
                                        "id": 4340,
                                        "name": "BinaryOperation",
                                        "src": "3969:84:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int24",
                                            "typeString": "int24"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "int24"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "int24"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_int24",
                                                    "typeString": "int24"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "+",
                                                  "type": "int24"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "commonType": {
                                                        "typeIdentifier": "t_int24",
                                                        "typeString": "int24"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "+",
                                                      "type": "int24"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 4202,
                                                          "type": "int24",
                                                          "value": "compressed"
                                                        },
                                                        "id": 4341,
                                                        "name": "Identifier",
                                                        "src": "4073:10:41"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "hexvalue": "31",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "subdenomination": null,
                                                          "token": "number",
                                                          "type": "int_const 1",
                                                          "value": "1"
                                                        },
                                                        "id": 4342,
                                                        "name": "Literal",
                                                        "src": "4086:1:41"
                                                      }
                                                    ],
                                                    "id": 4343,
                                                    "name": "BinaryOperation",
                                                    "src": "4073:14:41"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "tryCall": false,
                                                      "type": "int24",
                                                      "type_conversion": true
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_uint8",
                                                              "typeString": "uint8"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "type": "type(int24)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "name": "int24",
                                                              "type": null
                                                            },
                                                            "id": 4344,
                                                            "name": "ElementaryTypeName",
                                                            "src": "4090:5:41"
                                                          }
                                                        ],
                                                        "id": 4345,
                                                        "name": "ElementaryTypeNameExpression",
                                                        "src": "4090:5:41"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint8",
                                                            "typeString": "uint8"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "type": "uint8"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "member_name": "max",
                                                              "referencedDeclaration": null,
                                                              "type": "uint8"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": true,
                                                                  "isStructConstructorCall": false,
                                                                  "lValueRequested": false,
                                                                  "names": [
                                                                    null
                                                                  ],
                                                                  "tryCall": false,
                                                                  "type": "type(uint8)",
                                                                  "type_conversion": false
                                                                },
                                                                "children": [
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": [
                                                                        {
                                                                          "typeIdentifier": "t_type$_t_uint8_$",
                                                                          "typeString": "type(uint8)"
                                                                        }
                                                                      ],
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": -27,
                                                                      "type": "function () pure",
                                                                      "value": "type"
                                                                    },
                                                                    "id": 4346,
                                                                    "name": "Identifier",
                                                                    "src": "4096:4:41"
                                                                  },
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "isConstant": false,
                                                                      "isLValue": false,
                                                                      "isPure": true,
                                                                      "lValueRequested": false,
                                                                      "type": "type(uint8)"
                                                                    },
                                                                    "children": [
                                                                      {
                                                                        "attributes": {
                                                                          "name": "uint8",
                                                                          "type": null
                                                                        },
                                                                        "id": 4347,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4101:5:41"
                                                                      }
                                                                    ],
                                                                    "id": 4348,
                                                                    "name": "ElementaryTypeNameExpression",
                                                                    "src": "4101:5:41"
                                                                  }
                                                                ],
                                                                "id": 4349,
                                                                "name": "FunctionCall",
                                                                "src": "4096:11:41"
                                                              }
                                                            ],
                                                            "id": 4350,
                                                            "name": "MemberAccess",
                                                            "src": "4096:15:41"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4290,
                                                              "type": "uint8",
                                                              "value": "bitPos"
                                                            },
                                                            "id": 4351,
                                                            "name": "Identifier",
                                                            "src": "4114:6:41"
                                                          }
                                                        ],
                                                        "id": 4352,
                                                        "name": "BinaryOperation",
                                                        "src": "4096:24:41"
                                                      }
                                                    ],
                                                    "id": 4353,
                                                    "name": "FunctionCall",
                                                    "src": "4090:31:41"
                                                  }
                                                ],
                                                "id": 4354,
                                                "name": "BinaryOperation",
                                                "src": "4073:48:41"
                                              }
                                            ],
                                            "id": 4355,
                                            "name": "TupleExpression",
                                            "src": "4072:50:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4192,
                                              "type": "int24",
                                              "value": "tickSpacing"
                                            },
                                            "id": 4356,
                                            "name": "Identifier",
                                            "src": "4125:11:41"
                                          }
                                        ],
                                        "id": 4357,
                                        "name": "BinaryOperation",
                                        "src": "4072:64:41"
                                      }
                                    ],
                                    "id": 4358,
                                    "name": "Conditional",
                                    "src": "3939:197:41"
                                  }
                                ],
                                "id": 4359,
                                "name": "Assignment",
                                "src": "3932:204:41"
                              }
                            ],
                            "id": 4360,
                            "name": "ExpressionStatement",
                            "src": "3932:204:41"
                          }
                        ],
                        "id": 4361,
                        "name": "Block",
                        "src": "3322:825:41"
                      }
                    ],
                    "id": 4362,
                    "name": "IfStatement",
                    "src": "2580:1567:41"
                  }
                ],
                "id": 4363,
                "name": "Block",
                "src": "2424:1729:41"
              }
            ],
            "id": 4364,
            "name": "FunctionDefinition",
            "src": "2224:1929:41"
          }
        ],
        "id": 4365,
        "name": "ContractDefinition",
        "src": "367:3788:41"
      }
    ],
    "id": 4366,
    "name": "SourceUnit",
    "src": "37:4119:41"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-02-07T17:50:42.802Z",
  "devdoc": {
    "details": "The mapping uses int16 for keys since ticks are represented as int24 and there are 256 (2^8) values per word.",
    "methods": {},
    "title": "Packed tick initialized state library"
  },
  "userdoc": {
    "methods": {},
    "notice": "Stores a packed mapping of tick index to its initialized state"
  }
}