úÎL§F+s      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrNone6ô)Authorization Code Grant Error Responses  3https://tools.ietf.org/html/rfc6749#section-4.1.2.1! Implicit Grant Error Responses 3https://tools.ietf.org/html/rfc6749#section-4.2.2.1 None6KNŽ !type synonym of post body content Is either s containing an error or t containg a resultThe gained Access Token. Use Data.Aeson.decode to decode string to  AccessToken. The  refreshToken" is special in some cases, e.g. 2https://developers.google.com/accounts/docs/OAuth2(Query Parameter Representation1aPrepare the authorization URL. Redirect to this URL asking for user interactive authentication.2HPrepare the URL and the request body query for fetching an access token.3cPrepare the URL and the request body query for fetching an access token, with optional grant type.4jUsing a Refresh Token. Obtain a new access token by sending a refresh token to the Authorization server.5For GET method API.6Create   with given access token value.=Parse JSON data into 2(access code gained via authorization URL/access token request URL plus the request body.3(access code gained via authorization URL Grant Type/access token request URL plus the request body.4*refresh token gained via authorization URL0refresh token request URL plus the request body.5Base URIAuthorized Access TokenCombined Result/  !"#$%&'().-,+*/0123456789:;3()*+,-.%&'"#$ !=<?>/0 123456789:; !"#$%&'()*+,-.None6ùSToken Error Responses /https://tools.ietf.org/html/rfc6749#section-5.2SXVUYWT [ZSTUVWXYSTUVWXYNone<VBŠ_>Request OAuth2 Token method: POST authenticate in header`LRequest OAuth2 Token method: POST authenticate in both header and bodya1Request a new AccessToken with the Refresh Token.c1Conduct post request and return response as JSON.dAConduct post request and return response as JSON or Query String.eConduct post request.f>Conduct an authorized GET request and return response as JSON.g"Conduct an authorized GET request.hsame to g; but set access token to query parameter rather than headeri1Conduct POST request and return response as JSON.jConduct POST request.kHConduct POST request with access token in the request body rather headerlEConduct POST request with access token in the header and null in bodymZSend an HTTP request including the Authorization header with the specified access token.n Parses a Response to to  OAuth2Resulto Parses a OAuth2Result BSL.ByteString into FromJSON a => au Parses a OAuth2Result BSL.ByteString* that contains not JSON but a Query StringpTry o and uq0Set several header values: + userAgennt : hoauth2 + accept : `application/json` + authorization : Bearer xxxxx if % provided.rSet the HTTP method to use._HTTP connection manager OAuth DataOAuth 2 Tokens Access Token`HTTP connection manager OAuth DataOAuth 2 Tokens Access TokenaHTTP connection manager. OAuth context(refresh token gained after authorizationbHTTP connection manager. OAuth context(refresh token gained after authorizationcHTTP connection manager. OAuth optionsThe URL request bodyResponse as JSONdHTTP connection manager. OAuth optionsThe URL request bodyResponse as ByteStringeHTTP connection manager. OAuth optionsURL Request body.Response as ByteStringfHTTP connection manager.Response as JSONgHTTP connection manager.Response as ByteStringhHTTP connection manager.Response as ByteStringiHTTP connection manager.Response as JSONjHTTP connection manager.Response as ByteStringkHTTP connection manager.Response as ByteStringlHTTP connection manager.Response as ByteStringmRequest to performModify request before sendingHTTP connection manager._`abcdefghijklmnopqr_`bacdefghijklmnopqr OAuth2 client(c) 2012 Haisheng Wu BSD-style (see the file LICENSE)Haisheng Wu <freizl@gmail.com>alphaportableNoneEC  !"#$%&'()*+,-./0123456789:;_`abcdefghijklmnopqrv       !""#$$%&&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST UVWXYZ[\]^_`abcdefghijkijlmn$hoauth2-1.7.0-AY2UArvVGEn2VtpN3DOa42)Network.OAuth.OAuth2.AuthorizationRequestNetwork.OAuth.OAuth2.Internal!Network.OAuth.OAuth2.TokenRequestNetwork.OAuth.OAuth2.HttpClientNetwork.OAuth.OAuth2ErrorsInvalidRequestUnauthorizedClient AccessDeniedUnsupportedResponseType InvalidScope ServerErrorTemporarilyUnavailable$fToJSONErrors$fFromJSONErrors $fShowErrors $fEqErrors$fGenericErrors QueryParamsPostBody OAuth2Result OAuth2ErrorerrorerrorDescriptionerrorUri OAuth2Token accessToken refreshToken expiresIn tokenTypeidToken ExchangeTokenextokenIdTokenidtoken RefreshTokenrtoken AccessTokenatokenOAuth2 oauthClientIdoauthClientSecretoauthOAuthorizeEndpointoauthAccessTokenEndpoint oauthCallbackparseOAuth2ErrormkDecodeOAuth2ErrorauthorizationUrlaccessTokenUrlaccessTokenUrl'refreshAccessTokenUrlappendAccessTokenaccessTokenToParamappendQueryParams uriToRequest requestToUrihostLensportLens$fToJSONOAuth2Token$fFromJSONOAuth2Token$fToJSONOAuth2Error$fFromJSONOAuth2Error $fShowOAuth2 $fEqOAuth2$fShowAccessToken$fFromJSONAccessToken$fToJSONAccessToken$fShowRefreshToken$fFromJSONRefreshToken$fToJSONRefreshToken $fShowIdToken$fFromJSONIdToken$fToJSONIdToken$fShowExchangeToken$fFromJSONExchangeToken$fToJSONExchangeToken$fShowOAuth2Token$fGenericOAuth2Token$fShowOAuth2Error$fEqOAuth2Error$fGenericOAuth2Error InvalidClient InvalidGrantUnsupportedGrantTypefetchAccessTokenfetchAccessToken2refreshAccessTokenfetchRefreshTokendoJSONPostRequestdoFlexiblePostRequestdoSimplePostRequest authGetJSON authGetBS authGetBS2 authPostJSON authPostBS authPostBS2 authPostBS3 authRequesthandleResponseparseResponseJSONparseResponseFlexibleupdateRequestHeaders setMethodbase Data.EitherLeftRightparseResponseString