izapple2/romdumps/romdumps_vfsdata.go

209 lines
229 KiB
Go
Raw Normal View History

// Code generated by vfsgen; DO NOT EDIT.
package romdumps
import (
"bytes"
"compress/gzip"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
pathpkg "path"
"time"
)
// Assets statically implements the virtual filesystem provided to vfsgen.
var Assets = func() http.FileSystem {
fs := vfsgen۰FS{
"/": &vfsgen۰DirInfo{
name: "/",
modTime: time.Date(2019, 6, 1, 16, 12, 15, 506827447, time.UTC),
},
"/Apple2_Plus.rom": &vfsgen۰CompressedFileInfo{
name: "Apple2_Plus.rom",
modTime: time.Date(2019, 6, 1, 16, 1, 9, 32737902, time.UTC),
uncompressedSize: 12288,
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\xb9\x7b\x7c\x13\x55\xda\x00\x7c\x26\x49\xaf\x5c\x1a\x2e\x6a\x44\xd4\x23\x94\xd2\x62\xc5\xe8\xea\x7e\x5d\xe4\x56\x21\x98\x74\x87\x36\xbd\xe0\x6d\xdd\x32\x2a\x81\x09\xa2\x22\x0a\xef\xaa\xab\x2d\x90\x13\x6b\x94\x77\xa7\x4a\xb5\xa5\xa4\x4c\xc7\x9c\x98\x09\x2d\x26\xae\xbe\xb6\xb8\xf5\x8d\xfb\xd2\x9a\xe9\x2a\x1e\xa0\x40\x2f\xb4\x14\x4a\xd3\xb4\xe5\x32\x94\x5b\x4b\x5b\xf2\xfd\x26\x55\xdf\x7d\x7f\xbf\xef\xaf\x2f\x94\xe7\x5c\xe6\x39\xcf\x79\x9e\xe7\x3c\xb7\x33\xf3\x6a\xab\xe5\xe4\xf0\xa9\xdd\x6d\xfe\x0e\xfd\x95\xd6\xd3\x67\x3a\xfe\x76\xa5\xfc\xca\xb9\xcb\x9d\x97\x5b\x2e\x27\x0f\x3d\x34\xb4\x7c\xe8\xe4\x95\x33\x57\xc2\xd7\xc7\xaf\xb3\x37\x5e\xb9\x11\xba\xf1\xd4\x18\xbc\x91\x72\xe3\x8d\x1b\x9b\x86\x5e\x19\xda\x32\xb4\x6d\xa8\x68\x28\x7b\x68\x63\xdb\x9a\x21\x34\x84\x87\x9a\x87\xee\xb8\xf2\xed\x95\xaa\x2b\xcf\x0f\x19\xda\x97\xb4\x4d\x6b\x0b\xb6\x19\x5b\xaf\xaa\x61\xdb\xc6\xb6\x8e\xb6\x97\x5b\x07\xdb\x76\xf6\x05\x5b\xbf\x68\x9d\xde\xf3\x56\x5f\x4b\x7b\x59\xab\xeb\x84\xf5\xc4\xbe\x0e\xe3\x09\x6e\x70\xee\xf9\x2f\x06\x13\x41\xd7\xd9\xe9\x2d\x3f\x9d\x8e\x9c\xdd\x75\xf1\xc0\xa5\xcc\xfe\x84\x4b\x03\x97\x2e\x5f\x5a\x24\x57\xc9\xeb\xfa\x4e\x84\x1a\x7b\xe2\xfa\x7a\x43\xab\x42\xcf\x86\xec\xa1\xd2\xd0\x9b\x81\xbe\x37\xc5\xbe\xb7\xb7\xf7\xbf\xcd\x0e\xbc\xf3\xc9\x45\x73\xc1\xe9\x55\xd9\xa7\x8b\x7e\xbe\x58\xf4\x69\xd7\xba\x75\xa7\x0d\xd9\x87\x56\xe5\x1c\xcd\x36\x3c\xdd\xb2\x32\xb3\xe0\x7b\x53\xb6\x79\x4d\xcb\x4a\xc3\x8f\x2b\x4d\x3f\xe5\x19\x32\x0f\x3d\x71\xb4\xc0\xf0\x74\x8b\x39\xef\x33\x53\xf6\x67\x2b\x32\xe9\x1f\xcd\x74\x4e\x8b\x91\x36\x1d\x7e\x92\x36\x1d\x36\x3e\x91\xf7\xa5\xf1\x89\xa3\xc6\x15\x39\x74\x4e\x5e\x83\x51\x79\xb4\x32\x2f\xf3\xe4\xd3\x0a\x30\x16\x64\xfe\xd3\x98\xb3\xba\x31\x2f\xa7\xa0\x21\x7f\x45\x26\x6d\x68\xc8\x37\xd2\x39\x99\x87\x0a\xf2\x32\x57\x34\x66\xe7\xfc\xd2\xe4\xad\xce\xfc\xd1\x94\xfd\xa4\x21\x2f\xbf\x71\x15\x9d\x99\x1f\x9c\xa0\x64\xce\x21\x4f\x2a\xcb\x4d\xab\x0d\xab\x0f\xd2\x39\x0a\xcc\xc9\x36\xe4\x1d\xcd\x33\xe4\xaf\x59\xdd\x98\x67\x50\xf8\xc8\x2f\xc8\xc9\x6b\xcc\x37\x1b\x0c\x2b\x1b\x68\x43\xcb\x13\x39\x05\x3f\xe7\xad\x39\x6c\x6a\xca\x33\x44\x1f\xb8\x9f\xc8\xc9\x5f\xf3\xcf\x3c\x43\xc1\x9a\xbc\xc3\x79\x86\x9f\xf2\x0b\x72\x48\xce\xe1\xa7\x32\x4d\x2d\x0a\x0b\xf9\x99\x4f\x36\xae\x34\x34\x99\x73\xfe\xd8\x68\xce\x33\x65\xb7\xac\xc8\xc9\x6e\xa1\x4d\xf9\x2d\x2b\x68\x43\xe6\xd1\x27\x0c\x2d\xd9\x86\x93\x05\x99\x8f\x7b\x0a\x7e\x5e\x75\x38\xdf\xbc\xc2\x53\x60\x34\x1c\xce\x6c\xc9\xce\x69\xc9\x2f\x30\x90\xfd\xb5\xde\x2f\xba\x32\xb3\x0f\xe5\x1c\xfd\xae\xe1\x1f\xf9\x4f\x1c\x36\x65\xb7\x64\x3e\x7e\x6c\x4d\xfe\xd1\x55\x79\x8d\xf9\x2b\xf2\xb2\x3d\xe6\x95\x3f\x9a\x73\x8e\xe5\xe7\x1e\xcd\xcb\x3e\x44\xe7\xfc\x60\x78\x9a\xac\xc8\x39\x96\x6f\x3a\x5c\x90\x79\x38\xb3\xe0\xb0\xd9\x60\xf8\x17\x6d\x38\x9c\x5f\x90\xe7\x7a\x32\xf3\xc7\xcc\xfc\xff\x59\x61\xcc\x73\xd1\x86\x55\x05\xae\x3c\xd3\x13\xc6\x02\xd7\x6a\xd3\x4a\x17\xc8\x36\x3c\x5d\x00\x9f\x32\x15\x18\x73\xd6\x14\xc0\x55\x39\x47\xf3\x9f\xc9\x2e\xc8\x6c\x8d\x0a\x93\xfd\xdb\x7c\x54\x40\xa5\x93\xb3\x0a\x46\x8f\x8d\xa6\x0d\x4f\x64\xd2\x30\x77\x4d\x66\x76\x81\xa9\xa0\x2d\xe7\x49\x43\xde\x2a\x3a\xe7\xe4\x2f\x28\xab\x0d\xab\x73\xf2\xda\xd6\x64\xaf\x34\xac\x9a\xbf\x12\xe6\x17\x64\x16\x18\x56\x1b\xb2\x5b\x1e\xcf\x5c\x09\xf3\xd7\x3c\x9e\xbf\x22\xcf\x64\x6e\xc9\x33\xac\x34\xad\x9e\xbf\x12\x66\xe6\xe5\x65\xb6\xad\x34\x3d\x69\xca\x37\xe5\x64\xc3\xc7\x9f\x81\xcf\x1a\xf2\x7e\xfe\x95\xfe\x4a\x53\x9e\x61\x45\x4b\xc1\x33\x66\x03\x5c\x6d\xca\x5f\x9d\x59\xb0\x22\x98\x5f\x90\x67\xca\x7e\x02\x16\xe4\xe4\x40\x3a\x27\xfb\x87\x55\x39\x79\xab\xd7\xd0\x99\xd1\xf1\x8a\x9c\xd5\x66\xda\xd0\xba\x22\x33\x7b\x7e\x01\x5c\x91\x93\x5d\x60\xca\x5e\xd3\xf8\x2b\x17\xab\xd6\x64\xaf\x28\x30\xe5\x1c\x86\x86\xbc\xbc\x9c\xbc\x38\x00\x4d\xd9\x10\x4c\x79\x3c\xcf\x90\xf9\xc7\x38\x70\x30\x1c\x0e\x87\x1b\x28\x4a\xda\x4e\xee\xc3\x76\x92\xd8\xa0\xa2\x10\x6a\x50\x53\xc8\xde\xa9\xa6\x48\x1c\x46\x9d\x2a\x4a\x8e\x73\xe8\xac\xd3\xbd\xa4\x95\x81\x3d\xc7\xd0\xcb\xb6\x57\x32\xf0\x27\xbd\x95\xa8\xd0\x83\x3f\xed\xdd\xeb\x0d\x97\xcb\x73\xf1\x27\x19\xbd\x85\xe8\x13\x9f\xba\xe9\xd3\x0c\
},
"/Apple2rev7CharGen.rom": &vfsgen۰CompressedFileInfo{
name: "Apple2rev7CharGen.rom",
modTime: time.Date(2019, 6, 1, 15, 13, 24, 890519957, time.UTC),
uncompressedSize: 2048,
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x53\xd1\x86\x1c\x41\x14\xbd\x5a\x59\x25\x56\xf4\x43\x3f\x44\x94\x51\xca\x18\xa3\x45\xac\x7d\x58\x79\x18\xf5\x6d\x57\x2b\xab\xc4\x8a\x7e\xe8\x87\x88\x32\x4a\x19\x63\xb4\x88\xb5\x0f\x2b\x0f\xa3\xbe\x2d\xce\x9d\xde\x65\xbf\x21\x7b\x34\xb7\x0f\xe7\x9e\x7b\xee\xa5\xc8\xb8\xfe\xeb\x17\xbb\x22\xdd\x39\xe7\x9d\xa3\x9d\x73\xf8\xc8\x38\x6b\xad\x33\xe0\x0e\xdc\x5b\xbb\xb3\xd6\x2f\xd5\xd2\xca\x5a\xbb\x71\x2b\x72\xd2\xe6\xc8\x68\xc0\x50\x03\x38\x43\x6e\xbd\xbd\xd9\xae\x1d\x59\x81\x27\x77\xd7\xf7\xd0\x39\x77\xdb\x6f\xa0\x17\x5f\xf1\x17\x3f\xf0\x7e\xfd\x59\x38\xfa\x8c\xb3\x06\x3e\x5e\x7c\x35\xb9\x45\x2f\xa5\x13\xde\xf7\x77\xf0\xeb\x10\x5d\x2a\x74\xbe\x51\xba\x45\xce\x1b\xc0\x13\xd9\x56\xab\x86\xc8\x5f\x01\x9e\x08\x9b\xd2\x0b\xfc\xeb\xdf\x65\x8a\xa6\xae\xeb\x84\x77\x9d\xef\x7c\xd7\x91\x5e\x6d\xcd\x87\x9d\xa6\x9b\x5b\xa5\xdb\xcd\x15\xb5\xdb\x6d\x8b\x9c\x50\x4b\x5f\x6b\xad\x6d\x35\x69\xd5\x34\x8d\xd2\xa4\x7b\xa3\x4d\xaf\x61\xe8\x17\x09\x69\xdd\xbe\x1d\x46\x9a\x48\x72\x12\x19\xb7\xe9\x6f\x9d\x21\xfd\xe9\x72\x3f\xe3\x9a\x6b\xc9\xdf\xa8\x6b\xec\xaf\xae\xbb\xb5\x57\x8a\xbc\xdd\xc9\x5d\x3f\xb6\x76\x87\x3b\xc8\x9e\x6d\x8b\xbb\xe1\x43\x5d\x35\xea\x9b\x78\x2f\xc9\x64\x2e\xa6\xb4\x5a\xc9\x78\x04\xc0\x35\x94\x46\x9f\xc2\xbe\x9c\xca\xfc\xe7\x77\xde\x73\x9c\x4a\xa9\xa5\xf0\xb9\x14\x7c\x9c\x4a\xce\xb9\x24\xf0\x02\x5e\x73\x3e\xe7\x5c\x97\x9a\x79\x9f\x73\x3e\x96\x3d\x17\x69\x2b\x9c\x22\x90\x78\x00\x4a\xe2\x72\x38\x3d\x9e\x0e\x85\xb3\xa0\x72\x79\x9e\x67\xe8\x4a\x79\x9a\x8f\xd0\x8b\xaf\xf8\x8b\x1f\xf8\x7c\xf8\x25\x1c\x7d\xa9\xe4\x04\x9f\x2a\xbe\x91\xcb\xa2\x97\x32\x09\x9f\xe7\x67\xf8\x4d\x88\x2e\x15\xba\x3a\x84\x38\x22\xe7\x23\x50\x99\xf3\x18\xc3\xc0\x5c\xef\x81\xca\x8c\x4d\xf9\x05\xf5\xf5\xef\x32\x25\xf2\x34\x4d\xc2\xa7\xa9\x4e\x75\x9a\x38\xee\x4f\xe9\xfb\x39\xf2\xe3\x53\x88\xe3\xf1\x9e\xc7\xd3\x69\x44\x4e\xa8\xa5\x6f\xcc\x39\x8f\x91\x63\x18\x86\x21\x44\x8e\x73\x8a\x69\x8e\x30\xac\x8b\x84\x63\x1c\xdf\x0e\xe3\xc8\x2c\x39\x99\x53\x39\xce\x4f\x25\x71\xfc\x79\xb9\x5f\x2a\xc3\x83\xe4\x1f\xc2\x03\xf6\x0f\x0f\xd3\xa1\x86\xc0\x35\x9f\xe5\xae\x3f\xc6\x7c\xc6\x1d\x64\xcf\x71\xc4\xdd\xf0\xa1\xee\x87\xf0\x57\xbc\x97\x64\x32\x17\x53\xc6\x18\x64\x3c\x02\xe0\x1a\x21\xa2\x2f\x60\xdf\xf7\xf7\xff\xfe\xfe\xdf\xdf\xff\xff\xfb\xfe\xff\x05\x00\x00\xff\xff\xc6\x15\xf4\x64\x00\x08\x00\x00"),
},
"/DISK2.rom": &vfsgen۰CompressedFileInfo{
name: "DISK2.rom",
modTime: time.Date(2019, 6, 1, 15, 13, 24, 890519957, time.UTC),
uncompressedSize: 256,
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5a\xa4\xb0\x80\x61\x11\x73\x9b\x4d\x17\x97\x8a\xcd\x07\x01\x56\x1b\xcf\xff\x9a\x75\x1b\x38\xbc\x2e\xfc\x9e\x31\x37\x8c\xf9\xc4\x0b\x81\xa7\x0a\x11\xff\x77\xed\x65\x60\xe4\xe2\xe2\xe2\x6a\xd5\x5e\xb5\xb7\xef\xc0\xde\x9e\x03\x7b\xbb\x0e\xec\xed\x3c\xb0\x20\x60\x6f\xc3\x81\x19\x9a\xcc\x5c\xac\xda\xab\xf6\x36\x1e\x58\x19\xa6\xb0\xe2\x4f\x87\xc0\xeb\x56\xb5\x56\xdb\x56\xc7\x95\x1c\xad\xea\x12\x1c\x7b\x7b\x0e\x08\xfc\xf6\xbc\x7a\xe1\x3b\x98\x71\x72\xd5\x85\xcf\xaf\x20\xac\x69\x1f\x38\x35\x26\xdc\xf7\x5c\xfb\x41\xf5\xc2\xcd\x05\xcc\xad\x0e\x60\x51\xad\x56\x1b\x30\xad\x6a\xd3\x71\xe1\x8d\xc6\x51\xdb\x0b\xfb\x96\x3a\x1c\x75\xbc\xb0\x63\xc3\xf6\x05\x61\x2d\x36\x7b\x40\x52\x91\xd7\x98\x96\xd8\x74\xcc\x64\x60\xbe\xf0\x0e\x59\x64\xa2\xda\x89\x0b\xef\x61\xdc\x0b\xed\x0b\x18\x16\x85\x9d\x32\xf8\xbd\x51\x2d\x8e\x81\x59\x0b\x84\x41\xf2\xef\x9e\xa9\x3f\xb3\x5d\x6a\x7b\x96\x81\x63\x99\xf6\x84\xdb\x3e\x8c\x1c\x0c\x20\x00\x08\x00\x00\xff\xff\xf6\x44\x71\xce\x00\x01\x00\x00"),
},
"/dos33.dsk": &vfsgen۰CompressedFileInfo{
name: "dos33.dsk",
modTime: time.Date(2019, 6, 1, 15, 13, 24, 890519957, time.UTC),
uncompressedSize: 143360,
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfa\x0b\x54\x53\x57\x1e\x28\x0e\x9f\xbc\x20\xc4\x57\xb4\x8f\x49\xad\xe8\x16\x30\xc0\x29\xd6\xb4\x78\x24\x75\x1c\x05\x2b\x6d\xa0\x47\x05\xb5\xef\x96\x9e\x56\xd1\x60\xb5\xd5\xb6\x76\x6c\x67\x46\xb0\xcd\xce\x30\x94\x30\xa1\x95\x29\x88\xd1\x43\x9a\x4d\x73\x52\x82\x89\x4a\x2b\x6d\x69\x51\x81\x26\xa8\x70\x7c\xd0\xfa\x2e\x0a\x09\x01\x14\x0f\xbe\x40\x05\xf2\xad\x1d\x6c\x67\xee\xfd\xee\x5a\xdf\xb7\xee\xba\x6b\xdd\xb5\xfe\xff\xd9\xc0\x3e\x7b\xff\x5e\xfb\xf7\xd8\xfb\xb7\xcf\xde\x07\x11\x8a\xf5\x46\xf0\x2a\xf4\x48\x7a\x7a\x7a\x7a\x44\x3d\x5c\xc0\xbd\x02\xe7\xab\x9c\x23\xf2\xf5\x41\xb9\x69\x44\x5e\x1d\x94\x6b\x1e\xa8\x5b\x2c\x87\x7f\x6a\x09\xca\x9d\x23\x72\x18\xdb\x32\x22\xaf\x7c\x64\xdd\x7c\xa2\x6f\x44\xde\x37\x22\x07\xff\x18\x01\x9f\x8d\x80\x59\x77\x2b\x1f\x59\x37\x2c\x27\xc6\x8d\x89\x08\x97\x49\x44\xe3\xc7\x2a\xe4\x61\x52\xf1\x04\x02\xac\x8a\x75\xc9\x39\xc2\x6e\x7a\x75\x4e\x71\xb2\xb3\x91\xa2\x8f\xab\x9d\xaf\xce\x11\xe4\x7d\x75\x14\x2f\xe9\xfb\x81\xe2\x08\xd3\xab\x73\x68\xc3\x5c\xd3\xf7\x14\xb0\xab\x41\x4f\x14\xfd\xb7\x28\xf6\x3e\xf7\x42\xfe\x7e\x4f\xfd\x1f\xf8\x01\xf6\x21\xf7\xc2\x32\x1b\xe5\xa9\x8f\xe4\x6f\xd1\xdf\xa9\xad\xc1\xa2\x57\xe7\xf0\xb7\x88\xff\x73\x65\x4e\x44\x51\x77\x52\xd1\x40\x12\x27\x32\x0d\x26\x99\x7a\x92\x9c\xed\x49\xa6\x8b\x49\x9c\xd8\x74\x39\x89\x93\x9a\xae\x24\x55\x75\x25\xe5\x17\xf6\x63\xf4\x8d\xa4\x02\xec\x21\x07\x47\x58\x06\xa5\x96\xcd\x52\xf0\x59\x92\x35\xb8\xbd\xa8\x37\x89\xf6\x2c\x00\xff\x18\xa1\x25\x0f\x3b\xbb\x92\xb4\x57\xfa\x31\xbf\xb3\x2b\xc9\xd4\x9f\xd4\xd2\xff\x1f\x82\x38\xb1\xe9\x46\x12\xf8\x2c\x84\x1a\x99\xa3\xca\x89\x30\xf5\x27\x71\x0a\xd3\xc5\x24\x6d\xb7\xc8\x14\x9c\x63\xba\x82\x91\xcc\xa8\x52\x4e\x5f\x52\x55\x67\x12\xa8\x49\xaa\xba\x92\x94\xaf\x0c\x67\x27\xf4\xf4\xb4\x5c\x4e\x2a\xbc\x82\x25\xb6\x5c\x4c\xe2\x7f\x65\xe4\x9b\x01\xf1\x27\x97\x24\x4e\xc5\xc4\x69\x19\xe7\xf7\x14\x16\x46\x98\x84\x24\xe7\x6d\x2a\x2d\x68\xea\x4d\x62\x38\xc2\x5e\xbc\xd0\xc3\xdf\x65\x88\x87\x09\xc5\xc3\x81\x24\x62\x8e\x88\x11\x11\x04\x71\x37\x89\x20\x08\xdc\x08\xf5\x44\x57\x4f\x11\x56\x82\x15\xe7\xbb\xe7\xa7\xcf\x27\xe6\xe1\xbf\x32\xe2\x8f\x81\xf6\xe7\xcc\x57\xac\x44\x29\x1f\xb0\x3e\x5b\x47\xcc\x8b\x5f\x60\x21\xe6\x35\x2b\x6f\x32\x5a\x63\x6c\xd1\xe6\xb0\x3a\x53\x7d\x5d\x51\xbd\xe6\xaf\x4e\x62\x1e\x54\x73\x41\xcb\x3f\xeb\x23\x0b\xeb\x75\xfa\x1e\x56\xaa\xd3\x83\x5a\x6d\x3e\x3f\xc8\xb5\x81\xfd\x5a\xce\x81\x2b\x27\xd8\xaf\x2d\x65\x9f\xe3\x25\xb5\xc4\xbc\x17\x83\x7f\x74\xd4\xc5\xcf\xad\x8c\xb5\x98\xea\xeb\x0a\xeb\xf3\xf9\x5e\xa4\xee\x79\x91\x08\x01\xab\x37\x87\x8d\x42\x6b\x89\x3f\x7a\xf8\x9e\x51\x3a\xf0\x9d\x96\xbb\xf0\xbb\xa8\x5e\x5c\x05\xc1\x7e\x6d\x5d\x11\x26\x64\x54\x3a\xbd\xc5\x84\xc7\x66\x58\xc2\xfa\x5c\xb3\xe6\x6e\x2d\xf1\xc7\x2c\x62\x1e\x89\xff\x8a\xe7\x7b\x1a\xd4\x7c\x2f\xc3\x82\x7c\xe1\xf5\xba\xc2\x7a\xe5\xdd\xb4\x36\xfe\x46\x4f\xa8\xe5\x75\xf0\xd7\xd8\xe7\x46\x9b\x4e\xbe\x8b\x23\xf2\x0d\xea\xef\x71\xef\x45\x62\xae\x4d\x5d\x46\xcc\xe3\xfb\xfe\x47\xc0\x1f\x3d\x7c\x5f\xa8\x7f\x9a\x98\xcb\xdf\x37\xca\x78\x81\x57\xfc\x26\x4d\x78\x45\xcb\xb0\x43\x06\xb5\x87\x97\xfa\xd5\xc2\xf5\x51\x68\x1b\x2f\xfc\xc7\x68\x92\xd1\xe6\xbf\xf0\x68\x30\x36\xd4\x21\xa1\x3a\xf4\x9c\xa1\x2e\x4b\x20\x52\x63\xf3\x95\x5d\x76\xfe\x9b\xdf\x64\x57\xff\xce\x6b\x53\x31\xc6\x47\x20\x79\x74\xb3\x54\x58\xce\x11\x50\xed\xdc\x2c\x85\xb1\x5a\x1f\x29\x24\xba\xc2\xd3\x82\x7d\x9b\xa5\x66\x59\xce\x48\xcb\x66\x69\xa3\xda\x2c\x46\x6a\xef\x58\x97\xc8\xae\x05\x7d\x4f\xd4\x4e\x9c\x0b\x88\xb9\x28\x56\x05\xfa\x9f\xa8\x8d\xc4\x6d\xbf\x9a\x3f\x04\x88\xb9\x2a\xe7\x66\x69\xbc\x84\x94\x3d\xe2\xa8\xcb\xab\xaf\x7c\x04\xcf\x37\xeb\xc4\x66\x7e\xd8\xff\x14\x2f\xf6\x3f\xad\xed\x16\xf1\x02\x23\xd2\xc4\xc5\x80\xa9\x91\x53\x70\xd9\x90\xa0\x8e\x9a\x76\xaf\xfd\xaf\xcf\xb7\x97\x5b\x76\xee\xaa\xfc\xf2\xab\x2a\x67\xf5\xee\x3d\x7b\xf7\xd5\x7c\xfd\x4d\xed\xb7\xdf\x7d\x5f\xf7\xc3\x8f\x87\x8f\xb6\xb4\x9e\xf8\xf9\x97\xd3\x67\xce\x9e\x3b\x7f\xe1\x57\x9f\xbf\xab\xbb\xa7\xf7\xf2\x95\xbe\xab\xd7\xae\xdf\xb8\x79\x6b\xe0\xf6\x9d\xbb\x43\xc3\x23\xc1\xea\xd7\xc8\xf6\x29\x82\xcc\x4a\x14\xbd\x3a\x87\xe1\x82\xa6\xbb\x52\xd3\xd8\
},
}
fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
fs["/Apple2_Plus.rom"].(os.FileInfo),
fs["/Apple2rev7CharGen.rom"].(os.FileInfo),
fs["/DISK2.rom"].(os.FileInfo),
fs["/dos33.dsk"].(os.FileInfo),
}
return fs
}()
type vfsgen۰FS map[string]interface{}
func (fs vfsgen۰FS) Open(path string) (http.File, error) {
path = pathpkg.Clean("/" + path)
f, ok := fs[path]
if !ok {
return nil, &os.PathError{Op: "open", Path: path, Err: os.ErrNotExist}
}
switch f := f.(type) {
case *vfsgen۰CompressedFileInfo:
gr, err := gzip.NewReader(bytes.NewReader(f.compressedContent))
if err != nil {
// This should never happen because we generate the gzip bytes such that they are always valid.
panic("unexpected error reading own gzip compressed bytes: " + err.Error())
}
return &vfsgen۰CompressedFile{
vfsgen۰CompressedFileInfo: f,
gr: gr,
}, nil
case *vfsgen۰DirInfo:
return &vfsgen۰Dir{
vfsgen۰DirInfo: f,
}, nil
default:
// This should never happen because we generate only the above types.
panic(fmt.Sprintf("unexpected type %T", f))
}
}
// vfsgen۰CompressedFileInfo is a static definition of a gzip compressed file.
type vfsgen۰CompressedFileInfo struct {
name string
modTime time.Time
compressedContent []byte
uncompressedSize int64
}
func (f *vfsgen۰CompressedFileInfo) Readdir(count int) ([]os.FileInfo, error) {
return nil, fmt.Errorf("cannot Readdir from file %s", f.name)
}
func (f *vfsgen۰CompressedFileInfo) Stat() (os.FileInfo, error) { return f, nil }
func (f *vfsgen۰CompressedFileInfo) GzipBytes() []byte {
return f.compressedContent
}
func (f *vfsgen۰CompressedFileInfo) Name() string { return f.name }
func (f *vfsgen۰CompressedFileInfo) Size() int64 { return f.uncompressedSize }
func (f *vfsgen۰CompressedFileInfo) Mode() os.FileMode { return 0444 }
func (f *vfsgen۰CompressedFileInfo) ModTime() time.Time { return f.modTime }
func (f *vfsgen۰CompressedFileInfo) IsDir() bool { return false }
func (f *vfsgen۰CompressedFileInfo) Sys() interface{} { return nil }
// vfsgen۰CompressedFile is an opened compressedFile instance.
type vfsgen۰CompressedFile struct {
*vfsgen۰CompressedFileInfo
gr *gzip.Reader
grPos int64 // Actual gr uncompressed position.
seekPos int64 // Seek uncompressed position.
}
func (f *vfsgen۰CompressedFile) Read(p []byte) (n int, err error) {
if f.grPos > f.seekPos {
// Rewind to beginning.
err = f.gr.Reset(bytes.NewReader(f.compressedContent))
if err != nil {
return 0, err
}
f.grPos = 0
}
if f.grPos < f.seekPos {
// Fast-forward.
_, err = io.CopyN(ioutil.Discard, f.gr, f.seekPos-f.grPos)
if err != nil {
return 0, err
}
f.grPos = f.seekPos
}
n, err = f.gr.Read(p)
f.grPos += int64(n)
f.seekPos = f.grPos
return n, err
}
func (f *vfsgen۰CompressedFile) Seek(offset int64, whence int) (int64, error) {
switch whence {
case io.SeekStart:
f.seekPos = 0 + offset
case io.SeekCurrent:
f.seekPos += offset
case io.SeekEnd:
f.seekPos = f.uncompressedSize + offset
default:
panic(fmt.Errorf("invalid whence value: %v", whence))
}
return f.seekPos, nil
}
func (f *vfsgen۰CompressedFile) Close() error {
return f.gr.Close()
}
// vfsgen۰DirInfo is a static definition of a directory.
type vfsgen۰DirInfo struct {
name string
modTime time.Time
entries []os.FileInfo
}
func (d *vfsgen۰DirInfo) Read([]byte) (int, error) {
return 0, fmt.Errorf("cannot Read from directory %s", d.name)
}
func (d *vfsgen۰DirInfo) Close() error { return nil }
func (d *vfsgen۰DirInfo) Stat() (os.FileInfo, error) { return d, nil }
func (d *vfsgen۰DirInfo) Name() string { return d.name }
func (d *vfsgen۰DirInfo) Size() int64 { return 0 }
func (d *vfsgen۰DirInfo) Mode() os.FileMode { return 0755 | os.ModeDir }
func (d *vfsgen۰DirInfo) ModTime() time.Time { return d.modTime }
func (d *vfsgen۰DirInfo) IsDir() bool { return true }
func (d *vfsgen۰DirInfo) Sys() interface{} { return nil }
// vfsgen۰Dir is an opened dir instance.
type vfsgen۰Dir struct {
*vfsgen۰DirInfo
pos int // Position within entries for Seek and Readdir.
}
func (d *vfsgen۰Dir) Seek(offset int64, whence int) (int64, error) {
if offset == 0 && whence == io.SeekStart {
d.pos = 0
return 0, nil
}
return 0, fmt.Errorf("unsupported Seek in directory %s", d.name)
}
func (d *vfsgen۰Dir) Readdir(count int) ([]os.FileInfo, error) {
if d.pos >= len(d.entries) && count > 0 {
return nil, io.EOF
}
if count <= 0 || count > len(d.entries)-d.pos {
count = len(d.entries) - d.pos
}
e := d.entries[d.pos : d.pos+count]
d.pos += count
return e, nil
}