<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def intersection_supplied(self, results_filenames, labels, output_fh):
 """Returns `output_fh` populated with CSV results giving the n-grams that are common to witnesses in every set of works in `results_sets`, using the labels in `labels`. :param results_filenames: list of results to be diffed :type results_filenames: `list` of `str` :param labels: labels to be applied to the results_sets :type labels: `list` :param output_fh: object to output results to :type output_fh: file-like object :rtype: file-like object """

        self._add_temporary_results_sets(results_filenames, labels)
        query = constants.SELECT_INTERSECT_SUPPLIED_SQL
        parameters = [len(labels)]
        self._logger.info('Running supplied intersect query')
        self._logger.debug('Query: {}\nNumber of labels: {}'.format(
            query, parameters[0]))
        self._log_query_plan(query, parameters)
        cursor = self._conn.execute(query, parameters)
        return self._csv(cursor, constants.QUERY_FIELDNAMES, output_fh)