<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _build_authorization_request_url( self, response_type, redirect_url, state=None ):
 """Form URL to request an auth code or access token. Parameters response_type (str) Either 'code' (Authorization Code Grant) or 'token' (Implicit Grant) redirect_url (str) The URL that the Uber server will redirect the user to after finishing authorization. The redirect must be HTTPS-based and match the URL you registered your application with. Localhost URLs are permitted and can be either HTTP or HTTPS. state (str) Optional CSRF State token to send to server. Returns (str) The fully constructed authorization request URL. Raises UberIllegalState (ApiError) Raised if response_type parameter is invalid. """

        if response_type not in auth.VALID_RESPONSE_TYPES:
            message = '{} is not a valid response type.'
            raise UberIllegalState(message.format(response_type))

        args = OrderedDict([
            ('scope', ' '.join(self.scopes)),
            ('state', state),
            ('redirect_uri', redirect_url),
            ('response_type', response_type),
            ('client_id', self.client_id),
        ])

        return build_url(auth.AUTH_HOST, auth.AUTHORIZE_PATH, args)