{
  "absolutePath": "a",
  "exportedSymbols":
  {
    "A":
    [
      5
    ],
    "B":
    [
      10
    ],
    "C":
    [
      22
    ]
  },
  "id": 23,
  "nodeType": "SourceUnit",
  "nodes":
  [
    {
      "abstract": false,
      "baseContracts": [],
      "canonicalName": "A",
      "contractDependencies": [],
      "contractKind": "contract",
      "fullyImplemented": true,
      "id": 5,
      "linearizedBaseContracts":
      [
        5
      ],
      "name": "A",
      "nameLocation": "9:1:1",
      "nodeType": "ContractDefinition",
      "nodes":
      [
        {
          "body":
          {
            "id": 3,
            "nodeType": "Block",
            "src": "45:2:1",
            "statements": []
          },
          "functionSelector": "26121ff0",
          "id": 4,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "f",
          "nameLocation": "26:1:1",
          "nodeType": "FunctionDefinition",
          "parameters":
          {
            "id": 1,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "27:2:1"
          },
          "returnParameters":
          {
            "id": 2,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "45:0:1"
          },
          "scope": 5,
          "src": "17:30:1",
          "stateMutability": "nonpayable",
          "virtual": true,
          "visibility": "public"
        }
      ],
      "scope": 23,
      "src": "0:49:1",
      "usedErrors": []
    },
    {
      "abstract": false,
      "baseContracts": [],
      "canonicalName": "B",
      "contractDependencies": [],
      "contractKind": "contract",
      "fullyImplemented": true,
      "id": 10,
      "linearizedBaseContracts":
      [
        10
      ],
      "name": "B",
      "nameLocation": "59:1:1",
      "nodeType": "ContractDefinition",
      "nodes":
      [
        {
          "body":
          {
            "id": 8,
            "nodeType": "Block",
            "src": "95:2:1",
            "statements": []
          },
          "functionSelector": "26121ff0",
          "id": 9,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "f",
          "nameLocation": "76:1:1",
          "nodeType": "FunctionDefinition",
          "parameters":
          {
            "id": 6,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "77:2:1"
          },
          "returnParameters":
          {
            "id": 7,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "95:0:1"
          },
          "scope": 10,
          "src": "67:30:1",
          "stateMutability": "nonpayable",
          "virtual": true,
          "visibility": "public"
        }
      ],
      "scope": 23,
      "src": "50:49:1",
      "usedErrors": []
    },
    {
      "abstract": false,
      "baseContracts":
      [
        {
          "baseName":
          {
            "id": 11,
            "name": "A",
            "nameLocations":
            [
              "114:1:1"
            ],
            "nodeType": "IdentifierPath",
            "referencedDeclaration": 5,
            "src": "114:1:1"
          },
          "id": 12,
          "nodeType": "InheritanceSpecifier",
          "src": "114:1:1"
        },
        {
          "baseName":
          {
            "id": 13,
            "name": "B",
            "nameLocations":
            [
              "117:1:1"
            ],
            "nodeType": "IdentifierPath",
            "referencedDeclaration": 10,
            "src": "117:1:1"
          },
          "id": 14,
          "nodeType": "InheritanceSpecifier",
          "src": "117:1:1"
        }
      ],
      "canonicalName": "C",
      "contractDependencies": [],
      "contractKind": "contract",
      "fullyImplemented": true,
      "id": 22,
      "linearizedBaseContracts":
      [
        22,
        10,
        5
      ],
      "name": "C",
      "nameLocation": "109:1:1",
      "nodeType": "ContractDefinition",
      "nodes":
      [
        {
          "baseFunctions":
          [
            4,
            9
          ],
          "body":
          {
            "id": 20,
            "nodeType": "Block",
            "src": "160:2:1",
            "statements": []
          },
          "functionSelector": "26121ff0",
          "id": 21,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "f",
          "nameLocation": "134:1:1",
          "nodeType": "FunctionDefinition",
          "overrides":
          {
            "id": 18,
            "nodeType": "OverrideSpecifier",
            "overrides":
            [
              {
                "id": 16,
                "name": "A",
                "nameLocations":
                [
                  "154:1:1"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 5,
                "src": "154:1:1"
              },
              {
                "id": 17,
                "name": "B",
                "nameLocations":
                [
                  "157:1:1"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 10,
                "src": "157:1:1"
              }
            ],
            "src": "145:14:1"
          },
          "parameters":
          {
            "id": 15,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "135:2:1"
          },
          "returnParameters":
          {
            "id": 19,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "160:0:1"
          },
          "scope": 22,
          "src": "125:37:1",
          "stateMutability": "nonpayable",
          "virtual": false,
          "visibility": "public"
        }
      ],
      "scope": 23,
      "src": "100:64:1",
      "usedErrors": []
    }
  ],
  "src": "0:165:1"
}