{
  "abi": [
    {
      "inputs": [],
      "name": "blockNumber",
      "outputs": [
        {
          "internalType": "Blocknumber",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "x",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "shift",
          "type": "uint8"
        }
      ],
      "name": "intToBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "x",
          "type": "bytes5"
        }
      ],
      "name": "toInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Blocknumber",
          "name": "x",
          "type": "uint32"
        }
      ],
      "name": "toInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Timestamp",
          "name": "x",
          "type": "uint40"
        }
      ],
      "name": "toInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "42": "contracts/shared/BaseTypes.sol",
    "43": "contracts/shared/IBaseTypes.sol"
  },
  "ast": {
    "absolutePath": "contracts/shared/BaseTypes.sol",
    "exportedSymbols": {
      "BaseTypes": [
        4443
      ],
      "Blocknumber": [
        4713
      ],
      "ChainId": [
        4447
      ],
      "IBaseTypes": [
        4753
      ],
      "Timestamp": [
        4530
      ]
    },
    "id": 4444,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4346,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:24:42"
      },
      {
        "absolutePath": "contracts/shared/IBaseTypes.sol",
        "file": "./IBaseTypes.sol",
        "id": 4351,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4444,
        "sourceUnit": 4754,
        "src": "65:77:42",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4347,
              "name": "IBaseTypes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4753,
              "src": "73:10:42",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4348,
              "name": "ChainId",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4447,
              "src": "85:7:42",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4349,
              "name": "Blocknumber",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4713,
              "src": "94:11:42",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4350,
              "name": "Timestamp",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4530,
              "src": "107:9:42",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 4352,
              "name": "IBaseTypes",
              "nameLocations": [
                "167:10:42"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 4753,
              "src": "167:10:42"
            },
            "id": 4353,
            "nodeType": "InheritanceSpecifier",
            "src": "167:10:42"
          }
        ],
        "canonicalName": "BaseTypes",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 4443,
        "linearizedBaseContracts": [
          4443,
          4753
        ],
        "name": "BaseTypes",
        "nameLocation": "154:9:42",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "baseFunctions": [
              4722
            ],
            "body": {
              "id": 4373,
              "nodeType": "Block",
              "src": "272:60:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 4367,
                              "name": "x",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4355,
                              "src": "313:1:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 4368,
                              "name": "shift",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4357,
                              "src": "318:5:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "313:10:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 4366,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "306:6:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint16_$",
                            "typeString": "type(uint16)"
                          },
                          "typeName": {
                            "id": 4365,
                            "name": "uint16",
                            "nodeType": "ElementaryTypeName",
                            "src": "306:6:42",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "306:18:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "expression": {
                        "id": 4363,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "289:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 4364,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "293:12:42",
                      "memberName": "encodePacked",
                      "nodeType": "MemberAccess",
                      "src": "289:16:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 4371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "289:36:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 4362,
                  "id": 4372,
                  "nodeType": "Return",
                  "src": "282:43:42"
                }
              ]
            },
            "functionSelector": "1080d895",
            "id": 4374,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "intToBytes",
            "nameLocation": "194:10:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4359,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "236:8:42"
            },
            "parameters": {
              "id": 4358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4355,
                  "mutability": "mutable",
                  "name": "x",
                  "nameLocation": "213:1:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 4374,
                  "src": "205:9:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4354,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "205:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4357,
                  "mutability": "mutable",
                  "name": "shift",
                  "nameLocation": "222:5:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 4374,
                  "src": "216:11:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 4356,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "216:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "204:24:42"
            },
            "returnParameters": {
              "id": 4362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4361,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4374,
                  "src": "258:12:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4360,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "258:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "257:14:42"
            },
            "scope": 4443,
            "src": "185:147:42",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              4730
            ],
            "body": {
              "id": 4388,
              "nodeType": "Block",
              "src": "403:33:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4385,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4377,
                        "src": "431:1:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                          "typeString": "Blocknumber"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                          "typeString": "Blocknumber"
                        }
                      ],
                      "expression": {
                        "id": 4383,
                        "name": "Blocknumber",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4713,
                        "src": "412:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_Blocknumber_$4713_$",
                          "typeString": "type(Blocknumber)"
                        }
                      },
                      "id": 4384,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "424:6:42",
                      "memberName": "unwrap",
                      "nodeType": "MemberAccess",
                      "src": "412:18:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Blocknumber_$4713_$returns$_t_uint32_$",
                        "typeString": "function (Blocknumber) pure returns (uint32)"
                      }
                    },
                    "id": 4386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "412:21:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4382,
                  "id": 4387,
                  "nodeType": "Return",
                  "src": "405:28:42"
                }
              ]
            },
            "functionSelector": "6effeac4",
            "id": 4389,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toInt",
            "nameLocation": "347:5:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4379,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "375:8:42"
            },
            "parameters": {
              "id": 4378,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4377,
                  "mutability": "mutable",
                  "name": "x",
                  "nameLocation": "365:1:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 4389,
                  "src": "353:13:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                    "typeString": "Blocknumber"
                  },
                  "typeName": {
                    "id": 4376,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4375,
                      "name": "Blocknumber",
                      "nameLocations": [
                        "353:11:42"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4713,
                      "src": "353:11:42"
                    },
                    "referencedDeclaration": 4713,
                    "src": "353:11:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                      "typeString": "Blocknumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "352:15:42"
            },
            "returnParameters": {
              "id": 4382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4381,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4389,
                  "src": "397:4:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4380,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "397:4:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "396:6:42"
            },
            "scope": 4443,
            "src": "338:98:42",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              4738
            ],
            "body": {
              "id": 4403,
              "nodeType": "Block",
              "src": "504:31:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4400,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4392,
                        "src": "530:1:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                          "typeString": "Timestamp"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                          "typeString": "Timestamp"
                        }
                      ],
                      "expression": {
                        "id": 4398,
                        "name": "Timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4530,
                        "src": "513:9:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$4530_$",
                          "typeString": "type(Timestamp)"
                        }
                      },
                      "id": 4399,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "523:6:42",
                      "memberName": "unwrap",
                      "nodeType": "MemberAccess",
                      "src": "513:16:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$4530_$returns$_t_uint40_$",
                        "typeString": "function (Timestamp) pure returns (uint40)"
                      }
                    },
                    "id": 4401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "513:19:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint40",
                      "typeString": "uint40"
                    }
                  },
                  "functionReturnParameters": 4397,
                  "id": 4402,
                  "nodeType": "Return",
                  "src": "506:26:42"
                }
              ]
            },
            "functionSelector": "da09d484",
            "id": 4404,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toInt",
            "nameLocation": "450:5:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4394,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "476:8:42"
            },
            "parameters": {
              "id": 4393,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4392,
                  "mutability": "mutable",
                  "name": "x",
                  "nameLocation": "466:1:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 4404,
                  "src": "456:11:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                    "typeString": "Timestamp"
                  },
                  "typeName": {
                    "id": 4391,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4390,
                      "name": "Timestamp",
                      "nameLocations": [
                        "456:9:42"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4530,
                      "src": "456:9:42"
                    },
                    "referencedDeclaration": 4530,
                    "src": "456:9:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530",
                      "typeString": "Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "455:13:42"
            },
            "returnParameters": {
              "id": 4397,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4396,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4404,
                  "src": "498:4:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4395,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "498:4:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "497:6:42"
            },
            "scope": 4443,
            "src": "441:94:42",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              4746
            ],
            "body": {
              "id": 4424,
              "nodeType": "Block",
              "src": "601:43:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4419,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4407,
                                "src": "637:1:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                                  "typeString": "ChainId"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                                  "typeString": "ChainId"
                                }
                              ],
                              "expression": {
                                "id": 4417,
                                "name": "ChainId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4447,
                                "src": "622:7:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_ChainId_$4447_$",
                                  "typeString": "type(ChainId)"
                                }
                              },
                              "id": 4418,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "630:6:42",
                              "memberName": "unwrap",
                              "nodeType": "MemberAccess",
                              "src": "622:14:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ChainId_$4447_$returns$_t_bytes5_$",
                                "typeString": "function (ChainId) pure returns (bytes5)"
                              }
                            },
                            "id": 4420,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "622:17:42",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes5",
                              "typeString": "bytes5"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes5",
                              "typeString": "bytes5"
                            }
                          ],
                          "id": 4416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "615:6:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint40_$",
                            "typeString": "type(uint40)"
                          },
                          "typeName": {
                            "id": 4415,
                            "name": "uint40",
                            "nodeType": "ElementaryTypeName",
                            "src": "615:6:42",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "615:25:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        }
                      ],
                      "id": 4414,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "610:4:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 4413,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "610:4:42",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 4422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "610:31:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4412,
                  "id": 4423,
                  "nodeType": "Return",
                  "src": "603:38:42"
                }
              ]
            },
            "functionSelector": "66362612",
            "id": 4425,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toInt",
            "nameLocation": "549:5:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4409,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "573:8:42"
            },
            "parameters": {
              "id": 4408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4407,
                  "mutability": "mutable",
                  "name": "x",
                  "nameLocation": "563:1:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 4425,
                  "src": "555:9:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 4406,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4405,
                      "name": "ChainId",
                      "nameLocations": [
                        "555:7:42"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "555:7:42"
                    },
                    "referencedDeclaration": 4447,
                    "src": "555:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "554:11:42"
            },
            "returnParameters": {
              "id": 4412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4411,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4425,
                  "src": "595:4:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4410,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "595:4:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "594:6:42"
            },
            "scope": 4443,
            "src": "540:104:42",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              4752
            ],
            "body": {
              "id": 4441,
              "nodeType": "Block",
              "src": "715:62:42",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 4436,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -4,
                              "src": "756:5:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 4437,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "762:6:42",
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "src": "756:12:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 4435,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "749:6:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": {
                            "id": 4434,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "749:6:42",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4438,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "749:20:42",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "expression": {
                        "id": 4432,
                        "name": "Blocknumber",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4713,
                        "src": "732:11:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_Blocknumber_$4713_$",
                          "typeString": "type(Blocknumber)"
                        }
                      },
                      "id": 4433,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "744:4:42",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "732:16:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_Blocknumber_$4713_$",
                        "typeString": "function (uint32) pure returns (Blocknumber)"
                      }
                    },
                    "id": 4439,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "732:38:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                      "typeString": "Blocknumber"
                    }
                  },
                  "functionReturnParameters": 4431,
                  "id": 4440,
                  "nodeType": "Return",
                  "src": "725:45:42"
                }
              ]
            },
            "functionSelector": "57e871e7",
            "id": 4442,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "blockNumber",
            "nameLocation": "659:11:42",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4427,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "680:8:42"
            },
            "parameters": {
              "id": 4426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "670:2:42"
            },
            "returnParameters": {
              "id": 4431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4430,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4442,
                  "src": "702:11:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                    "typeString": "Blocknumber"
                  },
                  "typeName": {
                    "id": 4429,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4428,
                      "name": "Blocknumber",
                      "nameLocations": [
                        "702:11:42"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4713,
                      "src": "702:11:42"
                    },
                    "referencedDeclaration": 4713,
                    "src": "702:11:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                      "typeString": "Blocknumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "701:13:42"
            },
            "scope": 4443,
            "src": "650:127:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 4444,
        "src": "145:634:42",
        "usedErrors": []
      }
    ],
    "src": "39:740:42"
  },
  "bytecode": "608060405234801561001057600080fd5b50610252806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80631080d8951461005c57806357e871e7146100b557806366362612146100c95780636effeac4146100eb578063da09d48414610102575b600080fd5b61009f61006a36600461011a565b6040805160ff929092169290921b60f01b6001600160f01b031916602082015281516002818303018152602290910190915290565b6040516100ac9190610150565b60405180910390f35b60405163ffffffff431681526020016100ac565b6100dd6100d736600461019e565b60d81c90565b6040519081526020016100ac565b6100dd6100f93660046101cf565b63ffffffff1690565b6100dd6101103660046101f5565b64ffffffffff1690565b6000806040838503121561012d57600080fd5b82359150602083013560ff8116811461014557600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561017d57858101830151858201604001528201610161565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156101b057600080fd5b81356001600160d81b0319811681146101c857600080fd5b9392505050565b6000602082840312156101e157600080fd5b813563ffffffff811681146101c857600080fd5b60006020828403121561020757600080fd5b813564ffffffffff811681146101c857600080fdfea2646970667358221220cdbcc027bf0514bf8ef5b84fad73843372cba49c42d99e4cc5536e8018b8114764736f6c63430008130033",
  "bytecodeSha1": "8a24856ce2d8b9a2c3f2dbe9e3c36f0b0f8dd2ce",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.19+commit.7dd6d404"
  },
  "contractName": "BaseTypes",
  "coverageMap": {
    "branches": {
      "42": {},
      "43": {}
    },
    "statements": {
      "42": {
        "BaseTypes.blockNumber": {
          "1": [
            725,
            770
          ]
        },
        "BaseTypes.intToBytes": {
          "0": [
            282,
            325
          ]
        },
        "BaseTypes.toInt": {
          "2": [
            603,
            641
          ],
          "3": [
            405,
            433
          ],
          "4": [
            506,
            532
          ]
        }
      },
      "43": {}
    }
  },
  "dependencies": [
    "IBaseTypes"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100575760003560e01c80631080d8951461005c57806357e871e7146100b557806366362612146100c95780636effeac4146100eb578063da09d48414610102575b600080fd5b61009f61006a36600461011a565b6040805160ff929092169290921b60f01b6001600160f01b031916602082015281516002818303018152602290910190915290565b6040516100ac9190610150565b60405180910390f35b60405163ffffffff431681526020016100ac565b6100dd6100d736600461019e565b60d81c90565b6040519081526020016100ac565b6100dd6100f93660046101cf565b63ffffffff1690565b6100dd6101103660046101f5565b64ffffffffff1690565b6000806040838503121561012d57600080fd5b82359150602083013560ff8116811461014557600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561017d57858101830151858201604001528201610161565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156101b057600080fd5b81356001600160d81b0319811681146101c857600080fd5b9392505050565b6000602082840312156101e157600080fd5b813563ffffffff811681146101c857600080fd5b60006020828403121561020757600080fd5b813564ffffffffff811681146101c857600080fdfea2646970667358221220cdbcc027bf0514bf8ef5b84fad73843372cba49c42d99e4cc5536e8018b8114764736f6c63430008130033",
  "deployedSourceMap": "145:634:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;185:147;;;;;;:::i;:::-;289:36;;;313:10;;;;;;;;;2434:3:67;2412:16;-1:-1:-1;;;;;;2408:38:67;289:36:42;;;2396:51:67;289:36:42;;;;;;;;;2463:11:67;;;;289:36:42;;;;185:147;;;;;;;;:::i;:::-;;;;;;;;650:127;;;1114:10:67;756:12:42;1102:23:67;1084:42;;1072:2;1057:18;650:127:42;907:225:67;540:104:42;;;;;;:::i;:::-;615:25;;;540:104;;;;1605:25:67;;;1593:2;1578:18;540:104:42;1459:177:67;338:98:42;;;;;;:::i;:::-;405:28;;;338:98;441:94;;;;;;:::i;:::-;506:26;;;441:94;14:337:67;80:6;88;141:2;129:9;120:7;116:23;112:32;109:52;;;157:1;154;147:12;109:52;193:9;180:23;170:33;;253:2;242:9;238:18;225:32;297:4;290:5;286:16;279:5;276:27;266:55;;317:1;314;307:12;266:55;340:5;330:15;;;14:337;;;;;:::o;356:546::-;466:4;495:2;524;513:9;506:21;556:6;550:13;599:6;594:2;583:9;579:18;572:34;624:1;634:140;648:6;645:1;642:13;634:140;;;743:14;;;739:23;;733:30;709:17;;;728:2;705:26;698:66;663:10;;634:140;;;638:3;823:1;818:2;809:6;798:9;794:22;790:31;783:42;893:2;886;882:7;877:2;869:6;865:15;861:29;850:9;846:45;842:54;834:62;;;;356:546;;;;:::o;1137:317::-;1224:6;1277:2;1265:9;1256:7;1252:23;1248:32;1245:52;;;1293:1;1290;1283:12;1245:52;1319:23;;-1:-1:-1;;;;;;1371:34:67;;1361:45;;1351:73;;1420:1;1417;1410:12;1351:73;1443:5;1137:317;-1:-1:-1;;;1137:317:67:o;1641:309::-;1732:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:52;;;1801:1;1798;1791:12;1753:52;1840:9;1827:23;1890:10;1883:5;1879:22;1872:5;1869:33;1859:61;;1916:1;1913;1906:12;1955:309;2044:6;2097:2;2085:9;2076:7;2072:23;2068:32;2065:52;;;2113:1;2110;2103:12;2065:52;2152:9;2139:23;2202:12;2195:5;2191:24;2184:5;2181:35;2171:63;;2230:1;2227;2220:12",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    145,
    779
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1080D895 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x57E871E7 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x66362612 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x6EFFEAC4 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDA09D484 EQ PUSH2 0x102 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9F PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x11A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 SHL PUSH1 0xF0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x2 DUP2 DUP4 SUB ADD DUP2 MSTORE PUSH1 0x22 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x150 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF NUMBER AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAC JUMP JUMPDEST PUSH2 0xDD PUSH2 0xD7 CALLDATASIZE PUSH1 0x4 PUSH2 0x19E JUMP JUMPDEST PUSH1 0xD8 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAC JUMP JUMPDEST PUSH2 0xDD PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH2 0xDD PUSH2 0x110 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x161 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD 0xBC 0xC0 0x27 0xBF SDIV EQ 0xBF DUP15 CREATE2 0xB8 0x4F 0xAD PUSH20 0x843372CBA49C42D99E4CC5536E8018B811476473 PUSH16 0x6C634300081300330000000000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "MSTORE",
      "path": "42"
    },
    "5": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "CALLVALUE",
      "path": "42"
    },
    "6": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "7": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "ISZERO",
      "path": "42"
    },
    "8": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "12": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "REVERT",
      "path": "42"
    },
    "16": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "17": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "POP",
      "path": "42"
    },
    "18": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "CALLDATASIZE",
      "path": "42"
    },
    "21": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "LT",
      "path": "42"
    },
    "22": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x57"
    },
    "25": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "26": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "CALLDATALOAD",
      "path": "42"
    },
    "29": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "SHR",
      "path": "42"
    },
    "32": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "33": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH4",
      "path": "42",
      "value": "0x1080D895"
    },
    "38": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "EQ",
      "path": "42"
    },
    "39": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x5C"
    },
    "42": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "43": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "44": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH4",
      "path": "42",
      "value": "0x57E871E7"
    },
    "49": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "EQ",
      "path": "42"
    },
    "50": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xB5"
    },
    "53": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "54": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "55": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH4",
      "path": "42",
      "value": "0x66362612"
    },
    "60": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "EQ",
      "path": "42"
    },
    "61": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xC9"
    },
    "64": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "65": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "66": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH4",
      "path": "42",
      "value": "0x6EFFEAC4"
    },
    "71": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "EQ",
      "path": "42"
    },
    "72": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xEB"
    },
    "75": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "76": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "77": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH4",
      "path": "42",
      "value": "0xDA09D484"
    },
    "82": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "EQ",
      "path": "42"
    },
    "83": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x102"
    },
    "86": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPI",
      "path": "42"
    },
    "87": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "88": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x0"
    },
    "90": {
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "DUP1",
      "path": "42"
    },
    "91": {
      "first_revert": true,
      "fn": null,
      "offset": [
        145,
        779
      ],
      "op": "REVERT",
      "path": "42"
    },
    "92": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "93": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x9F"
    },
    "96": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x6A"
    },
    "99": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "CALLDATASIZE",
      "path": "42"
    },
    "100": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x4"
    },
    "102": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x11A"
    },
    "105": {
      "fn": "BaseTypes.intToBytes",
      "jump": "i",
      "offset": [
        185,
        332
      ],
      "op": "JUMP",
      "path": "42"
    },
    "106": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "107": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "PUSH1",
      "path": "42",
      "statement": 0,
      "value": "0x40"
    },
    "109": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "DUP1",
      "path": "42"
    },
    "110": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "MLOAD",
      "path": "42"
    },
    "111": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0xFF"
    },
    "113": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SWAP3",
      "path": "42"
    },
    "114": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "115": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SWAP3",
      "path": "42"
    },
    "116": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "AND",
      "path": "42"
    },
    "117": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SWAP3",
      "path": "42"
    },
    "118": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "119": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SWAP3",
      "path": "42"
    },
    "120": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        313,
        323
      ],
      "op": "SHL",
      "path": "42"
    },
    "121": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "123": {
      "op": "SHL"
    },
    "124": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "126": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "128": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "130": {
      "op": "SHL"
    },
    "131": {
      "op": "SUB"
    },
    "132": {
      "op": "NOT"
    },
    "133": {
      "op": "AND"
    },
    "134": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x20"
    },
    "136": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "DUP3",
      "path": "42"
    },
    "137": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "ADD",
      "path": "42"
    },
    "138": {
      "op": "MSTORE"
    },
    "139": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "DUP2",
      "path": "42"
    },
    "140": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "MLOAD",
      "path": "42"
    },
    "141": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x2"
    },
    "143": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "DUP2",
      "path": "42"
    },
    "144": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "DUP4",
      "path": "42"
    },
    "145": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "SUB",
      "path": "42"
    },
    "146": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "ADD",
      "path": "42"
    },
    "147": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "DUP2",
      "path": "42"
    },
    "148": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "MSTORE",
      "path": "42"
    },
    "149": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "151": {
      "op": "SWAP1"
    },
    "152": {
      "op": "SWAP2"
    },
    "153": {
      "op": "ADD"
    },
    "154": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "155": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "SWAP2",
      "path": "42"
    },
    "156": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "MSTORE",
      "path": "42"
    },
    "157": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        289,
        325
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "158": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "JUMP",
      "path": "42"
    },
    "159": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "160": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x40"
    },
    "162": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "MLOAD",
      "path": "42"
    },
    "163": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xAC"
    },
    "166": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "SWAP2",
      "path": "42"
    },
    "167": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "168": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x150"
    },
    "171": {
      "fn": "BaseTypes.intToBytes",
      "jump": "i",
      "offset": [
        185,
        332
      ],
      "op": "JUMP",
      "path": "42"
    },
    "172": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "173": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x40"
    },
    "175": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "MLOAD",
      "path": "42"
    },
    "176": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "DUP1",
      "path": "42"
    },
    "177": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "SWAP2",
      "path": "42"
    },
    "178": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "SUB",
      "path": "42"
    },
    "179": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "180": {
      "fn": "BaseTypes.intToBytes",
      "offset": [
        185,
        332
      ],
      "op": "RETURN",
      "path": "42"
    },
    "181": {
      "fn": "BaseTypes.blockNumber",
      "offset": [
        650,
        777
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "182": {
      "fn": "BaseTypes.blockNumber",
      "offset": [
        650,
        777
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x40"
    },
    "184": {
      "fn": "BaseTypes.blockNumber",
      "offset": [
        650,
        777
      ],
      "op": "MLOAD",
      "path": "42"
    },
    "185": {
      "op": "PUSH4",
      "value": "0xFFFFFFFF"
    },
    "190": {
      "fn": "BaseTypes.blockNumber",
      "offset": [
        756,
        768
      ],
      "op": "NUMBER",
      "path": "42",
      "statement": 1
    },
    "191": {
      "op": "AND"
    },
    "192": {
      "op": "DUP2"
    },
    "193": {
      "op": "MSTORE"
    },
    "194": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "196": {
      "op": "ADD"
    },
    "197": {
      "fn": "BaseTypes.blockNumber",
      "offset": [
        650,
        777
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xAC"
    },
    "200": {
      "op": "JUMP"
    },
    "201": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "202": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xDD"
    },
    "205": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xD7"
    },
    "208": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "CALLDATASIZE",
      "path": "42"
    },
    "209": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x4"
    },
    "211": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x19E"
    },
    "214": {
      "fn": "BaseTypes.toInt",
      "jump": "i",
      "offset": [
        540,
        644
      ],
      "op": "JUMP",
      "path": "42"
    },
    "215": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "216": {
      "fn": "BaseTypes.toInt",
      "offset": [
        615,
        640
      ],
      "op": "PUSH1",
      "path": "42",
      "statement": 2,
      "value": "0xD8"
    },
    "218": {
      "fn": "BaseTypes.toInt",
      "offset": [
        615,
        640
      ],
      "op": "SHR",
      "path": "42"
    },
    "219": {
      "fn": "BaseTypes.toInt",
      "offset": [
        615,
        640
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "220": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "JUMP",
      "path": "42"
    },
    "221": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "222": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x40"
    },
    "224": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "MLOAD",
      "path": "42"
    },
    "225": {
      "op": "SWAP1"
    },
    "226": {
      "op": "DUP2"
    },
    "227": {
      "op": "MSTORE"
    },
    "228": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "230": {
      "op": "ADD"
    },
    "231": {
      "fn": "BaseTypes.toInt",
      "offset": [
        540,
        644
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xAC"
    },
    "234": {
      "op": "JUMP"
    },
    "235": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "236": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xDD"
    },
    "239": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xF9"
    },
    "242": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "CALLDATASIZE",
      "path": "42"
    },
    "243": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x4"
    },
    "245": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x1CF"
    },
    "248": {
      "fn": "BaseTypes.toInt",
      "jump": "i",
      "offset": [
        338,
        436
      ],
      "op": "JUMP",
      "path": "42"
    },
    "249": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "250": {
      "fn": "BaseTypes.toInt",
      "offset": [
        405,
        433
      ],
      "op": "PUSH4",
      "path": "42",
      "statement": 3,
      "value": "0xFFFFFFFF"
    },
    "255": {
      "fn": "BaseTypes.toInt",
      "offset": [
        405,
        433
      ],
      "op": "AND",
      "path": "42"
    },
    "256": {
      "fn": "BaseTypes.toInt",
      "offset": [
        405,
        433
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "257": {
      "fn": "BaseTypes.toInt",
      "offset": [
        338,
        436
      ],
      "op": "JUMP",
      "path": "42"
    },
    "258": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "259": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0xDD"
    },
    "262": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x110"
    },
    "265": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "CALLDATASIZE",
      "path": "42"
    },
    "266": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "PUSH1",
      "path": "42",
      "value": "0x4"
    },
    "268": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "PUSH2",
      "path": "42",
      "value": "0x1F5"
    },
    "271": {
      "fn": "BaseTypes.toInt",
      "jump": "i",
      "offset": [
        441,
        535
      ],
      "op": "JUMP",
      "path": "42"
    },
    "272": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "JUMPDEST",
      "path": "42"
    },
    "273": {
      "fn": "BaseTypes.toInt",
      "offset": [
        506,
        532
      ],
      "op": "PUSH5",
      "path": "42",
      "statement": 4,
      "value": "0xFFFFFFFFFF"
    },
    "279": {
      "fn": "BaseTypes.toInt",
      "offset": [
        506,
        532
      ],
      "op": "AND",
      "path": "42"
    },
    "280": {
      "fn": "BaseTypes.toInt",
      "offset": [
        506,
        532
      ],
      "op": "SWAP1",
      "path": "42"
    },
    "281": {
      "fn": "BaseTypes.toInt",
      "offset": [
        441,
        535
      ],
      "op": "JUMP",
      "path": "42"
    },
    "282": {
      "op": "JUMPDEST"
    },
    "283": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "285": {
      "op": "DUP1"
    },
    "286": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "288": {
      "op": "DUP4"
    },
    "289": {
      "op": "DUP6"
    },
    "290": {
      "op": "SUB"
    },
    "291": {
      "op": "SLT"
    },
    "292": {
      "op": "ISZERO"
    },
    "293": {
      "op": "PUSH2",
      "value": "0x12D"
    },
    "296": {
      "op": "JUMPI"
    },
    "297": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "299": {
      "op": "DUP1"
    },
    "300": {
      "op": "REVERT"
    },
    "301": {
      "op": "JUMPDEST"
    },
    "302": {
      "op": "DUP3"
    },
    "303": {
      "op": "CALLDATALOAD"
    },
    "304": {
      "op": "SWAP2"
    },
    "305": {
      "op": "POP"
    },
    "306": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "308": {
      "op": "DUP4"
    },
    "309": {
      "op": "ADD"
    },
    "310": {
      "op": "CALLDATALOAD"
    },
    "311": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "313": {
      "op": "DUP2"
    },
    "314": {
      "op": "AND"
    },
    "315": {
      "op": "DUP2"
    },
    "316": {
      "op": "EQ"
    },
    "317": {
      "op": "PUSH2",
      "value": "0x145"
    },
    "320": {
      "op": "JUMPI"
    },
    "321": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "323": {
      "op": "DUP1"
    },
    "324": {
      "op": "REVERT"
    },
    "325": {
      "op": "JUMPDEST"
    },
    "326": {
      "op": "DUP1"
    },
    "327": {
      "op": "SWAP2"
    },
    "328": {
      "op": "POP"
    },
    "329": {
      "op": "POP"
    },
    "330": {
      "op": "SWAP3"
    },
    "331": {
      "op": "POP"
    },
    "332": {
      "op": "SWAP3"
    },
    "333": {
      "op": "SWAP1"
    },
    "334": {
      "op": "POP"
    },
    "335": {
      "jump": "o",
      "op": "JUMP"
    },
    "336": {
      "op": "JUMPDEST"
    },
    "337": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "339": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "341": {
      "op": "DUP1"
    },
    "342": {
      "op": "DUP4"
    },
    "343": {
      "op": "MSTORE"
    },
    "344": {
      "op": "DUP4"
    },
    "345": {
      "op": "MLOAD"
    },
    "346": {
      "op": "DUP1"
    },
    "347": {
      "op": "DUP3"
    },
    "348": {
      "op": "DUP6"
    },
    "349": {
      "op": "ADD"
    },
    "350": {
      "op": "MSTORE"
    },
    "351": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "353": {
      "op": "JUMPDEST"
    },
    "354": {
      "op": "DUP2"
    },
    "355": {
      "op": "DUP2"
    },
    "356": {
      "op": "LT"
    },
    "357": {
      "op": "ISZERO"
    },
    "358": {
      "op": "PUSH2",
      "value": "0x17D"
    },
    "361": {
      "op": "JUMPI"
    },
    "362": {
      "op": "DUP6"
    },
    "363": {
      "op": "DUP2"
    },
    "364": {
      "op": "ADD"
    },
    "365": {
      "op": "DUP4"
    },
    "366": {
      "op": "ADD"
    },
    "367": {
      "op": "MLOAD"
    },
    "368": {
      "op": "DUP6"
    },
    "369": {
      "op": "DUP3"
    },
    "370": {
      "op": "ADD"
    },
    "371": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "373": {
      "op": "ADD"
    },
    "374": {
      "op": "MSTORE"
    },
    "375": {
      "op": "DUP3"
    },
    "376": {
      "op": "ADD"
    },
    "377": {
      "op": "PUSH2",
      "value": "0x161"
    },
    "380": {
      "op": "JUMP"
    },
    "381": {
      "op": "JUMPDEST"
    },
    "382": {
      "op": "POP"
    },
    "383": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "385": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "387": {
      "op": "DUP3"
    },
    "388": {
      "op": "DUP7"
    },
    "389": {
      "op": "ADD"
    },
    "390": {
      "op": "ADD"
    },
    "391": {
      "op": "MSTORE"
    },
    "392": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "394": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "396": {
      "op": "NOT"
    },
    "397": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "399": {
      "op": "DUP4"
    },
    "400": {
      "op": "ADD"
    },
    "401": {
      "op": "AND"
    },
    "402": {
      "op": "DUP6"
    },
    "403": {
      "op": "ADD"
    },
    "404": {
      "op": "ADD"
    },
    "405": {
      "op": "SWAP3"
    },
    "406": {
      "op": "POP"
    },
    "407": {
      "op": "POP"
    },
    "408": {
      "op": "POP"
    },
    "409": {
      "op": "SWAP3"
    },
    "410": {
      "op": "SWAP2"
    },
    "411": {
      "op": "POP"
    },
    "412": {
      "op": "POP"
    },
    "413": {
      "jump": "o",
      "op": "JUMP"
    },
    "414": {
      "op": "JUMPDEST"
    },
    "415": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "417": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "419": {
      "op": "DUP3"
    },
    "420": {
      "op": "DUP5"
    },
    "421": {
      "op": "SUB"
    },
    "422": {
      "op": "SLT"
    },
    "423": {
      "op": "ISZERO"
    },
    "424": {
      "op": "PUSH2",
      "value": "0x1B0"
    },
    "427": {
      "op": "JUMPI"
    },
    "428": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "430": {
      "op": "DUP1"
    },
    "431": {
      "op": "REVERT"
    },
    "432": {
      "op": "JUMPDEST"
    },
    "433": {
      "op": "DUP2"
    },
    "434": {
      "op": "CALLDATALOAD"
    },
    "435": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "437": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "439": {
      "op": "PUSH1",
      "value": "0xD8"
    },
    "441": {
      "op": "SHL"
    },
    "442": {
      "op": "SUB"
    },
    "443": {
      "op": "NOT"
    },
    "444": {
      "op": "DUP2"
    },
    "445": {
      "op": "AND"
    },
    "446": {
      "op": "DUP2"
    },
    "447": {
      "op": "EQ"
    },
    "448": {
      "op": "PUSH2",
      "value": "0x1C8"
    },
    "451": {
      "op": "JUMPI"
    },
    "452": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "454": {
      "op": "DUP1"
    },
    "455": {
      "op": "REVERT"
    },
    "456": {
      "op": "JUMPDEST"
    },
    "457": {
      "op": "SWAP4"
    },
    "458": {
      "op": "SWAP3"
    },
    "459": {
      "op": "POP"
    },
    "460": {
      "op": "POP"
    },
    "461": {
      "op": "POP"
    },
    "462": {
      "jump": "o",
      "op": "JUMP"
    },
    "463": {
      "op": "JUMPDEST"
    },
    "464": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "466": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "468": {
      "op": "DUP3"
    },
    "469": {
      "op": "DUP5"
    },
    "470": {
      "op": "SUB"
    },
    "471": {
      "op": "SLT"
    },
    "472": {
      "op": "ISZERO"
    },
    "473": {
      "op": "PUSH2",
      "value": "0x1E1"
    },
    "476": {
      "op": "JUMPI"
    },
    "477": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "479": {
      "op": "DUP1"
    },
    "480": {
      "op": "REVERT"
    },
    "481": {
      "op": "JUMPDEST"
    },
    "482": {
      "op": "DUP2"
    },
    "483": {
      "op": "CALLDATALOAD"
    },
    "484": {
      "op": "PUSH4",
      "value": "0xFFFFFFFF"
    },
    "489": {
      "op": "DUP2"
    },
    "490": {
      "op": "AND"
    },
    "491": {
      "op": "DUP2"
    },
    "492": {
      "op": "EQ"
    },
    "493": {
      "op": "PUSH2",
      "value": "0x1C8"
    },
    "496": {
      "op": "JUMPI"
    },
    "497": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "499": {
      "op": "DUP1"
    },
    "500": {
      "op": "REVERT"
    },
    "501": {
      "op": "JUMPDEST"
    },
    "502": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "504": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "506": {
      "op": "DUP3"
    },
    "507": {
      "op": "DUP5"
    },
    "508": {
      "op": "SUB"
    },
    "509": {
      "op": "SLT"
    },
    "510": {
      "op": "ISZERO"
    },
    "511": {
      "op": "PUSH2",
      "value": "0x207"
    },
    "514": {
      "op": "JUMPI"
    },
    "515": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "517": {
      "op": "DUP1"
    },
    "518": {
      "op": "REVERT"
    },
    "519": {
      "op": "JUMPDEST"
    },
    "520": {
      "op": "DUP2"
    },
    "521": {
      "op": "CALLDATALOAD"
    },
    "522": {
      "op": "PUSH5",
      "value": "0xFFFFFFFFFF"
    },
    "528": {
      "op": "DUP2"
    },
    "529": {
      "op": "AND"
    },
    "530": {
      "op": "DUP2"
    },
    "531": {
      "op": "EQ"
    },
    "532": {
      "op": "PUSH2",
      "value": "0x1C8"
    },
    "535": {
      "op": "JUMPI"
    },
    "536": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "538": {
      "op": "DUP1"
    },
    "539": {
      "op": "REVERT"
    }
  },
  "sha1": "c504afefb187c6fb5f5b3d30b779bc78460233b2",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\nimport {IBaseTypes, ChainId, Blocknumber, Timestamp} from \"./IBaseTypes.sol\";\n\n\ncontract BaseTypes is IBaseTypes {\n\n    function intToBytes(uint256 x, uint8 shift) public override pure returns(bytes memory) {\n        return abi.encodePacked(uint16(x << shift));\n    }\n\n    function toInt(Blocknumber x) public override pure returns(uint) { return Blocknumber.unwrap(x); }\n    function toInt(Timestamp x) public override pure returns(uint) { return Timestamp.unwrap(x); }\n    function toInt(ChainId x) public override pure returns(uint) { return uint(uint40(ChainId.unwrap(x))); }\n\n    function blockNumber() public override view returns(Blocknumber) {\n        return Blocknumber.wrap(uint32(block.number));\n    }\n}",
  "sourceMap": "145:634:42:-:0;;;;;;;;;;;;;;;;;;;",
  "sourcePath": "contracts/shared/BaseTypes.sol",
  "type": "contract"
}