class TransportKillNodeAction {

    private TransportKillNodeAction() {
    }

    static <T extends TransportRequest> void broadcast(ClusterService clusterService,
                                                       TransportService transportService,
                                                       T request,
                                                       String actionName,
                                                       ActionListener<KillResponse> listener,
                                                       Collection<String> excludedNodeIds) {<FILL_FUNCTION_BODY>}
}

        Stream<DiscoveryNode> nodes = StreamSupport.stream(clusterService.state().nodes().spliterator(), false);
        Collection<DiscoveryNode> filteredNodes = nodes.filter(node -> !excludedNodeIds.contains(node.getId())).collect(
            Collectors.toList());

        MultiActionListener<KillResponse, Long, KillResponse> multiListener =
            new MultiActionListener<>(filteredNodes.size(),
                                      () -> 0L,
                                      (state, response) -> state += response.numKilled(),
                                      KillResponse::new,
                                      listener);

        TransportResponseHandler<KillResponse> responseHandler =
            new ActionListenerResponseHandler<>(multiListener, KillResponse::new);
        for (DiscoveryNode node : filteredNodes) {
            transportService.sendRequest(node, actionName, request, responseHandler);
        }
    
<no_super_class>