{l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ` a b c d e f g h i j k NonelClass for Google API request. Perform a request. Google API project ID, see  $https://code.google.com/apis/console. OAuth 2.0 access token. %Convert a string to an access token.  Construct a Google API request. 0Construct a project-related Google API request. -Prepare a string for inclusion in a request. Prepare a name/key for a header. mPrepare a value for a header. Append headers to a request. Append a body to a request. Append a query to a request. nHTakes an idempotent IO action that includes a network request. Catches  oCs and tries a gain a certain number of times. The second argument 4 is a callback to invoke every time a retry occurs. RTakes a list of *seconds* to wait between retries. A null list means no retries, R an infinite list will retry indefinitely. The user can choose whatever temporal 1 pattern they desire (e.g. exponential backoff). 9Once the retry list runs out, the last attempt may throw o ' exceptions that escape this function. l The request. ;The action returning the result of performing the request. The conduit HTTP manager.  The request. ;The action returning the result of performing the request.  The string. The OAuth 2.0 access token. The OAuth 2.0 access token. !The Google API name and version. The HTTP method. #The host and path for the request. The HTTP request. The project ID. The OAuth 2.0 access token. !The Google API name and version. The HTTP method. #The host and path for the request. The HTTP request.  The string. The prepared string. J TODO: In principle, we should UTF-8 encode the bytestrings packed below.  The name. The prepared name. J TODO: In principle, we should UTF-8 encode the bytestrings packed below. m The value. The prepared value. J TODO: In principle, we should UTF-8 encode the bytestrings packed below.  The (name/#key, value) pairs for the headers.  The request. )The request with the additional headers. The data for the body.  The request. $The request with the body appended. The query keys and values.  The request. %The request with the query appended. npqrstu     l m npqrstuNoneSMS authentication token. Google password. Google e-mail address. List the bookmarks, see  4http://www.mmartins.com/mmartins/googlebookmarksapi/. The Google e-mail address. The Google password. The SMS authentication token. 2The action returning the bookmarks in XML format. vwxvwxNone Bookshelf ID. yThe host for API access. zThe API version used here. List the bookshelves, see  Ihttps://developers.google.com/books/docs/v1/using#RetrievingMyBookshelves. {List the bookshelf IDs, see  Ihttps://developers.google.com/books/docs/v1/using#RetrievingMyBookshelves. List the books, see  Nhttps://developers.google.com/books/docs/v1/using#RetrievingMyBookshelfVolumes. |List the books in a shelf, see  Nhttps://developers.google.com/books/docs/v1/using#RetrievingMyBookshelfVolumes. }List the books in a shelf, see  Nhttps://developers.google.com/books/docs/v1/using#RetrievingMyBookshelfVolumes. ~+Find the total number of items in a shelf. !Find the items in a list of books' metadata. 'Make an HTTP request for Google Books. yzThe OAuth 2.0 access token. $The action returning the bookshelves' metadata in JSON format. {The OAuth 2.0 access token. ,The action returning list of bookshelf IDs. The OAuth 2.0 access token. The bookshelf IDs. The action returning the books' metadata in JSON format. |The OAuth 2.0 access token. The bookshelf ID. The action returning the books' metadata in JSON format. }The OAuth 2.0 access token. The bookshelf ID. )The start index in the list of metadata. The action returning the books' metadata in JSON format. ~ The books' metadata. (The total number of books in the shelf.  The books' metadata The books in the metadata. The OAuth 2.0 access token. The bookshelf ID. The starting index  The request.  yz{|}~None *Designed to mirror the types listed here:   Chttps://developers.google.com/fusiontables/docs/v1/reference/column  ID for a specific fusion table  An incomplete representation of  Khttps://developers.google.com/fusiontables/docs/v1/reference/table#resource The host for API access. The API version used here. %DCreate an (exportable) table with a given name and list of columns. &%List all tables belonging to a user.  See  Ghttps://developers.google.com/fusiontables/docs/v1/reference/table/list. ;Construct a simple Haskell representation of the result of &. '*List the columns within a specific table.  See  Hhttps://developers.google.com/fusiontables/docs/v1/reference/column/list. Parse the output of '. (QInsert one or more rows into a table. Rows are represented as lists of strings. P The columns being written are passed in as a separate list. The length of all D rows must match eachother and must match the list of column names. SImplement a larger quantity of rows, but with the caveat that the number and order M of columns must exactly match the schema of the fusion table on the server.  H will perform a listing of the columns to verify this before uploading.  !"#$%&The OAuth 2.0 access token. 'The OAuth 2.0 access token.  which table (Which columns to write. Rows Which columns to write. Rows  !"#$%&'( !"#$%&'( !"#$%&'(None)An OAuth 2.0 scope. *OAuth 2.0 tokens. ,The access token. -The refresh token. .6The number of seconds until the access token expires. /The token type. An OAuth 2.0 code. 2The client ID. 3The client secret. 4*The OAuth 2.0 scopes for Google APIs, see  .https://developers.google.com/oauthplayground/. 3The redirect URI for an installed application, see  Rhttps://developers.google.com/accounts/docs/OAuth2InstalledApp#choosingredirecturi. 59Form a URL for authorizing an installed application, see  Lhttps://developers.google.com/accounts/docs/OAuth2InstalledApp#formingtheurl. 6/Exchange an authorization code for tokens, see  Rhttps://developers.google.com/accounts/docs/OAuth2InstalledApp#handlingtheresponse. )Refresh OAuth 2.0 tokens from JSON data. 7Refresh OAuth 2.0 tokens, see  Fhttps://developers.google.com/accounts/docs/OAuth2InstalledApp#refresh. %Peform OAuth 2.0 authentication, see  Rhttps://developers.google.com/accounts/docs/OAuth2InstalledApp#handlingtheresponse. 8Validate OAuth 2.0 tokens, see  Ghttps://developers.google.com/accounts/docs/OAuth2Login#validatingtoken. 9KProvide a hassle-free way to retrieve and refresh tokens from a users home , directory, OR ask the user for permission. =The first time it is called, this may open a web-browser, and/or request the user P enter data on the command line. Subsequently, invocations on the same machine ' should not communicate with the user. KIf the tokens do not expire until more than 15 minutes in the future, this N procedure will skip the refresh step. Whether or not it refreshes should be Q immaterial to the clients subsequent actions, because all clients should handle 5 authentication errors (and all 5xx errors) and call - as necessary. )*+,-./01234,List of names and the corresponding scopes. 5The OAuth 2.0 client. 'The OAuth 2.0 scopes to be authorized. The URL for authorization. 6The OAuth 2.0 client. The authorization code. %The action for obtaining the tokens. The original tokens, if any. The JSON value. The refreshed tokens. 7 The client.  The tokens. "The action to refresh the tokens.  The client. The grant type. The ?The action returing the JSON response from making the request. 8 The tokens. 6The number of seconds until the access token expires. 9The client is the "key" for token lookup. )*+,-./01234567890123)*+,-./456789 )*+,-./0123456789None :Picasa album ID. ;Picasa user ID. The host for API access. The API version used here. <Default Picasa user ID =List the albums, see  Vhttps://developers.google.com/picasa-web/docs/2.0/developers_guide_protocol#ListAlbums. /Extract the album IDs from the list of albums. >List the photos in albums, see  [https://developers.google.com/picasa-web/docs/2.0/developers_guide_protocol#ListAlbumPhotos. !List the photos in an album, see  [https://developers.google.com/picasa-web/docs/2.0/developers_guide_protocol#ListAlbumPhotos. (Make an HTTP request for a Picasa feed. :;<=The OAuth 2.0 access token. The user ID for the photos. 8The action returning the albums metadata in XML format. (The root element of the list of albums. The list of album IDs. >The OAuth 2.0 access token. The user ID for the photos. 4The album ID for the photos, or all photos if null. 7The action returning the photo metadata in XML format. The OAuth 2.0 access token. The user ID for the photos. The album ID for the photos. 1The action returning the contacts in XML format. The OAuth 2.0 access token. The user ID for the photos. The album ID for the photos.  The request. :;<=>;<:=> :;<=>None?1An MD5 checksum represented in base 64 encoding. @3An MD5 checksum represented as a character string. AMD5 checksum information. BCompute an MD5 checksum. C5Convert an MD5 digest into a base-64-encoded string. D"The MD5 info for an empty string. ?@AB The data.  The MD5 sum. CThe MD5 digest. &The MD5 checksum in base 64 encoding. D?@ABCDA@?BCD?@ABCDNone!E MIME type. FAccess control. MA key name for an object. NA bucket name. The host name for API access. The API version used here. Make a host name. URL-encode a path. OCList all of the buckets in a specified project. This performs the " GET Service" request, see  Ghttps://developers.google.com/storage/docs/reference-methods#getservice. PCList all of the buckets in a specified project. This performs the " GET Service" request, see  Ghttps://developers.google.com/storage/docs/reference-methods#getservice. CList all of the buckets in a specified project. This performs the " GET Service" request, see  Ghttps://developers.google.com/storage/docs/reference-methods#getservice. Q<Creates a bucket in a specified project. This performs the " PUT Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#putbucket. R<Creates a bucket in a specified project. This performs the " PUT Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#putbucket. <Creates a bucket in a specified project. This performs the " PUT Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#putbucket. S;Lists the objects that are in a bucket. This performs the " GET Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getbucket. T;Lists the objects that are in a bucket. This performs the " GET Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getbucket. ;Lists the objects that are in a bucket. This performs the " GET Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getbucket. ;Lists the objects that are in a bucket. This performs the " GET Bucket" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getbucket. U,Deletes an empty bucket. This performs the " DELETE Bucket" request, see  Ihttps://developers.google.com/storage/docs/reference-methods#deletebucket. V,Deletes an empty bucket. This performs the " DELETE Bucket" request, see  Ihttps://developers.google.com/storage/docs/reference-methods#deletebucket. ,Deletes an empty bucket. This performs the " DELETE Bucket" request, see  Ihttps://developers.google.com/storage/docs/reference-methods#deletebucket. W(Downloads an object. This performs the " GET Object" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getobject. X(Downloads an object. This performs the " GET Object" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getobject. (Downloads an object. This performs the " GET Object" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#getobject. Y&Uploads an object. This performs the " PUT Object" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#putobject. Z&Uploads an object. This performs the " PUT Object" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#putobject. &Uploads an object. This performs the " PUT Object" request, see  Fhttps://developers.google.com/storage/docs/reference-methods#putobject. [1Lists metadata for an object. This performs the " HEAD Object" request, see  Ghttps://developers.google.com/storage/docs/reference-methods#headobject. \1Lists metadata for an object. This performs the " HEAD Object" request, see  Ghttps://developers.google.com/storage/docs/reference-methods#headobject. 1Lists metadata for an object. This performs the " HEAD Object" request, see  Ghttps://developers.google.com/storage/docs/reference-methods#headobject. ]&Deletes an object. This performs the " DELETE Object" request, see  Ihttps://developers.google.com/storage/docs/reference-methods#deleteobject. ^&Deletes an object. This performs the " DELETE Object" request, see  Ihttps://developers.google.com/storage/docs/reference-methods#deleteobject. &Deletes an object. This performs the " DELETE Object" request, see  Ihttps://developers.google.com/storage/docs/reference-methods#deleteobject. *EFGHIJKLMN The bucket. The host for the bucket. The unencoded path. The URL-encoded path.  TODO: Review whether the sequence of UTF-8 encoding and URL encoding is correct. This works correctly with tests of exotic unicode sequences, however. OThe project ID. The OAuth 2.0 access token. @The action returning the XML with the metadata for the buckets. P!The conduit HTTP manager to use. The project ID. The OAuth 2.0 access token. @The action returning the XML with the metadata for the buckets. )The function for performing the request. The project ID. The OAuth 2.0 access token. @The action returning the XML with the metadata for the buckets. QThe project ID.  The pre-defined access control.  The bucket. The OAuth 2.0 access token. =The action to put the object and return the response header. R!The conduit HTTP manager to use. The project ID.  The pre-defined access control.  The bucket. The OAuth 2.0 access token. =The action to put the object and return the response header. )The function for performing the request. The project ID.  The pre-defined access control.  The bucket. The OAuth 2.0 access token. @The action to create the bucket and return the response header. SThe project ID.  The bucket. The OAuth 2.0 access token. @The action returning the XML with the metadata for the objects. T!The conduit HTTP manager to use. The project ID.  The bucket. The OAuth 2.0 access token. @The action returning the XML with the metadata for the objects. )The function for performing the request. The project ID.  The bucket. The OAuth 2.0 access token. @The action returning the XML with the metadata for the objects. )The function for performing the request. The key to start listing at. The project ID.  The bucket. The OAuth 2.0 access token. @The action returning the XML with the metadata for the objects. UThe project ID.  The bucket. The OAuth 2.0 access token. @The action to delete the bucket and return the response header. V!The conduit HTTP manager to use. The project ID.  The bucket. The OAuth 2.0 access token. @The action to delete the bucket and return the response header. )The function for performing the request. The project ID.  The bucket. The OAuth 2.0 access token. @The action to delete the bucket and return the response header. WThe project ID.  The bucket.  The object's key. The OAuth 2.0 access token. !The action returning the object. X!The conduit HTTP manager to use. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. !The action returning the object. $The function performing the action. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. !The action returning the object. Y The project ID.  The pre-defined access control.  The bucket.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header. Z !The conduit HTTP manager to use. The project ID.  The pre-defined access control.  The bucket.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header. )The function for performing the request. The project ID.  The pre-defined access control.  The bucket.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header. [The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. The action returning the object' s metadata. \!The conduit HTTP manager to use. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. The action returning the object' s metadata. )The function for performing the request. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. The action returning the object' s metadata. ]The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. @The action to delete the object and return the response header. ^!The conduit HTTP manager to use. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. @The action to delete the object and return the response header. )The function for performing the request. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. @The action to delete the object and return the response header. EFGHIJKLMNOPQRSTUVWXYZ[\]^NMFLKJIHGEOPQRSTUVWXYZ[\]^$EFLKJIHGMNOPQRSTUVWXYZ[\]^  Safe-Inferred_A recipient for encryption. `Decrypt text. aEncrypt text. bDecrypt binary data. cEncrypt binary data. Consume the input stream. _`The encrypted text. The plain text. aThe recipients for encryption. The plain text. The encrypted text. bThe encrypted data. The plain data. cThe recipients for encryption. The plain data. The encrypted data.  The function to write the data.  The handle for the destination. The source data. \The action returning the thread ID of the process consuming the input and writing the data. _`abc_`bac_`abc NoneThe host for API access. The API version used here. dList the contacts, see  Nhttps://developers.google.com/google-apps/contacts/v3/#retrieving_all_contacts. +Make an HTTP request to list the contacts. eExtract the GnuPG/PGP text in the "Notes"m fields of a contact list. Extracts are re-encrypted if recipients for the re-encrypted list are specified. Extract the GnuPG/PGP from a contact list. dThe OAuth 2.0 access token. 1The action returning the contacts in XML format. The OAuth 2.0 access token.  The request. e.The recipients to re-encrypt the extracts to. The contact list. IThe action return the decrypted and then possibly re-encrypted extracts. The contact list. +The contacts in (title, organization, GnuPG/PGP extract) format. dedede Nonef%Downloads an object and decrypts it. g%Downloads an object and decrypts it. %Downloads an object and decrypts it. h!Encrypt an object and upload it. fThe project ID.  The bucket.  The object's key. The OAuth 2.0 access token. !The action returning the object. g!The conduit HTTP manager to use. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. !The action returning the object.  Function for getting an object. The project ID.  The bucket.  The object's key. The OAuth 2.0 access token. !The action returning the object. h ;The recipients for GnuPG encryption of the uploaded files. The project ID.  The pre-defined access control.  The bucket.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header. i !The conduit HTTP manager to use. ;The recipients for GnuPG encryption of the uploaded files. The project ID.  The pre-defined access control.  The bucket.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header.  Function for putting an object. ;The recipients for GnuPG encryption of the uploaded files. The project ID.  The pre-defined access control.  The bucket.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header. fghihifgfghi NoneObject metadata.  The object's key.  The object' s MD5 sum.  The object's size, in bytes.  The object's modification time. 5An expiration time and the tokens which expire then. NA function for determining whether to exclude an object from synchronization. 1A function for deleting an object from a bucket. 0A function for putting an object into a bucket. !A function for listing a bucket. jDA regular expression used for excluding files from synchronization. kASynchronize a filesystem directory with a Google Storage bucket. ?Check whether a token has expired and refresh it if necessary. OMake a function to exclude objects based on regular expressions for filenames. ASynchronize a filesystem directory with a Google Storage bucket. mDelete the first occurrence of items in the second list from the first list, assuming both lists are sorted. Put a list of objects. Delete a list of objects. Exception handler. -Parse XML metadata into object descriptions. +Gather file metadata from the file system. +Gather file metadata from the file system.  The object' s metadata. 4Whether to exclude the object from synchronization.  The object's key. The OAuth 2.0 access token. =The action to put the object and return the response header.  The object's key.  The object' s MIME type.  The object's data. The MD5 checksum. The OAuth 2.0 access token. =The action to put the object and return the response header. The OAuth 2.0 access token. @The action returning the XML with the metadata for the objects. jk The Google project ID.  The pre-defined access control. The bucket name. "The OAuth 2.0 client information. The OAuth 2.0 tokens. "The directory to be synchronized. ;The recipients for GnuPG encryption of the uploaded files. GThe regular expressions used for excluding files from synchronization. Whether to write a file ".md5sum"< of MD5 sums of synchronized files into the root directory. ZWhether to delete keys from the bucket that do not correspond to files on the filesystem. 'The IO action for the synchronization. "The OAuth 2.0 client information. The token and its expiration. 3The action to update the token and its expiration. The regular expressions. $The function for excluding objects. The bucket listing function. The object putting function. The object deletion function. "The OAuth 2.0 client information. The OAuth 2.0 tokens. "The directory to be synchronized. 3Whether to use ETags in comparing object metadata. 2The local file system objects to be synchronized. Whether to write a file ".md5sum"< of MD5 sums of synchronized files into the root directory. ZWhether to delete keys from the bucket that do not correspond to files on the filesystem. 'The IO action for the synchronization. The equality function. -The first list, which must have been sorted. .The second list, which must have been sorted. >The items in the first list not appearing in the second list. "The OAuth 2.0 client information. The token and its expiration. "The directory to be synchronized. The object putting function. &Description of the objects to be put. 3The action to update the token and its expiration. "The OAuth 2.0 client information. The token and its expiration. The object deletion function. *Description of the objects to be deleted. 3The action to update the token and its expiration. The exception. An empty action. The XML metadata. The object descriptions. Whether to compute MD5 sums. "The directory to be synchronized. $Action returning file descriptions. Whether to compute MD5 sums. "The directory to be synchronized. 4The subdirectories still remaining to be described. $Action returning file descriptions. jkjkjk   !"#$%&'()**+,-../01234567789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi j k l m n o p q r s t u vwxyz{|}~        handa-gdata-0.6.6 Crypto.MD5Network.GoogleNetwork.Google.BookmarksNetwork.Google.BooksNetwork.Google.FusionTablesNetwork.Google.OAuth2Network.Google.PicasaNetwork.Google.Storage Crypto.GnuPGNetwork.Google.Contacts Network.Google.Storage.EncryptedNetwork.Google.Storage.SyncpureMD5-2.1.2.1Data.Digest.Pure.MD5md5 MD5Digest doRequestdoManagedRequest ProjectId AccessToken toAccessToken makeRequestmakeProjectRequestmakeRequestValuemakeHeaderName appendHeaders appendBody appendQuerySmsTokenPasswordEMail listBookmarksShelfIdlistBookshelves listBooksCellTypeDATETIMELOCATIONSTRINGNUMBERTableIdColumnMetadata col_columnIdcol_namecol_type TableMetadatatab_name tab_tableId tab_columns createTable listTables listColumns insertRows OAuth2Scope OAuth2Tokens accessToken refreshToken expiresIn tokenType OAuth2ClientclientId clientSecret googleScopesformUrl exchangeCode refreshTokensvalidateTokensgetCachedTokensAlbumIdUserId defaultUser listAlbums listPhotos MD5Base64 MD5StringMD5Info md5Base64 md5ToBase64md5EmptyMIMEType StorageAclBucketOwnerFullControlBucketOwnerReadAuthenicatedReadPublicReadWrite PublicReadPrivateKeyName BucketName getServicegetServiceUsingManager putBucketputBucketUsingManager getBucketgetBucketUsingManager deleteBucketdeleteBucketUsingManager getObjectgetObjectUsingManager putObjectputObjectUsingManager headObjectheadObjectUsingManager deleteObjectdeleteObjectUsingManager Recipientdecryptencrypt decryptLbs encryptLbs listContactsextractGnuPGNotesgetEncryptedObjectgetEncryptedObjectUsingManagerputEncryptedObjectputEncryptedObjectUsingManagerRegexExclusionsync DoRequestmakeHeaderValueretryIORequesthttp-conduit-1.9.4.1Network.HTTP.Conduit.Types HttpException$fDoRequestJSValue$fDoRequestElement $fDoRequest() $fDoRequest[]$fDoRequest[]0$fDoRequestByteStringaccountsPostRequest listingUrl extractValue booksHostbooksApilistBookshelfIdslistShelfBookslistShelfBooks' totalItemsitems booksRequestfusiontableHostfusiontableApi parseTables parseColumnsbulkImportRowsFTString parseTable parseColumnsqlQuery filterRows$fOutColumnMetadata$fOutTableMetadata OAuth2Code redirectUri decodeTokensdoOAuth2 picasaHost picasaApiextractAlbumIdslistAlbumPhotospicasaFeedRequest storageHost storageApimakeHostmakePathgetServiceImpl putBucketImpl getBucketImplgetBucketImpl'deleteBucketImpl getObjectImpl putObjectImplheadObjectImpldeleteObjectImpl postObject$fReadStorageAcl$fShowStorageAcl consumeInput contactsHost contactsApilistContactsRequestextractGnuPGNotes'getEncryptedObjectImplputEncryptedObjectImplObjectMetadatakeyeTagsize lastModified TokenClockExcluderDeleterPutterListercheckExpiration makeExcludersync'deleteFirstsBy' walkPutter walkDeleterhandler parseMetadatawalkDirectorieswalkDirectories'$fEqObjectMetadata$fOrdObjectMetadata