{
  "abi": [],
  "allSourcePaths": {
    "62": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/BufferChainlink.sol",
    "63": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/CBORChainlink.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/CBORChainlink.sol",
    "exportedSymbols": {
      "BufferChainlink": [
        28140
      ],
      "CBORChainlink": [
        28587
      ]
    },
    "id": 28588,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 28142,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:25:63"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/BufferChainlink.sol",
        "file": "./BufferChainlink.sol",
        "id": 28144,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 28588,
        "sourceUnit": 28141,
        "src": "59:54:63",
        "symbolAliases": [
          {
            "foreign": {
              "id": 28143,
              "name": "BufferChainlink",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "67:15:63",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "fullyImplemented": true,
        "id": 28587,
        "linearizedBaseContracts": [
          28587
        ],
        "name": "CBORChainlink",
        "nameLocation": "123:13:63",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 28148,
            "libraryName": {
              "id": 28145,
              "name": "BufferChainlink",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 28140,
              "src": "147:15:63"
            },
            "nodeType": "UsingForDirective",
            "src": "141:49:63",
            "typeName": {
              "id": 28147,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 28146,
                "name": "BufferChainlink.buffer",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 27626,
                "src": "167:22:63"
              },
              "referencedDeclaration": 27626,
              "src": "167:22:63",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                "typeString": "struct BufferChainlink.buffer"
              }
            }
          },
          {
            "constant": true,
            "id": 28151,
            "mutability": "constant",
            "name": "MAJOR_TYPE_INT",
            "nameLocation": "217:14:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "194:41:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28149,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "194:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 28150,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "234:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28154,
            "mutability": "constant",
            "name": "MAJOR_TYPE_NEGATIVE_INT",
            "nameLocation": "262:23:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "239:50:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28152,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "239:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 28153,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "288:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28157,
            "mutability": "constant",
            "name": "MAJOR_TYPE_BYTES",
            "nameLocation": "316:16:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "293:43:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28155,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "293:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "32",
              "id": 28156,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "335:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28160,
            "mutability": "constant",
            "name": "MAJOR_TYPE_STRING",
            "nameLocation": "363:17:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "340:44:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28158,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "340:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "33",
              "id": 28159,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "383:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28163,
            "mutability": "constant",
            "name": "MAJOR_TYPE_ARRAY",
            "nameLocation": "411:16:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "388:43:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28161,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "388:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "34",
              "id": 28162,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "430:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28166,
            "mutability": "constant",
            "name": "MAJOR_TYPE_MAP",
            "nameLocation": "458:14:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "435:41:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28164,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "435:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "35",
              "id": 28165,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "475:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_5_by_1",
                "typeString": "int_const 5"
              },
              "value": "5"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28169,
            "mutability": "constant",
            "name": "MAJOR_TYPE_TAG",
            "nameLocation": "503:14:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "480:41:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28167,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "480:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "36",
              "id": 28168,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "520:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_6_by_1",
                "typeString": "int_const 6"
              },
              "value": "6"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28172,
            "mutability": "constant",
            "name": "MAJOR_TYPE_CONTENT_FREE",
            "nameLocation": "548:23:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "525:50:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28170,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "525:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "37",
              "id": 28171,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "574:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_7_by_1",
                "typeString": "int_const 7"
              },
              "value": "7"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28175,
            "mutability": "constant",
            "name": "TAG_TYPE_BIGNUM",
            "nameLocation": "603:15:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "580:42:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28173,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "580:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "32",
              "id": 28174,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "621:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 28178,
            "mutability": "constant",
            "name": "TAG_TYPE_NEGATIVE_BIGNUM",
            "nameLocation": "649:24:63",
            "nodeType": "VariableDeclaration",
            "scope": 28587,
            "src": "626:51:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 28176,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "626:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "33",
              "id": 28177,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "676:1:63",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 28307,
              "nodeType": "Block",
              "src": "785:522:63",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 28190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 28188,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28185,
                      "src": "794:5:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "hexValue": "3233",
                      "id": 28189,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "803:2:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_23_by_1",
                        "typeString": "int_const 23"
                      },
                      "value": "23"
                    },
                    "src": "794:11:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "id": 28208,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 28206,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28185,
                        "src": "876:5:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<=",
                      "rightExpression": {
                        "hexValue": "30784646",
                        "id": 28207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "885:4:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_255_by_1",
                          "typeString": "int_const 255"
                        },
                        "value": "0xFF"
                      },
                      "src": "876:13:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 28233,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 28231,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28185,
                          "src": "988:5:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "307846464646",
                          "id": 28232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "997:6:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_65535_by_1",
                            "typeString": "int_const 65535"
                          },
                          "value": "0xFFFF"
                        },
                        "src": "988:15:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 28258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 28256,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28185,
                            "src": "1102:5:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "30784646464646464646",
                            "id": 28257,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1111:10:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4294967295_by_1",
                              "typeString": "int_const 4294967295"
                            },
                            "value": "0xFFFFFFFF"
                          },
                          "src": "1102:19:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 28302,
                          "nodeType": "Block",
                          "src": "1216:87:63",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 28291,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "components": [
                                            {
                                              "commonType": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              },
                                              "id": 28288,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "id": 28286,
                                                "name": "major",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 28183,
                                                "src": "1247:5:63",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": "<<",
                                              "rightExpression": {
                                                "hexValue": "35",
                                                "id": 28287,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1256:1:63",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_5_by_1",
                                                  "typeString": "int_const 5"
                                                },
                                                "value": "5"
                                              },
                                              "src": "1247:10:63",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "id": 28289,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "TupleExpression",
                                          "src": "1246:12:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "|",
                                        "rightExpression": {
                                          "hexValue": "3237",
                                          "id": 28290,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "1261:2:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_27_by_1",
                                            "typeString": "int_const 27"
                                          },
                                          "value": "27"
                                        },
                                        "src": "1246:17:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 28285,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1240:5:63",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 28284,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1240:5:63",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 28292,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1240:24:63",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 28281,
                                    "name": "buf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28181,
                                    "src": "1224:3:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                      "typeString": "struct BufferChainlink.buffer memory"
                                    }
                                  },
                                  "id": 28283,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "appendUint8",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 27936,
                                  "src": "1224:15:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                    "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                                  }
                                },
                                "id": 28293,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1224:41:63",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 28294,
                              "nodeType": "ExpressionStatement",
                              "src": "1224:41:63"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 28298,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28185,
                                    "src": "1287:5:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  {
                                    "hexValue": "38",
                                    "id": 28299,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1294:1:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_8_by_1",
                                      "typeString": "int_const 8"
                                    },
                                    "value": "8"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_8_by_1",
                                      "typeString": "int_const 8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 28295,
                                    "name": "buf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28181,
                                    "src": "1273:3:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                      "typeString": "struct BufferChainlink.buffer memory"
                                    }
                                  },
                                  "id": 28297,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "appendInt",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 28139,
                                  "src": "1273:13:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                    "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                                  }
                                },
                                "id": 28300,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1273:23:63",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 28301,
                              "nodeType": "ExpressionStatement",
                              "src": "1273:23:63"
                            }
                          ]
                        },
                        "id": 28303,
                        "nodeType": "IfStatement",
                        "src": "1098:205:63",
                        "trueBody": {
                          "id": 28280,
                          "nodeType": "Block",
                          "src": "1123:87:63",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 28269,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "components": [
                                            {
                                              "commonType": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              },
                                              "id": 28266,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "id": 28264,
                                                "name": "major",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 28183,
                                                "src": "1154:5:63",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": "<<",
                                              "rightExpression": {
                                                "hexValue": "35",
                                                "id": 28265,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1163:1:63",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_5_by_1",
                                                  "typeString": "int_const 5"
                                                },
                                                "value": "5"
                                              },
                                              "src": "1154:10:63",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "id": 28267,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "TupleExpression",
                                          "src": "1153:12:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "|",
                                        "rightExpression": {
                                          "hexValue": "3236",
                                          "id": 28268,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "1168:2:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_26_by_1",
                                            "typeString": "int_const 26"
                                          },
                                          "value": "26"
                                        },
                                        "src": "1153:17:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 28263,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1147:5:63",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 28262,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1147:5:63",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 28270,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1147:24:63",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 28259,
                                    "name": "buf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28181,
                                    "src": "1131:3:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                      "typeString": "struct BufferChainlink.buffer memory"
                                    }
                                  },
                                  "id": 28261,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "appendUint8",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 27936,
                                  "src": "1131:15:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                    "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                                  }
                                },
                                "id": 28271,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1131:41:63",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 28272,
                              "nodeType": "ExpressionStatement",
                              "src": "1131:41:63"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 28276,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28185,
                                    "src": "1194:5:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  {
                                    "hexValue": "34",
                                    "id": 28277,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1201:1:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_4_by_1",
                                      "typeString": "int_const 4"
                                    },
                                    "value": "4"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_4_by_1",
                                      "typeString": "int_const 4"
                                    }
                                  ],
                                  "expression": {
                                    "id": 28273,
                                    "name": "buf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28181,
                                    "src": "1180:3:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                      "typeString": "struct BufferChainlink.buffer memory"
                                    }
                                  },
                                  "id": 28275,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "appendInt",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 28139,
                                  "src": "1180:13:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                    "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                                  }
                                },
                                "id": 28278,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1180:23:63",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 28279,
                              "nodeType": "ExpressionStatement",
                              "src": "1180:23:63"
                            }
                          ]
                        }
                      },
                      "id": 28304,
                      "nodeType": "IfStatement",
                      "src": "984:319:63",
                      "trueBody": {
                        "id": 28255,
                        "nodeType": "Block",
                        "src": "1005:87:63",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 28244,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "components": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            },
                                            "id": 28241,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "id": 28239,
                                              "name": "major",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 28183,
                                              "src": "1036:5:63",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "35",
                                              "id": 28240,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "1045:1:63",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_5_by_1",
                                                "typeString": "int_const 5"
                                              },
                                              "value": "5"
                                            },
                                            "src": "1036:10:63",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "id": 28242,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "1035:12:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "|",
                                      "rightExpression": {
                                        "hexValue": "3235",
                                        "id": 28243,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1050:2:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_25_by_1",
                                          "typeString": "int_const 25"
                                        },
                                        "value": "25"
                                      },
                                      "src": "1035:17:63",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 28238,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1029:5:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 28237,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1029:5:63",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 28245,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1029:24:63",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "expression": {
                                  "id": 28234,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28181,
                                  "src": "1013:3:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                "id": 28236,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "appendUint8",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 27936,
                                "src": "1013:15:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                                }
                              },
                              "id": 28246,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1013:41:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 28247,
                            "nodeType": "ExpressionStatement",
                            "src": "1013:41:63"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 28251,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28185,
                                  "src": "1076:5:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                {
                                  "hexValue": "32",
                                  "id": 28252,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1083:1:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "id": 28248,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28181,
                                  "src": "1062:3:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                "id": 28250,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "appendInt",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 28139,
                                "src": "1062:13:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                                }
                              },
                              "id": 28253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1062:23:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 28254,
                            "nodeType": "ExpressionStatement",
                            "src": "1062:23:63"
                          }
                        ]
                      }
                    },
                    "id": 28305,
                    "nodeType": "IfStatement",
                    "src": "872:431:63",
                    "trueBody": {
                      "id": 28230,
                      "nodeType": "Block",
                      "src": "891:87:63",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 28219,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "components": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 28216,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 28214,
                                            "name": "major",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 28183,
                                            "src": "922:5:63",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "<<",
                                          "rightExpression": {
                                            "hexValue": "35",
                                            "id": 28215,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "931:1:63",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_5_by_1",
                                              "typeString": "int_const 5"
                                            },
                                            "value": "5"
                                          },
                                          "src": "922:10:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "id": 28217,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "921:12:63",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "|",
                                    "rightExpression": {
                                      "hexValue": "3234",
                                      "id": 28218,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "936:2:63",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_24_by_1",
                                        "typeString": "int_const 24"
                                      },
                                      "value": "24"
                                    },
                                    "src": "921:17:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 28213,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "915:5:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 28212,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "915:5:63",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 28220,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "915:24:63",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "id": 28209,
                                "name": "buf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28181,
                                "src": "899:3:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 28211,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "appendUint8",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 27936,
                              "src": "899:15:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                              }
                            },
                            "id": 28221,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "899:41:63",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                              "typeString": "struct BufferChainlink.buffer memory"
                            }
                          },
                          "id": 28222,
                          "nodeType": "ExpressionStatement",
                          "src": "899:41:63"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 28226,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28185,
                                "src": "962:5:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              {
                                "hexValue": "31",
                                "id": 28227,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "969:1:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "expression": {
                                "id": 28223,
                                "name": "buf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28181,
                                "src": "948:3:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 28225,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "appendInt",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 28139,
                              "src": "948:13:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                                "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                              }
                            },
                            "id": 28228,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "948:23:63",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                              "typeString": "struct BufferChainlink.buffer memory"
                            }
                          },
                          "id": 28229,
                          "nodeType": "ExpressionStatement",
                          "src": "948:23:63"
                        }
                      ]
                    }
                  },
                  "id": 28306,
                  "nodeType": "IfStatement",
                  "src": "791:512:63",
                  "trueBody": {
                    "id": 28205,
                    "nodeType": "Block",
                    "src": "807:59:63",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  "id": 28201,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "components": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 28198,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 28196,
                                          "name": "major",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 28183,
                                          "src": "838:5:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<<",
                                        "rightExpression": {
                                          "hexValue": "35",
                                          "id": 28197,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "847:1:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "838:10:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "id": 28199,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "837:12:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "|",
                                  "rightExpression": {
                                    "id": 28200,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28185,
                                    "src": "852:5:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "src": "837:20:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "id": 28195,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "831:5:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 28194,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "831:5:63",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 28202,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "831:27:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "expression": {
                              "id": 28191,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28181,
                              "src": "815:3:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 28193,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "appendUint8",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 27936,
                            "src": "815:15:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                              "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                            }
                          },
                          "id": 28203,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "815:44:63",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                            "typeString": "struct BufferChainlink.buffer memory"
                          }
                        },
                        "id": 28204,
                        "nodeType": "ExpressionStatement",
                        "src": "815:44:63"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 28308,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeFixedNumeric",
            "nameLocation": "691:18:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28181,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "740:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28308,
                  "src": "710:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28180,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28179,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "710:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "710:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28183,
                  "mutability": "mutable",
                  "name": "major",
                  "nameLocation": "751:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28308,
                  "src": "745:11:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 28182,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "745:5:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28185,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "765:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28308,
                  "src": "758:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 28184,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "758:6:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "709:62:63"
            },
            "returnParameters": {
              "id": 28187,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "785:0:63"
            },
            "scope": 28587,
            "src": "682:625:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 28330,
              "nodeType": "Block",
              "src": "1408:52:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 28326,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 28323,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 28321,
                                    "name": "major",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28313,
                                    "src": "1437:5:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "hexValue": "35",
                                    "id": 28322,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1446:1:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_5_by_1",
                                      "typeString": "int_const 5"
                                    },
                                    "value": "5"
                                  },
                                  "src": "1437:10:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 28324,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1436:12:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "hexValue": "3331",
                              "id": 28325,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1451:2:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31_by_1",
                                "typeString": "int_const 31"
                              },
                              "value": "31"
                            },
                            "src": "1436:17:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 28320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1430:5:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 28319,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "1430:5:63",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1430:24:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "expression": {
                        "id": 28316,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28311,
                        "src": "1414:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 28318,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appendUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27936,
                      "src": "1414:15:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 28328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1414:41:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 28329,
                  "nodeType": "ExpressionStatement",
                  "src": "1414:41:63"
                }
              ]
            },
            "id": 28331,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeIndefiniteLengthType",
            "nameLocation": "1320:26:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28311,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "1377:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28331,
                  "src": "1347:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28310,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28309,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "1347:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "1347:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28313,
                  "mutability": "mutable",
                  "name": "major",
                  "nameLocation": "1388:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28331,
                  "src": "1382:11:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 28312,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1382:5:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1346:48:63"
            },
            "returnParameters": {
              "id": 28315,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1408:0:63"
            },
            "scope": 28587,
            "src": "1311:149:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 28359,
              "nodeType": "Block",
              "src": "1545:155:63",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 28341,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 28339,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28336,
                      "src": "1554:5:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "307846464646464646464646464646464646",
                      "id": 28340,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1562:18:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_18446744073709551615_by_1",
                        "typeString": "int_const 18446744073709551615"
                      },
                      "value": "0xFFFFFFFFFFFFFFFF"
                    },
                    "src": "1554:26:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 28357,
                    "nodeType": "Block",
                    "src": "1627:69:63",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 28349,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28334,
                              "src": "1654:3:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            {
                              "id": 28350,
                              "name": "MAJOR_TYPE_INT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28151,
                              "src": "1659:14:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "id": 28353,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28336,
                                  "src": "1682:5:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 28352,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1675:6:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint64_$",
                                  "typeString": "type(uint64)"
                                },
                                "typeName": {
                                  "id": 28351,
                                  "name": "uint64",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1675:6:63",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 28354,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1675:13:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 28348,
                            "name": "encodeFixedNumeric",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28308,
                            "src": "1635:18:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$",
                              "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint64) pure"
                            }
                          },
                          "id": 28355,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1635:54:63",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 28356,
                        "nodeType": "ExpressionStatement",
                        "src": "1635:54:63"
                      }
                    ]
                  },
                  "id": 28358,
                  "nodeType": "IfStatement",
                  "src": "1551:145:63",
                  "trueBody": {
                    "id": 28347,
                    "nodeType": "Block",
                    "src": "1582:39:63",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 28343,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28334,
                              "src": "1603:3:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            {
                              "id": 28344,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28336,
                              "src": "1608:5:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 28342,
                            "name": "encodeBigNum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28482,
                            "src": "1590:12:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$returns$__$",
                              "typeString": "function (struct BufferChainlink.buffer memory,uint256) pure"
                            }
                          },
                          "id": 28345,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1590:24:63",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 28346,
                        "nodeType": "ExpressionStatement",
                        "src": "1590:24:63"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 28360,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeUInt",
            "nameLocation": "1473:10:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28334,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "1514:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28360,
                  "src": "1484:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28333,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28332,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "1484:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "1484:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28336,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1524:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28360,
                  "src": "1519:10:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 28335,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1519:4:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1483:47:63"
            },
            "returnParameters": {
              "id": 28338,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1545:0:63"
            },
            "scope": 28587,
            "src": "1464:236:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28425,
              "nodeType": "Block",
              "src": "1783:367:63",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 28371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 28368,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28365,
                      "src": "1792:5:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 28370,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "-",
                      "prefix": true,
                      "src": "1800:20:63",
                      "subExpression": {
                        "hexValue": "30783130303030303030303030303030303030",
                        "id": 28369,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1801:19:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18446744073709551616_by_1",
                          "typeString": "int_const 18446744073709551616"
                        },
                        "value": "0x10000000000000000"
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_minus_18446744073709551616_by_1",
                        "typeString": "int_const -18446744073709551616"
                      }
                    },
                    "src": "1792:28:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 28380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 28378,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28365,
                        "src": "1876:5:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "307846464646464646464646464646464646",
                        "id": 28379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1884:18:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18446744073709551615_by_1",
                          "typeString": "int_const 18446744073709551615"
                        },
                        "value": "0xFFFFFFFFFFFFFFFF"
                      },
                      "src": "1876:26:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 28392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 28390,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28365,
                          "src": "1958:5:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 28391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1967:1:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1958:10:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 28421,
                        "nodeType": "Block",
                        "src": "2054:92:63",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 28407,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28363,
                                  "src": "2081:3:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                {
                                  "id": 28408,
                                  "name": "MAJOR_TYPE_NEGATIVE_INT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28154,
                                  "src": "2086:23:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "id": 28416,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 28414,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "-",
                                            "prefix": true,
                                            "src": "2126:2:63",
                                            "subExpression": {
                                              "hexValue": "31",
                                              "id": 28413,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "2127:1:63",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                              },
                                              "value": "1"
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_minus_1_by_1",
                                              "typeString": "int_const -1"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "id": 28415,
                                            "name": "value",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 28365,
                                            "src": "2131:5:63",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "src": "2126:10:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        ],
                                        "id": 28412,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "2118:7:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 28411,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "2118:7:63",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 28417,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "2118:19:63",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 28410,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2111:6:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint64_$",
                                      "typeString": "type(uint64)"
                                    },
                                    "typeName": {
                                      "id": 28409,
                                      "name": "uint64",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2111:6:63",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 28418,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2111:27:63",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "id": 28406,
                                "name": "encodeFixedNumeric",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28308,
                                "src": "2062:18:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint64) pure"
                                }
                              },
                              "id": 28419,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2062:77:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 28420,
                            "nodeType": "ExpressionStatement",
                            "src": "2062:77:63"
                          }
                        ]
                      },
                      "id": 28422,
                      "nodeType": "IfStatement",
                      "src": "1955:191:63",
                      "trueBody": {
                        "id": 28405,
                        "nodeType": "Block",
                        "src": "1970:78:63",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 28394,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28363,
                                  "src": "1997:3:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                {
                                  "id": 28395,
                                  "name": "MAJOR_TYPE_INT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28151,
                                  "src": "2002:14:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 28400,
                                          "name": "value",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 28365,
                                          "src": "2033:5:63",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        ],
                                        "id": 28399,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "2025:7:63",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 28398,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "2025:7:63",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 28401,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "2025:14:63",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 28397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2018:6:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint64_$",
                                      "typeString": "type(uint64)"
                                    },
                                    "typeName": {
                                      "id": 28396,
                                      "name": "uint64",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2018:6:63",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 28402,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2018:22:63",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "id": 28393,
                                "name": "encodeFixedNumeric",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28308,
                                "src": "1978:18:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint64) pure"
                                }
                              },
                              "id": 28403,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1978:63:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 28404,
                            "nodeType": "ExpressionStatement",
                            "src": "1978:63:63"
                          }
                        ]
                      }
                    },
                    "id": 28423,
                    "nodeType": "IfStatement",
                    "src": "1873:273:63",
                    "trueBody": {
                      "id": 28389,
                      "nodeType": "Block",
                      "src": "1904:45:63",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 28382,
                                "name": "buf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28363,
                                "src": "1925:3:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "id": 28385,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28365,
                                    "src": "1935:5:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "id": 28384,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1930:4:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 28383,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1930:4:63",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 28386,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1930:11:63",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 28381,
                              "name": "encodeBigNum",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28482,
                              "src": "1912:12:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$returns$__$",
                                "typeString": "function (struct BufferChainlink.buffer memory,uint256) pure"
                              }
                            },
                            "id": 28387,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1912:30:63",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 28388,
                          "nodeType": "ExpressionStatement",
                          "src": "1912:30:63"
                        }
                      ]
                    }
                  },
                  "id": 28424,
                  "nodeType": "IfStatement",
                  "src": "1789:357:63",
                  "trueBody": {
                    "id": 28377,
                    "nodeType": "Block",
                    "src": "1822:45:63",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 28373,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28363,
                              "src": "1849:3:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            {
                              "id": 28374,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28365,
                              "src": "1854:5:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              },
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 28372,
                            "name": "encodeSignedBigNum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28519,
                            "src": "1830:18:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_int256_$returns$__$",
                              "typeString": "function (struct BufferChainlink.buffer memory,int256) pure"
                            }
                          },
                          "id": 28375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1830:30:63",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 28376,
                        "nodeType": "ExpressionStatement",
                        "src": "1830:30:63"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 28426,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeInt",
            "nameLocation": "1713:9:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28363,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "1753:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28426,
                  "src": "1723:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28362,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28361,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "1723:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "1723:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28365,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1762:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28426,
                  "src": "1758:9:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 28364,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1758:3:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1722:46:63"
            },
            "returnParameters": {
              "id": 28367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1783:0:63"
            },
            "scope": 28587,
            "src": "1704:446:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28450,
              "nodeType": "Block",
              "src": "2244:97:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28435,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28429,
                        "src": "2269:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 28436,
                        "name": "MAJOR_TYPE_BYTES",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28157,
                        "src": "2274:16:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 28439,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28431,
                              "src": "2299:5:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 28440,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "2299:12:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 28438,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2292:6:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": {
                            "id": 28437,
                            "name": "uint64",
                            "nodeType": "ElementaryTypeName",
                            "src": "2292:6:63",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28441,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2292:20:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 28434,
                      "name": "encodeFixedNumeric",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28308,
                      "src": "2250:18:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint64) pure"
                      }
                    },
                    "id": 28442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2250:63:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28443,
                  "nodeType": "ExpressionStatement",
                  "src": "2250:63:63"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28447,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28431,
                        "src": "2330:5:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28444,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28429,
                        "src": "2319:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 28446,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27883,
                      "src": "2319:10:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 28448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2319:17:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 28449,
                  "nodeType": "ExpressionStatement",
                  "src": "2319:17:63"
                }
              ]
            },
            "id": 28451,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeBytes",
            "nameLocation": "2163:11:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28429,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2205:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28451,
                  "src": "2175:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28428,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28427,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "2175:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "2175:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28431,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2223:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28451,
                  "src": "2210:18:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 28430,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2210:5:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2174:55:63"
            },
            "returnParameters": {
              "id": 28433,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2244:0:63"
            },
            "scope": 28587,
            "src": "2154:187:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28481,
              "nodeType": "Block",
              "src": "2428:115:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 28469,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 28466,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 28464,
                                    "name": "MAJOR_TYPE_TAG",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28169,
                                    "src": "2457:14:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "hexValue": "35",
                                    "id": 28465,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2475:1:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_5_by_1",
                                      "typeString": "int_const 5"
                                    },
                                    "value": "5"
                                  },
                                  "src": "2457:19:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 28467,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2456:21:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "id": 28468,
                              "name": "TAG_TYPE_BIGNUM",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28175,
                              "src": "2480:15:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "2456:39:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 28463,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2450:5:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 28462,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "2450:5:63",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2450:46:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "expression": {
                        "id": 28459,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28454,
                        "src": "2434:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 28461,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appendUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27936,
                      "src": "2434:15:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 28471,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2434:63:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 28472,
                  "nodeType": "ExpressionStatement",
                  "src": "2434:63:63"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28474,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28454,
                        "src": "2515:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 28477,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28456,
                            "src": "2531:5:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 28475,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2520:3:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28476,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2520:10:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 28478,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2520:17:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 28473,
                      "name": "encodeBytes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28451,
                      "src": "2503:11:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure"
                      }
                    },
                    "id": 28479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2503:35:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28480,
                  "nodeType": "ExpressionStatement",
                  "src": "2503:35:63"
                }
              ]
            },
            "id": 28482,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeBigNum",
            "nameLocation": "2354:12:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28454,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2397:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28482,
                  "src": "2367:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28453,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28452,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "2367:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "2367:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28456,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2407:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28482,
                  "src": "2402:10:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 28455,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2402:4:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2366:47:63"
            },
            "returnParameters": {
              "id": 28458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2428:0:63"
            },
            "scope": 28587,
            "src": "2345:198:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28518,
              "nodeType": "Block",
              "src": "2635:138:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 28500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 28497,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 28495,
                                    "name": "MAJOR_TYPE_TAG",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28169,
                                    "src": "2664:14:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "hexValue": "35",
                                    "id": 28496,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2682:1:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_5_by_1",
                                      "typeString": "int_const 5"
                                    },
                                    "value": "5"
                                  },
                                  "src": "2664:19:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 28498,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2663:21:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "id": 28499,
                              "name": "TAG_TYPE_NEGATIVE_BIGNUM",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 28178,
                              "src": "2687:24:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "2663:48:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 28494,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2657:5:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 28493,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "2657:5:63",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28501,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2657:55:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "expression": {
                        "id": 28490,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28485,
                        "src": "2641:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 28492,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appendUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27936,
                      "src": "2641:15:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 28502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2641:72:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 28503,
                  "nodeType": "ExpressionStatement",
                  "src": "2641:72:63"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28505,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28485,
                        "src": "2731:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 28513,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 28511,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "2755:2:63",
                                  "subExpression": {
                                    "hexValue": "31",
                                    "id": 28510,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2756:1:63",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_minus_1_by_1",
                                    "typeString": "int_const -1"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "id": 28512,
                                  "name": "input",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28487,
                                  "src": "2760:5:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "2755:10:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "id": 28509,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2747:7:63",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 28508,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "2747:7:63",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 28514,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2747:19:63",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 28506,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2736:3:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 28507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2736:10:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 28515,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2736:31:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 28504,
                      "name": "encodeBytes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28451,
                      "src": "2719:11:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure"
                      }
                    },
                    "id": 28516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2719:49:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28517,
                  "nodeType": "ExpressionStatement",
                  "src": "2719:49:63"
                }
              ]
            },
            "id": 28519,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeSignedBigNum",
            "nameLocation": "2556:18:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28485,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2605:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28519,
                  "src": "2575:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28484,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28483,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "2575:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "2575:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28487,
                  "mutability": "mutable",
                  "name": "input",
                  "nameLocation": "2614:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28519,
                  "src": "2610:9:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 28486,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2610:3:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2574:46:63"
            },
            "returnParameters": {
              "id": 28489,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2635:0:63"
            },
            "scope": 28587,
            "src": "2547:226:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28549,
              "nodeType": "Block",
              "src": "2869:112:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28528,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28522,
                        "src": "2894:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 28529,
                        "name": "MAJOR_TYPE_STRING",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28160,
                        "src": "2899:17:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 28534,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 28524,
                                  "src": "2931:5:63",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 28533,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2925:5:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": {
                                  "id": 28532,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2925:5:63",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 28535,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2925:12:63",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 28536,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "2925:19:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 28531,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2918:6:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": {
                            "id": 28530,
                            "name": "uint64",
                            "nodeType": "ElementaryTypeName",
                            "src": "2918:6:63",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2918:27:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 28527,
                      "name": "encodeFixedNumeric",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28308,
                      "src": "2875:18:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint64) pure"
                      }
                    },
                    "id": 28538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2875:71:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28539,
                  "nodeType": "ExpressionStatement",
                  "src": "2875:71:63"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 28545,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28524,
                            "src": "2969:5:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 28544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2963:5:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 28543,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "2963:5:63",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 28546,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2963:12:63",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 28540,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28522,
                        "src": "2952:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 28542,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27883,
                      "src": "2952:10:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$27626_memory_ptr_$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 28547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2952:24:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 28548,
                  "nodeType": "ExpressionStatement",
                  "src": "2952:24:63"
                }
              ]
            },
            "id": 28550,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeString",
            "nameLocation": "2786:12:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28525,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28522,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2829:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28550,
                  "src": "2799:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28521,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28520,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "2799:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "2799:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 28524,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2848:5:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28550,
                  "src": "2834:19:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 28523,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2834:6:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2798:56:63"
            },
            "returnParameters": {
              "id": 28526,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2869:0:63"
            },
            "scope": 28587,
            "src": "2777:204:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28561,
              "nodeType": "Block",
              "src": "3054:60:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28557,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28553,
                        "src": "3087:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 28558,
                        "name": "MAJOR_TYPE_ARRAY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28163,
                        "src": "3092:16:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 28556,
                      "name": "encodeIndefiniteLengthType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28331,
                      "src": "3060:26:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure"
                      }
                    },
                    "id": 28559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3060:49:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28560,
                  "nodeType": "ExpressionStatement",
                  "src": "3060:49:63"
                }
              ]
            },
            "id": 28562,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startArray",
            "nameLocation": "2994:10:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28553,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "3035:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28562,
                  "src": "3005:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28552,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28551,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "3005:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "3005:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3004:35:63"
            },
            "returnParameters": {
              "id": 28555,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3054:0:63"
            },
            "scope": 28587,
            "src": "2985:129:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28573,
              "nodeType": "Block",
              "src": "3185:58:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28569,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28565,
                        "src": "3218:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 28570,
                        "name": "MAJOR_TYPE_MAP",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28166,
                        "src": "3223:14:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 28568,
                      "name": "encodeIndefiniteLengthType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28331,
                      "src": "3191:26:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure"
                      }
                    },
                    "id": 28571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3191:47:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28572,
                  "nodeType": "ExpressionStatement",
                  "src": "3191:47:63"
                }
              ]
            },
            "id": 28574,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startMap",
            "nameLocation": "3127:8:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28565,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "3166:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28574,
                  "src": "3136:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28564,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28563,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "3136:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "3136:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3135:35:63"
            },
            "returnParameters": {
              "id": 28567,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3185:0:63"
            },
            "scope": 28587,
            "src": "3118:125:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 28585,
              "nodeType": "Block",
              "src": "3317:67:63",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 28581,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28577,
                        "src": "3350:3:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 28582,
                        "name": "MAJOR_TYPE_CONTENT_FREE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28172,
                        "src": "3355:23:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 28580,
                      "name": "encodeIndefiniteLengthType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28331,
                      "src": "3323:26:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint8_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure"
                      }
                    },
                    "id": 28583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3323:56:63",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 28584,
                  "nodeType": "ExpressionStatement",
                  "src": "3323:56:63"
                }
              ]
            },
            "id": 28586,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "endSequence",
            "nameLocation": "3256:11:63",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 28578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28577,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "3298:3:63",
                  "nodeType": "VariableDeclaration",
                  "scope": 28586,
                  "src": "3268:33:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 28576,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 28575,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27626,
                      "src": "3268:22:63"
                    },
                    "referencedDeclaration": 27626,
                    "src": "3268:22:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3267:35:63"
            },
            "returnParameters": {
              "id": 28579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3317:0:63"
            },
            "scope": 28587,
            "src": "3247:137:63",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 28588,
        "src": "115:3271:63"
      }
    ],
    "src": "32:3355:63"
  },
  "bytecode": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dedf394602633dae79f1533667bc41e4c5598903ecb2c74193334ec3f030bf9464736f6c63430008020033",
  "bytecodeSha1": "1ce946f6a4eaa185320328620ccf999b9e86db7c",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "CBORChainlink",
  "coverageMap": {
    "branches": {
      "62": {},
      "63": {}
    },
    "statements": {
      "62": {},
      "63": {}
    }
  },
  "dependencies": [
    "smartcontractkit/chainlink@1.6.0/BufferChainlink"
  ],
  "deployedBytecode": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dedf394602633dae79f1533667bc41e4c5598903ecb2c74193334ec3f030bf9464736f6c63430008020033",
  "deployedSourceMap": "115:3271:63:-:0;;;;;;;;",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    115,
    3386
  ],
  "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE 0xDF CODECOPY CHAINID MUL PUSH4 0x3DAE79F1 MSTORE8 CALLDATASIZE PUSH8 0xBC41E4C5598903EC 0xB2 0xC7 COINBASE SWAP4 CALLER 0x4E 0xC3 CREATE ADDRESS 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        115,
        3386
      ],
      "op": "PUSH20",
      "path": "63",
      "value": "0x0"
    },
    "21": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "ADDRESS",
      "path": "63"
    },
    "22": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "EQ",
      "path": "63"
    },
    "23": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "PUSH1",
      "path": "63",
      "value": "0x80"
    },
    "25": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "PUSH1",
      "path": "63",
      "value": "0x40"
    },
    "27": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "MSTORE",
      "path": "63"
    },
    "28": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "PUSH1",
      "path": "63",
      "value": "0x0"
    },
    "30": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "DUP1",
      "path": "63"
    },
    "31": {
      "fn": null,
      "offset": [
        115,
        3386
      ],
      "op": "REVERT",
      "path": "63"
    }
  },
  "sha1": "06bc92ce71779c8f712bf9de3e9d1586d4c27c18",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n  using BufferChainlink for BufferChainlink.buffer;\n\n  uint8 private constant MAJOR_TYPE_INT = 0;\n  uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n  uint8 private constant MAJOR_TYPE_BYTES = 2;\n  uint8 private constant MAJOR_TYPE_STRING = 3;\n  uint8 private constant MAJOR_TYPE_ARRAY = 4;\n  uint8 private constant MAJOR_TYPE_MAP = 5;\n  uint8 private constant MAJOR_TYPE_TAG = 6;\n  uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n  uint8 private constant TAG_TYPE_BIGNUM = 2;\n  uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n  function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n    if(value <= 23) {\n      buf.appendUint8(uint8((major << 5) | value));\n    } else if (value <= 0xFF) {\n      buf.appendUint8(uint8((major << 5) | 24));\n      buf.appendInt(value, 1);\n    } else if (value <= 0xFFFF) {\n      buf.appendUint8(uint8((major << 5) | 25));\n      buf.appendInt(value, 2);\n    } else if (value <= 0xFFFFFFFF) {\n      buf.appendUint8(uint8((major << 5) | 26));\n      buf.appendInt(value, 4);\n    } else {\n      buf.appendUint8(uint8((major << 5) | 27));\n      buf.appendInt(value, 8);\n    }\n  }\n\n  function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n    buf.appendUint8(uint8((major << 5) | 31));\n  }\n\n  function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n    if(value > 0xFFFFFFFFFFFFFFFF) {\n      encodeBigNum(buf, value);\n    } else {\n      encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n    }\n  }\n\n  function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n    if(value < -0x10000000000000000) {\n      encodeSignedBigNum(buf, value);\n    } else if(value > 0xFFFFFFFFFFFFFFFF) {\n      encodeBigNum(buf, uint(value));\n    } else if(value >= 0) {\n      encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n    } else {\n      encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n    }\n  }\n\n  function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n    encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n    buf.append(value);\n  }\n\n  function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n    buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n    encodeBytes(buf, abi.encode(value));\n  }\n\n  function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n    buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n    encodeBytes(buf, abi.encode(uint256(-1 - input)));\n  }\n\n  function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n    encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n    buf.append(bytes(value));\n  }\n\n  function startArray(BufferChainlink.buffer memory buf) internal pure {\n    encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n  }\n\n  function startMap(BufferChainlink.buffer memory buf) internal pure {\n    encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n  }\n\n  function endSequence(BufferChainlink.buffer memory buf) internal pure {\n    encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n  }\n}\n",
  "sourceMap": "115:3271:63:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:63;;;;;;;;;;;;;;;;;",
  "sourcePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/CBORChainlink.sol",
  "type": "library"
}