{
  "absolutePath": "a",
  "exportedSymbols":
  {
    "A":
    [
      5
    ],
    "B":
    [
      16
    ],
    "C":
    [
      29
    ]
  },
  "id": 30,
  "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": "44:2:1",
            "statements": []
          },
          "functionSelector": "a399b6a2",
          "id": 4,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "faa",
          "nameLocation": "23:3:1",
          "nodeType": "FunctionDefinition",
          "parameters":
          {
            "id": 1,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "26:2:1"
          },
          "returnParameters":
          {
            "id": 2,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "44:0:1"
          },
          "scope": 5,
          "src": "14:32:1",
          "stateMutability": "nonpayable",
          "virtual": true,
          "visibility": "public"
        }
      ],
      "scope": 30,
      "src": "0:48:1",
      "usedErrors": []
    },
    {
      "abstract": true,
      "baseContracts":
      [
        {
          "baseName":
          {
            "id": 6,
            "name": "A",
            "nameLocations":
            [
              "72:1:1"
            ],
            "nodeType": "IdentifierPath",
            "referencedDeclaration": 5,
            "src": "72:1:1"
          },
          "id": 7,
          "nodeType": "InheritanceSpecifier",
          "src": "72:1:1"
        }
      ],
      "canonicalName": "B",
      "contractDependencies": [],
      "contractKind": "contract",
      "fullyImplemented": false,
      "id": 16,
      "linearizedBaseContracts":
      [
        16,
        5
      ],
      "name": "B",
      "nameLocation": "67:1:1",
      "nodeType": "ContractDefinition",
      "nodes":
      [
        {
          "functionSelector": "c2985578",
          "id": 10,
          "implemented": false,
          "kind": "function",
          "modifiers": [],
          "name": "foo",
          "nameLocation": "86:3:1",
          "nodeType": "FunctionDefinition",
          "parameters":
          {
            "id": 8,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "89:2:1"
          },
          "returnParameters":
          {
            "id": 9,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "106:0:1"
          },
          "scope": 16,
          "src": "77:30:1",
          "stateMutability": "nonpayable",
          "virtual": true,
          "visibility": "public"
        },
        {
          "baseFunctions":
          [
            4
          ],
          "body":
          {
            "id": 14,
            "nodeType": "Block",
            "src": "148:2:1",
            "statements": []
          },
          "functionSelector": "a399b6a2",
          "id": 15,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "faa",
          "nameLocation": "118:3:1",
          "nodeType": "FunctionDefinition",
          "overrides":
          {
            "id": 12,
            "nodeType": "OverrideSpecifier",
            "overrides": [],
            "src": "139:8:1"
          },
          "parameters":
          {
            "id": 11,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "121:2:1"
          },
          "returnParameters":
          {
            "id": 13,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "148:0:1"
          },
          "scope": 16,
          "src": "109:41:1",
          "stateMutability": "nonpayable",
          "virtual": true,
          "visibility": "public"
        }
      ],
      "scope": 30,
      "src": "49:103:1",
      "usedErrors": []
    },
    {
      "abstract": false,
      "baseContracts":
      [
        {
          "baseName":
          {
            "id": 17,
            "name": "B",
            "nameLocations":
            [
              "167:1:1"
            ],
            "nodeType": "IdentifierPath",
            "referencedDeclaration": 16,
            "src": "167:1:1"
          },
          "id": 18,
          "nodeType": "InheritanceSpecifier",
          "src": "167:1:1"
        }
      ],
      "canonicalName": "C",
      "contractDependencies": [],
      "contractKind": "contract",
      "fullyImplemented": true,
      "id": 29,
      "linearizedBaseContracts":
      [
        29,
        16,
        5
      ],
      "name": "C",
      "nameLocation": "162:1:1",
      "nodeType": "ContractDefinition",
      "nodes":
      [
        {
          "baseFunctions":
          [
            10
          ],
          "body":
          {
            "id": 22,
            "nodeType": "Block",
            "src": "203:3:1",
            "statements": []
          },
          "functionSelector": "c2985578",
          "id": 23,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "foo",
          "nameLocation": "181:3:1",
          "nodeType": "FunctionDefinition",
          "overrides":
          {
            "id": 20,
            "nodeType": "OverrideSpecifier",
            "overrides": [],
            "src": "194:8:1"
          },
          "parameters":
          {
            "id": 19,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "184:2:1"
          },
          "returnParameters":
          {
            "id": 21,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "203:0:1"
          },
          "scope": 29,
          "src": "172:34:1",
          "stateMutability": "nonpayable",
          "virtual": false,
          "visibility": "public"
        },
        {
          "baseFunctions":
          [
            15
          ],
          "body":
          {
            "id": 27,
            "nodeType": "Block",
            "src": "239:3:1",
            "statements": []
          },
          "functionSelector": "a399b6a2",
          "id": 28,
          "implemented": true,
          "kind": "function",
          "modifiers": [],
          "name": "faa",
          "nameLocation": "217:3:1",
          "nodeType": "FunctionDefinition",
          "overrides":
          {
            "id": 25,
            "nodeType": "OverrideSpecifier",
            "overrides": [],
            "src": "230:8:1"
          },
          "parameters":
          {
            "id": 24,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "220:2:1"
          },
          "returnParameters":
          {
            "id": 26,
            "nodeType": "ParameterList",
            "parameters": [],
            "src": "239:0:1"
          },
          "scope": 29,
          "src": "208:34:1",
          "stateMutability": "nonpayable",
          "virtual": false,
          "visibility": "public"
        }
      ],
      "scope": 30,
      "src": "153:91:1",
      "usedErrors": []
    }
  ],
  "src": "0:245:1"
}