!ҵ3z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y (c) 2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy> ExperimentalportableNoneF`k8zbase32?This function checks that the last N-chars of a bytestring are '='A and, if true, fails with a message or completes some io action.This is necessary to check when decoding permissively (i.e. filling in padding chars). Consider the following 8 cases of a string of length l:l = 0 mod 8: No pad chars are added, since the input is assumed to be good. l = 1 mod 8: Never an admissible length in base32 l = 2 mod 8: 6 padding chars are added. If padding chars are present in the string, they will fail as to decode as final quanta l = 3 mod 8: Never an admissible length in base32 l = 4 mod 8: 4 padding chars are added. If 2 padding chars are present in the string this can be "completed" in the sense that it now acts like a string `l == 2 mod 8` with 6 padding chars, and could potentially form corrupted data. l = 5 mod 8: 3 padding chars are added. If 3 padding chars are present in the string, this could form corrupted data like in the previous case. l = 6 mod 8: Never an admissible length in base32 l = 7 mod 8: 1 padding char is added. If 5 padding chars are present in the string, this could form corrupted data like the previous cases.Hence, permissive decodes should only fill in padding chars when it makes sense to add them. That is, if an input is degenerate, it should never succeed when we add padding chars. We need the following invariant to hold:  B32.decodeUnpadded  | B32.decodePadded ~ B32.decode {zNoneF!|base32Read } index off alphabet addr~base32Allocate and fill n bytes with some database32.Rechunk a list of bytestrings in multiples of n |~NoneF_`k#base32(Unroll final quantum encoding for base32base32(Unroll final quantum encoding for base32NoneFk$/NoneF`k$NoneF`(sbase32?Head of the base32 encoding loop - marshal data, assemble loopsbase32HHead of the unpadded base32 encoding loop - marshal data, assemble loopsbase32?Head of the base32 decoding loop - marshal data, assemble loops(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable TrustworthyFN; base32 Encode a  value as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="base32 Encode a  value as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32' "Sun" "ADQMS==="base32/Decode an arbitrarily padded Base32hex-encoded  value. If its length is not a multiple of 8, then padding characters will be added to fill out the input to a multiple of 8 for safe decoding, as Base32hex-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQM==="4Left "Base32-encoded bytestring has invalid padding"base32 Encode a  value as a Base32hex  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"base32 Encode a  value as a Base32hex  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"base32%Decode an unpadded Base32hex-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"base32"Decode a padded Base32hex-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"base32Tell whether a 8 value is encoded in padded or unpadded Base32hex formatExamples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="Falsebase32Tell whether a # value is a valid Base32hex format.This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape (including padding/size etc.). To check whether it is a true Base32hex encoded  value, use isBase32.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False  (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable TrustworthyFsD base32 Encode a  value as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4===" base32 Encode a  value as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32' "Sun" "KN2W4===" base32,Decode an arbitrarily padded Base32-encoded  value. If its length is not a multiple of 8, then padding characters will be added to fill out the input to a multiple of 8 for safe decoding, as Base32-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding" base32 Encode a  value as a Base32  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4" base32 Encode a  value as a Base32  value without padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded' "Sun""KN2W4"base32"Decode an unpadded Base32-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"base32Decode a padded Base32-encoded  value.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"base32Tell whether a 5 value is encoded in padded or unpadded Base32 formatExamples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="Falsebase32Tell whether a  value is a valid Base32 format.This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape (including padding/size etc.). To check whether it is a true Base32 encoded  value, use .Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False  (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable Trustworthyv base32 Encode a  value as a Base32 Text value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="base32 Encode a  as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="base32,Decode an arbitrarily padded Base32 encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base32-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"base32 Encode a  value as Base32 Text without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"base32 Encode a  value as Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded' "Sun""KN2W4"base32"Decode an unpadded Base32-encoded n value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.PIn general, unless unpadded Base32 is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"base32Decode a padded Base32-encoded p value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.NIn general, unless padded Base32 is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"base32Tell whether a  is Base32-encoded.Examples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="Falsebase32Tell whether a  is a valid Base32 format.This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use .Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False  (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable Trustworthy base32 Encode a  value as a Base32hex Text value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="base32 Encode a  as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32' "Sun" "ADQMS==="base32/Decode an arbitrarily padded Base32hex encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base32hex-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"base32 Encode a  value as Base32hex Text without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"base32 Encode a  value as Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS" base32%Decode an unpadded Base32hex-encoded n value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.SIn general, unless unpadded Base32hex is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"!base32"Decode a padded Base32hex-encoded p value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.QIn general, unless padded Base32hex is explicitly required, it is safer to call .See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding""base32Tell whether a  is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="False#base32Tell whether a  is a valid Base32hex format.This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32hex encoded  value, use ".Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False  !"#  !"#(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable Trustworthy $base32 Encode a  value as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="%base32 Encode a  as a Base32  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32' "Sun" "KN2W4==="&base32,Decode an arbitrarily padded Base32 encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base32-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"'base32 Encode a  value as Base32  without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"(base32 Encode a  value as Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded' "Sun""KN2W4")base32"Decode an unpadded Base32-encoded n value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.PIn general, unless unpadded Base32 is explicitly required, it is safer to call &.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"*base32Decode a padded Base32-encoded p value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.NIn general, unless padded Base32 is explicitly required, it is safer to call &.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"+base32Tell whether a  is Base32-encoded.Examples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="False,base32Tell whether a  is a valid Base32 format.This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use +.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False $%&'()*+, $%'(&)*+,(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable Trustworthy- -base32 Encode a  value as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS===".base32 Encode a  as a Base32hex  value with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32' "Sun" "ADQMS==="/base32/Decode an arbitrarily padded Base32hex encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as Base32hex-encoded values are optionally padded.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQM==="4Left "Base32-encoded bytestring has invalid padding"0base32 Encode a  value as Base32hex  without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"1base32 Encode a  value as Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded' "Sun""ADQMS"2base32%Decode an unpadded Base32hex-encoded n value. Input strings are required to be unpadded, and will undergo validation prior to decoding to confirm.SIn general, unless unpadded Base32hex is explicitly required, it is safer to call /.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"3base32"Decode a padded Base32hex-encoded p value. Input strings are required to be correctly padded, and will be validated prior to decoding to confirm.QIn general, unless padded Base32hex is explicitly required, it is safer to call /.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"4base32Tell whether a  is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="False5base32Tell whether a  is a valid Base32hex format.This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use 4.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False -./012345 -.01/2345(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portableSafe77a6base32dThis data type represents the type of decoding errors of various kinds as they pertain to decoding  values. Namely, to distinguish between decoding errors from opaque unicode exceptions caught in the unicode decoding process.7base32VThe error associated with decoding failure as a result of the Base32 decoding process8base32UThe error associated with the decoding failure as a result of the conversion process9base32:base32base32678678(c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portableSafev >base32 Encode a  value in Base32 with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="?base32,Decode an arbitrarily padded Base32-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base32 encodings are optionally padded.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to @' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"@base32Attempt to decode a # value as Base32, converting from  to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: @  ::  ->  (6 UnicodeException)  Abase32 Encode a ! value in Base32 without padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"Bbase32"Decode an unpadded Base32 encoded  value.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"Cbase32Attempt to decode an unpadded # value as Base32, converting from  to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: C  ::  ->  (6 UnicodeException)  Dbase32 Decode an padded Base32 encoded  valueNote:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to E' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"Ebase32Attempt to decode a padded # value as Base32, converting from  to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: E  ::  ->  (6 UnicodeException)  Fbase32Tell whether a  value is Base32-encodedExamples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="FalseGbase32Tell whether a  value is a valid Base32 format.This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use F.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"False@base32#convert a bytestring to text (e.g. )base32Input text to decodeCbase32#convert a bytestring to text (e.g. )base32Input text to decodeEbase32#convert a bytestring to text (e.g. )base32Input text to decode >?@ABCDEFG >?@ABCDEFG (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portableSafei Hbase32 Encode a ! value in Base32hex with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "ADQMS==="Ibase32"Decode a padded Base32hex-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base32hex encodings are optionally padded.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to J' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"Jbase32Attempt to decode a & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples: J  ::  ->  (6 UnicodeException)  Kbase32 Encode a  value in Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"Lbase32%Decode an unpadded Base32hex encoded  value.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"Mbase32Attempt to decode an unpadded & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: M  ::  ->  (6 UnicodeException)  Nbase32#Decode an padded Base32hex encoded  valueNote:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to O' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"Obase32Attempt to decode a padded & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: O  ::  ->  (6 UnicodeException)  Pbase32Tell whether a  value is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="FalseQbase32Tell whether a # value is a valid Base32hex format.This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use P.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"FalseJbase32#convert a bytestring to text (e.g. )base32Input text to decodeMbase32#convert a bytestring to text (e.g. )base32Input text to decodeObase32#convert a bytestring to text (e.g. )base32Input text to decode HIJKLMNOPQ HIJKLMNOPQ (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portableSafeY Rbase32 Encode a  value in Base32 with padding.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32 "Sun" "KN2W4==="Sbase32,Decode an arbitrarily padded Base32-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base32 encodings are optionally padded.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to T' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"Tbase32Attempt to decode a lazy # value as Base32, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples: T  ::  ->  (6 UnicodeException)  Ubase32 Encode a  value in Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"Vbase32"Decode an unpadded Base32 encoded  value.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"Wbase32#Attempt to decode an unpadded lazy # value as Base32, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples: W  ::  ->  (6 UnicodeException)  Xbase32 Decode an padded Base32 encoded  valueNote:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to Y' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"Ybase32 Attempt to decode a padded lazy # value as Base32, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-6RFC-4648 section 6Example: Y  ::  ->  (6 UnicodeException) Text Zbase32Tell whether a  value is Base32-encodedExamples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="False[base32Tell whether a  value is a valid Base32 format.This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use Z.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"FalseTbase32#convert a bytestring to text (e.g. )base32Input text to decodeWbase32#convert a bytestring to text (e.g. )base32Input text to decodeYbase32#convert a bytestring to text (e.g. )base32Input text to decode RSTUVWXYZ[ RUSTVWXYZ[ (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portableSafe> \base32 Encode a ! value in Base32hex with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="]base32"Decode a padded Base32hex-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base32hex encodings are optionally padded.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to ^' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"^base32Attempt to decode a lazy & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: ^  ::  ->  (6 UnicodeException)  _base32 Encode a  value in Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"`base32%Decode an unpadded Base32hex encoded  value.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to decodeBase32WUnpaddedWith' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"abase32#Attempt to decode an unpadded lazy & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: a  ::  ->  (6 UnicodeException)  bbase32#Decode an padded Base32hex encoded  valueNote:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to c' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"cbase32 Attempt to decode a padded lazy & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like , which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Example: c  ::  ->  (6 UnicodeException) Text dbase32Tell whether a  value is Base32hex-encodedExamples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="Falseebase32Tell whether a # value is a valid Base32hex format.This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use d.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"False^base32#convert a bytestring to text (e.g. )base32Input text to decodeabase32#convert a bytestring to text (e.g. )base32Input text to decodecbase32#convert a bytestring to text (e.g. )base32Input text to decode \]^_`abcde \_]^`abcde (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable Trustworthy6 fbase32 Encode a  value in Base32 with padding.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:encodeBase32 "Sun" "KN2W4==="gbase32,Decode an arbitrarily padded Base32-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base32 encodings are optionally padded.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to h' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:decodeBase32 "KN2W4===" Right "Sun"decodeBase32 "KN2W4" Right "Sun"decodeBase32 "KN2W==="4Left "Base32-encoded bytestring has invalid padding"hbase32Attempt to decode a # value as Base32, converting from  ByteString to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples: h1 '(fmap fromText . T.decodeUtf8' . toText)' ::  ->  (6 UnicodeException)  ibase32 Encode a  value in Base32 without padding. Note that for Base32, padding is optional. If you call this function, you will simply be encoding as Base32 and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:encodeBase32Unpadded "Sun""KN2W4"jbase32"Decode an unpadded Base32 encoded  value.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to k' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:decodeBase32Unpadded "KN2W4" Right "Sun"decodeBase32Unpadded "KN2W4==="4Left "Base32-encoded bytestring has invalid padding"kbase32Attempt to decode an unpadded # value as Base32, converting from  to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples: k1 '(fmap fromText . T.decodeUtf8' . toText)' ::  ->  (6 UnicodeException)  lbase32 Decode an padded Base32 encoded  valueNote:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to m' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples:decodeBase32Padded "KN2W4===" Right "Sun"decodeBase32Padded "KN2W4"1Left "Base32-encoded bytestring requires padding"mbase32Attempt to decode a padded # value as Base32, converting from  ByteString to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4328#section-6RFC-4328 section 6Examples: h1 '(fmap fromText . T.decodeUtf8' . toText)' ::  ->  (6 UnicodeException)  nbase32Tell whether a  value is Base32-encoded.Examples:isBase32 "KN2W4"TrueisBase32 "KN2W4==="TrueisBase32 "KN2W4=="Falseobase32Tell whether a  value is a valid Base32 format.This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use n.Examples:isValidBase32 "KN2W4"TrueisValidBase32 "KN2W4="FalseisValidBase32 "KN2W4%"Falsehbase32#convert a bytestring to text (e.g. )base32Input text to decodekbase32#convert a bytestring to text (e.g. )base32Input text to decodembase32#convert a bytestring to text (e.g. )base32Input text to decode fghijklmno fighjklmno (c) 2019-2020 Emily Pillmore BSD-style$Emily Pillmore <emilypi@cohomolo.gy>stable non-portable Trustworthy pbase32 Encode a ! value in Base32hex with padding.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32 "Sun" "ADQMS==="qbase32/Decode an arbitrarily padded Base32hex-encoded  value. If its length is not a multiple of 4, then padding chars will be added to fill out the input to a multiple of 4 for safe decoding as base32hex encodings are optionally padded.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to r' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32 "ADQMS===" Right "Sun"decodeBase32 "ADQMS" Right "Sun"decodeBase32 "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"rbase32Attempt to decode a & value as Base32hex, converting from  ByteString to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: rB '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)' ::  ->  (6 UnicodeException)  sbase32 Encode a  value in Base32hex without padding. Note that for Base32hex, padding is optional. If you call this function, you will simply be encoding as Base32hex and stripping padding chars from the output.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:encodeBase32Unpadded "Sun""ADQMS"tbase32%Decode an unpadded Base32hex encoded  value.Note:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to u' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Unpadded "ADQMS" Right "Sun"decodeBase32Unpadded "ADQMS==="4Left "Base32-encoded bytestring has invalid padding"ubase32Attempt to decode an unpadded & value as Base32hex, converting from  to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: uB '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)' ::  ->  (6 UnicodeException)  vbase32#Decode an padded Base32hex encoded  valueNote:B This function makes sure that decoding is total by deferring to . This will always round trip for any valid Base32-encoded text value, but it may not round trip for bad inputs. The onus is on the caller to make sure inputs are valid. If unsure, defer to w' and pass in a custom decode function.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples:decodeBase32Padded "ADQMS===" Right "Sun"decodeBase32Padded "ADQMS"1Left "Base32-encoded bytestring requires padding"wbase32Attempt to decode a padded & value as Base32hex, converting from  ByteString to K according to some encoding function. In practice, This is something like  decodeUtf8', which may produce an error.See: -https://tools.ietf.org/html/rfc4648#section-7RFC-4648 section 7Examples: rB '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)' ::  ->  (6 UnicodeException)  xbase32Tell whether a  value is Base32hex-encoded.Examples:isBase32Hex "ADQMS"TrueisBase32Hex "ADQMS==="TrueisBase32Hex "ADQMS=="Falseybase32Tell whether a # value is a valid Base32hex format.This will not tell you whether or not this is a correct Base32hex representation, only that it conforms to the correct shape. To check whether it is a true Base32 encoded  value, use x.Examples:isValidBase32Hex "ADQMS"TrueisValidBase32Hex "ADQMS="FalseisValidBase32Hex "ADQMS%"Falserbase32_convert a bytestring to text (e.g. '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)')base32Input text to decodeubase32_convert a bytestring to text (e.g. '(fmap fromText . Data.Text.Encoding.decodeUtf8' . toText)')base32Input text to decodewbase32#convert a bytestring to text (e.g. )base32Input text to decode pqrstuvwxy psqrtuvwxy !"#"# !"# !$%&'()*+,-."#   ,   -  . !   ,   -  . " #   ,   -  . !   ,   -  . " #   ,   -  . !/0123456789:;<=>?@ABCDEFGHIJKFLHFMNOII2PQIRKISISTUVW%base32-0.2.0.0-IkWshiMBjXMBJRyz9Slr2SData.ByteString.Base32.HexData.ByteString.Base32Data.ByteString.Lazy.Base32Data.ByteString.Lazy.Base32.HexData.ByteString.Short.Base32 Data.ByteString.Short.Base32.HexData.Text.Encoding.Base32.ErrorData.Text.Encoding.Base32Data.Text.Encoding.Base32.HexData.Text.Lazy.Encoding.Base32"Data.Text.Lazy.Encoding.Base32.HexData.Text.Short.Encoding.Base32#Data.Text.Short.Encoding.Base32.HexData.ByteString.Base32.Internal%Data.ByteString.Base32.Internal.Utils$Data.ByteString.Base32.Internal.Tail&Data.ByteString.Base32.Internal.Tables$Data.ByteString.Base32.Internal.Loop$Data.ByteString.Base32.Internal.Head Data.Text decodeLatin1T decodeUtf8'Data.Text.Encoding encodeBase32 encodeBase32' decodeBase32encodeBase32UnpaddedencodeBase32Unpadded'decodeBase32UnpaddeddecodeBase32Padded isBase32HexisValidBase32HexisBase32 isValidBase32 Base32Error DecodeErrorConversionError$fNFDataBase32Error$fExceptionBase32Error$fEqBase32Error$fShowBase32Error$fGenericBase32ErrordecodeBase32WithdecodeBase32UnpaddedWithdecodeBase32PaddedWithvalidateLastNPadsvalidateBase32aixbaseGHC.WordWord8writeNPlainForeignPtrBytesreChunkNw32w64_32w64padCeilN peekWord32BE peekWord64BEloopTail loopTailNoPadstdDecodeTablehexDecodeTable innerLoop decodeLoop encodeBase32_encodeBase32NoPad_ decodeBase32_bytestring-0.10.8.2Data.ByteString.Internal ByteString text-1.2.3.1Data.Text.InternalTextData.ByteString.Lazy.InternalData.ByteString.Short.InternalShortByteStringRep_Base32Error Data.EitherEitherData.Text.Internal.LazyData.Text.Lazy.Encoding'text-short-0.1.3-6s9Vn5x19Vb5f1556qmx0oData.Text.Short.Internal ShortText