code: def get_alternative(self, client, dt=None, prefetch=False):
          
  
          if self.is_archived() or self.is_paused():
              return self.control
  
          if self.is_client_excluded(client):
              return self.control
  
          chosen_alternative = self.existing_alternative(client)
          if not chosen_alternative:
              chosen_alternative, participate = self.choose_alternative(client)
              if participate and not prefetch:
                  chosen_alternative.record_participation(client, dt=dt)
  
          return chosen_alternative
docs: Returns and records an alternative according to the following
          precedence:
            1. An existing alternative
            2. A server-chosen alternative