Turns out, the easiest way to convert a "data:" URL to a JavaScript Blob object is not to split the URL into mime type, encoding, and data, and then, based on the encoding, do some wild atob() shenanigans
but instead
fetch(data_url).then(res => res.blob()).then(blob => โฆ)
๐ ๐