h$td      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                   (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #'(-/28<>?'{ do-spaces0An s3-compatible API error response, sent as XML do-spacesHTTP  do-spacesThe s3 error code type do-spacesThe unique ID of the request do-spaces"An exception generated within the  client  do-spacesThis includes the raw  body, read into a lazy   do-spaces The base  type for both s and s do-spaces"Canned" access controls; Spaces doesn't support the full range offered by s3 do-spaces No unauthenticated public access do-spaces,Unauthenticated public read access permitted do-spacesHow to discover the , 0, and - when creating a new  client. do-spaces6Try a sequence of different sources until one succeeds do-spaces, 0 and - env vars do-spacesLoad your credentials from a file, optionally providing the profile to use (or default as the... default). do-spacesProvide all values explicitly do-spaces,A unique ID that is assigned to each request do-spacesA ) with optional  do-spacesA  consumed by an ( instance do-spaces2, the retention of which can be controlled using  do-spacesWhether or not to retain  when consuming responses do-spacesMetadata and other response information returned from each Spaces API transaction; it can be helpful to retain this at times  do-spacesUnique ID assigned to your request. This is not included in all responses" do-spaces HTTP status# do-spacesA request or response body, do-spacesThe name of a per-project configuration profile to select when loading credentials from a file- do-spacesSpaces secret key0 do-spacesSpaces access key8 do-spaces A strict  that has been computed according to some part of the AWS v4 spec. The AWS v4 signature is calculated from a series of interdependent computations. It would be possible to represent these all as s; this approach, however, would make it easy to confuse two sequences that are not semantically equivalent, leading to the generation of malformed singatures. The promiscuous use of s also makes for unclear type signatures. Using a GADT with type synonyms is simpler than creating a newtype for each type of computation: do-spacesRepresents a "string to sign" that has been computed according to the Spaces/AWS v4 spec; do-spacesSigned hash of a  body, a -, and request information= do-spaces7Authorization string containing information about your 0 and your request> do-spacesRepresents some resource that has been canonicalized according to the Spaces/AWS v4 spec@ do-spacesA unique ID for a EB do-spaces0Configuration for automatically deleting expire sE do-spacesLifecycle configuration for a H do-spacesThe status of the  LifecycleRuleI do-spacesWhen specified, only s which share the prefix will be affected by the lifecycle rulesK do-spacesWhen specified, configures the deletion of incomplete multipart uploadsM do-spacesA generic type for describing ACL configuration, can be applied to both  and  ACLsQ do-spaces0Information about who an access grant applies toR do-spacesNominally contains a URI value, but Spaces only supports a single value for group access grantsT do-spacesAccess grant level; Spaces currently only supports these two levelsW do-spacesAn individual access grant[ do-spaces#Cross-origin resource sharing rules` do-spaces;Arbitrary key-value pairs supplied by the user, for use in PUT or POST# requests. Each pair expands into  x-amz-meta-*, e.g. -x-amz-meta-s3cmd-attrs: uid:1000/gname:asb...a do-spacesContent-Encoding request header valueb do-spacesContent-Disposition request header valuec do-spaces Cache-Control request header valued do-spaces'Optional headers when uploading objectsk do-spacesMD5 hash of an l do-spacesThe display name is always equivalent to the owner's ID; Spaces includes it for AWS compatibilitym do-spaces The ID of an o); also serves as a display name in Spaceso do-spacesThe resource owners do-spaces5Metadata returned when querying information about an u do-spaceslength in bytesy do-spacesInformation about a single , returned when listing a  's contents~ do-spaces Size in bytes do-spaces$The name of a "key", in AWS parlance do-spacesInformation about a single  do-spaces#The name of a single storage bucket do-spaces%HTTP request methods, to avoid using  http-client's stringly-typed Method synonym do-spacesDO regions where Spaces is available (only a subset of all regions) do-spacesNYC3 do-spacesAMS3 do-spacesSFO3 do-spacesSGP1 do-spacesFRA1 do-spaces#Certain operations, currently only ;, should be able to override the region configured in the  client do-spacesThe actual HTTP  do-spacesYour  configuration do-spaces Obligatory #s that will be added to the request do-spaces The HTTP  do-spacesThe SHA256 hash of the  contents do-spacesThe canonicalized HTTP  do-spaces/A client for interacting with the DO Spaces API do-spacesYour DO Spaces access key do-spacesYour DO Spaces secret key do-spaces The DO region do-spacesHTTP  do-spaces/A synonym for the constraints necessary to run  actions do-spacesSmart constructor for -s; names must conform to the following rules:2They must be between 3 and 63 characters in lengthThey may only contain lowercase letters, digits, dots, and hyphens=They must begin and end in a number or letter See more at:  https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html.This function ensures that names are valid and will also convert the  to lowercase do-spacesSmart constructor for s; names must not be empty do-spacesSmart constructor for @, which may contain a maximum of 255 characters, including spaces do-spacesSmart constructor for [. Ensures that both origins and header names contain a maximum of one wildcard and removes duplicates from both headers and methods do-spaces Extract the  from something 8   !"#$%'&()*+,-./012345678;9<:=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstvxwuyz{~|}()*+,012-./mnlopqryz{~|}stvxwuk !"$%'&#cba`defghij[\]^_WXYZTUVQRSMNOPEFGHIJKBCD@A>?8;9<:=76543   L(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>*  do-spacesDelete a single (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?*(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?+ do-spacesDelete all of a 's configured [s(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>, do-spacesDelete a single . Note that it must be empty do-spacesThe name of the  to delete(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone  #$%/?1 do-spaces Convert a  to its equivalent slug do-spacesMap  chars to lower-case do-spacesShow a  do-spaces Show some  do-spaces0Strip leading and trailing double quotes from a  do-spaces Convert a  to a   do-spacesConvert d to a list of request s do-spacesCreate an XML  do-spacesXML parser for o attribute do-spacesXML parser for k attribute do-spacesXML parser for  LastModified attribute do-spacesRead a  type from  do-spacesRead a & type, encoded as an integer, from XML do-spacesRead a  from an ISO-O8601-formatted  do-spaces-Helper to build exceptions during XML parsing do-spacesParse the name of a  from XML do-spacesParse the name of an  from XML do-spacesLookup the value of a  from a $ in a monadic context do-spaces Transform a  value into an k do-spaces Transform a  value into an  (for Content-Length) do-spaces Create a  by reading response s, after passing the !!(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/4| do-spaces Extract the  from a  and set the requisite  Authorization header do-spaces Create a new  from a , performing the necessary computations and setting the appropriate default headers do-spaces Generate a 7 do-spaces Generate a 5 do-spaces Create an 3' corresponding to the required AWS v4  Authorization header(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>5 do-spacesLength in bytes do-spacesUpload a single object to Spaces. The maximum size for a single PUT request is 5 GB   (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8<>90  do-spaces-Part number marking the beginning of the list do-spacesIf truncated, the list location where the next response will begin do-spacesList all of the s of a multipart upload session do-spaces)Cancel an active multipart upload session do-spacesThe MD5 hash of the final object, i.e. all of the cumulative uploaded parts do-spacesComplete a multipart session do-spacesThe part numbers and ks of each uploaded part do-spaces#Initiate a multipart upload session do-spaces2A unique ID assigned to a multipart upload session do-spacesA single part of a multipart upload session. Returned when querying  do-spaces Size in bytes88 (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8<>?; do-spaces3Get the full Access Control List associated with a  do-spacesThe object owner (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?; do-spacesConfigure the Es for a  (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?< do-spacesSet a 's [s (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8<>?=l do-spacesThe bucket owner(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>AV  do-spacesThe % prefix, if supplied as a query param do-spacesAn  indicating where the list of  s begin; # denotes the beginning of the list do-spacesThe  that should be used as the marker$ query param in subsequent requests do-spacesMaximum number of y:s to include; based on request parameter of the same name do-spaces5Indicates whether the response contains all possible s do-spacesList the contents (s) of a  do-spacesCharacter used to group keys do-spacesThe 1 to start with when listing the bucket's contents do-spacesMax number of ,s to return, between 0 and 1,000 (inclusive) do-spacesString value to group keys. Only objects whose names begin with the prefix are returned(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>Bv do-spacesList all of your s withing the ! you have configured(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8<>C} do-spacesGet information about an 2; the response does not contain the object itself(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?De do-spaces3Get the full Access Control List associated with a (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8<>E{ do-spaces Retrieve an  along with its associated metadata. The object's data is read into a lazy (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>F do-spacesThe  of the queried  do-spacesQuery the location (the ) of a  do-spacesThe name of the & whose location you'd like to retrieve(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$&8<>?Hh do-spacesGet the E configuration for a . Note that unless you have explicitly configured lifecycle rules, this will fail with a 404 status and an error code of NoSuchLifecycleConfiguration(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?IF do-spacesGet the [s associated with a (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>?J4 do-spaces3Get the full Access Control List associated with a (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>Kg do-spacesCreate a new, empty  do-spacesThe name of the new  to create do-spacesThe  to use; defaults to "#(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8<>L do-spaces Copy and  from one 5 to another. Both buckets must be in the same region do-spaces Whether the 's metadata should be copied or replaced. Replace is required to copy an object to itself(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$?N? do-spacesRun an instance of (, receiving a ). The retention of $! can be controlled by passing a  constructor(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone  #$/?c do-spaces!Perform a transaction using your  client configuration. Note that this does not perform any exception handling; if caught at the lower level, exceptions are generally re-thrown as  s do-spaces Create a new  by specifying a method to retrieve the region and your credentials.= will first try to find a credentials file (see the notes on  below) in ~.aws credentials or $XDG_CONFIG_HOME do-spaces credentials, in that order, using the  [default]7 profile. Failing that, it will try the equivalent of FromEnv Nothing (see the notes below). expects a configuration file in the same format as AWS credentials files, with the same field names. For example: [default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_default_region=fra1When provided with Nothing,  will look up the following environment variables to find your region and keys:For the : AWS_DEFAULT_REGIONOR SPACES_DEFAULT_REGIONFor the 0: AWS_ACCESS_KEY_IDOR SPACES_ACCESS_KEY_IDOR SPACES_ACCESS_KEYFor the -: AWS_SECRET_ACCESS_KEYOR SPACES_SECRET_ACCESS_KEYOR SPACES_SECRET_KEYAlternatively, you can directly specify a tuple of environment variables to search for.You can also choose to provide the region and both keys yourself with  do-spaces Upload an  within a single request do-spaces8Initiate and complete a multipart upload, using default d. If a   is thrown while performing the transaction, an attempt will be made to run a - request, and the exception will be rethrown do-spacesUpload a file's contents as an (. This will attempt to set the correct  based on the file extension do-spacesGet information about an + (does not retrieve the body of the object) do-spacesGet an * (retrieves the actual body of the object) do-spacesGet an %'s data and write it to the provided  do-spacesCopy an  from one  to another; this chooses a number of defaults to represent the most common cases and avoid a preponderance of parameters. s are copied using default ACLs with the COPY metadata directive.If you'd like to use a specfic  or , use  directly with  do-spacesCopy an  within the same , using defaults for the  and  do-spacesCopy an / to itself, overwriting its associated metadata do-spacesDelete a single  do-spacesGet an 's Access Control Lists do-spacesSet an 's Access Control Lists do-spaces Create a new  do-spaces Delete a  do-spacesGet the location () of a  do-spaces List every $ associated with your Spaces account do-spaces List the s of a , without grouping, delimiting, or limiting the keys (i.e. list all -s non-hierarchically, up to the Spaces limit) do-spaces List the s of a >, using a delimiter and prefix to group objects. For example / can be used as a delimiter to treat objects as directories within the bucket, which can further be combined with a text prefix do-spacesRecursively list all s in a  , calling  until  isTruncated is False. This operation may take some time, depending on the total number of objects in your bucket do-spacesGet the [s configured for a given  do-spacesSet [s for a given  do-spacesDelete the existing configured [s for a given  do-spacesGet a 's Access Control Lists do-spacesSet a 's Access Control Lists. Spaces only allows a limited subset of s3 ACLs at the moment. It may be preferable to use a  when creating new resources rather than using this action, which is provided for the sake of completeness.?Note that to allow public read-only access to your bucket, you must( simultaneously set full owner control. do-spacesGet a 's E configuration . Note that unless you have explicitly configured lifecycle rules, this will fail with a 404 status and an error code of NoSuchLifecycleConfiguration do-spacesSet a 's E configuration do-spaces Delete a 's E configuration do-spacesSource  do-spaces Destination  do-spacesSource  do-spaces Destination  do-spacesSource  do-spaces Destination  do-spacesOverrides the  in your  configuration do-spaces Delimiter do-spaces Prefix used to group object keys  ,-./012@QRSTUVW[012-./,[WQRSTUV@   %%&'()*+,-./012#3456789::;<=>?$$@ABCDDEFGHIJKLLMNNOPQRSTUSTRQPVVWWXYZ[[\]^_`abbcdefghijkklmnnopqrstuvvwxyz{|}~~!                                                                                                                                     $do-spaces-0.2-6plBREpGHjL7zr5f6tFOCcNetwork.DO.Spaces.Types&Network.DO.Spaces.Actions.DeleteObject/Network.DO.Spaces.Actions.DeleteBucketLifecycle*Network.DO.Spaces.Actions.DeleteBucketCORS&Network.DO.Spaces.Actions.DeleteBucketNetwork.DO.Spaces.UtilsNetwork.DO.Spaces.Request&Network.DO.Spaces.Actions.UploadObject)Network.DO.Spaces.Actions.UploadMultipart'Network.DO.Spaces.Actions.SetObjectACLs,Network.DO.Spaces.Actions.SetBucketLifecycle'Network.DO.Spaces.Actions.SetBucketCORS'Network.DO.Spaces.Actions.SetBucketACLs$Network.DO.Spaces.Actions.ListBucket(Network.DO.Spaces.Actions.ListAllBuckets'Network.DO.Spaces.Actions.GetObjectInfo'Network.DO.Spaces.Actions.GetObjectACLs#Network.DO.Spaces.Actions.GetObject+Network.DO.Spaces.Actions.GetBucketLocation,Network.DO.Spaces.Actions.GetBucketLifecycle'Network.DO.Spaces.Actions.GetBucketCORS'Network.DO.Spaces.Actions.GetBucketACLs&Network.DO.Spaces.Actions.CreateBucket$Network.DO.Spaces.Actions.CopyObjectNetwork.DO.Spaces.ActionsNetwork.DO.SpacesNetwork.HTTP.TypesResponseNetwork.HTTP.Conduit CreateBucketData.ByteString.Lazy ByteStringRegion!Network.DO.Spaces.Types.CannedACLPrivateSpacesMetadata APIException$sel:status:APIException$sel:code:APIException$sel:requestID:APIException$sel:hostID:APIExceptionClientExceptionInvalidRequestInvalidResponse InvalidXMLConfigurationError HTTPStatus OtherErrorSpacesException CannedACL PublicReadCredentialSourceDiscoverFromEnvFromFileExplicit RequestIDSpacesResponse$sel:result:SpacesResponse$sel:metadata:SpacesResponse WithMetadata KeepMetadata NoMetadata$sel:requestID:SpacesMetadata$sel:date:SpacesMetadata$sel:status:SpacesMetadataBodyBS RawResponse$sel:headers:RawResponse$sel:body:RawResponseActionConsumedResponse buildRequestconsumeResponseProfile SecretKey$sel:unSecretKey:SecretKey AccessKey$sel:unAccessKey:AccessKey Authorization Credentials SignatureHashed StringToSignComputed Canonicalized LifecycleIDLifecycleExpiration AfterDaysOnDate LifecycleRule$sel:lifecycleID:LifecycleRule$sel:enabled:LifecycleRule$sel:prefix:LifecycleRule$sel:expiration:LifecycleRule"$sel:abortIncomplete:LifecycleRuleDays ACLResponse$sel:owner:ACLResponse"$sel:accessControlList:ACLResponseGranteeGroup CanonicalUser PermissionReadOnly FullControlGrant$sel:permission:Grant$sel:grantee:GrantCORSRule$sel:allowedOrigin:CORSRule$sel:allowedMethods:CORSRule$sel:allowedHeaders:CORSRule UserMetadataContentEncodingContentDisposition CacheControl UploadHeaders$sel:acl:UploadHeaders$sel:cacheControl:UploadHeaders%$sel:contentDisposition:UploadHeaders"$sel:contentEncoding:UploadHeaders$sel:metadata:UploadHeadersETag DisplayNameOwnerIDOwner$sel:ownerID:Owner$sel:displayName:OwnerObjectMetadata!$sel:contentLength:ObjectMetadata$sel:contentType:ObjectMetadata$sel:etag:ObjectMetadata $sel:lastModified:ObjectMetadata ObjectInfo$sel:object:ObjectInfo$sel:lastModified:ObjectInfo$sel:etag:ObjectInfo$sel:size:ObjectInfo$sel:owner:ObjectInfoObject BucketInfo$sel:name:BucketInfo$sel:creationDate:BucketInfoBucketMethodGETPOSTPUTDELETEHEADNewYork Amsterdam SanFrancisco Singapore FrankfurtSpacesRequestBuilder $sel:spaces:SpacesRequestBuilder$sel:body:SpacesRequestBuilder $sel:method:SpacesRequestBuilder!$sel:headers:SpacesRequestBuilder $sel:bucket:SpacesRequestBuilder $sel:object:SpacesRequestBuilder%$sel:queryString:SpacesRequestBuilder&$sel:subresources:SpacesRequestBuilder($sel:overrideRegion:SpacesRequestBuilder SpacesRequest$sel:request:SpacesRequest$sel:spaces:SpacesRequest$sel:headers:SpacesRequest$sel:method:SpacesRequest$sel:payloadHash:SpacesRequest#$sel:canonicalRequest:SpacesRequest$sel:time:SpacesRequestSpaces$sel:accessKey:Spaces$sel:secretKey:Spaces$sel:region:Spaces$sel:manager:Spaces MonadSpacesSpacesT runSpacesTmkBucketmkObject mkLifecycleID mkCORSRule uncompute$fHasHttpManagerSpaces,$fHasFieldnameSpacesResponseSpacesResponsest$fExceptionSpacesException$fShowSpacesException$fExceptionClientException$fExceptionAPIException$fShowAPIException$fEqAPIException$fGenericAPIException$fShowClientException$fEqClientException$fGenericClientException$fShowUploadHeaders$fEqUploadHeaders$fGenericUploadHeaders $fEqCannedACL$fShowCannedACL$fGenericSpacesResponse$fShowSpacesMetadata$fEqSpacesMetadata$fGenericSpacesMetadata$fShowWithMetadata$fEqWithMetadata$fGenericWithMetadata$fGenericRawResponse$fGenericSpacesT$fFunctorSpacesT$fApplicativeSpacesT$fMonadSpacesT$fMonadIOSpacesT$fMonadThrowSpacesT$fMonadCatchSpacesT$fMonadReaderSpacesSpacesT$fMonadUnliftIOSpacesT$fGenericSpacesRequest$fGenericSpacesRequestBuilder$fGenericSpaces$fShowSecretKey $fEqSecretKey$fGenericSecretKey$fShowAccessKey $fEqAccessKey$fGenericAccessKey$fShowComputedTag$fEqComputedTag$fShowCanonicalized$fEqCanonicalized$fGenericCanonicalized$fShowLifecycleRule$fEqLifecycleRule$fGenericLifecycleRule$fShowLifecycleID$fEqLifecycleID$fGenericLifecycleID$fShowLifecycleExpiration$fEqLifecycleExpiration$fGenericLifecycleExpiration$fShowACLResponse$fEqACLResponse$fGenericACLResponse $fShowGrant $fEqGrant$fGenericGrant $fShowGrantee $fEqGrantee$fGenericGrantee$fShowPermission$fEqPermission$fGenericPermission$fOrdPermission$fShowCORSRule $fEqCORSRule$fGenericCORSRule$fShowObjectInfo$fEqObjectInfo$fGenericObjectInfo$fShowObjectMetadata$fEqObjectMetadata$fGenericObjectMetadata $fShowOwner $fEqOwner$fGenericOwner $fShowOwnerID$fGenericOwnerID $fEqOwnerID $fNumOwnerID$fToHttpApiDataOwnerID $fShowObject$fGenericObject $fEqObject$fToHttpApiDataObject$fShowBucketInfo$fEqBucketInfo$fGenericBucketInfo $fShowBucket$fGenericBucket $fEqBucket$fToHttpApiDataBucket $fShowMethod $fEqMethod$fGenericMethod $fOrdMethod $fReadMethod $fShowRegion $fEqRegion$fGenericRegion$fShowSpacesResponse $fEqComputed$fShowComputedDeleteObjectResponse DeleteObject$sel:bucket:DeleteObject$sel:object:DeleteObject$fActionmDeleteObject$fShowDeleteObject$fEqDeleteObject$fGenericDeleteObjectDeleteBucketLifecycleResponseDeleteBucketLifecycle!$sel:bucket:DeleteBucketLifecycle$fActionmDeleteBucketLifecycle$fShowDeleteBucketLifecycle$fGenericDeleteBucketLifecycle$fEqDeleteBucketLifecycleDeleteBucketCORSResponseDeleteBucketCORS$sel:bucket:DeleteBucketCORS$fActionmDeleteBucketCORS$fShowDeleteBucketCORS$fGenericDeleteBucketCORS$fEqDeleteBucketCORSDeleteBucketResponse DeleteBucket$sel:bucket:DeleteBucket$fActionmDeleteBucket$fShowDeleteBucket$fGenericDeleteBucket$fEqDeleteBucket regionSlug slugToRegion toLowerBSbshowtshowunquotequote showCannedACLshowPermission handleMaybebodyLBSrenderUploadHeadersmkNode xmlDocCursorownerPetagP lastModifiedPxmlIntxmlNum xmlUTCTimeisTruncP xmlElemErrorbucketPobjectP xmlMaybeElemlookupObjectMetadata lookupHeaderreadEtagreadContentLenaclPwriteACLSetterdefaultUploadHeadersgetResponseMetadatafinalizenewSpacesRequestmkStringToSign mkSignaturemkAuthorizationUploadObjectResponse$sel:etag:UploadObjectResponse'$sel:contentLength:UploadObjectResponse UploadObject$sel:bucket:UploadObject$sel:object:UploadObject$sel:body:UploadObject!$sel:optionalHeaders:UploadObject$sel:contentType:UploadObject$fActionmUploadObject$fShowUploadObjectResponse$fEqUploadObjectResponse$fGenericUploadObjectResponse$fGenericUploadObjectListPartsResponse$sel:bucket:ListPartsResponse$sel:object:ListPartsResponse$sel:uploadID:ListPartsResponse$sel:parts:ListPartsResponse!$sel:partMarker:ListPartsResponse%$sel:nextPartMarker:ListPartsResponse$sel:maxParts:ListPartsResponse"$sel:isTruncated:ListPartsResponse ListParts$sel:session:ListPartsCancelMultipartResponseCancelMultipart$sel:session:CancelMultipartCompleteMultipartResponse'$sel:location:CompleteMultipartResponse%$sel:bucket:CompleteMultipartResponse%$sel:object:CompleteMultipartResponse#$sel:etag:CompleteMultipartResponseCompleteMultipart$sel:session:CompleteMultipart$sel:parts:CompleteMultipartUploadPartResponse$sel:etag:UploadPartResponse UploadPart$sel:session:UploadPart$sel:partNumber:UploadPart$sel:body:UploadPartBeginMultipartResponse#$sel:session:BeginMultipartResponseBeginMultipart$sel:bucket:BeginMultipart$sel:object:BeginMultipart#$sel:optionalHeaders:BeginMultipart$sel:contentType:BeginMultipartUploadIDMultipartSession$sel:bucket:MultipartSession$sel:object:MultipartSession$sel:uploadID:MultipartSessionPart$sel:partNumber:Part$sel:lastModified:Part$sel:etag:Part$sel:size:Part$fActionmBeginMultipart$fActionmUploadPart$fActionmCompleteMultipart$fActionmCancelMultipart$fActionmListParts$fShowListPartsResponse$fEqListPartsResponse$fGenericListPartsResponse$fShowListParts$fGenericListParts $fEqListParts$fShowCancelMultipart$fGenericCancelMultipart$fEqCancelMultipart$fShowCompleteMultipartResponse$fEqCompleteMultipartResponse"$fGenericCompleteMultipartResponse$fShowCompleteMultipart$fEqCompleteMultipart$fGenericCompleteMultipart$fShowUploadPartResponse$fEqUploadPartResponse$fGenericUploadPartResponse$fGenericUploadPart$fShowBeginMultipartResponse$fGenericBeginMultipartResponse$fEqBeginMultipartResponse$fShowBeginMultipart$fEqBeginMultipart$fGenericBeginMultipart$fShowMultipartSession$fEqMultipartSession$fGenericMultipartSession $fShowPart$fEqPart $fGenericPartSetObjectACLsResponse SetObjectACLs$sel:bucket:SetObjectACLs$sel:object:SetObjectACLs$sel:owner:SetObjectACLs$sel:acls:SetObjectACLs$fActionmSetObjectACLs$fShowSetObjectACLs$fEqSetObjectACLs$fGenericSetObjectACLsSetBucketLifecycleResponseSetBucketLifecycle$sel:bucket:SetBucketLifecycle$sel:rules:SetBucketLifecycle$fActionmSetBucketLifecycle$fShowSetBucketLifecycle$fEqSetBucketLifecycle$fGenericSetBucketLifecycleSetBucketCORSResponse SetBucketCORS$sel:bucket:SetBucketCORS$sel:rules:SetBucketCORS$fActionmSetBucketCORS$fShowSetBucketCORS$fEqSetBucketCORS$fGenericSetBucketCORSSetBucketACLsResponse SetBucketACLs$sel:bucket:SetBucketACLs$sel:acls:SetBucketACLs$sel:owner:SetBucketACLs$fActionmSetBucketACLs$fShowSetBucketACLs$fEqSetBucketACLs$fGenericSetBucketACLsListBucketResponse$sel:bucket:ListBucketResponse$sel:prefix:ListBucketResponse$sel:marker:ListBucketResponse"$sel:nextMarker:ListBucketResponse$sel:maxKeys:ListBucketResponse#$sel:isTruncated:ListBucketResponse$sel:objects:ListBucketResponse ListBucket$sel:bucket:ListBucket$sel:delimiter:ListBucket$sel:marker:ListBucket$sel:maxKeys:ListBucket$sel:prefix:ListBucket$fActionmListBucket$fShowListBucketResponse$fEqListBucketResponse$fGenericListBucketResponse$fShowListBucket$fEqListBucket$fGenericListBucketListAllBucketsResponseownerbucketsListAllBuckets$fActionmListAllBuckets$fShowListAllBucketsResponse$fEqListAllBucketsResponse$fGenericListAllBucketsResponse$fShowListAllBuckets$fEqListAllBuckets$fGenericListAllBucketsGetObjectInfoResponse GetObjectInfo$sel:bucket:GetObjectInfo$sel:object:GetObjectInfo$fActionmGetObjectInfo$fShowGetObjectInfo$fEqGetObjectInfo$fGenericGetObjectInfoGetObjectACLsResponse GetObjectACLs$sel:bucket:GetObjectACLs$sel:object:GetObjectACLs$fActionmGetObjectACLs$fShowGetObjectACLs$fEqGetObjectACLs$fGenericGetObjectACLsGetObjectResponse%$sel:objectMetadata:GetObjectResponse!$sel:objectData:GetObjectResponse GetObject$sel:bucket:GetObject$sel:object:GetObject$fActionmGetObject$fShowGetObjectResponse$fEqGetObjectResponse$fGenericGetObjectResponse$fShowGetObject $fEqGetObject$fGenericGetObjectGetBucketLocationResponse1$sel:locationConstraint:GetBucketLocationResponseGetBucketLocation$sel:bucket:GetBucketLocation$fActionmGetBucketLocation$fShowGetBucketLocationResponse"$fGenericGetBucketLocationResponse$fEqGetBucketLocationResponse$fShowGetBucketLocation$fGenericGetBucketLocation$fEqGetBucketLocationGetBucketLifecycleResponse%$sel:rules:GetBucketLifecycleResponseGetBucketLifecycle$sel:bucket:GetBucketLifecycle$fActionmGetBucketLifecycle $fShowGetBucketLifecycleResponse#$fGenericGetBucketLifecycleResponse$fEqGetBucketLifecycleResponse$fShowGetBucketLifecycle$fGenericGetBucketLifecycle$fEqGetBucketLifecycleGetBucketCORSResponse $sel:rules:GetBucketCORSResponse GetBucketCORS$sel:bucket:GetBucketCORS$fActionmGetBucketCORS$fShowGetBucketCORSResponse$fGenericGetBucketCORSResponse$fEqGetBucketCORSResponse$fShowGetBucketCORS$fGenericGetBucketCORS$fEqGetBucketCORSGetBucketACLsResponse GetBucketACLs$sel:bucket:GetBucketACLs$fActionmGetBucketACLs$fShowGetBucketACLs$fGenericGetBucketACLs$fEqGetBucketACLsCreateBucketResponsebucketregionacl$fActionmCreateBucket$fShowCreateBucket$fEqCreateBucket$fGenericCreateBucketCopyObjectResponse$sel:etag:CopyObjectResponse$$sel:lastModified:CopyObjectResponse CopyObject$sel:srcBucket:CopyObject$sel:destBucket:CopyObject$sel:srcObject:CopyObject$sel:destObject:CopyObject!$sel:metadataDirective:CopyObject$sel:acl:CopyObjectMetadataDirectiveCopyReplace$fActionmCopyObject$fShowCopyObjectResponse$fEqCopyObjectResponse$fGenericCopyObjectResponse$fShowCopyObject$fEqCopyObject$fGenericCopyObject$fShowMetadataDirective$fEqMetadataDirective$fGenericMetadataDirective runActionparseErrorResponse runSpaces newSpaces uploadObjectmultipartObject uploadFile getObjectInfo getObjectgetObjectSinkFile copyObjectcopyObjectWithinoverwriteObject deleteObject getObjectACLs setObjectACLs createBucket deleteBucketgetBucketLocationlistAllBuckets listBucketlistBucketGrouped listBucketRec getBucketCORS setBucketCORSdeleteBucketCORS getBucketACLs setBucketACLsgetBucketLifecycleRulessetBucketLifecycleRulesdeleteBucketLifecycleRules(http-types-0.12.3-4GNA9TDzoeBAsbUUnfJUjtNetwork.HTTP.Types.StatusStatusbytestring-0.10.10.0Data.ByteString.Lazy.InternalbaseGHC.Exception.Type ExceptionData.ByteString.Internal(http-client-0.7.8-61jdLQ04dXXELlRpcovlQnNetwork.HTTP.Client.TypesRequestNetwork.HTTP.Types.HeaderHeader RequestBodyManager text-1.2.3.2Data.Text.InternalText*xml-conduit-1.9.1.1-B6aPRAjrfX76wFE3o4XBW3Text.XMLNodeGHC.NumNum time-1.9.3 Data.Time.Clock.Internal.UTCTimeUTCTime HeaderNameghc-prim GHC.TypesInt GHC.MaybeNothing)mime-types-0.1.0.9-Dh2kAKFagHYIeIV8lJDQkk Network.MimeMimeTypeGHC.IOFilePath