(define (u8vectors->base64 . vecs) (if (= 1 (length vecs)) (base64-encode (blob->string (u8vector->blob/shared (car vecs)))) (u8vectors->base64 (list->u8vector (flatten (map u8vector->list vecs)))))) (define (base64->u8vectors str . subu8ranges) (let ((vec (blob->u8vector (string->blob (base64-decode str))))) (if (> (length subu8ranges) 0) (apply values (map (lambda (x) (subu8vector vec (car x) (cadr x))) subu8ranges)) vec)))