<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _collect_peers_of_interest(self, new_best_path):
 """Collect all peers that qualify for sharing a path with given RTs. """

        path_rts = new_best_path.get_rts()
        qualified_peers = set(self._peers.values())

        # Filter out peers based on RTC_AS setting if path is for RT_NLRI
        qualified_peers = self._rt_manager.filter_by_origin_as(
            new_best_path, qualified_peers
        )

        # We continue to filter out qualified peer based on path RTs
        # If new best path has RTs, we need to share this UPDATE with
        # qualifying peers
        if path_rts:
            # We add Default_RTC_NLRI to path RTs so that we can send it to
            # peers that have expressed interest in all paths
            path_rts.append(RouteTargetMembershipNLRI.DEFAULT_RT)
            # All peers that do not have RTC capability qualify
            qualified_peers = set(self._get_non_rtc_peers())
            # Peers that have RTC capability and have common RT with the path
            # also qualify
            peer_to_rtfilter_map = self._peer_to_rtfilter_map
            for peer, rt_filter in peer_to_rtfilter_map.items():
                # Ignore Network Controller (its not a BGP peer)
                if peer is None:
                    continue

                if rt_filter is None:
                    qualified_peers.add(peer)
                elif rt_filter.intersection(path_rts):
                    qualified_peers.add(peer)

        return qualified_peers