docs: def build_complex_fault_geometry(fault_source):
      """
      Returns the complex fault source geometry as a Node
  
      :param fault_source:
          Complex fault source model as an instance of the :class:
          `openquake.hazardlib.source.complex_fault.ComplexFaultSource`
      :returns:
          Instance of :class:`openquake.baselib.node.Node`
      """
      num_edges = len(fault_source.edges)
      edge_nodes = []
      for iloc, edge in enumerate(fault_source.edges):
          if iloc == 0:
              # Top Edge
              node_name = "faultTopEdge"
  
          elif iloc == (num_edges - 1):
              # Bottom edge
              node_name = "faultBottomEdge"
          else:
              # Intermediate edge
              node_name = "intermediateEdge"
          edge_nodes.append(
              Node(node_name,
                   nodes=[build_linestring_node(edge, with_depth=True)]))
      return Node("complexFaultGeometry", nodes=edge_nodes)