code: func HandleResponse(rxPacket models.RXPacket, sp storage.ServiceProfile, ds storage.DeviceSession, adr, mustSend, ack bool, macCommands []storage.MACCommandBlock) error {
  	ctx := dataContext{
  		ServiceProfile: sp,
  		DeviceSession:  ds,
  		ACK:            ack,
  		MustSend:       mustSend,
  		RXPacket:       &rxPacket,
  		MACCommands:    macCommands,
  	}
  
  	for _, t := range responseTasks {
  		if err := t(&ctx); err != nil {
  			if err == ErrAbort {
  				return nil
  			}
  
  			return err
  		}
  	}
  
  	return nil
  }
docs: // HandleResponse handles a downlink response.