Implement a robust retry mechanism with exponential backoff for a critical third-party API integration.
Use a sequence of deterministic API outcomes to simulate calls. Return whether the operation succeeded, the number of attempts, and the delays used before retries.
retry_api_call(outcomes, max_retries, base_delay) receives boolean outcomes, where True succeeds and False fails. Retries stop after success or max_retries additional attempts. The delay before retry number n is base_delay * 2 ** n, starting with n = 0.
def retry_api_call(outcomes, max_retries, base_delay):