code: def add_remote_candidate(self, remote_candidate):
          
          if self._remote_candidates_end:
              raise ValueError('Cannot add remote candidate after end-of-candidates.')
  
          if remote_candidate is None:
              self._prune_components()
              self._remote_candidates_end = True
              return
  
          self._remote_candidates.append(remote_candidate)
          for protocol in self._protocols:
              if (protocol.local_candidate.can_pair_with(remote_candidate) and
                 not self._find_pair(protocol, remote_candidate)):
                  pair = CandidatePair(protocol, remote_candidate)
                  self._check_list.append(pair)
          self.sort_check_list()
docs: Add a remote candidate or signal end-of-candidates.
  
          To signal end-of-candidates, pass `None`.