| ofs | hex dump | ascii | 
|---|
| 0000 |  6e 6f 76 2d 32 30 32 34 30 34 30 37 2e 31 32 31    39 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | nov-20240407.1219/.............. | 
| 0020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0060 |  00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000755.0000000.0000000.0000 | 
| 0080 |  30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 31 36 31 32 00 20 35 00 00 00  | 0000000.00000000000.011612..5... | 
| 00a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0100 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0120 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0200 |  6e 6f 76 2d 32 30 32 34 30 34 30 37 2e 31 32 31    39 2f 6e 6f 76 2e 65 6c 00 00 00 00 00 00 00 00  | nov-20240407.1219/nov.el........ | 
| 0220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0260 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0280 |  30 31 31 34 35 33 37 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 37 35 31 00 20 30 00 00 00  | 0114537.00000000000.012751..0... | 
| 02a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0300 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0320 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0400 |  3b 3b 3b 20 6e 6f 76 2e 65 6c 20 2d 2d 2d 20 46    65 61 74 75 72 65 66 75 6c 20 45 50 55 42 20 72  | ;;;.nov.el.---.Featureful.EPUB.r | 
| 0420 |  65 61 64 65 72 20 6d 6f 64 65 20 2d 2a 2d 20 6c    65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 74  | eader.mode.-*-.lexical-binding:t | 
| 0440 |  20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67    68 74 20 28 43 29 20 32 30 31 37 20 56 61 73 69  | .-*-..;;.Copyright.(C).2017.Vasi | 
| 0460 |  6c 69 6a 20 53 63 68 6e 65 69 64 65 72 6d 61 6e    6e 20 3c 6d 61 69 6c 40 76 61 73 69 6c 69 6a 2e  | lij.Schneidermann.<mail@vasilij. | 
| 0480 |  64 65 3e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20    56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65  | de>..;;.Author:.Vasilij.Schneide | 
| 04a0 |  72 6d 61 6e 6e 20 3c 6d 61 69 6c 40 76 61 73 69    6c 69 6a 2e 64 65 3e 0a 3b 3b 20 55 52 4c 3a 20  | rmann.<mail@vasilij.de>.;;.URL:. | 
| 04c0 |  68 74 74 70 73 3a 2f 2f 64 65 70 70 2e 62 72 61    75 73 65 2e 63 63 2f 6e 6f 76 2e 65 6c 0a 3b 3b  | https://depp.brause.cc/nov.el.;; | 
| 04e0 |  20 56 65 72 73 69 6f 6e 3a 20 30 2e 34 2e 30 0a    3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69  | .Version:.0.4.0.;;.Package-Requi | 
| 0500 |  72 65 73 3a 20 28 28 65 73 78 6d 6c 20 22 30 2e    33 2e 36 22 29 20 28 65 6d 61 63 73 20 22 32 35  | res:.((esxml."0.3.6").(emacs."25 | 
| 0520 |  2e 31 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64    73 3a 20 68 79 70 65 72 6d 65 64 69 61 2c 20 6d  | .1")).;;.Keywords:.hypermedia,.m | 
| 0540 |  75 6c 74 69 6d 65 64 69 61 2c 20 65 70 75 62 0a    0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73  | ultimedia,.epub..;;.This.file.is | 
| 0560 |  20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 4e 55    20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73  | .NOT.part.of.GNU.Emacs...;;.This | 
| 0580 |  20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65    20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63  | .program.is.free.software;.you.c | 
| 05a0 |  61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20    69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79  | an.redistribute.it.and/or.modify | 
| 05c0 |  0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65    20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e  | .;;.it.under.the.terms.of.the.GN | 
| 05e0 |  55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63    20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c  | U.General.Public.License.as.publ | 
| 0600 |  69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20    46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f  | ished.by.;;.the.Free.Software.Fo | 
| 0620 |  75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72    20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68  | undation,.either.version.3.of.th | 
| 0640 |  65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b    20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e  | e.License,.or.;;.(at.your.option | 
| 0660 |  29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73    69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72  | ).any.later.version...;;.This.pr | 
| 0680 |  6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62    75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65  | ogram.is.distributed.in.the.hope | 
| 06a0 |  20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65    20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20  | .that.it.will.be.useful,.;;.but. | 
| 06c0 |  57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52    41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76  | WITHOUT.ANY.WARRANTY;.without.ev | 
| 06e0 |  65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77    61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45  | en.the.implied.warranty.of.;;.ME | 
| 0700 |  52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72    20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50  | RCHANTABILITY.or.FITNESS.FOR.A.P | 
| 0720 |  41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53    45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47  | ARTICULAR.PURPOSE...See.the.;;.G | 
| 0740 |  4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69    63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f  | NU.General.Public.License.for.mo | 
| 0760 |  72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20    59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20  | re.details...;;.You.should.have. | 
| 0780 |  72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20    6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72  | received.a.copy.of.the.GNU.Gener | 
| 07a0 |  61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73    65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20  | al.Public.License.;;.along.with. | 
| 07c0 |  74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49    66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70  | this.program...If.not,.see.<http | 
| 07e0 |  3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c    69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20  | ://www.gnu.org/licenses/>...;;;. | 
| 0800 |  43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20    6e 6f 76 2e 65 6c 20 70 72 6f 76 69 64 65 73 20  | Commentary:..;;.nov.el.provides. | 
| 0820 |  61 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72    20 72 65 61 64 69 6e 67 20 45 50 55 42 20 64 6f  | a.major.mode.for.reading.EPUB.do | 
| 0840 |  63 75 6d 65 6e 74 73 2e 0a 3b 3b 0a 3b 3b 20 46    65 61 74 75 72 65 73 3a 0a 3b 3b 0a 3b 3b 20 2d  | cuments..;;.;;.Features:.;;.;;.- | 
| 0860 |  20 42 61 73 69 63 20 6e 61 76 69 67 61 74 69 6f    6e 20 28 6a 75 6d 70 20 74 6f 20 54 4f 43 2c 20  | .Basic.navigation.(jump.to.TOC,. | 
| 0880 |  70 72 65 76 69 6f 75 73 2f 6e 65 78 74 20 63 68    61 70 74 65 72 29 0a 3b 3b 20 2d 20 52 65 6d 65  | previous/next.chapter).;;.-.Reme | 
| 08a0 |  6d 62 65 72 69 6e 67 20 61 6e 64 20 72 65 73 74    6f 72 69 6e 67 20 74 68 65 20 6c 61 73 74 20 72  | mbering.and.restoring.the.last.r | 
| 08c0 |  65 61 64 20 70 6f 73 69 74 69 6f 6e 0a 3b 3b 20    2d 20 4a 75 6d 70 20 74 6f 20 6e 65 78 74 20 63  | ead.position.;;.-.Jump.to.next.c | 
| 08e0 |  68 61 70 74 65 72 20 77 68 65 6e 20 73 63 72 6f    6c 6c 69 6e 67 20 62 65 79 6f 6e 64 20 65 6e 64  | hapter.when.scrolling.beyond.end | 
| 0900 |  0a 3b 3b 20 2d 20 53 74 6f 72 69 6e 67 20 61 6e    64 20 66 6f 6c 6c 6f 77 69 6e 67 20 4f 72 67 20  | .;;.-.Storing.and.following.Org. | 
| 0920 |  6c 69 6e 6b 73 20 74 6f 20 45 50 55 42 20 66 69    6c 65 73 0a 3b 3b 20 2d 20 52 65 6e 64 65 72 73  | links.to.EPUB.files.;;.-.Renders | 
| 0940 |  20 45 50 55 42 32 20 28 2e 6e 63 78 29 20 61 6e    64 20 45 50 55 42 33 20 28 3c 6e 61 76 3e 29 20  | .EPUB2.(.ncx).and.EPUB3.(<nav>). | 
| 0960 |  54 4f 43 73 0a 3b 3b 20 2d 20 48 79 70 65 72 6c    69 6e 6b 73 20 74 6f 20 69 6e 74 65 72 6e 61 6c  | TOCs.;;.-.Hyperlinks.to.internal | 
| 0980 |  20 61 6e 64 20 65 78 74 65 72 6e 61 6c 20 74 61    72 67 65 74 73 0a 3b 3b 20 2d 20 53 75 70 70 6f  | .and.external.targets.;;.-.Suppo | 
| 09a0 |  72 74 73 20 74 65 78 74 75 61 6c 20 61 6e 64 20    69 6d 61 67 65 20 64 6f 63 75 6d 65 6e 74 73 0a  | rts.textual.and.image.documents. | 
| 09c0 |  3b 3b 20 2d 20 49 6e 66 6f 2d 73 74 79 6c 65 20    68 69 73 74 6f 72 79 20 6e 61 76 69 67 61 74 69  | ;;.-.Info-style.history.navigati | 
| 09e0 |  6f 6e 0a 3b 3b 20 2d 20 56 69 65 77 20 73 6f 75    72 63 65 20 6f 66 20 64 6f 63 75 6d 65 6e 74 20  | on.;;.-.View.source.of.document. | 
| 0a00 |  66 69 6c 65 73 0a 3b 3b 20 2d 20 4d 65 74 61 64    61 74 61 20 64 69 73 70 6c 61 79 0a 3b 3b 20 2d  | files.;;.-.Metadata.display.;;.- | 
| 0a20 |  20 49 6d 61 67 65 20 72 65 73 63 61 6c 69 6e 67    0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65  | .Image.rescaling..;;;.Code:..(re | 
| 0a40 |  71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28    72 65 71 75 69 72 65 20 27 64 6f 6d 29 0a 28 72  | quire.'cl-lib).(require.'dom).(r | 
| 0a60 |  65 71 75 69 72 65 20 27 65 73 78 6d 6c 2d 71 75    65 72 79 29 0a 28 72 65 71 75 69 72 65 20 27 69  | equire.'esxml-query).(require.'i | 
| 0a80 |  6d 61 67 65 29 0a 28 72 65 71 75 69 72 65 20 27    73 65 71 29 0a 28 72 65 71 75 69 72 65 20 27 73  | mage).(require.'seq).(require.'s | 
| 0aa0 |  68 72 29 0a 28 72 65 71 75 69 72 65 20 27 75 72    6c 2d 70 61 72 73 65 29 0a 28 72 65 71 75 69 72  | hr).(require.'url-parse).(requir | 
| 0ac0 |  65 20 27 78 6d 6c 29 0a 0a 28 72 65 71 75 69 72    65 20 27 62 6f 6f 6b 6d 61 72 6b 29 0a 28 72 65  | e.'xml)..(require.'bookmark).(re | 
| 0ae0 |  71 75 69 72 65 20 27 65 61 73 79 6d 65 6e 75 29    0a 28 72 65 71 75 69 72 65 20 27 69 6d 65 6e 75  | quire.'easymenu).(require.'imenu | 
| 0b00 |  29 0a 28 72 65 71 75 69 72 65 20 27 6f 72 67 29    0a 28 72 65 71 75 69 72 65 20 27 72 65 63 65 6e  | ).(require.'org).(require.'recen | 
| 0b20 |  74 66 29 0a 0a 28 77 68 65 6e 20 28 6e 6f 74 20    28 66 62 6f 75 6e 64 70 20 27 6c 69 62 78 6d 6c  | tf)..(when.(not.(fboundp.'libxml | 
| 0b40 |  2d 70 61 72 73 65 2d 78 6d 6c 2d 72 65 67 69 6f    6e 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22  | -parse-xml-region))...(message." | 
| 0b60 |  59 6f 75 72 20 45 6d 61 63 73 20 77 61 73 6e 27    74 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20  | Your.Emacs.wasn't.compiled.with. | 
| 0b80 |  6c 69 62 78 6d 6c 20 73 75 70 70 6f 72 74 22 29    29 0a 0a 0c 0a 3b 3b 3b 20 45 50 55 42 20 70 72  | libxml.support"))....;;;.EPUB.pr | 
| 0ba0 |  65 70 61 72 61 74 69 6f 6e 0a 0a 28 64 65 66 67    72 6f 75 70 20 6e 6f 76 20 6e 69 6c 0a 20 20 22  | eparation..(defgroup.nov.nil..." | 
| 0bc0 |  45 50 55 42 20 72 65 61 64 65 72 20 6d 6f 64 65    22 0a 20 20 3a 67 72 6f 75 70 20 27 6d 75 6c 74  | EPUB.reader.mode"...:group.'mult | 
| 0be0 |  69 6d 65 64 69 61 29 0a 0a 28 64 65 66 63 75 73    74 6f 6d 20 6e 6f 76 2d 75 6e 7a 69 70 2d 70 72  | imedia)..(defcustom.nov-unzip-pr | 
| 0c00 |  6f 67 72 61 6d 20 28 65 78 65 63 75 74 61 62 6c    65 2d 66 69 6e 64 20 22 75 6e 7a 69 70 22 29 0a  | ogram.(executable-find."unzip"). | 
| 0c20 |  20 20 22 50 61 74 68 20 74 6f 20 64 65 63 6f 6d    70 72 65 73 73 69 6f 6e 20 65 78 65 63 75 74 61  | .."Path.to.decompression.executa | 
| 0c40 |  62 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28    66 69 6c 65 20 3a 6d 75 73 74 2d 6d 61 74 63 68  | ble."...:type.'(file.:must-match | 
| 0c60 |  20 74 29 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f    76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e  | .t)...:group.'nov)..(defcustom.n | 
| 0c80 |  6f 76 2d 75 6e 7a 69 70 2d 61 72 67 73 20 27 28    22 2d 6f 64 22 20 64 69 72 65 63 74 6f 72 79 20  | ov-unzip-args.'("-od".directory. | 
| 0ca0 |  66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 41 72 67    75 6d 65 6e 74 73 20 74 6f 20 64 65 63 6f 6d 70  | filename)..."Arguments.to.decomp | 
| 0cc0 |  72 65 73 73 69 6f 6e 20 65 78 65 63 75 74 61 62    6c 65 2e 0a 54 68 69 73 20 76 61 72 69 61 62 6c  | ression.executable..This.variabl | 
| 0ce0 |  65 20 65 78 70 65 63 74 73 20 61 20 6c 69 73 74    20 6f 66 20 73 74 72 69 6e 67 73 2c 20 65 78 63  | e.expects.a.list.of.strings,.exc | 
| 0d00 |  65 70 74 20 66 6f 72 20 60 64 69 72 65 63 74 6f    72 79 27 0a 61 6e 64 20 60 66 69 6c 65 6e 61 6d  | ept.for.`directory'.and.`filenam | 
| 0d20 |  65 27 20 73 79 6d 62 6f 6c 73 2c 20 77 68 69 63    68 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63  | e'.symbols,.which.will.be.replac | 
| 0d40 |  65 64 20 61 63 63 6f 72 64 69 6e 67 6c 79 20 77    68 65 6e 0a 6f 70 65 6e 69 6e 67 20 61 6e 20 45  | ed.accordingly.when.opening.an.E | 
| 0d60 |  50 55 42 20 66 69 6c 65 2e 22 0a 20 20 3a 74 79    70 65 20 27 28 72 65 70 65 61 74 20 28 63 68 6f  | PUB.file."...:type.'(repeat.(cho | 
| 0d80 |  69 63 65 20 28 73 74 72 69 6e 67 20 3a 74 61 67    20 22 41 72 67 75 6d 65 6e 74 22 29 0a 20 20 20  | ice.(string.:tag."Argument").... | 
| 0da0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61  | ......................(const.:ta | 
| 0dc0 |  67 20 22 44 69 72 65 63 74 6f 72 79 22 20 64 69    72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20  | g."Directory".directory)........ | 
| 0de0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 46  | ..................(const.:tag."F | 
| 0e00 |  69 6c 65 6e 61 6d 65 22 20 66 69 6c 65 6e 61 6d    65 29 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6e  | ilename".filename)))...:group.'n | 
| 0e20 |  6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20    6e 6f 76 2d 76 61 72 69 61 62 6c 65 2d 70 69 74  | ov)..(defcustom.nov-variable-pit | 
| 0e40 |  63 68 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20    69 66 20 61 20 76 61 72 69 61 62 6c 65 20 70 69  | ch.t..."Non-nil.if.a.variable.pi | 
| 0e60 |  74 63 68 20 66 61 63 65 20 73 68 6f 75 6c 64 20    62 65 20 75 73 65 64 2e 0a 4f 74 68 65 72 77 69  | tch.face.should.be.used..Otherwi | 
| 0e80 |  73 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 66    61 63 65 20 69 73 20 75 73 65 64 2e 22 0a 20 20  | se.the.default.face.is.used."... | 
| 0ea0 |  3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20    20 3a 67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28  | :type.'boolean...:group.'nov)..( | 
| 0ec0 |  64 65 66 63 75 73 74 6f 6d 20 6e 6f 76 2d 74 65    78 74 2d 77 69 64 74 68 20 6e 69 6c 0a 20 20 22  | defcustom.nov-text-width.nil..." | 
| 0ee0 |  57 69 64 74 68 20 66 69 6c 6c 65 64 20 74 65 78    74 20 73 68 61 6c 6c 20 6f 63 63 75 70 79 2e 0a  | Width.filled.text.shall.occupy.. | 
| 0f00 |  41 6e 20 69 6e 74 65 67 65 72 20 69 73 20 69 6e    74 65 72 70 72 65 74 65 64 20 61 73 20 74 68 65  | An.integer.is.interpreted.as.the | 
| 0f20 |  20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d    6e 73 2e 20 20 49 66 20 6e 69 6c 2c 20 75 73 65  | .number.of.columns...If.nil,.use | 
| 0f40 |  0a 74 68 65 20 66 75 6c 6c 20 77 69 6e 64 6f 77    27 73 20 77 69 64 74 68 2e 20 20 49 66 20 74 2c  | .the.full.window's.width...If.t, | 
| 0f60 |  20 64 69 73 61 62 6c 65 20 66 69 6c 6c 69 6e 67    20 63 6f 6d 70 6c 65 74 65 6c 79 2e 20 20 4e 6f  | .disable.filling.completely...No | 
| 0f80 |  74 65 0a 74 68 61 74 20 74 68 69 73 20 76 61 72    69 61 62 6c 65 20 6f 6e 6c 79 20 68 61 73 20 61  | te.that.this.variable.only.has.a | 
| 0fa0 |  6e 20 65 66 66 65 63 74 20 69 6e 20 45 6d 61 63    73 20 32 35 2e 31 20 6f 72 20 67 72 65 61 74 65  | n.effect.in.Emacs.25.1.or.greate | 
| 0fc0 |  72 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68    6f 69 63 65 20 28 69 6e 74 65 67 65 72 20 3a 74  | r."...:type.'(choice.(integer.:t | 
| 0fe0 |  61 67 20 22 46 69 78 65 64 20 77 69 64 74 68 20    69 6e 20 63 68 61 72 61 63 74 65 72 73 22 29 0a  | ag."Fixed.width.in.characters"). | 
| 1000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6f 6e 73 74 20 20 20 3a 74 61 67 20 22  | .................(const...:tag." | 
| 1020 |  55 73 65 20 74 68 65 20 77 69 64 74 68 20 6f 66    20 74 68 65 20 77 69 6e 64 6f 77 22 20 6e 69 6c  | Use.the.width.of.the.window".nil | 
| 1040 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6f 6e 73 74 20 20 20 3a 74 61 67  | )..................(const...:tag | 
| 1060 |  20 22 44 69 73 61 62 6c 65 20 66 69 6c 6c 69 6e    67 22 20 74 29 29 0a 20 20 3a 67 72 6f 75 70 20  | ."Disable.filling".t))...:group. | 
| 1080 |  27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f    6d 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 68 74 6d  | 'nov)..(defcustom.nov-render-htm | 
| 10a0 |  6c 2d 66 75 6e 63 74 69 6f 6e 20 27 6e 6f 76 2d    72 65 6e 64 65 72 2d 68 74 6d 6c 0a 20 20 22 46  | l-function.'nov-render-html..."F | 
| 10c0 |  75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20    72 65 6e 64 65 72 20 48 54 4d 4c 2e 0a 49 74 27  | unction.used.to.render.HTML..It' | 
| 10e0 |  73 20 63 61 6c 6c 65 64 20 77 69 74 68 6f 75 74    20 61 72 67 75 6d 65 6e 74 73 20 77 69 74 68 20  | s.called.without.arguments.with. | 
| 1100 |  61 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 6e    69 6e 67 20 48 54 4d 4c 20 61 6e 64 0a 73 68 6f  | a.buffer.containing.HTML.and.sho | 
| 1120 |  75 6c 64 20 63 68 61 6e 67 65 20 69 74 20 74 6f    20 63 6f 6e 74 61 69 6e 20 74 68 65 20 72 65 6e  | uld.change.it.to.contain.the.ren | 
| 1140 |  64 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66    20 69 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66  | dered.version.of.it."...:type.'f | 
| 1160 |  75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70    20 27 6e 6f 76 29 0a 0a 28 64 65 66 63 75 73 74  | unction...:group.'nov)..(defcust | 
| 1180 |  6f 6d 20 6e 6f 76 2d 70 72 65 2d 68 74 6d 6c 2d    72 65 6e 64 65 72 2d 68 6f 6f 6b 20 6e 69 6c 0a  | om.nov-pre-html-render-hook.nil. | 
| 11a0 |  20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f    72 65 20 60 6e 6f 76 2d 72 65 6e 64 65 72 2d 68  | .."Hook.run.before.`nov-render-h | 
| 11c0 |  74 6d 6c 27 2e 22 0a 20 20 3a 74 79 70 65 20 27    68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 6e  | tml'."...:type.'hook...:group.'n | 
| 11e0 |  6f 76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20    6e 6f 76 2d 70 6f 73 74 2d 68 74 6d 6c 2d 72 65  | ov)..(defcustom.nov-post-html-re | 
| 1200 |  6e 64 65 72 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20    22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20  | nder-hook.nil..."Hook.run.after. | 
| 1220 |  60 6e 6f 76 2d 72 65 6e 64 65 72 2d 68 74 6d 6c    27 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f  | `nov-render-html'."...:type.'hoo | 
| 1240 |  6b 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f 76 29    0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e 6f 76  | k...:group.'nov)..(defcustom.nov | 
| 1260 |  2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65    20 28 6c 6f 63 61 74 65 2d 75 73 65 72 2d 65 6d  | -save-place-file.(locate-user-em | 
| 1280 |  61 63 73 2d 66 69 6c 65 20 22 6e 6f 76 2d 70 6c    61 63 65 73 22 29 0a 20 20 22 46 69 6c 65 20 6e  | acs-file."nov-places")..."File.n | 
| 12a0 |  61 6d 65 20 77 68 65 72 65 20 6c 61 73 74 20 72    65 61 64 69 6e 67 20 70 6c 61 63 65 73 20 61 72  | ame.where.last.reading.places.ar | 
| 12c0 |  65 20 73 61 76 65 64 20 74 6f 20 61 6e 64 20 72    65 73 74 6f 72 65 64 20 66 72 6f 6d 2e 0a 49 66  | e.saved.to.and.restored.from..If | 
| 12e0 |  20 73 65 74 20 74 6f 20 60 6e 69 6c 27 2c 20 6e    6f 20 73 61 76 69 6e 67 20 61 6e 64 20 72 65 73  | .set.to.`nil',.no.saving.and.res | 
| 1300 |  74 6f 72 69 6e 67 20 69 73 20 70 65 72 66 6f 72    6d 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 28  | toring.is.performed."...:type.'( | 
| 1320 |  63 68 6f 69 63 65 20 28 66 69 6c 65 20 20 3a 74    61 67 20 22 46 69 6c 65 20 6e 61 6d 65 22 29 0a  | choice.(file..:tag."File.name"). | 
| 1340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f  | .................(const.:tag."Do | 
| 1360 |  6e 27 74 20 73 61 76 65 20 6c 61 73 74 20 72 65    61 64 69 6e 67 20 70 6c 61 63 65 73 22 20 6e 69  | n't.save.last.reading.places".ni | 
| 1380 |  6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6e 6f    76 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6e  | l))...:group.'nov)..(defcustom.n | 
| 13a0 |  6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66    6f 72 6d 61 74 20 22 25 74 3a 20 25 63 22 0a 20  | ov-header-line-format."%t:.%c".. | 
| 13c0 |  20 22 48 65 61 64 65 72 20 6c 69 6e 65 20 66 6f    72 6d 61 74 2e 0a 2d 20 25 74 20 69 73 20 72 65  | ."Header.line.format..-.%t.is.re | 
| 13e0 |  70 6c 61 63 65 64 20 62 79 20 74 68 65 20 74 69    74 6c 65 2e 0a 2d 20 25 63 20 69 73 20 72 65 70  | placed.by.the.title..-.%c.is.rep | 
| 1400 |  6c 61 63 65 64 20 62 79 20 74 68 65 20 63 68 61    70 74 65 72 20 74 69 74 6c 65 2e 22 0a 20 20 3a  | laced.by.the.chapter.title."...: | 
| 1420 |  74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a    67 72 6f 75 70 20 27 6e 6f 76 29 0a 0a 28 64 65  | type.'string...:group.'nov)..(de | 
| 1440 |  66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 66    69 6c 65 2d 6e 61 6d 65 20 6e 69 6c 0a 20 20 22  | fvar-local.nov-file-name.nil..." | 
| 1460 |  50 61 74 68 20 74 6f 20 74 68 65 20 45 50 55 42    20 66 69 6c 65 20 62 61 63 6b 69 6e 67 20 74 68  | Path.to.the.EPUB.file.backing.th | 
| 1480 |  69 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64    65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d  | is.buffer.")..(defvar-local.nov- | 
| 14a0 |  74 65 6d 70 2d 64 69 72 20 6e 69 6c 0a 20 20 22    54 65 6d 70 6f 72 61 72 79 20 64 69 72 65 63 74  | temp-dir.nil..."Temporary.direct | 
| 14c0 |  6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74    68 65 20 62 75 66 66 65 72 27 73 20 45 50 55 42  | ory.containing.the.buffer's.EPUB | 
| 14e0 |  20 66 69 6c 65 73 2e 22 29 0a 0a 28 64 65 66 76    61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 63 6f 6e  | .files.")..(defvar-local.nov-con | 
| 1500 |  74 65 6e 74 2d 66 69 6c 65 20 6e 69 6c 0a 20 20    22 50 61 74 68 20 74 6f 20 74 68 65 20 45 50 55  | tent-file.nil..."Path.to.the.EPU | 
| 1520 |  42 20 62 75 66 66 65 72 27 73 20 2e 6f 70 66 20    66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72  | B.buffer's..opf.file.")..(defvar | 
| 1540 |  2d 6c 6f 63 61 6c 20 6e 6f 76 2d 65 70 75 62 2d    76 65 72 73 69 6f 6e 20 6e 69 6c 0a 20 20 22 56  | -local.nov-epub-version.nil..."V | 
| 1560 |  65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 6f 66    20 74 68 65 20 45 50 55 42 20 62 75 66 66 65 72  | ersion.string.of.the.EPUB.buffer | 
| 1580 |  2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63    61 6c 20 6e 6f 76 2d 6d 65 74 61 64 61 74 61 20  | .")..(defvar-local.nov-metadata. | 
| 15a0 |  6e 69 6c 0a 20 20 22 4d 65 74 61 64 61 74 61 20    6f 66 20 74 68 65 20 45 50 55 42 20 62 75 66 66  | nil..."Metadata.of.the.EPUB.buff | 
| 15c0 |  65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c    6f 63 61 6c 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e  | er.")..(defvar-local.nov-documen | 
| 15e0 |  74 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20    66 6f 72 20 74 68 65 20 45 50 55 42 20 62 75 66  | ts.nil..."Alist.for.the.EPUB.buf | 
| 1600 |  66 65 72 27 73 20 64 6f 63 75 6d 65 6e 74 73 2e    0a 45 61 63 68 20 61 6c 69 73 74 20 69 74 65 6d  | fer's.documents..Each.alist.item | 
| 1620 |  20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 65    20 69 64 65 6e 74 69 66 69 65 72 20 61 6e 64 20  | .consists.of.the.identifier.and. | 
| 1640 |  66 75 6c 6c 20 70 61 74 68 2e 22 29 0a 0a 28 64    65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d  | full.path.")..(defvar-local.nov- | 
| 1660 |  64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20    30 0a 20 20 22 49 6e 64 65 78 20 6f 66 20 74 68  | documents-index.0..."Index.of.th | 
| 1680 |  65 20 63 75 72 72 65 6e 74 6c 79 20 72 65 6e 64    65 72 65 64 20 64 6f 63 75 6d 65 6e 74 20 69 6e  | e.currently.rendered.document.in | 
| 16a0 |  20 74 68 65 20 45 50 55 42 20 62 75 66 66 65 72    2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63  | .the.EPUB.buffer.")..(defvar-loc | 
| 16c0 |  61 6c 20 6e 6f 76 2d 74 6f 63 2d 69 64 20 6e 69    6c 0a 20 20 22 54 4f 43 20 69 64 65 6e 74 69 66  | al.nov-toc-id.nil..."TOC.identif | 
| 16e0 |  69 65 72 20 6f 66 20 74 68 65 20 45 50 55 42 20    62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76  | ier.of.the.EPUB.buffer.")..(defv | 
| 1700 |  61 72 2d 6c 6f 63 61 6c 20 6e 6f 76 2d 68 69 73    74 6f 72 79 20 6e 69 6c 0a 20 20 22 53 74 61 63  | ar-local.nov-history.nil..."Stac | 
| 1720 |  6b 20 6f 66 20 64 6f 63 75 6d 65 6e 74 73 20 75    73 65 72 20 68 61 73 20 76 69 73 69 74 65 64 2e  | k.of.documents.user.has.visited. | 
| 1740 |  0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66    20 74 68 65 20 73 74 61 63 6b 20 69 73 20 61 20  | .Each.element.of.the.stack.is.a. | 
| 1760 |  6c 69 73 74 20 28 4e 4f 44 45 49 4e 44 45 58 20    42 55 46 46 45 52 50 4f 53 29 2e 22 29 0a 0a 28  | list.(NODEINDEX.BUFFERPOS).")..( | 
| 1780 |  64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6e 6f 76    2d 68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64  | defvar-local.nov-history-forward | 
| 17a0 |  20 6e 69 6c 0a 20 20 22 53 74 61 63 6b 20 6f 66    20 64 6f 63 75 6d 65 6e 74 73 20 75 73 65 72 20  | .nil..."Stack.of.documents.user. | 
| 17c0 |  68 61 73 20 76 69 73 69 74 65 64 20 77 69 74 68    20 60 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 62 61  | has.visited.with.`nov-history-ba | 
| 17e0 |  63 6b 27 20 63 6f 6d 6d 61 6e 64 2e 0a 45 61 63    68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65  | ck'.command..Each.element.of.the | 
| 1800 |  20 73 74 61 63 6b 20 69 73 20 61 20 6c 69 73 74    20 28 4e 4f 44 45 49 4e 44 45 58 20 42 55 46 46  | .stack.is.a.list.(NODEINDEX.BUFF | 
| 1820 |  45 52 50 4f 53 29 2e 22 29 0a 0a 28 64 65 66 75    6e 20 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20  | ERPOS).")..(defun.nov-make-path. | 
| 1840 |  28 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29    0a 20 20 22 43 72 65 61 74 65 20 61 20 70 61 74  | (directory.file)..."Create.a.pat | 
| 1860 |  68 20 66 72 6f 6d 20 44 49 52 45 43 54 4f 52 59    20 61 6e 64 20 46 49 4c 45 2e 22 0a 20 20 28 63  | h.from.DIRECTORY.and.FILE."...(c | 
| 1880 |  6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65    2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 64 69  | oncat.(file-name-as-directory.di | 
| 18a0 |  72 65 63 74 6f 72 79 29 20 66 69 6c 65 29 29 0a    0a 28 64 65 66 75 6e 20 6e 6f 76 2d 64 69 72 65  | rectory).file))..(defun.nov-dire | 
| 18c0 |  63 74 6f 72 79 2d 66 69 6c 65 73 20 28 64 69 72    65 63 74 6f 72 79 29 0a 20 20 22 52 65 74 75 72  | ctory-files.(directory)..."Retur | 
| 18e0 |  6e 73 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c    65 73 20 69 6e 20 44 49 52 45 43 54 4f 52 59 20  | ns.a.list.of.files.in.DIRECTORY. | 
| 1900 |  65 78 63 65 70 74 20 66 6f 72 20 2e 20 61 6e 64    20 2e 2e 22 0a 20 20 28 73 65 71 2d 72 65 6d 6f  | except.for...and..."...(seq-remo | 
| 1920 |  76 65 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65    29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d  | ve.(lambda.(file).(string-match- | 
| 1940 |  70 20 22 2f 5c 5c 2e 5c 5c 28 3f 3a 5c 5c 2e 5c    5c 29 3f 5c 5c 27 22 20 66 69 6c 65 29 29 0a 20  | p."/\\.\\(?:\\.\\)?\\'".file)).. | 
| 1960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69    72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69  | .............(directory-files.di | 
| 1980 |  72 65 63 74 6f 72 79 20 74 29 29 29 0a 0a 28 64    65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 61 69 6e  | rectory.t)))..(defun.nov-contain | 
| 19a0 |  73 2d 6e 65 73 74 65 64 2d 64 69 72 65 63 74 6f    72 79 2d 70 20 28 64 69 72 65 63 74 6f 72 79 29  | s-nested-directory-p.(directory) | 
| 19c0 |  0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 44    49 52 45 43 54 4f 52 59 20 63 6f 6e 74 61 69 6e  | ..."Non-nil.if.DIRECTORY.contain | 
| 19e0 |  73 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 64 69    72 65 63 74 6f 72 79 2e 22 0a 20 20 28 6c 65 74  | s.exactly.one.directory."...(let | 
| 1a00 |  2a 20 28 28 66 69 6c 65 73 20 28 6e 6f 76 2d 64    69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64  | *.((files.(nov-directory-files.d | 
| 1a20 |  69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20    20 20 20 20 28 66 69 6c 65 20 28 63 61 72 20 66  | irectory))..........(file.(car.f | 
| 1a40 |  69 6c 65 73 29 29 29 0a 20 20 20 20 28 61 6e 64    20 28 3d 20 28 6c 65 6e 67 74 68 20 66 69 6c 65  | iles))).....(and.(=.(length.file | 
| 1a60 |  73 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 28    66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70  | s).1)..........(file-directory-p | 
| 1a80 |  20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20    66 69 6c 65 29 29 29 0a 0a 28 64 65 66 75 6e 20  | .file)..........file)))..(defun. | 
| 1aa0 |  6e 6f 76 2d 75 6e 6e 65 73 74 2d 64 69 72 65 63    74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 20  | nov-unnest-directory.(directory. | 
| 1ac0 |  63 68 69 6c 64 29 0a 20 20 22 4d 6f 76 65 20 63    6f 6e 74 65 6e 74 73 20 6f 66 20 43 48 49 4c 44  | child)..."Move.contents.of.CHILD | 
| 1ae0 |  20 69 6e 74 6f 20 44 49 52 45 43 54 4f 52 59 2c    20 74 68 65 6e 20 64 65 6c 65 74 65 20 43 48 49  | .into.DIRECTORY,.then.delete.CHI | 
| 1b00 |  4c 44 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a    20 74 68 69 73 20 77 69 6c 6c 20 6d 6f 73 74 20  | LD."...;;.FIXME:.this.will.most. | 
| 1b20 |  63 65 72 74 61 69 6e 6c 79 20 66 61 69 6c 20 66    6f 72 20 63 6f 6e 2f 63 6f 6e 0a 20 20 28 64 6f  | certainly.fail.for.con/con...(do | 
| 1b40 |  6c 69 73 74 20 28 69 74 65 6d 20 28 6e 6f 76 2d    64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20  | list.(item.(nov-directory-files. | 
| 1b60 |  63 68 69 6c 64 29 29 0a 20 20 20 20 28 72 65 6e    61 6d 65 2d 66 69 6c 65 20 69 74 65 6d 20 64 69  | child)).....(rename-file.item.di | 
| 1b80 |  72 65 63 74 6f 72 79 29 29 0a 20 20 28 64 65 6c    65 74 65 2d 64 69 72 65 63 74 6f 72 79 20 63 68  | rectory))...(delete-directory.ch | 
| 1ba0 |  69 6c 64 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f    76 2d 2d 66 69 78 2d 70 65 72 6d 69 73 73 69 6f  | ild))..(defun.nov--fix-permissio | 
| 1bc0 |  6e 73 20 28 66 69 6c 65 2d 6f 72 2d 64 69 72 65    63 74 6f 72 79 20 6d 6f 64 65 29 0a 20 20 28 6c  | ns.(file-or-directory.mode)...(l | 
| 1be0 |  65 74 2a 20 28 28 6d 6f 64 65 73 20 28 66 69 6c    65 2d 6d 6f 64 65 73 20 66 69 6c 65 2d 6f 72 2d  | et*.((modes.(file-modes.file-or- | 
| 1c00 |  64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20    20 20 20 20 20 28 66 69 78 65 64 2d 6d 6f 64 65  | directory))..........(fixed-mode | 
| 1c20 |  20 28 66 69 6c 65 2d 6d 6f 64 65 73 2d 73 79 6d    62 6f 6c 69 63 2d 74 6f 2d 6e 75 6d 62 65 72 20  | .(file-modes-symbolic-to-number. | 
| 1c40 |  6d 6f 64 65 20 6d 6f 64 65 73 29 29 29 0a 20 20    20 20 28 73 65 74 2d 66 69 6c 65 2d 6d 6f 64 65  | mode.modes))).....(set-file-mode | 
| 1c60 |  73 20 66 69 6c 65 2d 6f 72 2d 64 69 72 65 63 74    6f 72 79 20 66 69 78 65 64 2d 6d 6f 64 65 29 29  | s.file-or-directory.fixed-mode)) | 
| 1c80 |  29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 66 69    78 2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 28 64  | )..(defun.nov-fix-permissions.(d | 
| 1ca0 |  69 72 65 63 74 6f 72 79 29 0a 20 20 22 49 74 65    72 61 74 65 20 72 65 63 75 72 73 69 76 65 6c 79  | irectory)..."Iterate.recursively | 
| 1cc0 |  20 74 68 72 6f 75 67 68 20 44 49 52 45 43 54 4f    52 59 20 74 6f 20 66 69 78 20 69 74 73 20 66 69  | .through.DIRECTORY.to.fix.its.fi | 
| 1ce0 |  6c 65 73 2e 22 0a 20 20 28 6e 6f 76 2d 2d 66 69    78 2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 64 69  | les."...(nov--fix-permissions.di | 
| 1d00 |  72 65 63 74 6f 72 79 20 22 2b 72 78 22 29 0a 20    20 28 64 6f 6c 69 73 74 20 28 66 69 6c 65 20 28  | rectory."+rx")...(dolist.(file.( | 
| 1d20 |  6e 6f 76 2d 64 69 72 65 63 74 6f 72 79 2d 66 69    6c 65 73 20 64 69 72 65 63 74 6f 72 79 29 29 0a  | nov-directory-files.directory)). | 
| 1d40 |  20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69    72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a  | ....(if.(file-directory-p.file). | 
| 1d60 |  20 20 20 20 20 20 20 20 28 6e 6f 76 2d 66 69 78    2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 69 6c  | ........(nov-fix-permissions.fil | 
| 1d80 |  65 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 2d 66    69 78 2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 66  | e).......(nov--fix-permissions.f | 
| 1da0 |  69 6c 65 20 22 2b 72 22 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6e 6f 76 2d 75 6e 7a 69 70 2d 65  | ile."+r"))))..(defun.nov-unzip-e | 
| 1dc0 |  70 75 62 20 28 64 69 72 65 63 74 6f 72 79 20 66    69 6c 65 6e 61 6d 65 29 0a 20 20 22 45 78 74 72  | pub.(directory.filename)..."Extr | 
| 1de0 |  61 63 74 20 46 49 4c 45 4e 41 4d 45 20 69 6e 74    6f 20 44 49 52 45 43 54 4f 52 59 2e 0a 55 6e 6e  | act.FILENAME.into.DIRECTORY..Unn | 
| 1e00 |  65 63 65 73 73 61 72 79 20 6e 65 73 74 69 6e 67    20 69 73 20 72 65 6d 6f 76 65 64 20 77 69 74 68  | ecessary.nesting.is.removed.with | 
| 1e20 |  20 60 6e 6f 76 2d 75 6e 6e 65 73 74 2d 64 69 72    65 63 74 6f 72 79 27 2e 22 0a 20 20 28 6c 65 74  | .`nov-unnest-directory'."...(let | 
| 1e40 |  2a 20 28 28 73 74 61 74 75 73 20 28 61 70 70 6c    79 20 23 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73  | *.((status.(apply.#'call-process | 
| 1e60 |  20 6e 6f 76 2d 75 6e 7a 69 70 2d 70 72 6f 67 72    61 6d 20 6e 69 6c 20 22 2a 6e 6f 76 20 75 6e 7a  | .nov-unzip-program.nil."*nov.unz | 
| 1e80 |  69 70 2a 22 20 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ip*".t.........................( | 
| 1ea0 |  6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28    61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20  | mapcar.(lambda.(arg)............ | 
| 1ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20  | .......................(cond.... | 
| 1ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1f00 |  28 28 65 71 20 61 72 67 20 27 64 69 72 65 63 74    6f 72 79 29 20 64 69 72 65 63 74 6f 72 79 29 0a  | ((eq.arg.'directory).directory). | 
| 1f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1f40 |  20 20 20 28 28 65 71 20 61 72 67 20 27 66 69 6c    65 6e 61 6d 65 29 20 66 69 6c 65 6e 61 6d 65 29  | ...((eq.arg.'filename).filename) | 
| 1f60 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1f80 |  20 20 20 20 28 74 20 61 72 67 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(t.arg)))................... | 
| 1fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f    76 2d 75 6e 7a 69 70 2d 61 72 67 73 29 29 29 0a  | ..............nov-unzip-args))). | 
| 1fc0 |  20 20 20 20 20 20 20 20 20 63 68 69 6c 64 29 0a    20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71  | .........child).....(while.(setq | 
| 1fe0 |  20 63 68 69 6c 64 20 28 6e 6f 76 2d 63 6f 6e 74    61 69 6e 73 2d 6e 65 73 74 65 64 2d 64 69 72 65  | .child.(nov-contains-nested-dire | 
| 2000 |  63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72    79 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d 75  | ctory-p.directory)).......(nov-u | 
| 2020 |  6e 6e 65 73 74 2d 64 69 72 65 63 74 6f 72 79 20    64 69 72 65 63 74 6f 72 79 20 63 68 69 6c 64 29  | nnest-directory.directory.child) | 
| 2040 |  29 0a 20 20 20 20 3b 3b 20 48 41 43 4b 3a 20 75    6e 7a 69 70 20 70 72 65 73 65 72 76 65 73 20 66  | ).....;;.HACK:.unzip.preserves.f | 
| 2060 |  69 6c 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c    20 6e 6f 20 6d 61 74 74 65 72 20 68 6f 77 20 73  | ile.permissions,.no.matter.how.s | 
| 2080 |  69 6c 6c 79 20 74 68 65 79 0a 20 20 20 20 3b 3b    20 61 72 65 2c 20 73 6f 20 65 6e 73 75 72 65 20  | illy.they.....;;.are,.so.ensure. | 
| 20a0 |  66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74    6f 72 69 65 73 20 61 72 65 20 72 65 61 64 61 62  | files.and.directories.are.readab | 
| 20c0 |  6c 65 0a 20 20 20 20 28 6e 6f 76 2d 66 69 78 2d    70 65 72 6d 69 73 73 69 6f 6e 73 20 64 69 72 65  | le.....(nov-fix-permissions.dire | 
| 20e0 |  63 74 6f 72 79 29 0a 20 20 20 20 73 74 61 74 75    73 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d  | ctory).....status))..(defun.nov- | 
| 2100 |  77 61 72 6e 20 28 6d 65 73 73 61 67 65 20 26 6f    70 74 69 6f 6e 61 6c 20 6c 65 76 65 6c 29 0a 20  | warn.(message.&optional.level).. | 
| 2120 |  20 22 4c 69 6b 65 20 60 64 69 73 70 6c 61 79 2d    77 61 72 6e 69 6e 67 27 2c 20 62 75 74 20 66 6f  | ."Like.`display-warning',.but.fo | 
| 2140 |  72 20 6e 6f 76 2d 73 70 65 63 69 66 69 63 20 77    61 72 6e 69 6e 67 73 2e 0a 44 69 73 70 6c 61 79  | r.nov-specific.warnings..Display | 
| 2160 |  73 20 4d 45 53 53 41 47 45 20 69 6e 20 61 20 77    61 72 6e 69 6e 67 73 20 62 75 66 66 65 72 2c 20  | s.MESSAGE.in.a.warnings.buffer,. | 
| 2180 |  77 69 74 68 20 4c 45 56 45 4c 20 61 73 20 73 65    76 65 72 69 74 79 2e 22 0a 20 20 28 64 69 73 70  | with.LEVEL.as.severity."...(disp | 
| 21a0 |  6c 61 79 2d 77 61 72 6e 69 6e 67 20 27 6e 6f 76    20 6d 65 73 73 61 67 65 20 6c 65 76 65 6c 29 29  | lay-warning.'nov.message.level)) | 
| 21c0 |  0a 0a 28 64 65 66 6d 61 63 72 6f 20 6e 6f 76 2d    69 67 6e 6f 72 65 2d 66 69 6c 65 2d 65 72 72 6f  | ..(defmacro.nov-ignore-file-erro | 
| 21e0 |  72 73 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a    20 20 22 4c 69 6b 65 20 60 69 67 6e 6f 72 65 2d  | rs.(&rest.body)..."Like.`ignore- | 
| 2200 |  65 72 72 6f 72 73 27 2c 20 62 75 74 20 66 6f 72    20 66 69 6c 65 20 65 72 72 6f 72 73 2e 22 0a 20  | errors',.but.for.file.errors.".. | 
| 2220 |  20 60 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73    65 20 6e 69 6c 20 28 70 72 6f 67 6e 20 2c 40 62  | .`(condition-case.nil.(progn.,@b | 
| 2240 |  6f 64 79 29 20 28 66 69 6c 65 2d 65 72 72 6f 72    20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20  | ody).(file-error.nil)))..(defun. | 
| 2260 |  6e 6f 76 2d 73 6c 75 72 70 20 28 66 69 6c 65 6e    61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 61  | nov-slurp.(filename.&optional.pa | 
| 2280 |  72 73 65 2d 78 6d 6c 2d 70 29 0a 20 20 22 52 65    74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74  | rse-xml-p)..."Return.the.content | 
| 22a0 |  73 20 6f 66 20 46 49 4c 45 4e 41 4d 45 2e 0a 49    66 20 50 41 52 53 45 2d 58 4d 4c 2d 50 20 69 73  | s.of.FILENAME..If.PARSE-XML-P.is | 
| 22c0 |  20 74 2c 20 72 65 74 75 72 6e 20 74 68 65 20 63    6f 6e 74 65 6e 74 73 20 61 73 20 70 61 72 73 65  | .t,.return.the.contents.as.parse | 
| 22e0 |  64 20 62 79 20 6c 69 62 78 6d 6c 2e 22 0a 20 20    28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65  | d.by.libxml."...(with-temp-buffe | 
| 2300 |  72 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69    6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 6c 65  | r.....(insert-file-contents.file | 
| 2320 |  6e 61 6d 65 29 0a 20 20 20 20 28 69 66 20 70 61    72 73 65 2d 78 6d 6c 2d 70 0a 20 20 20 20 20 20  | name).....(if.parse-xml-p....... | 
| 2340 |  20 20 28 6c 69 62 78 6d 6c 2d 70 61 72 73 65 2d    78 6d 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e  | ..(libxml-parse-xml-region.(poin | 
| 2360 |  74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61    78 29 29 0a 20 20 20 20 20 20 28 62 75 66 66 65  | t-min).(point-max)).......(buffe | 
| 2380 |  72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6e 6f 76 2d 6d 69 6d 65 74 79 70  | r-string))))..(defun.nov-mimetyp | 
| 23a0 |  65 2d 76 61 6c 69 64 2d 70 20 28 64 69 72 65 63    74 6f 72 79 29 0a 20 20 22 52 65 74 75 72 6e 20  | e-valid-p.(directory)..."Return. | 
| 23c0 |  74 20 69 66 20 44 49 52 45 43 54 4f 52 59 20 63    6f 6e 74 61 69 6e 73 20 61 20 76 61 6c 69 64 20  | t.if.DIRECTORY.contains.a.valid. | 
| 23e0 |  45 50 55 42 20 6d 69 6d 65 74 79 70 65 20 66 69    6c 65 2e 22 0a 20 20 28 6e 6f 76 2d 69 67 6e 6f  | EPUB.mimetype.file."...(nov-igno | 
| 2400 |  72 65 2d 66 69 6c 65 2d 65 72 72 6f 72 73 0a 20    20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61  | re-file-errors.....(let.((filena | 
| 2420 |  6d 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74    68 20 64 69 72 65 63 74 6f 72 79 20 22 6d 69 6d  | me.(nov-make-path.directory."mim | 
| 2440 |  65 74 79 70 65 22 29 29 29 0a 20 20 20 20 20 20    28 65 71 75 61 6c 20 28 6e 6f 76 2d 73 6c 75 72  | etype"))).......(equal.(nov-slur | 
| 2460 |  70 20 66 69 6c 65 6e 61 6d 65 29 20 22 61 70 70    6c 69 63 61 74 69 6f 6e 2f 65 70 75 62 2b 7a 69  | p.filename)."application/epub+zi | 
| 2480 |  70 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e    6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d 66 69 6c  | p"))))..(defun.nov-container-fil | 
| 24a0 |  65 6e 61 6d 65 20 28 64 69 72 65 63 74 6f 72 79    29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20  | ename.(directory)..."Return.the. | 
| 24c0 |  63 6f 6e 74 61 69 6e 65 72 20 66 69 6c 65 6e 61    6d 65 20 66 6f 72 20 44 49 52 45 43 54 4f 52 59  | container.filename.for.DIRECTORY | 
| 24e0 |  2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65    6e 61 6d 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70  | ."...(let.((filename.(nov-make-p | 
| 2500 |  61 74 68 20 64 69 72 65 63 74 6f 72 79 20 22 4d    45 54 41 2d 49 4e 46 22 29 29 29 0a 20 20 20 20  | ath.directory."META-INF")))..... | 
| 2520 |  28 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20 66    69 6c 65 6e 61 6d 65 20 22 63 6f 6e 74 61 69 6e  | (nov-make-path.filename."contain | 
| 2540 |  65 72 2e 78 6d 6c 22 29 29 29 0a 0a 28 64 65 66    75 6e 20 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72  | er.xml")))..(defun.nov-container | 
| 2560 |  2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 6e 61 6d    65 20 28 63 6f 6e 74 65 6e 74 29 0a 20 20 22 52  | -content-filename.(content)..."R | 
| 2580 |  65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 6e    74 20 66 69 6c 65 6e 61 6d 65 20 66 6f 72 20 43  | eturn.the.content.filename.for.C | 
| 25a0 |  4f 4e 54 45 4e 54 2e 22 0a 20 20 28 6c 65 74 2a    20 28 28 71 75 65 72 79 20 22 63 6f 6e 74 61 69  | ONTENT."...(let*.((query."contai | 
| 25c0 |  6e 65 72 3e 72 6f 6f 74 66 69 6c 65 73 3e 72 6f    6f 74 66 69 6c 65 5b 6d 65 64 69 61 2d 74 79 70  | ner>rootfiles>rootfile[media-typ | 
| 25e0 |  65 3d 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f    65 62 70 73 2d 70 61 63 6b 61 67 65 2b 78 6d 6c  | e='application/oebps-package+xml | 
| 2600 |  27 5d 22 29 0a 20 20 20 20 20 20 20 20 20 28 6e    6f 64 65 20 28 65 73 78 6d 6c 2d 71 75 65 72 79  | ']")..........(node.(esxml-query | 
| 2620 |  20 71 75 65 72 79 20 63 6f 6e 74 65 6e 74 29 29    29 0a 20 20 20 20 28 64 6f 6d 2d 61 74 74 72 20  | .query.content))).....(dom-attr. | 
| 2640 |  6e 6f 64 65 20 27 66 75 6c 6c 2d 70 61 74 68 29    29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63  | node.'full-path)))..(defun.nov-c | 
| 2660 |  6f 6e 74 61 69 6e 65 72 2d 76 61 6c 69 64 2d 70    20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22  | ontainer-valid-p.(directory)..." | 
| 2680 |  52 65 74 75 72 6e 20 74 20 69 66 20 44 49 52 45    43 54 4f 52 59 20 68 6f 6c 64 73 20 61 20 76 61  | Return.t.if.DIRECTORY.holds.a.va | 
| 26a0 |  6c 69 64 20 45 50 55 42 20 63 6f 6e 74 61 69 6e    65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69  | lid.EPUB.container."...(let.((fi | 
| 26c0 |  6c 65 6e 61 6d 65 20 28 6e 6f 76 2d 63 6f 6e 74    61 69 6e 65 72 2d 66 69 6c 65 6e 61 6d 65 20 64  | lename.(nov-container-filename.d | 
| 26e0 |  69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20    28 77 68 65 6e 20 28 61 6e 64 20 66 69 6c 65 6e  | irectory))).....(when.(and.filen | 
| 2700 |  61 6d 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73    2d 70 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20  | ame.(file-exists-p.filename))... | 
| 2720 |  20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74    65 6e 74 20 28 6e 6f 76 2d 73 6c 75 72 70 20 66  | ....(let*.((content.(nov-slurp.f | 
| 2740 |  69 6c 65 6e 61 6d 65 20 74 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e  | ilename.t))..............(conten | 
| 2760 |  74 2d 66 69 6c 65 20 28 6e 6f 76 2d 63 6f 6e 74    61 69 6e 65 72 2d 63 6f 6e 74 65 6e 74 2d 66 69  | t-file.(nov-container-content-fi | 
| 2780 |  6c 65 6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 29    29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | lename.content))).........(when. | 
| 27a0 |  28 61 6e 64 20 63 6f 6e 74 65 6e 74 20 63 6f 6e    74 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 20  | (and.content.content-file)...... | 
| 27c0 |  20 20 20 20 20 28 66 69 6c 65 2d 65 78 69 73 74    73 2d 70 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61  | .....(file-exists-p.(nov-make-pa | 
| 27e0 |  74 68 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e    74 65 6e 74 2d 66 69 6c 65 29 29 29 29 29 29 29  | th.directory.content-file))))))) | 
| 2800 |  0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 65 70 75    62 2d 76 61 6c 69 64 2d 70 20 28 64 69 72 65 63  | ..(defun.nov-epub-valid-p.(direc | 
| 2820 |  74 6f 72 79 29 0a 20 20 22 52 65 74 75 72 6e 20    74 20 69 66 20 44 49 52 45 43 54 4f 52 59 20 6d  | tory)..."Return.t.if.DIRECTORY.m | 
| 2840 |  61 6b 65 73 20 75 70 20 61 20 76 61 6c 69 64 20    45 50 55 42 20 64 6f 63 75 6d 65 6e 74 2e 22 0a  | akes.up.a.valid.EPUB.document.". | 
| 2860 |  20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6e 6f    76 2d 6d 69 6d 65 74 79 70 65 2d 76 61 6c 69 64  | ..(when.(not.(nov-mimetype-valid | 
| 2880 |  2d 70 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20    20 20 20 28 6d 65 73 73 61 67 65 20 22 49 6e 76  | -p.directory)).....(message."Inv | 
| 28a0 |  61 6c 69 64 20 6d 69 6d 65 74 79 70 65 22 29 29    0a 20 20 28 6e 6f 76 2d 63 6f 6e 74 61 69 6e 65  | alid.mimetype"))...(nov-containe | 
| 28c0 |  72 2d 76 61 6c 69 64 2d 70 20 64 69 72 65 63 74    6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f  | r-valid-p.directory))..(defun.no | 
| 28e0 |  76 2d 75 72 6c 64 65 63 6f 64 65 20 28 73 74 72    69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 75  | v-urldecode.(string)..."Return.u | 
| 2900 |  72 6c 64 65 63 6f 64 65 64 20 76 65 72 73 69 6f    6e 20 6f 66 20 53 54 52 49 4e 47 20 6f 72 20 6e  | rldecoded.version.of.STRING.or.n | 
| 2920 |  69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 73 74 72    69 6e 67 0a 20 20 20 20 28 75 72 6c 2d 75 6e 68  | il."...(when.string.....(url-unh | 
| 2940 |  65 78 2d 73 74 72 69 6e 67 20 73 74 72 69 6e 67    29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d  | ex-string.string)))..(defun.nov- | 
| 2960 |  63 6f 6e 74 65 6e 74 2d 76 65 72 73 69 6f 6e 20    28 63 6f 6e 74 65 6e 74 29 0a 20 20 22 52 65 74  | content-version.(content)..."Ret | 
| 2980 |  75 72 6e 20 74 68 65 20 45 50 55 42 20 76 65 72    73 69 6f 6e 20 66 6f 72 20 43 4f 4e 54 45 4e 54  | urn.the.EPUB.version.for.CONTENT | 
| 29a0 |  2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64    65 20 28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22  | ."...(let*.((node.(esxml-query." | 
| 29c0 |  70 61 63 6b 61 67 65 22 20 63 6f 6e 74 65 6e 74    29 29 0a 20 20 20 20 20 20 20 20 20 28 76 65 72  | package".content))..........(ver | 
| 29e0 |  73 69 6f 6e 20 28 64 6f 6d 2d 61 74 74 72 20 6e    6f 64 65 20 27 76 65 72 73 69 6f 6e 29 29 29 0a  | sion.(dom-attr.node.'version))). | 
| 2a00 |  20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 76    65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 28 65  | ....(when.(not.version).......(e | 
| 2a20 |  72 72 6f 72 20 22 56 65 72 73 69 6f 6e 20 6e 6f    74 20 73 70 65 63 69 66 69 65 64 22 29 29 0a 20  | rror."Version.not.specified")).. | 
| 2a40 |  20 20 20 76 65 72 73 69 6f 6e 29 29 0a 0a 28 64    65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74  | ...version))..(defun.nov-content | 
| 2a60 |  2d 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 66 69    65 72 2d 6e 61 6d 65 20 28 63 6f 6e 74 65 6e 74  | -unique-identifier-name.(content | 
| 2a80 |  29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20    75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65  | )..."Return.the.unique.identifie | 
| 2aa0 |  72 20 6e 61 6d 65 20 72 65 66 65 72 65 6e 63 65    64 20 69 6e 20 43 4f 4e 54 45 4e 54 2e 0a 54 68  | r.name.referenced.in.CONTENT..Th | 
| 2ac0 |  69 73 20 69 73 20 75 73 65 64 20 69 6e 20 60 6e    6f 76 2d 63 6f 6e 74 65 6e 74 2d 75 6e 69 71 75  | is.is.used.in.`nov-content-uniqu | 
| 2ae0 |  65 2d 69 64 65 6e 74 69 66 69 65 72 27 20 74 6f    20 72 65 74 72 69 65 76 65 20 74 68 65 0a 74 68  | e-identifier'.to.retrieve.the.th | 
| 2b00 |  65 20 73 70 65 63 69 66 69 63 20 74 79 70 65 20    6f 66 20 75 6e 69 71 75 65 20 69 64 65 6e 74 69  | e.specific.type.of.unique.identi | 
| 2b20 |  66 69 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28    28 6e 6f 64 65 20 28 65 73 78 6d 6c 2d 71 75 65  | fier."...(let*.((node.(esxml-que | 
| 2b40 |  72 79 20 22 70 61 63 6b 61 67 65 5b 75 6e 69 71    75 65 2d 69 64 65 6e 74 69 66 69 65 72 5d 22 20  | ry."package[unique-identifier]". | 
| 2b60 |  63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20    20 20 20 28 6e 61 6d 65 20 28 64 6f 6d 2d 61 74  | content))..........(name.(dom-at | 
| 2b80 |  74 72 20 6e 6f 64 65 20 27 75 6e 69 71 75 65 2d    69 64 65 6e 74 69 66 69 65 72 29 29 29 0a 20 20  | tr.node.'unique-identifier)))... | 
| 2ba0 |  20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6e 61 6d    65 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20  | ..(when.(not.name).......(error. | 
| 2bc0 |  22 55 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69    65 72 20 6e 61 6d 65 20 6e 6f 74 20 73 70 65 63  | "Unique.identifier.name.not.spec | 
| 2be0 |  69 66 69 65 64 22 29 29 0a 20 20 20 20 6e 61 6d    65 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d  | ified")).....name))..(defun.nov- | 
| 2c00 |  63 6f 6e 74 65 6e 74 2d 75 6e 69 71 75 65 2d 69    64 65 6e 74 69 66 69 65 72 20 28 63 6f 6e 74 65  | content-unique-identifier.(conte | 
| 2c20 |  6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68    65 20 74 68 65 20 75 6e 69 71 75 65 20 69 64 65  | nt)..."Return.the.the.unique.ide | 
| 2c40 |  6e 74 69 66 69 65 72 20 66 6f 72 20 43 4f 4e 54    45 4e 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28  | ntifier.for.CONTENT."...(let*.(( | 
| 2c60 |  6e 61 6d 65 20 28 6e 6f 76 2d 63 6f 6e 74 65 6e    74 2d 75 6e 69 71 75 65 2d 69 64 65 6e 74 69 66  | name.(nov-content-unique-identif | 
| 2c80 |  69 65 72 2d 6e 61 6d 65 20 63 6f 6e 74 65 6e 74    29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 6c  | ier-name.content))..........(sel | 
| 2ca0 |  65 63 74 6f 72 20 28 66 6f 72 6d 61 74 20 22 70    61 63 6b 61 67 65 3e 6d 65 74 61 64 61 74 61 3e  | ector.(format."package>metadata> | 
| 2cc0 |  69 64 65 6e 74 69 66 69 65 72 5b 69 64 3d 27 25    73 27 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20  | identifier[id='%s']"............ | 
| 2ce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 65 73 78 6d 6c 2d 71 75 65 72 79 2d 63 73 73  | ................(esxml-query-css | 
| 2d00 |  2d 65 73 63 61 70 65 20 6e 61 6d 65 29 29 29 0a    20 20 20 20 20 20 20 20 20 28 69 64 20 28 63 61  | -escape.name)))..........(id.(ca | 
| 2d20 |  72 20 28 64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20    28 65 73 78 6d 6c 2d 71 75 65 72 79 20 73 65 6c  | r.(dom-children.(esxml-query.sel | 
| 2d40 |  65 63 74 6f 72 20 63 6f 6e 74 65 6e 74 29 29 29    29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f  | ector.content))))).....(when.(no | 
| 2d60 |  74 20 69 64 29 0a 20 20 20 20 20 20 28 65 72 72    6f 72 20 22 55 6e 69 71 75 65 20 69 64 65 6e 74  | t.id).......(error."Unique.ident | 
| 2d80 |  69 66 69 65 72 20 6e 6f 74 20 66 6f 75 6e 64 20    62 79 20 69 74 73 20 6e 61 6d 65 3a 20 25 73 22  | ifier.not.found.by.its.name:.%s" | 
| 2da0 |  20 6e 61 6d 65 29 29 0a 20 20 20 20 28 69 6e 74    65 72 6e 20 69 64 29 29 29 0a 0a 3b 3b 20 4e 4f  | .name)).....(intern.id)))..;;.NO | 
| 2dc0 |  54 45 3a 20 75 6e 69 71 75 65 20 69 64 65 6e 74    69 66 69 65 72 20 69 73 20 71 75 65 72 69 65 64  | TE:.unique.identifier.is.queried | 
| 2de0 |  20 73 65 70 61 72 61 74 65 6c 79 20 61 73 20 69    64 65 6e 74 69 66 69 65 72 73 20 63 61 6e 0a 3b  | .separately.as.identifiers.can.; | 
| 2e00 |  3b 20 61 70 70 65 61 72 20 6d 6f 72 65 20 74 68    61 6e 20 6f 6e 63 65 20 61 6e 64 20 6f 6e 6c 79  | ;.appear.more.than.once.and.only | 
| 2e20 |  20 6f 6e 65 20 6f 66 20 74 68 65 6d 20 63 61 6e    20 62 65 20 74 68 65 20 75 6e 69 71 75 65 20 6f  | .one.of.them.can.be.the.unique.o | 
| 2e40 |  6e 65 0a 28 64 65 66 76 61 72 20 6e 6f 76 2d 72    65 71 75 69 72 65 64 2d 6d 65 74 61 64 61 74 61  | ne.(defvar.nov-required-metadata | 
| 2e60 |  2d 74 61 67 73 20 27 28 74 69 74 6c 65 20 6c 61    6e 67 75 61 67 65 29 0a 20 20 22 52 65 71 75 69  | -tags.'(title.language)..."Requi | 
| 2e80 |  72 65 64 20 6d 65 74 61 64 61 74 61 20 74 61 67    73 20 75 73 65 64 20 66 6f 72 20 60 6e 6f 76 2d  | red.metadata.tags.used.for.`nov- | 
| 2ea0 |  63 6f 6e 74 65 6e 74 2d 6d 65 74 61 64 61 74 61    27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6e 6f  | content-metadata'.")..(defvar.no | 
| 2ec0 |  76 2d 6f 70 74 69 6f 6e 61 6c 2d 6d 65 74 61 64    61 74 61 2d 74 61 67 73 0a 20 20 27 28 63 6f 6e  | v-optional-metadata-tags...'(con | 
| 2ee0 |  74 72 69 62 75 74 6f 72 20 63 6f 76 65 72 61 67    65 20 63 72 65 61 74 6f 72 20 64 61 74 65 20 64  | tributor.coverage.creator.date.d | 
| 2f00 |  65 73 63 72 69 70 74 69 6f 6e 20 66 6f 72 6d 61    74 0a 20 20 20 20 70 75 62 6c 69 73 68 65 72 20  | escription.format.....publisher. | 
| 2f20 |  72 65 6c 61 74 69 6f 6e 20 72 69 67 68 74 73 20    73 6f 75 72 63 65 20 73 75 62 6a 65 63 74 20 74  | relation.rights.source.subject.t | 
| 2f40 |  79 70 65 29 0a 20 20 22 4f 70 74 69 6f 6e 61 6c    20 6d 65 74 61 64 61 74 61 20 74 61 67 73 20 75  | ype)..."Optional.metadata.tags.u | 
| 2f60 |  73 65 64 20 66 6f 72 20 60 6e 6f 76 2d 63 6f 6e    74 65 6e 74 2d 6d 65 74 61 64 61 74 61 27 2e 22  | sed.for.`nov-content-metadata'." | 
| 2f80 |  29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f    6e 74 65 6e 74 2d 6d 65 74 61 64 61 74 61 20 28  | )..(defun.nov-content-metadata.( | 
| 2fa0 |  63 6f 6e 74 65 6e 74 29 0a 20 20 22 52 65 74 75    72 6e 20 61 20 6d 65 74 61 64 61 74 61 20 61 6c  | content)..."Return.a.metadata.al | 
| 2fc0 |  69 73 74 20 66 6f 72 20 43 4f 4e 54 45 4e 54 2e    0a 52 65 71 75 69 72 65 64 20 6b 65 79 73 20 61  | ist.for.CONTENT..Required.keys.a | 
| 2fe0 |  72 65 20 5c 5c 3d 27 69 64 65 6e 74 69 66 69 65    72 20 61 6e 64 20 65 76 65 72 79 74 68 69 6e 67  | re.\\='identifier.and.everything | 
| 3000 |  20 69 6e 0a 60 6e 6f 76 2d 72 65 71 75 69 72 65    64 2d 6d 65 74 61 64 61 74 61 2d 74 61 67 73 27  | .in.`nov-required-metadata-tags' | 
| 3020 |  2c 20 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 73 20    61 72 65 20 69 6e 0a 60 6e 6f 76 2d 6f 70 74 69  | ,.optional.keys.are.in.`nov-opti | 
| 3040 |  6f 6e 61 6c 2d 6d 65 74 61 64 61 74 61 2d 74 61    67 73 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28  | onal-metadata-tags'."...(let*.(( | 
| 3060 |  69 64 65 6e 74 69 66 69 65 72 20 28 6e 6f 76 2d    63 6f 6e 74 65 6e 74 2d 75 6e 69 71 75 65 2d 69  | identifier.(nov-content-unique-i | 
| 3080 |  64 65 6e 74 69 66 69 65 72 20 63 6f 6e 74 65 6e    74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61  | dentifier.content))..........(ca | 
| 30a0 |  6e 64 69 64 61 74 65 73 20 28 6d 61 70 63 61 72    20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 0a  | ndidates.(mapcar.(lambda.(node). | 
| 30c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 30e0 |  63 6f 6e 73 20 28 64 6f 6d 2d 74 61 67 20 6e 6f    64 65 29 20 28 63 61 72 20 28 64 6f 6d 2d 63 68  | cons.(dom-tag.node).(car.(dom-ch | 
| 3100 |  69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ildren.node))))................. | 
| 3120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 73    78 6d 6c 2d 71 75 65 72 79 2d 61 6c 6c 20 22 70  | .............(esxml-query-all."p | 
| 3140 |  61 63 6b 61 67 65 3e 6d 65 74 61 64 61 74 61 3e    2a 22 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20  | ackage>metadata>*".content)))... | 
| 3160 |  20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 64    20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61  | .......(required.(mapcar.(lambda | 
| 3180 |  20 28 74 61 67 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(tag).......................... | 
| 31a0 |  20 20 20 20 28 6c 65 74 20 28 28 63 61 6e 64 69    64 61 74 65 20 28 63 64 72 20 28 61 73 73 71 20  | ....(let.((candidate.(cdr.(assq. | 
| 31c0 |  74 61 67 20 63 61 6e 64 69 64 61 74 65 73 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | tag.candidates)))).............. | 
| 31e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 77 68 65 6e 20 28 6e 6f 74 20 63 61 6e  | ..................(when.(not.can | 
| 3200 |  64 69 64 61 74 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | didate)......................... | 
| 3220 |  20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45    3a 20 74 68 69 73 20 73 68 6f 75 6c 64 20 69 64  | .........;;.NOTE:.this.should.id | 
| 3240 |  65 61 6c 6c 79 20 62 65 20 61 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | eally.be.a...................... | 
| 3260 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77    61 72 6e 69 6e 67 2c 20 62 75 74 20 60 77 61 72  | ............;;.warning,.but.`war | 
| 3280 |  6e 27 20 69 73 20 74 6f 6f 20 6f 62 74 72 75 73    69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | n'.is.too.obtrusive............. | 
| 32a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52  | .....................(message."R | 
| 32c0 |  65 71 75 69 72 65 64 20 6d 65 74 61 64 61 74 75    6d 20 25 73 20 6e 6f 74 20 66 6f 75 6e 64 22 20  | equired.metadatum.%s.not.found". | 
| 32e0 |  74 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tag))........................... | 
| 3300 |  20 20 20 20 20 28 63 6f 6e 73 20 74 61 67 20 63    61 6e 64 69 64 61 74 65 29 29 29 0a 20 20 20 20  | .....(cons.tag.candidate)))..... | 
| 3320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6e 6f 76 2d 72 65 71 75 69  | .......................nov-requi | 
| 3340 |  72 65 64 2d 6d 65 74 61 64 61 74 61 2d 74 61 67    73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 70  | red-metadata-tags))..........(op | 
| 3360 |  74 69 6f 6e 61 6c 20 28 6d 61 70 63 61 72 20 28    6c 61 6d 62 64 61 20 28 74 61 67 29 20 28 63 6f  | tional.(mapcar.(lambda.(tag).(co | 
| 3380 |  6e 73 20 74 61 67 20 28 63 64 72 20 28 61 73 73    71 20 74 61 67 20 63 61 6e 64 69 64 61 74 65 73  | ns.tag.(cdr.(assq.tag.candidates | 
| 33a0 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ))))............................ | 
| 33c0 |  6e 6f 76 2d 6f 70 74 69 6f 6e 61 6c 2d 6d 65 74    61 64 61 74 61 2d 74 61 67 73 29 29 29 0a 20 20  | nov-optional-metadata-tags)))... | 
| 33e0 |  20 20 28 61 70 70 65 6e 64 20 60 28 28 69 64 65    6e 74 69 66 69 65 72 20 2e 20 2c 69 64 65 6e 74  | ..(append.`((identifier...,ident | 
| 3400 |  69 66 69 65 72 29 29 20 72 65 71 75 69 72 65 64    20 6f 70 74 69 6f 6e 61 6c 29 29 29 0a 0a 28 64  | ifier)).required.optional)))..(d | 
| 3420 |  65 66 75 6e 20 6e 6f 76 2d 63 6f 6e 74 65 6e 74    2d 6d 61 6e 69 66 65 73 74 20 28 64 69 72 65 63  | efun.nov-content-manifest.(direc | 
| 3440 |  74 6f 72 79 20 63 6f 6e 74 65 6e 74 29 0a 20 20    22 45 78 74 72 61 63 74 20 61 6e 20 61 6c 69 73  | tory.content)..."Extract.an.alis | 
| 3460 |  74 20 6f 66 20 6d 61 6e 69 66 65 73 74 20 66 69    6c 65 73 20 66 6f 72 20 43 4f 4e 54 45 4e 54 20  | t.of.manifest.files.for.CONTENT. | 
| 3480 |  69 6e 20 44 49 52 45 43 54 4f 52 59 2e 0a 45 61    63 68 20 61 6c 69 73 74 20 69 74 65 6d 20 63 6f  | in.DIRECTORY..Each.alist.item.co | 
| 34a0 |  6e 73 69 73 74 73 20 6f 66 20 74 68 65 20 69 64    65 6e 74 69 66 69 65 72 20 61 6e 64 20 66 75 6c  | nsists.of.the.identifier.and.ful | 
| 34c0 |  6c 20 70 61 74 68 2e 22 0a 20 20 28 6d 61 70 63    61 72 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65  | l.path."...(mapcar.(lambda.(node | 
| 34e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c    65 74 20 28 28 69 64 20 28 64 6f 6d 2d 61 74 74  | ).............(let.((id.(dom-att | 
| 3500 |  72 20 6e 6f 64 65 20 27 69 64 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | r.node.'id))...................( | 
| 3520 |  68 72 65 66 20 28 64 6f 6d 2d 61 74 74 72 20 6e    6f 64 65 20 27 68 72 65 66 29 29 29 0a 20 20 20  | href.(dom-attr.node.'href))).... | 
| 3540 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 28 69 6e 74 65 72 6e 20 69 64 29 0a 20 20 20  | ...........(cons.(intern.id).... | 
| 3560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61 74 68 20  | .................(nov-make-path. | 
| 3580 |  64 69 72 65 63 74 6f 72 79 20 28 6e 6f 76 2d 75    72 6c 64 65 63 6f 64 65 20 68 72 65 66 29 29 29  | directory.(nov-urldecode.href))) | 
| 35a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 73    78 6d 6c 2d 71 75 65 72 79 2d 61 6c 6c 20 22 70  | ))...........(esxml-query-all."p | 
| 35c0 |  61 63 6b 61 67 65 3e 6d 61 6e 69 66 65 73 74 3e    69 74 65 6d 22 20 63 6f 6e 74 65 6e 74 29 29 29  | ackage>manifest>item".content))) | 
| 35e0 |  0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 63 6f 6e    74 65 6e 74 2d 73 70 69 6e 65 20 28 63 6f 6e 74  | ..(defun.nov-content-spine.(cont | 
| 3600 |  65 6e 74 29 0a 20 20 22 45 78 74 72 61 63 74 20    61 20 6c 69 73 74 20 6f 66 20 73 70 69 6e 65 20  | ent)..."Extract.a.list.of.spine. | 
| 3620 |  69 64 65 6e 74 69 66 69 65 72 73 20 66 6f 72 20    43 4f 4e 54 45 4e 54 2e 22 0a 20 20 28 6d 61 70  | identifiers.for.CONTENT."...(map | 
| 3640 |  63 61 72 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64    65 29 20 28 69 6e 74 65 72 6e 20 28 64 6f 6d 2d  | car.(lambda.(node).(intern.(dom- | 
| 3660 |  61 74 74 72 20 6e 6f 64 65 20 27 69 64 72 65 66    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65  | attr.node.'idref)))...........(e | 
| 3680 |  73 78 6d 6c 2d 71 75 65 72 79 2d 61 6c 6c 20 22    70 61 63 6b 61 67 65 3e 73 70 69 6e 65 3e 69 74  | sxml-query-all."package>spine>it | 
| 36a0 |  65 6d 72 65 66 22 20 63 6f 6e 74 65 6e 74 29 29    29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 63  | emref".content)))..(defun.nov--c | 
| 36c0 |  6f 6e 74 65 6e 74 2d 65 70 75 62 32 2d 66 69 6c    65 73 20 28 63 6f 6e 74 65 6e 74 20 6d 61 6e 69  | ontent-epub2-files.(content.mani | 
| 36e0 |  66 65 73 74 20 66 69 6c 65 73 29 0a 20 20 28 6c    65 74 2a 20 28 28 6e 6f 64 65 20 28 65 73 78 6d  | fest.files)...(let*.((node.(esxm | 
| 3700 |  6c 2d 71 75 65 72 79 20 22 70 61 63 6b 61 67 65    3e 73 70 69 6e 65 5b 74 6f 63 5d 22 20 63 6f 6e  | l-query."package>spine[toc]".con | 
| 3720 |  74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20    28 69 64 20 28 64 6f 6d 2d 61 74 74 72 20 6e 6f  | tent))..........(id.(dom-attr.no | 
| 3740 |  64 65 20 27 74 6f 63 29 29 29 0a 20 20 20 20 28    77 68 65 6e 20 28 6e 6f 74 20 69 64 29 0a 20 20  | de.'toc))).....(when.(not.id)... | 
| 3760 |  20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42    20 32 20 4e 43 58 20 49 44 20 6e 6f 74 20 66 6f  | ....(error."EPUB.2.NCX.ID.not.fo | 
| 3780 |  75 6e 64 22 29 29 0a 20 20 20 20 28 73 65 74 71    20 6e 6f 76 2d 74 6f 63 2d 69 64 20 28 69 6e 74  | und")).....(setq.nov-toc-id.(int | 
| 37a0 |  65 72 6e 20 69 64 29 29 0a 20 20 20 20 28 6c 65    74 20 28 28 74 6f 63 2d 66 69 6c 65 20 28 61 73  | ern.id)).....(let.((toc-file.(as | 
| 37c0 |  73 71 20 6e 6f 76 2d 74 6f 63 2d 69 64 20 6d 61    6e 69 66 65 73 74 29 29 29 0a 20 20 20 20 20 20  | sq.nov-toc-id.manifest)))....... | 
| 37e0 |  28 77 68 65 6e 20 28 6e 6f 74 20 74 6f 63 2d 66    69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 65 72  | (when.(not.toc-file).........(er | 
| 3800 |  72 6f 72 20 22 45 50 55 42 20 32 20 4e 43 58 20    66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 22 29  | ror."EPUB.2.NCX.file.not.found") | 
| 3820 |  29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 74 6f    63 2d 66 69 6c 65 20 66 69 6c 65 73 29 29 29 29  | ).......(cons.toc-file.files)))) | 
| 3840 |  0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 63 6f    6e 74 65 6e 74 2d 65 70 75 62 33 2d 66 69 6c 65  | ..(defun.nov--content-epub3-file | 
| 3860 |  73 20 28 63 6f 6e 74 65 6e 74 20 6d 61 6e 69 66    65 73 74 20 66 69 6c 65 73 29 0a 20 20 28 6c 65  | s.(content.manifest.files)...(le | 
| 3880 |  74 2a 20 28 28 6e 6f 64 65 20 28 65 73 78 6d 6c    2d 71 75 65 72 79 20 22 70 61 63 6b 61 67 65 3e  | t*.((node.(esxml-query."package> | 
| 38a0 |  6d 61 6e 69 66 65 73 74 3e 69 74 65 6d 5b 70 72    6f 70 65 72 74 69 65 73 7e 3d 6e 61 76 5d 22 20  | manifest>item[properties~=nav]". | 
| 38c0 |  63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20    20 20 20 28 69 64 20 28 64 6f 6d 2d 61 74 74 72  | content))..........(id.(dom-attr | 
| 38e0 |  20 6e 6f 64 65 20 27 69 64 29 29 29 0a 20 20 20    20 28 77 68 65 6e 20 28 6e 6f 74 20 69 64 29 0a  | .node.'id))).....(when.(not.id). | 
| 3900 |  20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50    55 42 20 33 20 3c 6e 61 76 3e 20 49 44 20 6e 6f  | ......(error."EPUB.3.<nav>.ID.no | 
| 3920 |  74 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 28    73 65 74 71 20 6e 6f 76 2d 74 6f 63 2d 69 64 20  | t.found")).....(setq.nov-toc-id. | 
| 3940 |  28 69 6e 74 65 72 6e 20 69 64 29 29 0a 20 20 20    20 28 6c 65 74 20 28 28 74 6f 63 2d 66 69 6c 65  | (intern.id)).....(let.((toc-file | 
| 3960 |  20 28 61 73 73 71 20 6e 6f 76 2d 74 6f 63 2d 69    64 20 6d 61 6e 69 66 65 73 74 29 29 29 0a 20 20  | .(assq.nov-toc-id.manifest)))... | 
| 3980 |  20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 74    6f 63 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20  | ....(when.(not.toc-file)........ | 
| 39a0 |  20 28 65 72 72 6f 72 20 22 45 50 55 42 20 33 20    3c 6e 61 76 3e 20 66 69 6c 65 20 6e 6f 74 20 66  | .(error."EPUB.3.<nav>.file.not.f | 
| 39c0 |  6f 75 6e 64 22 29 29 0a 20 20 20 20 20 20 28 73    65 74 71 20 66 69 6c 65 73 20 28 73 65 71 2d 72  | ound")).......(setq.files.(seq-r | 
| 39e0 |  65 6d 6f 76 65 20 28 6c 61 6d 62 64 61 20 28 69    74 65 6d 29 20 28 65 71 20 28 63 61 72 20 69 74  | emove.(lambda.(item).(eq.(car.it | 
| 3a00 |  65 6d 29 20 6e 6f 76 2d 74 6f 63 2d 69 64 29 29    20 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 28  | em).nov-toc-id)).files)).......( | 
| 3a20 |  63 6f 6e 73 20 74 6f 63 2d 66 69 6c 65 20 66 69    6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20  | cons.toc-file.files))))..(defun. | 
| 3a40 |  6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65    73 20 28 64 69 72 65 63 74 6f 72 79 20 63 6f 6e  | nov-content-files.(directory.con | 
| 3a60 |  74 65 6e 74 29 0a 20 20 22 43 72 65 61 74 65 20    63 6f 72 72 65 63 74 6c 79 20 6f 72 64 65 72 65  | tent)..."Create.correctly.ordere | 
| 3a80 |  64 20 66 69 6c 65 20 61 6c 69 73 74 20 66 6f 72    20 43 4f 4e 54 45 4e 54 20 69 6e 20 44 49 52 45  | d.file.alist.for.CONTENT.in.DIRE | 
| 3aa0 |  43 54 4f 52 59 2e 0a 45 61 63 68 20 61 6c 69 73    74 20 69 74 65 6d 20 63 6f 6e 73 69 73 74 73 20  | CTORY..Each.alist.item.consists. | 
| 3ac0 |  6f 66 20 74 68 65 20 69 64 65 6e 74 69 66 69 65    72 20 61 6e 64 20 66 75 6c 6c 20 70 61 74 68 2e  | of.the.identifier.and.full.path. | 
| 3ae0 |  22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 6e 69    66 65 73 74 20 28 6e 6f 76 2d 63 6f 6e 74 65 6e  | "...(let*.((manifest.(nov-conten | 
| 3b00 |  74 2d 6d 61 6e 69 66 65 73 74 20 64 69 72 65 63    74 6f 72 79 20 63 6f 6e 74 65 6e 74 29 29 0a 20  | t-manifest.directory.content)).. | 
| 3b20 |  20 20 20 20 20 20 20 20 28 73 70 69 6e 65 20 28    6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 73 70 69 6e  | ........(spine.(nov-content-spin | 
| 3b40 |  65 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20    20 20 20 20 20 28 66 69 6c 65 73 20 28 6d 61 70  | e.content))..........(files.(map | 
| 3b60 |  63 61 72 20 28 6c 61 6d 62 64 61 20 28 69 74 65    6d 29 20 28 61 73 73 71 20 69 74 65 6d 20 6d 61  | car.(lambda.(item).(assq.item.ma | 
| 3b80 |  6e 69 66 65 73 74 29 29 20 73 70 69 6e 65 29 29    29 0a 20 20 20 20 28 69 66 20 28 76 65 72 73 69  | nifest)).spine))).....(if.(versi | 
| 3ba0 |  6f 6e 3c 20 6e 6f 76 2d 65 70 75 62 2d 76 65 72    73 69 6f 6e 20 22 33 2e 30 22 29 0a 20 20 20 20  | on<.nov-epub-version."3.0")..... | 
| 3bc0 |  20 20 20 20 28 6e 6f 76 2d 2d 63 6f 6e 74 65 6e    74 2d 65 70 75 62 32 2d 66 69 6c 65 73 20 63 6f  | ....(nov--content-epub2-files.co | 
| 3be0 |  6e 74 65 6e 74 20 6d 61 6e 69 66 65 73 74 20 66    69 6c 65 73 29 0a 20 20 20 20 20 20 28 6e 6f 76  | ntent.manifest.files).......(nov | 
| 3c00 |  2d 2d 63 6f 6e 74 65 6e 74 2d 65 70 75 62 33 2d    66 69 6c 65 73 20 63 6f 6e 74 65 6e 74 20 6d 61  | --content-epub3-files.content.ma | 
| 3c20 |  6e 69 66 65 73 74 20 66 69 6c 65 73 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 77 61  | nifest.files))))..(defun.nov--wa | 
| 3c40 |  6c 6b 2d 6e 63 78 2d 6e 6f 64 65 20 28 6e 6f 64    65 29 0a 20 20 28 6c 65 74 20 28 28 74 61 67 20  | lk-ncx-node.(node)...(let.((tag. | 
| 3c60 |  28 64 6f 6d 2d 74 61 67 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65  | (dom-tag.node)).........(childre | 
| 3c80 |  6e 20 28 73 65 71 2d 66 69 6c 74 65 72 20 28 6c    61 6d 62 64 61 20 28 63 68 69 6c 64 29 20 28 65  | n.(seq-filter.(lambda.(child).(e | 
| 3ca0 |  71 20 28 64 6f 6d 2d 74 61 67 20 63 68 69 6c 64    29 20 27 6e 61 76 50 6f 69 6e 74 29 29 0a 20 20  | q.(dom-tag.child).'navPoint))... | 
| 3cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6d  | ............................(dom | 
| 3ce0 |  2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29    29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20  | -children.node)))).....(cond.... | 
| 3d00 |  20 20 28 28 65 71 20 74 61 67 20 27 6e 61 76 4d    61 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72  | ..((eq.tag.'navMap).......(inser | 
| 3d20 |  74 20 22 3c 6f 6c 3e 5c 6e 22 29 0a 20 20 20 20    20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20  | t."<ol>\n").......(mapc.(lambda. | 
| 3d40 |  28 6e 6f 64 65 29 20 28 6e 6f 76 2d 2d 77 61 6c    6b 2d 6e 63 78 2d 6e 6f 64 65 20 6e 6f 64 65 29  | (node).(nov--walk-ncx-node.node) | 
| 3d60 |  29 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20    20 20 28 69 6e 73 65 72 74 20 22 3c 2f 6f 6c 3e  | ).children).......(insert."</ol> | 
| 3d80 |  5c 6e 22 29 29 0a 20 20 20 20 20 28 28 65 71 20    74 61 67 20 27 6e 61 76 50 6f 69 6e 74 29 0a 20  | \n"))......((eq.tag.'navPoint).. | 
| 3da0 |  20 20 20 20 20 28 6c 65 74 2a 20 28 28 6c 61 62    65 6c 2d 6e 6f 64 65 20 28 65 73 78 6d 6c 2d 71  | .....(let*.((label-node.(esxml-q | 
| 3dc0 |  75 65 72 79 20 22 6e 61 76 4c 61 62 65 6c 3e 74    65 78 74 22 20 6e 6f 64 65 29 29 0a 20 20 20 20  | uery."navLabel>text".node))..... | 
| 3de0 |  20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e    74 2d 6e 6f 64 65 20 28 65 73 78 6d 6c 2d 71 75  | .........(content-node.(esxml-qu | 
| 3e00 |  65 72 79 20 22 63 6f 6e 74 65 6e 74 22 20 6e 6f    64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ery."content".node))............ | 
| 3e20 |  20 20 28 68 72 65 66 20 28 6e 6f 76 2d 75 72 6c    64 65 63 6f 64 65 20 28 64 6f 6d 2d 61 74 74 72  | ..(href.(nov-urldecode.(dom-attr | 
| 3e40 |  20 63 6f 6e 74 65 6e 74 2d 6e 6f 64 65 20 27 73    72 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .content-node.'src)))........... | 
| 3e60 |  20 20 20 28 6c 61 62 65 6c 20 28 63 61 72 20 28    64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 6c 61 62  | ...(label.(car.(dom-children.lab | 
| 3e80 |  65 6c 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 68  | el-node)))).........(when.(not.h | 
| 3ea0 |  72 65 66 29 0a 20 20 20 20 20 20 20 20 20 20 28    65 72 72 6f 72 20 22 4e 61 76 69 67 61 74 69 6f  | ref)...........(error."Navigatio | 
| 3ec0 |  6e 20 70 6f 69 6e 74 20 69 73 20 6d 69 73 73 69    6e 67 20 68 72 65 66 20 61 74 74 72 69 62 75 74  | n.point.is.missing.href.attribut | 
| 3ee0 |  65 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65    74 20 28 28 6c 69 6e 6b 20 28 66 6f 72 6d 61 74  | e")).........(let.((link.(format | 
| 3f00 |  20 22 3c 61 20 68 72 65 66 3d 5c 22 25 73 5c 22    3e 25 73 3c 2f 61 3e 22 0a 20 20 20 20 20 20 20  | ."<a.href=\"%s\">%s</a>"........ | 
| 3f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 78 6d 6c 2d 65 73 63 61 70 65  | .....................(xml-escape | 
| 3f40 |  2d 73 74 72 69 6e 67 20 68 72 65 66 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -string.href)................... | 
| 3f60 |  20 20 20 20 20 20 20 20 20 20 28 78 6d 6c 2d 65    73 63 61 70 65 2d 73 74 72 69 6e 67 20 28 6f 72  | ..........(xml-escape-string.(or | 
| 3f80 |  20 6c 61 62 65 6c 20 68 72 65 66 29 29 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63  | .label.href)))))...........(if.c | 
| 3fa0 |  68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20  | hildren...............(progn.... | 
| 3fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e    73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 3c 6c  | .............(insert.(format."<l | 
| 3fe0 |  69 3e 5c 6e 25 73 5c 6e 3c 6f 6c 3e 5c 6e 22 20    6c 69 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20  | i>\n%s\n<ol>\n".link)).......... | 
| 4000 |  20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61    6d 62 64 61 20 28 6e 6f 64 65 29 20 28 6e 6f 76  | .......(mapc.(lambda.(node).(nov | 
| 4020 |  2d 2d 77 61 6c 6b 2d 6e 63 78 2d 6e 6f 64 65 20    6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20  | --walk-ncx-node.node)).......... | 
| 4040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69    6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20  | .............children).......... | 
| 4060 |  20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28    66 6f 72 6d 61 74 20 22 3c 2f 6f 6c 3e 5c 6e 3c  | .......(insert.(format."</ol>\n< | 
| 4080 |  2f 6c 69 3e 5c 6e 22 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28  | /li>\n"))).............(insert.( | 
| 40a0 |  66 6f 72 6d 61 74 20 22 3c 6c 69 3e 5c 6e 25 73    5c 6e 3c 2f 6c 69 3e 5c 6e 22 20 6c 69 6e 6b 29  | format."<li>\n%s\n</li>\n".link) | 
| 40c0 |  29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6e 6f 76 2d 6e 63 78 2d 74 6f 2d 68 74 6d 6c  | ))))))))..(defun.nov-ncx-to-html | 
| 40e0 |  20 28 70 61 74 68 29 0a 20 20 22 43 6f 6e 76 65    72 74 20 4e 43 58 20 64 6f 63 75 6d 65 6e 74 20  | .(path)..."Convert.NCX.document. | 
| 4100 |  61 74 20 50 41 54 48 20 74 6f 20 48 54 4d 4c 2e    22 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20  | at.PATH.to.HTML."...(let.((root. | 
| 4120 |  28 65 73 78 6d 6c 2d 71 75 65 72 79 20 22 6e 61    76 4d 61 70 22 20 28 6e 6f 76 2d 73 6c 75 72 70  | (esxml-query."navMap".(nov-slurp | 
| 4140 |  20 70 61 74 68 20 74 29 29 29 29 0a 20 20 20 20    28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65  | .path.t)))).....(with-temp-buffe | 
| 4160 |  72 0a 20 20 20 20 20 20 28 6e 6f 76 2d 2d 77 61    6c 6b 2d 6e 63 78 2d 6e 6f 64 65 20 72 6f 6f 74  | r.......(nov--walk-ncx-node.root | 
| 4180 |  29 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d    73 74 72 69 6e 67 29 29 29 29 0a 0a 0c 0a 3b 3b  | ).......(buffer-string))))....;; | 
| 41a0 |  3b 20 55 49 0a 0a 28 64 65 66 76 61 72 20 6e 6f    76 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65  | ;.UI..(defvar.nov-mode-map...(le | 
| 41c0 |  74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70    61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20  | t.((map.(make-sparse-keymap))).. | 
| 41e0 |  20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d    61 70 20 28 6b 62 64 20 22 67 22 29 20 27 6e 6f  | ...(define-key.map.(kbd."g").'no | 
| 4200 |  76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65 6e    74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b  | v-render-document).....(define-k | 
| 4220 |  65 79 20 6d 61 70 20 28 6b 62 64 20 22 76 22 29    20 27 6e 6f 76 2d 76 69 65 77 2d 73 6f 75 72 63  | ey.map.(kbd."v").'nov-view-sourc | 
| 4240 |  65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b    65 79 20 6d 61 70 20 28 6b 62 64 20 22 56 22 29  | e).....(define-key.map.(kbd."V") | 
| 4260 |  20 27 6e 6f 76 2d 76 69 65 77 2d 63 6f 6e 74 65    6e 74 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 28  | .'nov-view-content-source).....( | 
| 4280 |  64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28    6b 62 64 20 22 61 22 29 20 27 6e 6f 76 2d 72 65  | define-key.map.(kbd."a").'nov-re | 
| 42a0 |  6f 70 65 6e 2d 61 73 2d 61 72 63 68 69 76 65 29    0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79  | open-as-archive).....(define-key | 
| 42c0 |  20 6d 61 70 20 28 6b 62 64 20 22 6d 22 29 20 27    6e 6f 76 2d 64 69 73 70 6c 61 79 2d 6d 65 74 61  | .map.(kbd."m").'nov-display-meta | 
| 42e0 |  64 61 74 61 29 0a 20 20 20 20 28 64 65 66 69 6e    65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22  | data).....(define-key.map.(kbd." | 
| 4300 |  6e 22 29 20 27 6e 6f 76 2d 6e 65 78 74 2d 64 6f    63 75 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66  | n").'nov-next-document).....(def | 
| 4320 |  69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64    20 22 5d 22 29 20 27 6e 6f 76 2d 6e 65 78 74 2d  | ine-key.map.(kbd."]").'nov-next- | 
| 4340 |  64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 20 28 64    65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b  | document).....(define-key.map.(k | 
| 4360 |  62 64 20 22 70 22 29 20 27 6e 6f 76 2d 70 72 65    76 69 6f 75 73 2d 64 6f 63 75 6d 65 6e 74 29 0a  | bd."p").'nov-previous-document). | 
| 4380 |  20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20    6d 61 70 20 28 6b 62 64 20 22 5b 22 29 20 27 6e  | ....(define-key.map.(kbd."[").'n | 
| 43a0 |  6f 76 2d 70 72 65 76 69 6f 75 73 2d 64 6f 63 75    6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e  | ov-previous-document).....(defin | 
| 43c0 |  65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22    74 22 29 20 27 6e 6f 76 2d 67 6f 74 6f 2d 74 6f  | e-key.map.(kbd."t").'nov-goto-to | 
| 43e0 |  63 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b    65 79 20 6d 61 70 20 28 6b 62 64 20 22 6c 22 29  | c).....(define-key.map.(kbd."l") | 
| 4400 |  20 27 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 62 61    63 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d  | .'nov-history-back).....(define- | 
| 4420 |  6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22    29 20 27 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 66  | key.map.(kbd."r").'nov-history-f | 
| 4440 |  6f 72 77 61 72 64 29 0a 20 20 20 20 28 64 65 66    69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64  | orward).....(define-key.map.(kbd | 
| 4460 |  20 22 54 41 42 22 29 20 27 73 68 72 2d 6e 65 78    74 2d 6c 69 6e 6b 29 0a 20 20 20 20 28 64 65 66  | ."TAB").'shr-next-link).....(def | 
| 4480 |  69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64    20 22 4d 2d 54 41 42 22 29 20 27 73 68 72 2d 70  | ine-key.map.(kbd."M-TAB").'shr-p | 
| 44a0 |  72 65 76 69 6f 75 73 2d 6c 69 6e 6b 29 0a 20 20    20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61  | revious-link).....(define-key.ma | 
| 44c0 |  70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62    3e 22 29 20 27 73 68 72 2d 70 72 65 76 69 6f 75  | p.(kbd."<backtab>").'shr-previou | 
| 44e0 |  73 2d 6c 69 6e 6b 29 0a 20 20 20 20 28 64 65 66    69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64  | s-link).....(define-key.map.(kbd | 
| 4500 |  20 22 53 50 43 22 29 20 27 6e 6f 76 2d 73 63 72    6f 6c 6c 2d 75 70 29 0a 20 20 20 20 28 64 65 66  | ."SPC").'nov-scroll-up).....(def | 
| 4520 |  69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64    20 22 53 2d 53 50 43 22 29 20 27 6e 6f 76 2d 73  | ine-key.map.(kbd."S-SPC").'nov-s | 
| 4540 |  63 72 6f 6c 6c 2d 64 6f 77 6e 29 0a 20 20 20 20    28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20  | croll-down).....(define-key.map. | 
| 4560 |  28 6b 62 64 20 22 44 45 4c 22 29 20 27 6e 6f 76    2d 73 63 72 6f 6c 6c 2d 64 6f 77 6e 29 0a 20 20  | (kbd."DEL").'nov-scroll-down)... | 
| 4580 |  20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61    70 20 28 6b 62 64 20 22 3c 68 6f 6d 65 3e 22 29  | ..(define-key.map.(kbd."<home>") | 
| 45a0 |  20 27 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 62    75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69  | .'beginning-of-buffer).....(defi | 
| 45c0 |  6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20    22 3c 65 6e 64 3e 22 29 20 27 65 6e 64 2d 6f 66  | ne-key.map.(kbd."<end>").'end-of | 
| 45e0 |  2d 62 75 66 66 65 72 29 0a 20 20 20 20 6d 61 70    29 29 0a 0a 28 64 65 66 76 61 72 20 6e 6f 76 2d  | -buffer).....map))..(defvar.nov- | 
| 4600 |  62 75 74 74 6f 6e 2d 6d 61 70 0a 20 20 28 6c 65    74 20 28 28 6d 61 70 20 28 63 6f 70 79 2d 6b 65  | button-map...(let.((map.(copy-ke | 
| 4620 |  79 6d 61 70 20 6e 6f 76 2d 6d 6f 64 65 2d 6d 61    70 29 29 29 0a 20 20 20 20 28 73 65 74 2d 6b 65  | ymap.nov-mode-map))).....(set-ke | 
| 4640 |  79 6d 61 70 2d 70 61 72 65 6e 74 20 6d 61 70 20    73 68 72 2d 6d 61 70 29 0a 20 20 20 20 28 64 65  | ymap-parent.map.shr-map).....(de | 
| 4660 |  66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62    64 20 22 52 45 54 22 29 20 27 6e 6f 76 2d 62 72  | fine-key.map.(kbd."RET").'nov-br | 
| 4680 |  6f 77 73 65 2d 75 72 6c 29 0a 20 20 20 20 28 64    65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b  | owse-url).....(define-key.map.(k | 
| 46a0 |  62 64 20 22 3c 6d 6f 75 73 65 2d 32 3e 22 29 20    27 6e 6f 76 2d 62 72 6f 77 73 65 2d 75 72 6c 29  | bd."<mouse-2>").'nov-browse-url) | 
| 46c0 |  0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79    20 6d 61 70 20 28 6b 62 64 20 22 63 22 29 20 27  | .....(define-key.map.(kbd."c").' | 
| 46e0 |  6e 6f 76 2d 63 6f 70 79 2d 75 72 6c 29 0a 20 20    20 20 6d 61 70 29 29 0a 0a 28 65 61 73 79 2d 6d  | nov-copy-url).....map))..(easy-m | 
| 4700 |  65 6e 75 2d 64 65 66 69 6e 65 20 6e 6f 76 2d 6d    6f 64 65 2d 6d 65 6e 75 20 6e 6f 76 2d 6d 6f 64  | enu-define.nov-mode-menu.nov-mod | 
| 4720 |  65 2d 6d 61 70 20 22 4d 65 6e 75 20 66 6f 72 20    6e 6f 76 2d 6d 6f 64 65 22 0a 20 20 27 28 22 45  | e-map."Menu.for.nov-mode"...'("E | 
| 4740 |  50 55 42 22 0a 20 20 20 20 5b 22 4e 65 78 74 22    20 6e 6f 76 2d 6e 65 78 74 2d 64 6f 63 75 6d 65  | PUB".....["Next".nov-next-docume | 
| 4760 |  6e 74 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 47    6f 20 74 6f 20 74 68 65 20 6e 65 78 74 20 64 6f  | nt......:help."Go.to.the.next.do | 
| 4780 |  63 75 6d 65 6e 74 22 5d 0a 20 20 20 20 5b 22 50    72 65 76 69 6f 75 73 22 20 6e 6f 76 2d 70 72 65  | cument"].....["Previous".nov-pre | 
| 47a0 |  76 69 6f 75 73 2d 64 6f 63 75 6d 65 6e 74 0a 20    20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 74 6f  | vious-document......:help."Go.to | 
| 47c0 |  20 74 68 65 20 70 72 65 76 69 6f 75 73 20 64 6f    63 75 6d 65 6e 74 22 5d 0a 20 20 20 20 5b 22 42  | .the.previous.document"].....["B | 
| 47e0 |  61 63 6b 77 61 72 64 22 20 6e 6f 76 2d 68 69 73    74 6f 72 79 2d 62 61 63 6b 0a 20 20 20 20 20 3a  | ackward".nov-history-back......: | 
| 4800 |  68 65 6c 70 20 22 47 6f 20 62 61 63 6b 20 69 6e    20 74 68 65 20 68 69 73 74 6f 72 79 20 74 6f 20  | help."Go.back.in.the.history.to. | 
| 4820 |  74 68 65 20 6c 61 73 74 20 76 69 73 69 74 65 64    20 64 6f 63 75 6d 65 6e 74 22 5d 0a 20 20 20 20  | the.last.visited.document"]..... | 
| 4840 |  5b 22 46 6f 72 77 61 72 64 22 20 6e 6f 76 2d 68    69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 0a 20  | ["Forward".nov-history-forward.. | 
| 4860 |  20 20 20 20 3a 68 65 6c 70 20 22 47 6f 20 66 6f    72 77 61 72 64 20 69 6e 20 74 68 65 20 68 69 73  | ....:help."Go.forward.in.the.his | 
| 4880 |  74 6f 72 79 20 6f 66 20 76 69 73 69 74 65 64 20    64 6f 63 75 6d 65 6e 74 73 22 5d 0a 20 20 20 20  | tory.of.visited.documents"]..... | 
| 48a0 |  5b 22 4e 65 78 74 20 4c 69 6e 6b 22 20 73 68 72    2d 6e 65 78 74 2d 6c 69 6e 6b 0a 20 20 20 20 20  | ["Next.Link".shr-next-link...... | 
| 48c0 |  3a 68 65 6c 70 20 22 47 6f 20 74 6f 20 74 68 65    20 6e 65 78 74 20 6c 69 6e 6b 22 5d 0a 20 20 20  | :help."Go.to.the.next.link"].... | 
| 48e0 |  20 5b 22 50 72 65 76 69 6f 75 73 20 4c 69 6e 6b    22 20 73 68 72 2d 70 72 65 76 69 6f 75 73 2d 6c  | .["Previous.Link".shr-previous-l | 
| 4900 |  69 6e 6b 0a 20 20 20 20 20 3a 6b 65 79 73 20 22    4d 2d 54 41 42 22 0a 20 20 20 20 20 3a 68 65 6c  | ink......:keys."M-TAB"......:hel | 
| 4920 |  70 20 22 47 6f 20 74 6f 20 74 68 65 20 70 72 65    76 69 6f 75 73 20 6c 69 6e 6b 22 5d 0a 20 20 20  | p."Go.to.the.previous.link"].... | 
| 4940 |  20 5b 22 54 61 62 6c 65 20 6f 66 20 43 6f 6e 74    65 6e 74 73 22 20 6e 6f 76 2d 67 6f 74 6f 2d 74  | .["Table.of.Contents".nov-goto-t | 
| 4960 |  6f 63 0a 20 20 20 20 20 3a 68 65 6c 70 20 22 44    69 73 70 6c 61 79 20 74 68 65 20 74 61 62 6c 65  | oc......:help."Display.the.table | 
| 4980 |  20 6f 66 20 63 6f 6e 74 65 6e 74 73 22 5d 0a 20    20 20 20 5b 22 52 65 64 69 73 70 6c 61 79 22 20  | .of.contents"].....["Redisplay". | 
| 49a0 |  6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d    65 6e 74 0a 20 20 20 20 20 3a 68 65 6c 70 20 22  | nov-render-document......:help." | 
| 49c0 |  52 65 64 69 73 70 6c 61 79 20 74 68 65 20 64 6f    63 75 6d 65 6e 74 22 5d 0a 20 20 20 20 22 2d 2d  | Redisplay.the.document"]....."-- | 
| 49e0 |  2d 22 0a 20 20 20 20 5b 22 56 69 65 77 20 4d 65    74 61 64 61 74 61 22 20 6e 6f 76 2d 64 69 73 70  | -".....["View.Metadata".nov-disp | 
| 4a00 |  6c 61 79 2d 6d 65 74 61 64 61 74 61 0a 20 20 20    20 20 3a 68 65 6c 70 20 22 56 69 65 77 20 74 68  | lay-metadata......:help."View.th | 
| 4a20 |  65 20 6d 65 74 61 64 61 74 61 20 6f 66 20 74 68    65 20 45 50 55 42 20 64 6f 63 75 6d 65 6e 74 22  | e.metadata.of.the.EPUB.document" | 
| 4a40 |  5d 0a 20 20 20 20 5b 22 56 69 65 77 20 48 54 4d    4c 20 53 6f 75 72 63 65 22 20 6e 6f 76 2d 76 69  | ].....["View.HTML.Source".nov-vi | 
| 4a60 |  65 77 2d 73 6f 75 72 63 65 0a 20 20 20 20 20 3a    68 65 6c 70 20 22 56 69 65 77 20 74 68 65 20 48  | ew-source......:help."View.the.H | 
| 4a80 |  54 4d 4c 20 73 6f 75 72 63 65 20 6f 66 20 74 68    65 20 63 75 72 72 65 6e 74 20 64 6f 63 75 6d 65  | TML.source.of.the.current.docume | 
| 4aa0 |  6e 74 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66    65 72 22 5d 0a 20 20 20 20 5b 22 56 69 65 77 20  | nt.in.a.new.buffer"].....["View. | 
| 4ac0 |  4f 50 46 20 53 6f 75 72 63 65 22 20 6e 6f 76 2d    76 69 65 77 2d 63 6f 6e 74 65 6e 74 2d 73 6f 75  | OPF.Source".nov-view-content-sou | 
| 4ae0 |  72 63 65 0a 20 20 20 20 20 3a 68 65 6c 70 20 22    56 69 65 77 20 74 68 65 20 4f 50 46 20 73 6f 75  | rce......:help."View.the.OPF.sou | 
| 4b00 |  72 63 65 20 6f 66 20 74 68 65 20 45 50 55 42 20    64 6f 63 75 6d 65 6e 74 20 69 6e 20 61 20 6e 65  | rce.of.the.EPUB.document.in.a.ne | 
| 4b20 |  77 20 62 75 66 66 65 72 22 5d 0a 20 20 20 20 5b    22 56 69 65 77 20 61 73 20 41 72 63 68 69 76 65  | w.buffer"].....["View.as.Archive | 
| 4b40 |  22 20 6e 6f 76 2d 72 65 6f 70 65 6e 2d 61 73 2d    61 72 63 68 69 76 65 0a 20 20 20 20 20 3a 68 65  | ".nov-reopen-as-archive......:he | 
| 4b60 |  6c 70 20 22 52 65 6f 70 65 6e 20 74 68 65 20 45    50 55 42 20 64 6f 63 75 6d 65 6e 74 20 61 73 20  | lp."Reopen.the.EPUB.document.as. | 
| 4b80 |  61 6e 20 61 72 63 68 69 76 65 22 5d 29 29 0a 0a    28 64 65 66 75 6e 20 6e 6f 76 2d 63 6c 65 61 6e  | an.archive"]))..(defun.nov-clean | 
| 4ba0 |  2d 75 70 20 28 29 0a 20 20 22 44 65 6c 65 74 65    20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73  | -up.()..."Delete.temporary.files | 
| 4bc0 |  20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20    45 50 55 42 20 62 75 66 66 65 72 2e 22 0a 20 20  | .of.the.current.EPUB.buffer."... | 
| 4be0 |  28 77 68 65 6e 20 6e 6f 76 2d 74 65 6d 70 2d 64    69 72 0a 20 20 20 20 28 6c 65 74 20 28 28 69 64  | (when.nov-temp-dir.....(let.((id | 
| 4c00 |  65 6e 74 69 66 69 65 72 20 28 63 64 72 20 28 61    73 73 71 20 27 69 64 65 6e 74 69 66 69 65 72 20  | entifier.(cdr.(assq.'identifier. | 
| 4c20 |  6e 6f 76 2d 6d 65 74 61 64 61 74 61 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 78  | nov-metadata)))...........(index | 
| 4c40 |  20 28 69 66 20 28 69 6e 74 65 67 65 72 70 20 6e    6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64  | .(if.(integerp.nov-documents-ind | 
| 4c60 |  65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6e 6f 76 2d 64 6f 63  | ex)......................nov-doc | 
| 4c80 |  75 6d 65 6e 74 73 2d 69 6e 64 65 78 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | uments-index.................... | 
| 4ca0 |  30 29 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d    73 61 76 65 2d 70 6c 61 63 65 20 69 64 65 6e 74  | 0))).......(nov-save-place.ident | 
| 4cc0 |  69 66 69 65 72 20 69 6e 64 65 78 20 28 70 6f 69    6e 74 29 29 29 0a 20 20 20 20 28 6e 6f 76 2d 69  | ifier.index.(point))).....(nov-i | 
| 4ce0 |  67 6e 6f 72 65 2d 66 69 6c 65 2d 65 72 72 6f 72    73 0a 20 20 20 20 20 28 64 65 6c 65 74 65 2d 64  | gnore-file-errors......(delete-d | 
| 4d00 |  69 72 65 63 74 6f 72 79 20 6e 6f 76 2d 74 65 6d    70 2d 64 69 72 20 74 29 29 29 29 0a 0a 28 64 65  | irectory.nov-temp-dir.t))))..(de | 
| 4d20 |  66 75 6e 20 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70    2d 61 6c 6c 20 28 29 0a 20 20 22 44 65 6c 65 74  | fun.nov-clean-up-all.()..."Delet | 
| 4d40 |  65 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65    73 20 6f 66 20 61 6c 6c 20 6f 70 65 6e 65 64 20  | e.temporary.files.of.all.opened. | 
| 4d60 |  45 50 55 42 20 62 75 66 66 65 72 73 2e 22 0a 20    20 28 64 6f 6c 69 73 74 20 28 62 75 66 66 65 72  | EPUB.buffers."...(dolist.(buffer | 
| 4d80 |  20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a    20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e  | .(buffer-list)).....(with-curren | 
| 4da0 |  74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a    20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20  | t-buffer.buffer.......(when.(eq. | 
| 4dc0 |  6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6e 6f 76 2d    6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6e  | major-mode.'nov-mode).........(n | 
| 4de0 |  6f 76 2d 63 6c 65 61 6e 2d 75 70 29 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 65 78 74  | ov-clean-up)))))..(defun.nov-ext | 
| 4e00 |  65 72 6e 61 6c 2d 75 72 6c 2d 70 20 28 75 72 6c    29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66  | ernal-url-p.(url)..."Return.t.if | 
| 4e20 |  20 55 52 4c 20 72 65 66 65 72 73 20 74 6f 20 61    6e 20 65 78 74 65 72 6e 61 6c 20 64 6f 63 75 6d  | .URL.refers.to.an.external.docum | 
| 4e40 |  65 6e 74 2e 22 0a 20 20 28 61 6e 64 20 28 75 72    6c 2d 74 79 70 65 20 28 75 72 6c 2d 67 65 6e 65  | ent."...(and.(url-type.(url-gene | 
| 4e60 |  72 69 63 2d 70 61 72 73 65 2d 75 72 6c 20 75 72    6c 29 29 20 74 29 29 0a 0a 28 64 65 66 75 6e 20  | ric-parse-url.url)).t))..(defun. | 
| 4e80 |  6e 6f 76 2d 75 72 6c 2d 66 69 6c 65 6e 61 6d 65    2d 61 6e 64 2d 74 61 72 67 65 74 20 28 75 72 6c  | nov-url-filename-and-target.(url | 
| 4ea0 |  29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69    73 74 20 6f 66 20 55 52 4c 27 73 20 66 69 6c 65  | )..."Return.a.list.of.URL's.file | 
| 4ec0 |  6e 61 6d 65 20 61 6e 64 20 74 61 72 67 65 74 2e    22 0a 20 20 28 73 65 74 71 20 75 72 6c 20 28 75  | name.and.target."...(setq.url.(u | 
| 4ee0 |  72 6c 2d 67 65 6e 65 72 69 63 2d 70 61 72 73 65    2d 75 72 6c 20 75 72 6c 29 29 0a 20 20 28 6d 61  | rl-generic-parse-url.url))...(ma | 
| 4f00 |  70 63 61 72 20 27 6e 6f 76 2d 75 72 6c 64 65 63    6f 64 65 20 28 6c 69 73 74 20 28 75 72 6c 2d 66  | pcar.'nov-urldecode.(list.(url-f | 
| 4f20 |  69 6c 65 6e 61 6d 65 20 75 72 6c 29 20 28 75 72    6c 2d 74 61 72 67 65 74 20 75 72 6c 29 29 29 29  | ilename.url).(url-target.url)))) | 
| 4f40 |  0a 0a 3b 3b 20 61 64 61 70 74 65 64 20 66 72 6f    6d 20 60 73 68 72 2d 72 65 73 63 61 6c 65 2d 69  | ..;;.adapted.from.`shr-rescale-i | 
| 4f60 |  6d 61 67 65 27 0a 28 64 65 66 75 6e 20 6e 6f 76    2d 69 6e 73 65 72 74 2d 69 6d 61 67 65 20 28 70  | mage'.(defun.nov-insert-image.(p | 
| 4f80 |  61 74 68 20 61 6c 74 29 0a 20 20 22 49 6e 73 65    72 74 20 61 6e 20 69 6d 61 67 65 20 66 6f 72 20  | ath.alt)..."Insert.an.image.for. | 
| 4fa0 |  50 41 54 48 20 61 74 20 70 6f 69 6e 74 2c 20 66    61 6c 6c 69 6e 67 20 62 61 63 6b 20 74 6f 20 41  | PATH.at.point,.falling.back.to.A | 
| 4fc0 |  4c 54 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f    6e 20 68 6f 6e 6f 72 73 20 60 73 68 72 2d 6d 61  | LT..This.function.honors.`shr-ma | 
| 4fe0 |  78 2d 69 6d 61 67 65 2d 70 72 6f 70 6f 72 74 69    6f 6e 27 20 69 66 20 70 6f 73 73 69 62 6c 65 2e  | x-image-proportion'.if.possible. | 
| 5000 |  22 0a 20 20 28 6c 65 74 20 28 28 74 79 70 65 20    28 69 66 20 28 6f 72 20 28 61 6e 64 20 28 66 62  | "...(let.((type.(if.(or.(and.(fb | 
| 5020 |  6f 75 6e 64 70 20 27 69 6d 61 67 65 2d 74 72 61    6e 73 66 6f 72 6d 73 2d 70 29 20 28 69 6d 61 67  | oundp.'image-transforms-p).(imag | 
| 5040 |  65 2d 74 72 61 6e 73 66 6f 72 6d 73 2d 70 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-transforms-p))................ | 
| 5060 |  20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 62 6f    75 6e 64 70 20 27 69 6d 61 67 65 6d 61 67 69 63  | .......(not.(fboundp.'imagemagic | 
| 5080 |  6b 2d 74 79 70 65 73 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c  | k-types)))...................nil | 
| 50a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 27 69 6d 61 67 65 6d 61 67 69 63 6b 29 29 29  | .................'imagemagick))) | 
| 50c0 |  0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 64    69 73 70 6c 61 79 2d 67 72 61 70 68 69 63 2d 70  | .....(if.(not.(display-graphic-p | 
| 50e0 |  29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65    72 74 20 61 6c 74 29 0a 20 20 20 20 20 20 28 73  | )).........(insert.alt).......(s | 
| 5100 |  65 71 2d 6c 65 74 20 28 78 31 20 79 31 20 78 32    20 79 32 29 20 28 77 69 6e 64 6f 77 2d 69 6e 73  | eq-let.(x1.y1.x2.y2).(window-ins | 
| 5120 |  69 64 65 2d 70 69 78 65 6c 2d 65 64 67 65 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ide-pixel-edges................. | 
| 5140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67    65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77  | ..............(get-buffer-window | 
| 5160 |  20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72    29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74  | .(current-buffer))).........(let | 
| 5180 |  20 28 28 69 6d 61 67 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 60 63 72 65 61  | .((image................;;.`crea | 
| 51a0 |  74 65 2d 69 6d 61 67 65 27 20 65 72 72 6f 72 73    20 6f 75 74 20 66 6f 72 20 75 6e 73 75 70 70 6f  | te-image'.errors.out.for.unsuppo | 
| 51c0 |  72 74 65 64 20 69 6d 61 67 65 20 74 79 70 65 73    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rted.image.types................ | 
| 51e0 |  28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (ignore-errors.................. | 
| 5200 |  28 63 72 65 61 74 65 2d 69 6d 61 67 65 20 70 61    74 68 20 74 79 70 65 20 6e 69 6c 0a 20 20 20 20  | (create-image.path.type.nil..... | 
| 5220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 61 73 63 65  | ...........................:asce | 
| 5240 |  6e 74 20 31 30 30 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt.100.......................... | 
| 5260 |  20 20 20 20 20 20 3a 6d 61 78 2d 77 69 64 74 68    20 28 74 72 75 6e 63 61 74 65 20 28 2a 20 73 68  | ......:max-width.(truncate.(*.sh | 
| 5280 |  72 2d 6d 61 78 2d 69 6d 61 67 65 2d 70 72 6f 70    6f 72 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20  | r-max-image-proportion.......... | 
| 52a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 52c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d    20 78 32 20 78 31 29 29 29 0a 20 20 20 20 20 20  | ..............(-.x2.x1)))....... | 
| 52e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6d 61 78 2d 68 65  | .........................:max-he | 
| 5300 |  69 67 68 74 20 28 74 72 75 6e 63 61 74 65 20 28    2a 20 73 68 72 2d 6d 61 78 2d 69 6d 61 67 65 2d  | ight.(truncate.(*.shr-max-image- | 
| 5320 |  70 72 6f 70 6f 72 74 69 6f 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | proportion...................... | 
| 5340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5360 |  20 20 20 28 2d 20 79 32 20 79 31 29 29 29 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66  | ...(-.y2.y1)))))))...........(if | 
| 5380 |  20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 69 6e 73 65 72 74 2d 69 6d 61  | .image...............(insert-ima | 
| 53a0 |  67 65 20 69 6d 61 67 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 61 6c  | ge.image).............(insert.al | 
| 53c0 |  74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61    72 20 6e 6f 76 2d 6f 72 69 67 69 6e 61 6c 2d 73  | t)))))))..(defvar.nov-original-s | 
| 53e0 |  68 72 2d 74 61 67 2d 69 6d 67 2d 66 75 6e 63 74    69 6f 6e 0a 20 20 28 73 79 6d 62 6f 6c 2d 66 75  | hr-tag-img-function...(symbol-fu | 
| 5400 |  6e 63 74 69 6f 6e 20 27 73 68 72 2d 74 61 67 2d    69 6d 67 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f  | nction.'shr-tag-img))..(defun.no | 
| 5420 |  76 2d 72 65 6e 64 65 72 2d 69 6d 67 20 28 64 6f    6d 20 26 6f 70 74 69 6f 6e 61 6c 20 75 72 6c 29  | v-render-img.(dom.&optional.url) | 
| 5440 |  0a 20 20 22 43 75 73 74 6f 6d 20 3c 69 6d 67 3e    20 72 65 6e 64 65 72 69 6e 67 20 66 75 6e 63 74  | ..."Custom.<img>.rendering.funct | 
| 5460 |  69 6f 6e 20 66 6f 72 20 44 4f 4d 2e 0a 55 73 65    73 20 60 73 68 72 2d 74 61 67 2d 69 6d 67 27 20  | ion.for.DOM..Uses.`shr-tag-img'. | 
| 5480 |  66 6f 72 20 65 78 74 65 72 6e 61 6c 20 70 61 74    68 73 20 61 6e 64 20 60 6e 6f 76 2d 69 6e 73 65  | for.external.paths.and.`nov-inse | 
| 54a0 |  72 74 2d 69 6d 61 67 65 27 20 66 6f 72 0a 69 6e    74 65 72 6e 61 6c 20 6f 6e 65 73 2e 22 0a 20 20  | rt-image'.for.internal.ones."... | 
| 54c0 |  28 6c 65 74 20 28 28 75 72 6c 20 28 6f 72 20 75    72 6c 20 28 63 64 72 20 28 61 73 73 71 20 27 73  | (let.((url.(or.url.(cdr.(assq.'s | 
| 54e0 |  72 63 20 28 63 61 64 72 20 64 6f 6d 29 29 29 29    29 0a 20 20 20 20 20 20 20 20 28 61 6c 74 20 28  | rc.(cadr.dom))))).........(alt.( | 
| 5500 |  6f 72 20 28 63 64 72 20 28 61 73 73 71 20 27 61    6c 74 20 28 63 61 64 72 20 64 6f 6d 29 29 29 20  | or.(cdr.(assq.'alt.(cadr.dom))). | 
| 5520 |  22 22 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e    6f 76 2d 65 78 74 65 72 6e 61 6c 2d 75 72 6c 2d  | ""))).....(if.(nov-external-url- | 
| 5540 |  70 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 3b    3b 20 48 41 43 4b 3a 20 61 76 6f 69 64 20 68 61  | p.url).........;;.HACK:.avoid.ha | 
| 5560 |  6e 67 69 6e 67 20 69 6e 20 61 6e 20 69 6e 66 69    6e 69 74 65 20 6c 6f 6f 70 20 77 68 65 6e 20 75  | nging.in.an.infinite.loop.when.u | 
| 5580 |  73 69 6e 67 0a 20 20 20 20 20 20 20 20 3b 3b 20    60 63 6c 2d 6c 65 74 66 27 20 74 6f 20 6f 76 65  | sing.........;;.`cl-letf'.to.ove | 
| 55a0 |  72 72 69 64 65 20 60 73 68 72 2d 74 61 67 2d 69    6d 67 27 20 77 69 74 68 20 61 20 66 75 6e 63 74  | rride.`shr-tag-img'.with.a.funct | 
| 55c0 |  69 6f 6e 20 74 68 61 74 0a 20 20 20 20 20 20 20    20 3b 3b 20 6d 69 67 68 74 20 63 61 6c 6c 20 60  | ion.that.........;;.might.call.` | 
| 55e0 |  73 68 72 2d 74 61 67 2d 69 6d 67 27 20 61 67 61    69 6e 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63  | shr-tag-img'.again.........(func | 
| 5600 |  61 6c 6c 20 6e 6f 76 2d 6f 72 69 67 69 6e 61 6c    2d 73 68 72 2d 74 61 67 2d 69 6d 67 2d 66 75 6e  | all.nov-original-shr-tag-img-fun | 
| 5620 |  63 74 69 6f 6e 20 64 6f 6d 20 75 72 6c 29 0a 20    20 20 20 20 20 28 73 65 74 71 20 75 72 6c 20 28  | ction.dom.url).......(setq.url.( | 
| 5640 |  65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65    20 28 6e 6f 76 2d 75 72 6c 64 65 63 6f 64 65 20  | expand-file-name.(nov-urldecode. | 
| 5660 |  75 72 6c 29 29 29 0a 20 20 20 20 20 20 28 6e 6f    76 2d 69 6e 73 65 72 74 2d 69 6d 61 67 65 20 75  | url))).......(nov-insert-image.u | 
| 5680 |  72 6c 20 61 6c 74 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 74 69  | rl.alt))))..(defun.nov-render-ti | 
| 56a0 |  74 6c 65 20 28 64 6f 6d 29 0a 20 20 22 43 75 73    74 6f 6d 20 3c 74 69 74 6c 65 3e 20 72 65 6e 64  | tle.(dom)..."Custom.<title>.rend | 
| 56c0 |  65 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 66    6f 72 20 44 4f 4d 2e 0a 53 65 74 73 20 60 68 65  | ering.function.for.DOM..Sets.`he | 
| 56e0 |  61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74    27 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 60  | ader-line-format'.according.to.` | 
| 5700 |  6e 6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d    66 6f 72 6d 61 74 27 2e 22 0a 20 20 28 73 65 74  | nov-header-line-format'."...(set | 
| 5720 |  71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f    72 6d 61 74 0a 09 28 61 6e 64 20 6e 6f 76 2d 68  | q.header-line-format..(and.nov-h | 
| 5740 |  65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61    74 0a 09 20 20 20 20 20 28 6c 65 74 20 28 28 74  | eader-line-format.......(let.((t | 
| 5760 |  69 74 6c 65 20 28 63 64 72 20 28 61 73 73 71 20    27 74 69 74 6c 65 20 6e 6f 76 2d 6d 65 74 61 64  | itle.(cdr.(assq.'title.nov-metad | 
| 5780 |  61 74 61 29 29 29 0a 09 09 20 20 20 28 63 68 61    70 74 65 72 2d 74 69 74 6c 65 20 28 63 61 72 20  | ata)))......(chapter-title.(car. | 
| 57a0 |  28 64 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 64 6f    6d 29 29 29 29 0a 09 20 20 20 20 20 20 20 28 77  | (dom-children.dom)))).........(w | 
| 57c0 |  68 65 6e 20 28 6e 6f 74 20 63 68 61 70 74 65 72    2d 74 69 74 6c 65 29 0a 09 09 20 28 73 65 74 71  | hen.(not.chapter-title)....(setq | 
| 57e0 |  20 63 68 61 70 74 65 72 2d 74 69 74 6c 65 20 28    70 72 6f 70 65 72 74 69 7a 65 20 22 4e 6f 20 74  | .chapter-title.(propertize."No.t | 
| 5800 |  69 74 6c 65 22 20 27 66 61 63 65 20 27 69 74 61    6c 69 63 29 29 29 0a 09 20 20 20 20 20 20 20 3b  | itle".'face.'italic))).........; | 
| 5820 |  3b 20 74 68 69 73 20 73 68 6f 75 6c 64 6e 27 74    20 68 61 70 70 65 6e 20 66 6f 72 20 70 72 6f 70  | ;.this.shouldn't.happen.for.prop | 
| 5840 |  65 72 6c 79 20 61 75 74 68 6f 72 65 64 20 45 50    55 42 73 0a 09 20 20 20 20 20 20 20 28 77 68 65  | erly.authored.EPUBs.........(whe | 
| 5860 |  6e 20 28 6e 6f 74 20 74 69 74 6c 65 29 0a 09 09    20 28 73 65 74 71 20 74 69 74 6c 65 20 28 70 72  | n.(not.title)....(setq.title.(pr | 
| 5880 |  6f 70 65 72 74 69 7a 65 20 22 4e 6f 20 74 69 74    6c 65 22 20 27 66 61 63 65 20 27 69 74 61 6c 69  | opertize."No.title".'face.'itali | 
| 58a0 |  63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67  | c)))................(replace-reg | 
| 58c0 |  65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 25  | exp-in-string................."% | 
| 58e0 |  22 20 22 25 25 22 0a 09 20 20 20 20 20 20 20 20    28 66 6f 72 6d 61 74 2d 73 70 65 63 0a 09 09 20  | "."%%"..........(format-spec.... | 
| 5900 |  6e 6f 76 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d    66 6f 72 6d 61 74 0a 09 09 20 60 28 28 3f 63 20  | nov-header-line-format....`((?c. | 
| 5920 |  2e 20 2c 63 68 61 70 74 65 72 2d 74 69 74 6c 65    29 0a 09 09 20 20 20 28 3f 74 20 2e 20 2c 74 69  | ..,chapter-title)......(?t...,ti | 
| 5940 |  74 6c 65 29 29 29 29 29 29 29 29 0a 0a 28 64 65    66 76 61 72 20 6e 6f 76 2d 73 68 72 2d 72 65 6e  | tle))))))))..(defvar.nov-shr-ren | 
| 5960 |  64 65 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 73    0a 20 20 27 28 3b 3b 20 64 65 66 61 75 6c 74 20  | dering-functions...'(;;.default. | 
| 5980 |  66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 75 72    6c 2d 72 65 74 72 69 65 76 65 20 61 6e 64 20 66  | function.uses.url-retrieve.and.f | 
| 59a0 |  61 69 6c 73 20 6f 6e 20 6c 6f 63 61 6c 20 69 6d    61 67 65 73 0a 20 20 20 20 28 69 6d 67 20 2e 20  | ails.on.local.images.....(img... | 
| 59c0 |  6e 6f 76 2d 72 65 6e 64 65 72 2d 69 6d 67 29 0a    20 20 20 20 3b 3b 20 74 69 74 6c 65 73 20 61 72  | nov-render-img).....;;.titles.ar | 
| 59e0 |  65 20 72 65 6e 64 65 72 65 64 20 2a 69 6e 73 69    64 65 2a 20 74 68 65 20 64 6f 63 75 6d 65 6e 74  | e.rendered.*inside*.the.document | 
| 5a00 |  20 62 79 20 64 65 66 61 75 6c 74 0a 20 20 20 20    28 74 69 74 6c 65 20 2e 20 6e 6f 76 2d 72 65 6e  | .by.default.....(title...nov-ren | 
| 5a20 |  64 65 72 2d 74 69 74 6c 65 29 29 0a 20 20 22 41    6c 69 73 74 20 6f 66 20 72 65 6e 64 65 72 69 6e  | der-title))..."Alist.of.renderin | 
| 5a40 |  67 20 66 75 6e 63 74 69 6f 6e 73 20 75 73 65 64    20 77 69 74 68 20 60 73 68 72 2d 72 65 6e 64 65  | g.functions.used.with.`shr-rende | 
| 5a60 |  72 2d 72 65 67 69 6f 6e 27 2e 22 29 0a 0a 28 64    65 66 75 6e 20 6e 6f 76 2d 66 69 6c 6c 2d 6c 69  | r-region'.")..(defun.nov-fill-li | 
| 5a80 |  6e 65 20 28 29 0a 20 20 22 4c 69 6b 65 20 60 73    68 72 2d 66 69 6c 6c 2d 6c 69 6e 65 27 2c 20 62  | ne.()..."Like.`shr-fill-line',.b | 
| 5aa0 |  75 74 20 6f 6e 6c 79 20 70 65 72 66 6f 72 6d 69    6e 67 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2e 0a  | ut.only.performing.indentation.. | 
| 5ac0 |  54 6f 20 62 65 20 75 73 65 64 20 77 68 65 6e 20    60 6e 6f 76 2d 74 65 78 74 2d 77 69 64 74 68 27  | To.be.used.when.`nov-text-width' | 
| 5ae0 |  20 69 73 20 73 65 74 20 74 6f 20 74 2e 22 0a 20    20 28 6c 65 74 20 28 28 73 68 72 2d 69 6e 64 65  | .is.set.to.t."...(let.((shr-inde | 
| 5b00 |  6e 74 61 74 69 6f 6e 20 28 6f 72 20 28 67 65 74    2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28  | ntation.(or.(get-text-property.( | 
| 5b20 |  70 6f 69 6e 74 29 20 27 73 68 72 2d 69 6e 64 65    6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20  | point).'shr-indentation)........ | 
| 5b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 73 68 72 2d 69 6e 64 65 6e 74  | ......................shr-indent | 
| 5b60 |  61 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 70 75    74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20  | ation))).....(put-text-property. | 
| 5b80 |  28 70 6f 69 6e 74 29 20 28 31 2b 20 28 70 6f 69    6e 74 29 29 20 27 73 68 72 2d 69 6e 64 65 6e 74  | (point).(1+.(point)).'shr-indent | 
| 5ba0 |  61 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 28    6c 65 74 20 28 28 66 61 63 65 20 28 67 65 74 2d  | ation.nil).....(let.((face.(get- | 
| 5bc0 |  74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70    6f 69 6e 74 29 20 27 66 61 63 65 29 29 0a 09 20  | text-property.(point).'face))... | 
| 5be0 |  20 28 62 61 63 6b 67 72 6f 75 6e 64 2d 73 74 61    72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20  | .(background-start.(point))).... | 
| 5c00 |  20 20 20 28 73 68 72 2d 69 6e 64 65 6e 74 29 0a    20 20 20 20 20 20 28 77 68 65 6e 20 66 61 63 65  | ...(shr-indent).......(when.face | 
| 5c20 |  0a 09 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70    65 72 74 79 20 62 61 63 6b 67 72 6f 75 6e 64 2d  | ..(put-text-property.background- | 
| 5c40 |  73 74 61 72 74 20 28 70 6f 69 6e 74 29 20 27 66    61 63 65 0a 09 09 09 20 20 20 60 2c 28 73 68 72  | start.(point).'face.......`,(shr | 
| 5c60 |  2d 66 61 63 65 2d 62 61 63 6b 67 72 6f 75 6e 64    20 66 61 63 65 29 29 29 29 29 29 0a 0a 28 64 65  | -face-background.face))))))..(de | 
| 5c80 |  66 75 6e 20 6e 6f 76 2d 72 65 6e 64 65 72 2d 68    74 6d 6c 20 28 29 0a 20 20 22 52 65 6e 64 65 72  | fun.nov-render-html.()..."Render | 
| 5ca0 |  20 48 54 4d 4c 20 69 6e 20 63 75 72 72 65 6e 74    20 62 75 66 66 65 72 20 77 69 74 68 20 73 68 72  | .HTML.in.current.buffer.with.shr | 
| 5cc0 |  2e 22 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20    27 6e 6f 76 2d 70 72 65 2d 68 74 6d 6c 2d 72 65  | ."...(run-hooks.'nov-pre-html-re | 
| 5ce0 |  6e 64 65 72 2d 68 6f 6f 6b 29 0a 20 20 28 6c 65    74 20 28 3b 3b 20 48 41 43 4b 3a 20 6d 61 6b 65  | nder-hook)...(let.(;;.HACK:.make | 
| 5d00 |  20 62 75 74 74 6f 6e 73 20 75 73 65 20 6f 75 72    20 6f 77 6e 20 63 6f 6d 6d 61 6e 64 73 0a 20 20  | .buttons.use.our.own.commands... | 
| 5d20 |  20 20 20 20 20 20 28 73 68 72 2d 6d 61 70 20 6e    6f 76 2d 62 75 74 74 6f 6e 2d 6d 61 70 29 0a 20  | ......(shr-map.nov-button-map).. | 
| 5d40 |  20 20 20 20 20 20 20 28 73 68 72 2d 65 78 74 65    72 6e 61 6c 2d 72 65 6e 64 65 72 69 6e 67 2d 66  | .......(shr-external-rendering-f | 
| 5d60 |  75 6e 63 74 69 6f 6e 73 20 6e 6f 76 2d 73 68 72    2d 72 65 6e 64 65 72 69 6e 67 2d 66 75 6e 63 74  | unctions.nov-shr-rendering-funct | 
| 5d80 |  69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 28 73    68 72 2d 75 73 65 2d 66 6f 6e 74 73 20 6e 6f 76  | ions).........(shr-use-fonts.nov | 
| 5da0 |  2d 76 61 72 69 61 62 6c 65 2d 70 69 74 63 68 29    0a 20 20 20 20 20 20 20 20 3b 3b 20 48 41 43 4b  | -variable-pitch).........;;.HACK | 
| 5dc0 |  3a 20 70 72 65 73 65 72 76 65 20 60 74 72 75 6e    63 61 74 65 2d 6c 69 6e 65 73 27 20 66 6f 72 20  | :.preserve.`truncate-lines'.for. | 
| 5de0 |  60 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64    65 27 20 74 6f 0a 20 20 20 20 20 20 20 20 3b 3b  | `visual-line-mode'.to.........;; | 
| 5e00 |  20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79 20    61 66 74 65 72 20 61 20 74 61 62 6c 65 20 68 61  | .work.correctly.after.a.table.ha | 
| 5e20 |  73 20 62 65 65 6e 20 72 65 6e 64 65 72 65 64 2e    2e 2e 0a 20 20 20 20 20 20 20 20 28 74 72 75 6e  | s.been.rendered............(trun | 
| 5e40 |  63 61 74 65 2d 6c 69 6e 65 73 20 74 72 75 6e 63    61 74 65 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20  | cate-lines.truncate-lines))..... | 
| 5e60 |  3b 3b 20 48 41 43 4b 3a 20 60 73 68 72 2d 65 78    74 65 72 6e 61 6c 2d 72 65 6e 64 65 72 69 6e 67  | ;;.HACK:.`shr-external-rendering | 
| 5e80 |  2d 66 75 6e 63 74 69 6f 6e 73 27 20 64 6f 65 73    6e 27 74 20 63 6f 76 65 72 0a 20 20 20 20 3b 3b  | -functions'.doesn't.cover.....;; | 
| 5ea0 |  20 65 76 65 72 79 20 75 73 61 67 65 20 6f 66 20    60 73 68 72 2d 74 61 67 2d 69 6d 67 27 0a 20 20  | .every.usage.of.`shr-tag-img'... | 
| 5ec0 |  20 20 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79    6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 73  | ..(cl-letf.(((symbol-function.'s | 
| 5ee0 |  68 72 2d 74 61 67 2d 69 6d 67 29 20 27 6e 6f 76    2d 72 65 6e 64 65 72 2d 69 6d 67 29 29 0a 20 20  | hr-tag-img).'nov-render-img))... | 
| 5f00 |  20 20 20 20 28 69 66 20 28 65 71 20 6e 6f 76 2d    74 65 78 74 2d 77 69 64 74 68 20 74 29 0a 20 20  | ....(if.(eq.nov-text-width.t)... | 
| 5f20 |  20 20 20 20 20 20 20 20 28 63 6c 2d 6c 65 74 66    20 28 28 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74  | ........(cl-letf.(((symbol-funct | 
| 5f40 |  69 6f 6e 20 27 73 68 72 2d 66 69 6c 6c 2d 6c 69    6e 65 29 20 23 27 6e 6f 76 2d 66 69 6c 6c 2d 6c  | ion.'shr-fill-line).#'nov-fill-l | 
| 5f60 |  69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 73 68 72 2d 72 65 6e 64 65 72 2d 72 65  | ine)).............(shr-render-re | 
| 5f80 |  67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29    20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20  | gion.(point-min).(point-max))).. | 
| 5fa0 |  20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 68    72 2d 77 69 64 74 68 20 6e 6f 76 2d 74 65 78 74  | .......(let.((shr-width.nov-text | 
| 5fc0 |  2d 77 69 64 74 68 29 29 0a 20 20 20 20 20 20 20    20 20 20 28 73 68 72 2d 72 65 6e 64 65 72 2d 72  | -width))...........(shr-render-r | 
| 5fe0 |  65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e    29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29  | egion.(point-min).(point-max)))) | 
| 6000 |  29 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20    27 6e 6f 76 2d 70 6f 73 74 2d 68 74 6d 6c 2d 72  | ))...(run-hooks.'nov-post-html-r | 
| 6020 |  65 6e 64 65 72 2d 68 6f 6f 6b 29 29 0a 0a 28 64    65 66 75 6e 20 6e 6f 76 2d 72 65 6e 64 65 72 2d  | ender-hook))..(defun.nov-render- | 
| 6040 |  64 6f 63 75 6d 65 6e 74 20 28 29 0a 20 20 22 52    65 6e 64 65 72 20 74 68 65 20 64 6f 63 75 6d 65  | document.()..."Render.the.docume | 
| 6060 |  6e 74 20 72 65 66 65 72 65 6e 63 65 64 20 62 79    20 60 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d  | nt.referenced.by.`nov-documents- | 
| 6080 |  69 6e 64 65 78 27 2e 0a 49 66 20 74 68 65 20 64    6f 63 75 6d 65 6e 74 20 70 61 74 68 20 72 65 66  | index'..If.the.document.path.ref | 
| 60a0 |  65 72 73 20 74 6f 20 61 6e 20 69 6d 61 67 65 20    28 61 73 20 64 65 74 65 72 6d 69 6e 65 64 20 62  | ers.to.an.image.(as.determined.b | 
| 60c0 |  79 0a 60 69 6d 61 67 65 2d 74 79 70 65 2d 66 69    6c 65 2d 6e 61 6d 65 2d 72 65 67 65 78 70 73 27  | y.`image-type-file-name-regexps' | 
| 60e0 |  29 2c 20 61 6e 20 69 6d 61 67 65 20 69 73 20 69    6e 73 65 72 74 65 64 2c 20 6f 74 68 65 72 77 69  | ),.an.image.is.inserted,.otherwi | 
| 6100 |  73 65 0a 74 68 65 20 48 54 4d 4c 20 69 73 20 72    65 6e 64 65 72 65 64 20 77 69 74 68 20 60 6e 6f  | se.the.HTML.is.rendered.with.`no | 
| 6120 |  76 2d 72 65 6e 64 65 72 2d 68 74 6d 6c 2d 66 75    6e 63 74 69 6f 6e 27 2e 22 0a 20 20 28 69 6e 74  | v-render-html-function'."...(int | 
| 6140 |  65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 71    2d 6c 65 74 20 28 69 64 20 26 72 65 73 74 20 70  | eractive)...(seq-let.(id.&rest.p | 
| 6160 |  61 74 68 29 20 28 61 72 65 66 20 6e 6f 76 2d 64    6f 63 75 6d 65 6e 74 73 20 6e 6f 76 2d 64 6f 63  | ath).(aref.nov-documents.nov-doc | 
| 6180 |  75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 0a 20 20    20 20 28 6c 65 74 20 28 3b 3b 20 48 41 43 4b 3a  | uments-index).....(let.(;;.HACK: | 
| 61a0 |  20 74 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20    6c 6f 6f 6b 65 64 20 75 70 20 69 6e 20 74 68 65  | .this.should.be.looked.up.in.the | 
| 61c0 |  20 6d 61 6e 69 66 65 73 74 0a 20 20 20 20 20 20    20 20 20 20 28 69 6d 61 67 65 70 20 28 73 65 71  | .manifest...........(imagep.(seq | 
| 61e0 |  2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 69    74 65 6d 29 20 28 73 74 72 69 6e 67 2d 6d 61 74  | -find.(lambda.(item).(string-mat | 
| 6200 |  63 68 2d 70 20 28 63 61 72 20 69 74 65 6d 29 20    70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20  | ch-p.(car.item).path)).......... | 
| 6220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 69 6d 61 67 65 2d 74 79 70 65 2d 66 69  | ...................image-type-fi | 
| 6240 |  6c 65 2d 6e 61 6d 65 2d 72 65 67 65 78 70 73 29    29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e  | le-name-regexps))...........;;.N | 
| 6260 |  4f 54 45 3a 20 61 6c 6c 6f 77 73 20 72 65 73 6f    6c 76 69 6e 67 20 69 6d 61 67 65 20 72 65 66 65  | OTE:.allows.resolving.image.refe | 
| 6280 |  72 65 6e 63 65 73 20 63 6f 72 72 65 63 74 6c 79    0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61  | rences.correctly...........(defa | 
| 62a0 |  75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 66    69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f  | ult-directory.(file-name-directo | 
| 62c0 |  72 79 20 70 61 74 68 29 29 0a 20 20 20 20 20 20    20 20 20 20 62 75 66 66 65 72 2d 72 65 61 64 2d  | ry.path))...........buffer-read- | 
| 62e0 |  6f 6e 6c 79 29 0a 20 20 20 20 20 20 28 65 72 61    73 65 2d 62 75 66 66 65 72 29 0a 0a 20 20 20 20  | only).......(erase-buffer)...... | 
| 6300 |  20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28    69 6d 61 67 65 70 0a 20 20 20 20 20 20 20 20 28  | ..(cond........(imagep.........( | 
| 6320 |  6e 6f 76 2d 69 6e 73 65 72 74 2d 69 6d 61 67 65    20 70 61 74 68 20 22 22 29 29 0a 20 20 20 20 20  | nov-insert-image.path.""))...... | 
| 6340 |  20 20 28 28 61 6e 64 20 28 76 65 72 73 69 6f 6e    3c 20 6e 6f 76 2d 65 70 75 62 2d 76 65 72 73 69  | ..((and.(version<.nov-epub-versi | 
| 6360 |  6f 6e 20 22 33 2e 30 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 71 20 69 64 20 6e 6f  | on."3.0")..............(eq.id.no | 
| 6380 |  76 2d 74 6f 63 2d 69 64 29 29 0a 20 20 20 20 20    20 20 20 28 69 6e 73 65 72 74 20 28 6e 6f 76 2d  | v-toc-id)).........(insert.(nov- | 
| 63a0 |  6e 63 78 2d 74 6f 2d 68 74 6d 6c 20 70 61 74 68    29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20  | ncx-to-html.path)))........(t... | 
| 63c0 |  20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6e    6f 76 2d 73 6c 75 72 70 20 70 61 74 68 29 29 29  | ......(insert.(nov-slurp.path))) | 
| 63e0 |  29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28    6e 6f 74 20 69 6d 61 67 65 70 29 0a 20 20 20 20  | )........(when.(not.imagep)..... | 
| 6400 |  20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6e 6f 76    2d 72 65 6e 64 65 72 2d 68 74 6d 6c 2d 66 75 6e  | ....(funcall.nov-render-html-fun | 
| 6420 |  63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 3b 3b    20 4e 4f 54 45 3a 20 74 68 69 73 20 69 73 20 68  | ction)).......;;.NOTE:.this.is.h | 
| 6440 |  6f 77 20 64 6f 63 2d 76 69 65 77 20 61 76 6f 69    64 73 20 6f 76 65 72 77 72 69 74 69 6e 67 20 74  | ow.doc-view.avoids.overwriting.t | 
| 6460 |  68 65 20 66 69 6c 65 0a 20 20 20 20 20 20 28 73    65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69  | he.file.......(set-buffer-modifi | 
| 6480 |  65 64 2d 70 20 6e 69 6c 29 0a 20 20 20 20 20 20    28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e  | ed-p.nil).......(goto-char.(poin | 
| 64a0 |  74 2d 6d 69 6e 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6e 6f 76 2d 66 69 6e 64 2d 64 6f 63 75  | t-min)))))..(defun.nov-find-docu | 
| 64c0 |  6d 65 6e 74 20 28 70 72 65 64 69 63 61 74 65 29    0a 20 20 22 52 65 74 75 72 6e 20 66 69 72 73 74  | ment.(predicate)..."Return.first | 
| 64e0 |  20 69 74 65 6d 20 69 6e 20 60 6e 6f 76 2d 64 6f    63 75 6d 65 6e 74 73 27 20 50 52 45 44 49 43 41  | .item.in.`nov-documents'.PREDICA | 
| 6500 |  54 45 20 69 73 20 74 72 75 65 20 66 6f 72 2e 22    0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 0a 20  | TE.is.true.for."...(let.((i.0).. | 
| 6520 |  20 20 20 20 20 20 20 64 6f 6e 65 29 0a 20 20 20    20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f  | .......done).....(while.(and.(no | 
| 6540 |  74 20 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3c 20 69 20 28 6c 65  | t.done).................(<.i.(le | 
| 6560 |  6e 67 74 68 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e    74 73 29 29 29 0a 20 20 20 20 20 20 28 77 68 65  | ngth.nov-documents))).......(whe | 
| 6580 |  6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69    63 61 74 65 20 28 61 72 65 66 20 6e 6f 76 2d 64  | n.(funcall.predicate.(aref.nov-d | 
| 65a0 |  6f 63 75 6d 65 6e 74 73 20 69 29 29 0a 20 20 20    20 20 20 20 20 28 73 65 74 71 20 64 6f 6e 65 20  | ocuments.i)).........(setq.done. | 
| 65c0 |  74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20    69 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 28  | t)).......(setq.i.(1+.i))).....( | 
| 65e0 |  77 68 65 6e 20 64 6f 6e 65 0a 20 20 20 20 20 20    28 31 2d 20 69 29 29 29 29 0a 0a 28 64 65 66 75  | when.done.......(1-.i))))..(defu | 
| 6600 |  6e 20 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d    65 6e 74 20 28 69 6e 64 65 78 29 0a 20 20 22 47  | n.nov-goto-document.(index)..."G | 
| 6620 |  6f 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e    74 20 64 65 6e 6f 74 65 64 20 62 79 20 49 4e 44  | o.to.the.document.denoted.by.IND | 
| 6640 |  45 58 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 69    73 74 6f 72 79 20 28 63 6f 6e 73 20 28 6c 69 73  | EX."...(let.((history.(cons.(lis | 
| 6660 |  74 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d    69 6e 64 65 78 20 28 70 6f 69 6e 74 29 29 0a 20  | t.nov-documents-index.(point)).. | 
| 6680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6e 6f 76 2d 68 69 73 74 6f 72  | ......................nov-histor | 
| 66a0 |  79 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e    6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64  | y))).....(setq.nov-documents-ind | 
| 66c0 |  65 78 20 69 6e 64 65 78 29 0a 20 20 20 20 28 6e    6f 76 2d 72 65 6e 64 65 72 2d 64 6f 63 75 6d 65  | ex.index).....(nov-render-docume | 
| 66e0 |  6e 74 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f    76 2d 68 69 73 74 6f 72 79 20 68 69 73 74 6f 72  | nt).....(setq.nov-history.histor | 
| 6700 |  79 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76    2d 67 6f 74 6f 2d 74 6f 63 20 28 29 0a 20 20 22  | y)))..(defun.nov-goto-toc.()..." | 
| 6720 |  47 6f 20 74 6f 20 74 68 65 20 54 4f 43 20 69 6e    64 65 78 20 61 6e 64 20 72 65 6e 64 65 72 20 74  | Go.to.the.TOC.index.and.render.t | 
| 6740 |  68 65 20 54 4f 43 20 64 6f 63 75 6d 65 6e 74 2e    22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65  | he.TOC.document."...(interactive | 
| 6760 |  29 0a 20 20 28 6c 65 74 20 28 28 69 6e 64 65 78    20 28 6e 6f 76 2d 66 69 6e 64 2d 64 6f 63 75 6d  | )...(let.((index.(nov-find-docum | 
| 6780 |  65 6e 74 20 28 6c 61 6d 62 64 61 20 28 64 6f 63    29 20 28 65 71 20 28 63 61 72 20 64 6f 63 29 20  | ent.(lambda.(doc).(eq.(car.doc). | 
| 67a0 |  6e 6f 76 2d 74 6f 63 2d 69 64 29 29 29 29 29 0a    20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 69  | nov-toc-id))))).....(when.(not.i | 
| 67c0 |  6e 64 65 78 29 0a 20 20 20 20 20 20 28 65 72 72    6f 72 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 63  | ndex).......(error."Couldn't.loc | 
| 67e0 |  61 74 65 20 54 4f 43 22 29 29 0a 20 20 20 20 28    6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d 65 6e  | ate.TOC")).....(nov-goto-documen | 
| 6800 |  74 20 69 6e 64 65 78 29 29 29 0a 0a 28 64 65 66    75 6e 20 6e 6f 76 2d 76 69 65 77 2d 73 6f 75 72  | t.index)))..(defun.nov-view-sour | 
| 6820 |  63 65 20 28 29 0a 20 20 22 56 69 65 77 20 74 68    65 20 73 6f 75 72 63 65 20 6f 66 20 74 68 65 20  | ce.()..."View.the.source.of.the. | 
| 6840 |  63 75 72 72 65 6e 74 20 64 6f 63 75 6d 65 6e 74    20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72  | current.document.in.a.new.buffer | 
| 6860 |  2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76    65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20  | ."...(interactive)...(find-file. | 
| 6880 |  28 63 64 72 20 28 61 72 65 66 20 6e 6f 76 2d 64    6f 63 75 6d 65 6e 74 73 20 6e 6f 76 2d 64 6f 63  | (cdr.(aref.nov-documents.nov-doc | 
| 68a0 |  75 6d 65 6e 74 73 2d 69 6e 64 65 78 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 76 69 65  | uments-index))))..(defun.nov-vie | 
| 68c0 |  77 2d 63 6f 6e 74 65 6e 74 2d 73 6f 75 72 63 65    20 28 29 0a 20 20 22 56 69 65 77 20 74 68 65 20  | w-content-source.()..."View.the. | 
| 68e0 |  73 6f 75 72 63 65 20 6f 66 20 74 68 65 20 63 6f    6e 74 65 6e 74 20 66 69 6c 65 20 69 6e 20 61 20  | source.of.the.content.file.in.a. | 
| 6900 |  6e 65 77 20 62 75 66 66 65 72 2e 22 0a 20 20 28    69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28  | new.buffer."...(interactive)...( | 
| 6920 |  66 69 6e 64 2d 66 69 6c 65 20 6e 6f 76 2d 63 6f    6e 74 65 6e 74 2d 66 69 6c 65 29 29 0a 0a 28 64  | find-file.nov-content-file))..(d | 
| 6940 |  65 66 75 6e 20 6e 6f 76 2d 72 65 6f 70 65 6e 2d    61 73 2d 61 72 63 68 69 76 65 20 28 29 0a 20 20  | efun.nov-reopen-as-archive.()... | 
| 6960 |  22 52 65 6f 70 65 6e 20 74 68 65 20 45 50 55 42    20 64 6f 63 75 6d 65 6e 74 20 75 73 69 6e 67 20  | "Reopen.the.EPUB.document.using. | 
| 6980 |  60 61 72 63 68 69 76 65 2d 6d 6f 64 65 27 2e 22    0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29  | `archive-mode'."...(interactive) | 
| 69a0 |  0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74    2d 62 75 66 66 65 72 20 28 66 69 6e 64 2d 66 69  | ...(with-current-buffer.(find-fi | 
| 69c0 |  6c 65 2d 6c 69 74 65 72 61 6c 6c 79 20 6e 6f 76    2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20  | le-literally.nov-file-name)..... | 
| 69e0 |  28 61 72 63 68 69 76 65 2d 6d 6f 64 65 29 29 29    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 64 69 73  | (archive-mode)))..(defun.nov-dis | 
| 6a00 |  70 6c 61 79 2d 6d 65 74 61 64 61 74 61 20 28 29    0a 20 20 22 56 69 65 77 20 74 68 65 20 6d 65 74  | play-metadata.()..."View.the.met | 
| 6a20 |  61 64 61 74 61 20 6f 66 20 74 68 65 20 45 50 55    42 20 64 6f 63 75 6d 65 6e 74 20 69 6e 20 61 20  | adata.of.the.EPUB.document.in.a. | 
| 6a40 |  6e 65 77 20 62 75 66 66 65 72 2e 22 0a 20 20 28    69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28  | new.buffer."...(interactive)...( | 
| 6a60 |  6c 65 74 20 28 28 62 75 66 66 65 72 20 22 2a 45    50 55 42 20 6d 65 74 61 64 61 74 61 2a 22 29 0a  | let.((buffer."*EPUB.metadata*"). | 
| 6a80 |  20 20 20 20 20 20 20 20 28 6d 65 74 61 64 61 74    61 20 6e 6f 76 2d 6d 65 74 61 64 61 74 61 29 0a  | ........(metadata.nov-metadata). | 
| 6aa0 |  20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e    20 6e 6f 76 2d 65 70 75 62 2d 76 65 72 73 69 6f  | ........(version.nov-epub-versio | 
| 6ac0 |  6e 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75    72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65  | n)).....(with-current-buffer.(ge | 
| 6ae0 |  74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20    62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 73  | t-buffer-create.buffer).......(s | 
| 6b00 |  70 65 63 69 61 6c 2d 6d 6f 64 65 29 0a 20 20 20    20 20 20 28 6c 65 74 20 28 62 75 66 66 65 72 2d  | pecial-mode).......(let.(buffer- | 
| 6b20 |  72 65 61 64 2d 6f 6e 6c 79 29 0a 20 20 20 20 20    20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72  | read-only).........(erase-buffer | 
| 6b40 |  29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 28 66 6f 72 6d 61 74 20 22 45 50 55 42 20  | ).........(insert.(format."EPUB. | 
| 6b60 |  56 65 72 73 69 6f 6e 3a 20 25 73 5c 6e 22 20 76    65 72 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20  | Version:.%s\n".version))........ | 
| 6b80 |  20 28 64 6f 6c 69 73 74 20 28 69 74 65 6d 20 6d    65 74 61 64 61 74 61 29 0a 20 20 20 20 20 20 20  | .(dolist.(item.metadata)........ | 
| 6ba0 |  20 20 20 28 73 65 71 2d 6c 65 74 20 28 6b 65 79    20 26 72 65 73 74 20 76 61 6c 75 65 29 20 69 74  | ...(seq-let.(key.&rest.value).it | 
| 6bc0 |  65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28    69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22  | em.............(insert.(format." | 
| 6be0 |  25 73 3a 20 22 20 28 63 61 70 69 74 61 6c 69 7a    65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b  | %s:.".(capitalize.(symbol-name.k | 
| 6c00 |  65 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 76 61 6c 75 65 0a 20 20 20  | ey)))).............(if.value.... | 
| 6c20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66    20 28 65 71 20 6b 65 79 20 27 64 65 73 63 72 69  | .............(if.(eq.key.'descri | 
| 6c40 |  70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20  | ption).....................(let. | 
| 6c60 |  28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ((beg.(point)))................. | 
| 6c80 |  20 20 20 20 20 20 28 69 6e 73 65 72 74 20 76 61    6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ......(insert.value)............ | 
| 6ca0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 68 72 2d    72 65 6e 64 65 72 2d 72 65 67 69 6f 6e 20 62 65  | ...........(shr-render-region.be | 
| 6cc0 |  67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69  | g.(point)))...................(i | 
| 6ce0 |  6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 25    73 22 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20  | nsert.(format."%s".value)))..... | 
| 6d00 |  20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 4e  | ..........(insert.(propertize."N | 
| 6d20 |  6f 6e 65 22 20 27 66 61 63 65 20 27 69 74 61 6c    69 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | one".'face.'italic)))........... | 
| 6d40 |  20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29    29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d  | ..(insert."\n"))).........(goto- | 
| 6d60 |  63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29    29 29 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d  | char.(point-min)))).....(pop-to- | 
| 6d80 |  62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 29    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 6e 65 78  | buffer.buffer)))..(defun.nov-nex | 
| 6da0 |  74 2d 64 6f 63 75 6d 65 6e 74 20 28 26 6f 70 74    69 6f 6e 61 6c 20 63 6f 75 6e 74 29 0a 20 20 22  | t-document.(&optional.count)..." | 
| 6dc0 |  47 6f 20 74 6f 20 74 68 65 20 6e 65 78 74 20 64    6f 63 75 6d 65 6e 74 20 61 6e 64 20 72 65 6e 64  | Go.to.the.next.document.and.rend | 
| 6de0 |  65 72 20 69 74 2e 0a 54 61 6b 65 73 20 61 6e 20    6f 70 74 69 6f 6e 61 6c 20 43 4f 55 4e 54 2c 20  | er.it..Takes.an.optional.COUNT,. | 
| 6e00 |  67 6f 65 73 20 62 61 63 6b 77 61 72 64 20 69 66    20 43 4f 55 4e 54 20 69 73 20 6e 65 67 61 74 69  | goes.backward.if.COUNT.is.negati | 
| 6e20 |  76 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74    69 76 65 20 22 70 22 29 0a 20 20 28 6e 6f 76 2d  | ve."...(interactive."p")...(nov- | 
| 6e40 |  67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 6d    69 6e 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6e  | goto-document.(min.(1-.(length.n | 
| 6e60 |  6f 76 2d 64 6f 63 75 6d 65 6e 74 73 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ov-documents)).................. | 
| 6e80 |  20 20 20 20 20 20 20 20 20 28 2b 20 6e 6f 76 2d    64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20  | .........(+.nov-documents-index. | 
| 6ea0 |  28 6f 72 20 63 6f 75 6e 74 20 31 29 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 70 72 65  | (or.count.1)))))..(defun.nov-pre | 
| 6ec0 |  76 69 6f 75 73 2d 64 6f 63 75 6d 65 6e 74 20 28    26 6f 70 74 69 6f 6e 61 6c 20 63 6f 75 6e 74 29  | vious-document.(&optional.count) | 
| 6ee0 |  0a 20 20 22 47 6f 20 74 6f 20 74 68 65 20 70 72    65 76 69 6f 75 73 20 64 6f 63 75 6d 65 6e 74 20  | ..."Go.to.the.previous.document. | 
| 6f00 |  61 6e 64 20 72 65 6e 64 65 72 20 69 74 2e 0a 54    61 6b 65 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c  | and.render.it..Takes.an.optional | 
| 6f20 |  20 43 4f 55 4e 54 2c 20 67 6f 65 73 20 66 6f 72    77 61 72 64 20 69 66 20 43 4f 55 4e 54 20 69 73  | .COUNT,.goes.forward.if.COUNT.is | 
| 6f40 |  20 6e 65 67 61 74 69 76 65 2e 22 0a 20 20 28 69    6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a  | .negative."...(interactive."p"). | 
| 6f60 |  20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75    6d 65 6e 74 20 28 6d 61 78 20 30 20 28 2d 20 6e  | ..(nov-goto-document.(max.0.(-.n | 
| 6f80 |  6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64    65 78 20 28 6f 72 20 63 6f 75 6e 74 20 31 29 29  | ov-documents-index.(or.count.1)) | 
| 6fa0 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d    73 63 72 6f 6c 6c 2d 75 70 20 28 61 72 67 29 0a  | )))..(defun.nov-scroll-up.(arg). | 
| 6fc0 |  20 20 22 53 63 72 6f 6c 6c 20 77 69 74 68 20 60    73 63 72 6f 6c 6c 2d 75 70 27 20 6f 72 20 76 69  | .."Scroll.with.`scroll-up'.or.vi | 
| 6fe0 |  73 69 74 20 6e 65 78 74 20 63 68 61 70 74 65 72    20 69 66 20 61 74 20 62 6f 74 74 6f 6d 2e 22 0a  | sit.next.chapter.if.at.bottom.". | 
| 7000 |  20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22    50 22 29 0a 20 20 28 69 66 20 28 3e 3d 20 28 77  | ..(interactive."P")...(if.(>=.(w | 
| 7020 |  69 6e 64 6f 77 2d 65 6e 64 29 20 28 70 6f 69 6e    74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 6e  | indow-end).(point-max)).......(n | 
| 7040 |  6f 76 2d 6e 65 78 74 2d 64 6f 63 75 6d 65 6e 74    29 0a 20 20 20 20 28 73 63 72 6f 6c 6c 2d 75 70  | ov-next-document).....(scroll-up | 
| 7060 |  20 61 72 67 29 29 29 0a 0a 28 64 65 66 75 6e 20    6e 6f 76 2d 73 63 72 6f 6c 6c 2d 64 6f 77 6e 20  | .arg)))..(defun.nov-scroll-down. | 
| 7080 |  28 61 72 67 29 0a 20 20 22 53 63 72 6f 6c 6c 20    77 69 74 68 20 60 73 63 72 6f 6c 6c 2d 64 6f 77  | (arg)..."Scroll.with.`scroll-dow | 
| 70a0 |  6e 27 20 6f 72 20 76 69 73 69 74 20 70 72 65 76    69 6f 75 73 20 63 68 61 70 74 65 72 20 69 66 20  | n'.or.visit.previous.chapter.if. | 
| 70c0 |  61 74 20 74 6f 70 2e 22 0a 20 20 28 69 6e 74 65    72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28  | at.top."...(interactive."P")...( | 
| 70e0 |  69 66 20 28 61 6e 64 20 28 3c 3d 20 28 77 69 6e    64 6f 77 2d 73 74 61 72 74 29 20 28 70 6f 69 6e  | if.(and.(<=.(window-start).(poin | 
| 7100 |  74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 28 3e 20 6e 6f 76 2d 64 6f 63 75 6d 65  | t-min))............(>.nov-docume | 
| 7120 |  6e 74 73 2d 69 6e 64 65 78 20 30 29 29 0a 20 20    20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20  | nts-index.0)).......(progn...... | 
| 7140 |  20 20 20 28 6e 6f 76 2d 70 72 65 76 69 6f 75 73    2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20 20 20  | ...(nov-previous-document)...... | 
| 7160 |  20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70    6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20  | ...(goto-char.(point-max)))..... | 
| 7180 |  28 73 63 72 6f 6c 6c 2d 64 6f 77 6e 20 61 72 67    29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d  | (scroll-down.arg)))..(defun.nov- | 
| 71a0 |  76 69 73 69 74 2d 72 65 6c 61 74 69 76 65 2d 66    69 6c 65 20 28 66 69 6c 65 6e 61 6d 65 20 74 61  | visit-relative-file.(filename.ta | 
| 71c0 |  72 67 65 74 29 0a 20 20 22 56 69 73 69 74 20 74    68 65 20 64 6f 63 75 6d 65 6e 74 20 61 73 20 73  | rget)..."Visit.the.document.as.s | 
| 71e0 |  70 65 63 69 66 69 65 64 20 62 79 20 46 49 4c 45    4e 41 4d 45 20 61 6e 64 20 54 41 52 47 45 54 2e  | pecified.by.FILENAME.and.TARGET. | 
| 7200 |  22 0a 20 20 28 6c 65 74 20 28 69 6e 64 65 78 29    0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20  | "...(let.(index).....(when.(not. | 
| 7220 |  28 7a 65 72 6f 70 20 28 6c 65 6e 67 74 68 20 66    69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20  | (zerop.(length.filename)))...... | 
| 7240 |  20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74    2d 70 61 74 68 20 28 63 64 72 20 28 61 72 65 66  | .(let*.((current-path.(cdr.(aref | 
| 7260 |  20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 6e    6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64  | .nov-documents.nov-documents-ind | 
| 7280 |  65 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 64 69 72 65 63 74 6f 72 79 20 28 66  | ex)))..............(directory.(f | 
| 72a0 |  69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f    72 79 20 63 75 72 72 65 6e 74 2d 70 61 74 68 29  | ile-name-directory.current-path) | 
| 72c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    70 61 74 68 20 28 66 69 6c 65 2d 74 72 75 65 6e  | )..............(path.(file-truen | 
| 72e0 |  61 6d 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d 70 61    74 68 20 64 69 72 65 63 74 6f 72 79 20 66 69 6c  | ame.(nov-make-path.directory.fil | 
| 7300 |  65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6d 61 74 63 68 20 28 6e 6f  | ename)))..............(match.(no | 
| 7320 |  76 2d 66 69 6e 64 2d 64 6f 63 75 6d 65 6e 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | v-find-document................. | 
| 7340 |  20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 6f    63 29 20 28 65 71 75 61 6c 20 70 61 74 68 20 28  | .....(lambda.(doc).(equal.path.( | 
| 7360 |  66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 28 63    64 72 20 64 6f 63 29 29 29 29 29 29 29 0a 20 20  | file-truename.(cdr.doc)))))))... | 
| 7380 |  20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74    20 6d 61 74 63 68 29 0a 20 20 20 20 20 20 20 20  | ......(when.(not.match)......... | 
| 73a0 |  20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c 64 6e    27 74 20 6c 6f 63 61 74 65 20 64 6f 63 75 6d 65  | ..(error."Couldn't.locate.docume | 
| 73c0 |  6e 74 22 29 29 0a 20 20 20 20 20 20 20 20 28 73    65 74 71 20 69 6e 64 65 78 20 6d 61 74 63 68 29  | nt")).........(setq.index.match) | 
| 73e0 |  29 29 0a 20 20 20 20 3b 3b 20 48 41 43 4b 3a 20    74 68 69 73 20 62 69 6e 64 69 6e 67 20 69 73 20  | )).....;;.HACK:.this.binding.is. | 
| 7400 |  6f 6e 6c 79 20 6e 65 65 64 20 66 6f 72 20 45 6d    61 63 73 20 32 37 2e 31 20 61 6e 64 20 6f 6c 64  | only.need.for.Emacs.27.1.and.old | 
| 7420 |  65 72 2c 20 61 73 20 6f 66 0a 20 20 20 20 3b 3b    20 45 6d 61 63 73 20 32 38 2e 31 2c 20 73 68 72  | er,.as.of.....;;.Emacs.28.1,.shr | 
| 7440 |  2e 65 6c 20 61 6c 77 61 79 73 20 61 64 64 73 20    74 68 65 20 73 68 72 2d 74 61 72 67 65 74 2d 69  | .el.always.adds.the.shr-target-i | 
| 7460 |  64 20 70 72 6f 70 65 72 74 79 0a 20 20 20 20 28    6c 65 74 20 28 28 73 68 72 2d 74 61 72 67 65 74  | d.property.....(let.((shr-target | 
| 7480 |  2d 69 64 20 74 61 72 67 65 74 29 29 0a 20 20 20    20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63  | -id.target)).......(nov-goto-doc | 
| 74a0 |  75 6d 65 6e 74 20 28 6f 72 20 69 6e 64 65 78 20    6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e  | ument.(or.index.nov-documents-in | 
| 74c0 |  64 65 78 29 29 29 29 0a 20 20 28 77 68 65 6e 20    74 61 72 67 65 74 0a 20 20 20 20 28 6c 65 74 20  | dex))))...(when.target.....(let. | 
| 74e0 |  28 28 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e    29 29 0a 20 20 20 20 20 20 20 20 20 20 64 6f 6e  | ((pos.(point-min))...........don | 
| 7500 |  65 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20    28 61 6e 64 20 28 6e 6f 74 20 64 6f 6e 65 29 0a  | e).......(while.(and.(not.done). | 
| 7520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 70 6f 73 20 28 6e 65 78  | ..................(setq.pos.(nex | 
| 7540 |  74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74    79 2d 63 68 61 6e 67 65 20 70 6f 73 20 27 73 68  | t-single-property-change.pos.'sh | 
| 7560 |  72 2d 74 61 72 67 65 74 2d 69 64 29 29 29 0a 20    20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72  | r-target-id))).........(let.((pr | 
| 7580 |  6f 70 65 72 74 79 20 28 67 65 74 2d 74 65 78 74    2d 70 72 6f 70 65 72 74 79 20 70 6f 73 20 27 73  | operty.(get-text-property.pos.'s | 
| 75a0 |  68 72 2d 74 61 72 67 65 74 2d 69 64 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | hr-target-id)))...........(when. | 
| 75c0 |  28 6f 72 20 28 65 71 75 61 6c 20 70 72 6f 70 65    72 74 79 20 74 61 72 67 65 74 29 0a 20 20 20 20  | (or.(equal.property.target)..... | 
| 75e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 4e 4f 54 45 3a 20 61 73 20 6f 66 20 45  | ................;;.NOTE:.as.of.E | 
| 7600 |  6d 61 63 73 20 32 38 2e 31 20 74 68 69 73 20 6d    61 79 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20  | macs.28.1.this.may.be.a.list.of. | 
| 7620 |  74 61 72 67 65 74 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64  | targets.....................(and | 
| 7640 |  20 28 63 6f 6e 73 70 20 70 72 6f 70 65 72 74 79    29 20 28 6d 65 6d 62 65 72 20 74 61 72 67 65 74  | .(consp.property).(member.target | 
| 7660 |  20 70 72 6f 70 65 72 74 79 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63  | .property))).............(goto-c | 
| 7680 |  68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 28  | har.pos).............(recenter.( | 
| 76a0 |  31 2d 20 28 6d 61 78 20 31 20 73 63 72 6f 6c 6c    2d 6d 61 72 67 69 6e 29 29 29 0a 20 20 20 20 20  | 1-.(max.1.scroll-margin)))...... | 
| 76c0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 6e    65 20 74 29 29 29 29 0a 20 20 20 20 20 20 28 77  | .......(setq.done.t)))).......(w | 
| 76e0 |  68 65 6e 20 28 6e 6f 74 20 64 6f 6e 65 29 0a 20    20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43  | hen.(not.done).........(error."C | 
| 7700 |  6f 75 6c 64 6e 27 74 20 6c 6f 63 61 74 65 20 74    61 72 67 65 74 22 29 29 29 29 29 0a 0a 3b 3b 20  | ouldn't.locate.target")))))..;;. | 
| 7720 |  61 64 61 70 74 65 64 20 66 72 6f 6d 20 60 73 68    72 2d 62 72 6f 77 73 65 2d 75 72 6c 27 0a 28 64  | adapted.from.`shr-browse-url'.(d | 
| 7740 |  65 66 75 6e 20 6e 6f 76 2d 62 72 6f 77 73 65 2d    75 72 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6d  | efun.nov-browse-url.(&optional.m | 
| 7760 |  6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 20 22 46    6f 6c 6c 6f 77 20 61 6e 20 65 78 74 65 72 6e 61  | ouse-event)..."Follow.an.externa | 
| 7780 |  6c 20 75 72 6c 20 77 69 74 68 20 60 62 72 6f 77    73 65 2d 75 72 6c 27 2e 0a 49 6e 74 65 72 6e 61  | l.url.with.`browse-url'..Interna | 
| 77a0 |  6c 20 55 52 4c 73 20 61 72 65 20 76 69 73 69 74    65 64 20 77 69 74 68 20 60 6e 6f 76 2d 76 69 73  | l.URLs.are.visited.with.`nov-vis | 
| 77c0 |  69 74 2d 72 65 6c 61 74 69 76 65 2d 66 69 6c 65    27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69  | it-relative-file'."...(interacti | 
| 77e0 |  76 65 20 28 6c 69 73 74 20 6c 61 73 74 2d 6e 6f    6e 6d 65 6e 75 2d 65 76 65 6e 74 29 29 0a 20 20  | ve.(list.last-nonmenu-event))... | 
| 7800 |  28 6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 6e 74    20 6d 6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 20  | (mouse-set-point.mouse-event)... | 
| 7820 |  28 6c 65 74 20 28 28 75 72 6c 20 28 67 65 74 2d    74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70  | (let.((url.(get-text-property.(p | 
| 7840 |  6f 69 6e 74 29 20 27 73 68 72 2d 75 72 6c 29 29    29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74  | oint).'shr-url))).....(when.(not | 
| 7860 |  20 75 72 6c 29 0a 20 20 20 20 20 20 28 75 73 65    72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 69 6e 6b  | .url).......(user-error."No.link | 
| 7880 |  20 75 6e 64 65 72 20 70 6f 69 6e 74 22 29 29 0a    20 20 20 20 28 69 66 20 28 6e 6f 76 2d 65 78 74  | .under.point")).....(if.(nov-ext | 
| 78a0 |  65 72 6e 61 6c 2d 75 72 6c 2d 70 20 75 72 6c 29    0a 20 20 20 20 20 20 20 20 28 62 72 6f 77 73 65  | ernal-url-p.url).........(browse | 
| 78c0 |  2d 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 20 20    28 61 70 70 6c 79 20 27 6e 6f 76 2d 76 69 73 69  | -url.url).......(apply.'nov-visi | 
| 78e0 |  74 2d 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 20    28 6e 6f 76 2d 75 72 6c 2d 66 69 6c 65 6e 61 6d  | t-relative-file.(nov-url-filenam | 
| 7900 |  65 2d 61 6e 64 2d 74 61 72 67 65 74 20 75 72 6c    29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f  | e-and-target.url)))))..(defun.no | 
| 7920 |  76 2d 63 6f 70 79 2d 75 72 6c 20 28 26 6f 70 74    69 6f 6e 61 6c 20 6d 6f 75 73 65 2d 65 76 65 6e  | v-copy-url.(&optional.mouse-even | 
| 7940 |  74 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76    65 20 28 6c 69 73 74 20 6c 61 73 74 2d 6e 6f 6e  | t)...(interactive.(list.last-non | 
| 7960 |  6d 65 6e 75 2d 65 76 65 6e 74 29 29 0a 20 20 28    6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 6e 74 20  | menu-event))...(mouse-set-point. | 
| 7980 |  6d 6f 75 73 65 2d 65 76 65 6e 74 29 0a 20 20 28    6c 65 74 20 28 28 75 72 6c 20 28 67 65 74 2d 74  | mouse-event)...(let.((url.(get-t | 
| 79a0 |  65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f    69 6e 74 29 20 27 73 68 72 2d 75 72 6c 29 29 29  | ext-property.(point).'shr-url))) | 
| 79c0 |  0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20    75 72 6c 29 0a 20 20 20 20 20 20 28 75 73 65 72  | .....(when.(not.url).......(user | 
| 79e0 |  2d 65 72 72 6f 72 20 22 4e 6f 20 6c 69 6e 6b 20    75 6e 64 65 72 20 70 6f 69 6e 74 22 29 29 0a 20  | -error."No.link.under.point")).. | 
| 7a00 |  20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20 75 72 6c    29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22  | ...(kill-new.url).....(message." | 
| 7a20 |  25 73 22 20 75 72 6c 29 29 29 0a 0a 28 64 65 66    75 6e 20 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61  | %s".url)))..(defun.nov-saved-pla | 
| 7a40 |  63 65 73 20 28 29 0a 20 20 22 52 65 74 72 69 65    76 65 20 73 61 76 65 64 20 70 6c 61 63 65 73 20  | ces.()..."Retrieve.saved.places. | 
| 7a60 |  69 6e 20 60 6e 6f 76 2d 73 61 76 65 2d 70 6c 61    63 65 2d 66 69 6c 65 27 2e 22 0a 20 20 28 77 68  | in.`nov-save-place-file'."...(wh | 
| 7a80 |  65 6e 20 28 61 6e 64 20 6e 6f 76 2d 73 61 76 65    2d 70 6c 61 63 65 2d 66 69 6c 65 20 28 66 69 6c  | en.(and.nov-save-place-file.(fil | 
| 7aa0 |  65 2d 65 78 69 73 74 73 2d 70 20 6e 6f 76 2d 73    61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65 29 29  | e-exists-p.nov-save-place-file)) | 
| 7ac0 |  0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d    62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e  | .....(with-temp-buffer.......(in | 
| 7ae0 |  73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e    74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 6e 6f 76  | sert-file-contents-literally.nov | 
| 7b00 |  2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65    29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68  | -save-place-file).......(goto-ch | 
| 7b20 |  61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a    20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e  | ar.(point-min)).......(condition | 
| 7b40 |  2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20    20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65  | -case.nil...........(read.(curre | 
| 7b60 |  6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20    20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20  | nt-buffer)).........(error...... | 
| 7b80 |  20 20 20 20 28 6e 6f 76 2d 77 61 72 6e 20 22 46    61 69 6c 65 64 20 74 6f 20 72 65 74 72 69 65 76  | ....(nov-warn."Failed.to.retriev | 
| 7ba0 |  65 20 73 61 76 65 64 20 70 6c 61 63 65 73 20 66    72 6f 6d 20 60 6e 6f 76 2d 73 61 76 65 2d 70 6c  | e.saved.places.from.`nov-save-pl | 
| 7bc0 |  61 63 65 2d 66 69 6c 65 27 22 29 0a 20 20 20 20    20 20 20 20 20 6e 69 6c 29 29 29 29 29 0a 0a 28  | ace-file'")..........nil)))))..( | 
| 7be0 |  64 65 66 75 6e 20 6e 6f 76 2d 73 61 76 65 64 2d    70 6c 61 63 65 20 28 69 64 65 6e 74 69 66 69 65  | defun.nov-saved-place.(identifie | 
| 7c00 |  72 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 73    61 76 65 64 20 70 6c 61 63 65 20 66 6f 72 20 49  | r)..."Retrieve.saved.place.for.I | 
| 7c20 |  44 45 4e 54 49 46 49 45 52 20 69 6e 20 60 6e 6f    76 2d 73 61 76 65 64 2d 70 6c 61 63 65 2d 66 69  | DENTIFIER.in.`nov-saved-place-fi | 
| 7c40 |  6c 65 27 2e 22 0a 20 20 28 63 64 72 20 28 61 73    73 71 20 69 64 65 6e 74 69 66 69 65 72 20 28 6e  | le'."...(cdr.(assq.identifier.(n | 
| 7c60 |  6f 76 2d 73 61 76 65 64 2d 70 6c 61 63 65 73 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d  | ov-saved-places))))..(defun.nov- | 
| 7c80 |  73 61 76 65 2d 70 6c 61 63 65 20 28 69 64 65 6e    74 69 66 69 65 72 20 69 6e 64 65 78 20 70 6f 69  | save-place.(identifier.index.poi | 
| 7ca0 |  6e 74 29 0a 20 20 22 53 61 76 65 20 70 6c 61 63    65 20 61 73 20 69 64 65 6e 74 69 66 69 65 64 20  | nt)..."Save.place.as.identified. | 
| 7cc0 |  62 79 20 49 44 45 4e 54 49 46 49 45 52 2c 20 49    4e 44 45 58 20 61 6e 64 20 50 4f 49 4e 54 2e 0a  | by.IDENTIFIER,.INDEX.and.POINT.. | 
| 7ce0 |  53 61 76 69 6e 67 20 69 73 20 6f 6e 6c 79 20 64    6f 6e 65 20 69 66 20 60 6e 6f 76 2d 73 61 76 65  | Saving.is.only.done.if.`nov-save | 
| 7d00 |  2d 70 6c 61 63 65 2d 66 69 6c 65 27 20 69 73 20    73 65 74 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f  | -place-file'.is.set."...(when.no | 
| 7d20 |  76 2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c    65 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 6c  | v-save-place-file.....(let*.((pl | 
| 7d40 |  61 63 65 20 60 28 2c 69 64 65 6e 74 69 66 69 65    72 20 28 69 6e 64 65 78 20 2e 20 2c 69 6e 64 65  | ace.`(,identifier.(index...,inde | 
| 7d60 |  78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | x).............................. | 
| 7d80 |  20 20 20 28 70 6f 69 6e 74 20 2e 20 2c 70 6f 69    6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ...(point...,point)))........... | 
| 7da0 |  20 28 70 6c 61 63 65 73 20 28 63 6f 6e 73 20 70    6c 61 63 65 20 28 61 73 73 71 2d 64 65 6c 65 74  | .(places.(cons.place.(assq-delet | 
| 7dc0 |  65 2d 61 6c 6c 20 69 64 65 6e 74 69 66 69 65 72    20 28 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61 63  | e-all.identifier.(nov-saved-plac | 
| 7de0 |  65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 70 72 69 6e 74 2d 6c 65 76 65 6c 0a 20 20  | es))))............print-level... | 
| 7e00 |  20 20 20 20 20 20 20 20 20 70 72 69 6e 74 2d 6c    65 6e 67 74 68 29 0a 20 20 20 20 20 20 28 77 69  | .........print-length).......(wi | 
| 7e20 |  74 68 2d 74 65 6d 70 2d 66 69 6c 65 20 6e 6f 76    2d 73 61 76 65 2d 70 6c 61 63 65 2d 66 69 6c 65  | th-temp-file.nov-save-place-file | 
| 7e40 |  0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74    20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e  | .........(insert.(prin1-to-strin | 
| 7e60 |  67 20 70 6c 61 63 65 73 29 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 6e 6f 76 2d 2d 69 6e 64 65  | g.places))))))..(defun.nov--inde | 
| 7e80 |  78 2d 76 61 6c 69 64 2d 70 20 28 64 6f 63 75 6d    65 6e 74 73 20 69 6e 64 65 78 29 0a 20 20 28 61  | x-valid-p.(documents.index)...(a | 
| 7ea0 |  6e 64 20 28 69 6e 74 65 67 65 72 70 20 69 6e 64    65 78 29 0a 20 20 20 20 20 20 20 28 3e 3d 20 69  | nd.(integerp.index)........(>=.i | 
| 7ec0 |  6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 20 28    3c 20 69 6e 64 65 78 20 28 6c 65 6e 67 74 68 20  | ndex.0)........(<.index.(length. | 
| 7ee0 |  64 6f 63 75 6d 65 6e 74 73 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6e 6f 76 2d 68 69 73 74 6f 72  | documents))))..(defun.nov-histor | 
| 7f00 |  79 2d 62 61 63 6b 20 28 29 0a 20 20 22 47 6f 20    62 61 63 6b 20 69 6e 20 74 68 65 20 68 69 73 74  | y-back.()..."Go.back.in.the.hist | 
| 7f20 |  6f 72 79 20 74 6f 20 74 68 65 20 6c 61 73 74 20    76 69 73 69 74 65 64 20 64 6f 63 75 6d 65 6e 74  | ory.to.the.last.visited.document | 
| 7f40 |  2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76    65 29 0a 20 20 28 6f 72 20 6e 6f 76 2d 68 69 73  | ."...(interactive)...(or.nov-his | 
| 7f60 |  74 6f 72 79 0a 20 20 20 20 20 20 28 75 73 65 72    2d 65 72 72 6f 72 20 22 54 68 69 73 20 69 73 20  | tory.......(user-error."This.is. | 
| 7f80 |  74 68 65 20 66 69 72 73 74 20 64 6f 63 75 6d 65    6e 74 20 79 6f 75 20 6c 6f 6f 6b 65 64 20 61 74  | the.first.document.you.looked.at | 
| 7fa0 |  22 29 29 0a 20 20 28 6c 65 74 20 28 28 68 69 73    74 6f 72 79 2d 66 6f 72 77 61 72 64 20 28 63 6f  | "))...(let.((history-forward.(co | 
| 7fc0 |  6e 73 20 28 6c 69 73 74 20 6e 6f 76 2d 64 6f 63    75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 28 70 6f  | ns.(list.nov-documents-index.(po | 
| 7fe0 |  69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | int))........................... | 
| 8000 |  20 20 20 20 20 6e 6f 76 2d 68 69 73 74 6f 72 79    2d 66 6f 72 77 61 72 64 29 29 29 0a 20 20 20 20  | .....nov-history-forward)))..... | 
| 8020 |  28 73 65 71 2d 6c 65 74 20 28 69 6e 64 65 78 20    6f 70 6f 69 6e 74 29 20 28 63 61 72 20 6e 6f 76  | (seq-let.(index.opoint).(car.nov | 
| 8040 |  2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20    28 73 65 74 71 20 6e 6f 76 2d 68 69 73 74 6f 72  | -history).......(setq.nov-histor | 
| 8060 |  79 20 28 63 64 72 20 6e 6f 76 2d 68 69 73 74 6f    72 79 29 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d  | y.(cdr.nov-history)).......(nov- | 
| 8080 |  67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 69 6e    64 65 78 29 0a 20 20 20 20 20 20 28 73 65 74 71  | goto-document.index).......(setq | 
| 80a0 |  20 6e 6f 76 2d 68 69 73 74 6f 72 79 20 28 63 64    72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 29 29 0a  | .nov-history.(cdr.nov-history)). | 
| 80c0 |  20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d    68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 20  | ......(setq.nov-history-forward. | 
| 80e0 |  68 69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 29    0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61  | history-forward).......(goto-cha | 
| 8100 |  72 20 6f 70 6f 69 6e 74 29 0a 20 20 20 20 20 20    28 72 65 63 65 6e 74 65 72 20 28 31 2d 20 28 6d  | r.opoint).......(recenter.(1-.(m | 
| 8120 |  61 78 20 31 20 73 63 72 6f 6c 6c 2d 6d 61 72 67    69 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e  | ax.1.scroll-margin))))))..(defun | 
| 8140 |  20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 66 6f 72    77 61 72 64 20 28 29 0a 20 20 22 47 6f 20 66 6f  | .nov-history-forward.()..."Go.fo | 
| 8160 |  72 77 61 72 64 20 69 6e 20 74 68 65 20 68 69 73    74 6f 72 79 20 6f 66 20 76 69 73 69 74 65 64 20  | rward.in.the.history.of.visited. | 
| 8180 |  64 6f 63 75 6d 65 6e 74 73 2e 22 0a 20 20 28 69    6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6f  | documents."...(interactive)...(o | 
| 81a0 |  72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 66 6f    72 77 61 72 64 0a 20 20 20 20 20 20 28 75 73 65  | r.nov-history-forward.......(use | 
| 81c0 |  72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 69 73    20 74 68 65 20 6c 61 73 74 20 64 6f 63 75 6d 65  | r-error."This.is.the.last.docume | 
| 81e0 |  6e 74 20 79 6f 75 20 6c 6f 6f 6b 65 64 20 61 74    22 29 29 0a 20 20 28 6c 65 74 20 28 28 68 69 73  | nt.you.looked.at"))...(let.((his | 
| 8200 |  74 6f 72 79 2d 66 6f 72 77 61 72 64 20 28 63 64    72 20 6e 6f 76 2d 68 69 73 74 6f 72 79 2d 66 6f  | tory-forward.(cdr.nov-history-fo | 
| 8220 |  72 77 61 72 64 29 29 29 0a 20 20 20 20 28 73 65    71 2d 6c 65 74 20 28 69 6e 64 65 78 20 6f 70 6f  | rward))).....(seq-let.(index.opo | 
| 8240 |  69 6e 74 29 20 28 63 61 72 20 6e 6f 76 2d 68 69    73 74 6f 72 79 2d 66 6f 72 77 61 72 64 29 0a 20  | int).(car.nov-history-forward).. | 
| 8260 |  20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f 2d 64    6f 63 75 6d 65 6e 74 20 69 6e 64 65 78 29 0a 20  | .....(nov-goto-document.index).. | 
| 8280 |  20 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d 68    69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 20 68  | .....(setq.nov-history-forward.h | 
| 82a0 |  69 73 74 6f 72 79 2d 66 6f 72 77 61 72 64 29 0a    20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72  | istory-forward).......(goto-char | 
| 82c0 |  20 6f 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 28    72 65 63 65 6e 74 65 72 20 28 31 2d 20 28 6d 61  | .opoint).......(recenter.(1-.(ma | 
| 82e0 |  78 20 31 20 73 63 72 6f 6c 6c 2d 6d 61 72 67 69    6e 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61  | x.1.scroll-margin))))))..;;;###a | 
| 8300 |  75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d    64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6e 6f 76  | utoload.(define-derived-mode.nov | 
| 8320 |  2d 6d 6f 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f    64 65 20 22 45 50 55 42 22 0a 20 20 22 4d 61 6a  | -mode.special-mode."EPUB"..."Maj | 
| 8340 |  6f 72 20 6d 6f 64 65 20 66 6f 72 20 72 65 61 64    69 6e 67 20 45 50 55 42 20 64 6f 63 75 6d 65 6e  | or.mode.for.reading.EPUB.documen | 
| 8360 |  74 73 22 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20    27 6b 69 6c 6c 2d 62 75 66 66 65 72 2d 68 6f 6f  | ts"...(add-hook.'kill-buffer-hoo | 
| 8380 |  6b 20 27 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 20    6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f  | k.'nov-clean-up.nil.t)...(add-ho | 
| 83a0 |  6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68    6f 6f 6b 20 27 6e 6f 76 2d 63 6c 65 61 6e 2d 75  | ok.'kill-emacs-hook.'nov-clean-u | 
| 83c0 |  70 2d 61 6c 6c 29 0a 20 20 28 61 64 64 2d 68 6f    6f 6b 20 27 63 68 61 6e 67 65 2d 6d 61 6a 6f 72  | p-all)...(add-hook.'change-major | 
| 83e0 |  2d 6d 6f 64 65 2d 68 6f 6f 6b 20 27 6e 6f 76 2d    63 6c 65 61 6e 2d 75 70 20 6e 69 6c 20 74 29 0a  | -mode-hook.'nov-clean-up.nil.t). | 
| 8400 |  20 20 28 77 68 65 6e 20 28 6e 6f 74 20 62 75 66    66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20  | ..(when.(not.buffer-file-name).. | 
| 8420 |  20 20 20 28 65 72 72 6f 72 20 22 45 50 55 42 20    6d 75 73 74 20 62 65 20 61 73 73 6f 63 69 61 74  | ...(error."EPUB.must.be.associat | 
| 8440 |  65 64 20 77 69 74 68 20 66 69 6c 65 22 29 29 0a    20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6e 6f 76  | ed.with.file"))...(when.(not.nov | 
| 8460 |  2d 75 6e 7a 69 70 2d 70 72 6f 67 72 61 6d 29 0a    20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 7a 69  | -unzip-program).....(error."unzi | 
| 8480 |  70 20 65 78 65 63 75 74 61 62 6c 65 20 6e 6f 74    20 66 6f 75 6e 64 2c 20 63 75 73 74 6f 6d 69 7a  | p.executable.not.found,.customiz | 
| 84a0 |  65 20 60 6e 6f 76 2d 75 6e 7a 69 70 2d 70 72 6f    67 72 61 6d 27 22 29 29 0a 20 20 28 73 65 74 71  | e.`nov-unzip-program'"))...(setq | 
| 84c0 |  20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72 20 28 6d    61 6b 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 6e  | .nov-temp-dir.(make-temp-file."n | 
| 84e0 |  6f 76 2d 22 20 74 20 22 2e 65 70 75 62 22 29 29    0a 20 20 28 6c 65 74 20 28 28 65 78 69 74 2d 63  | ov-".t.".epub"))...(let.((exit-c | 
| 8500 |  6f 64 65 20 28 6e 6f 76 2d 75 6e 7a 69 70 2d 65    70 75 62 20 6e 6f 76 2d 74 65 6d 70 2d 64 69 72  | ode.(nov-unzip-epub.nov-temp-dir | 
| 8520 |  20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d    65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28  | .buffer-file-name))).....(when.( | 
| 8540 |  6e 6f 74 20 28 69 6e 74 65 67 65 72 70 20 65 78    69 74 2d 63 6f 64 65 29 29 0a 20 20 20 20 20 20  | not.(integerp.exit-code))....... | 
| 8560 |  28 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 29 0a 20    20 20 20 20 20 28 65 72 72 6f 72 20 22 45 50 55  | (nov-clean-up).......(error."EPU | 
| 8580 |  42 20 65 78 74 72 61 63 74 69 6f 6e 20 61 62 6f    72 74 65 64 20 62 79 20 73 69 67 6e 61 6c 20 25  | B.extraction.aborted.by.signal.% | 
| 85a0 |  73 22 20 65 78 69 74 2d 63 6f 64 65 29 29 0a 20    20 20 20 28 77 68 65 6e 20 28 3e 20 65 78 69 74  | s".exit-code)).....(when.(>.exit | 
| 85c0 |  2d 63 6f 64 65 20 31 29 20 3b 20 65 78 69 74 20    63 6f 64 65 20 31 20 69 73 20 6d 6f 73 74 20 6c  | -code.1).;.exit.code.1.is.most.l | 
| 85e0 |  69 6b 65 6c 79 20 61 20 77 61 72 6e 69 6e 67 0a    20 20 20 20 20 20 28 6e 6f 76 2d 63 6c 65 61 6e  | ikely.a.warning.......(nov-clean | 
| 8600 |  2d 75 70 29 0a 20 20 20 20 20 20 28 65 72 72 6f    72 20 22 45 50 55 42 20 65 78 74 72 61 63 74 69  | -up).......(error."EPUB.extracti | 
| 8620 |  6f 6e 20 66 61 69 6c 65 64 20 77 69 74 68 20 65    78 69 74 20 63 6f 64 65 20 25 64 20 28 73 65 65  | on.failed.with.exit.code.%d.(see | 
| 8640 |  20 2a 6e 6f 76 20 75 6e 7a 69 70 2a 20 62 75 66    66 65 72 29 22 0a 20 20 20 20 20 20 20 20 20 20  | .*nov.unzip*.buffer)"........... | 
| 8660 |  20 20 20 65 78 69 74 2d 63 6f 64 65 29 29 29 0a    20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6e 6f  | ...exit-code)))...(when.(not.(no | 
| 8680 |  76 2d 65 70 75 62 2d 76 61 6c 69 64 2d 70 20 6e    6f 76 2d 74 65 6d 70 2d 64 69 72 29 29 0a 20 20  | v-epub-valid-p.nov-temp-dir))... | 
| 86a0 |  20 20 28 6e 6f 76 2d 63 6c 65 61 6e 2d 75 70 29    0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76  | ..(nov-clean-up).....(error."Inv | 
| 86c0 |  61 6c 69 64 20 45 50 55 42 20 66 69 6c 65 22 29    29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74  | alid.EPUB.file"))...(let*.((cont | 
| 86e0 |  65 6e 74 20 28 6e 6f 76 2d 73 6c 75 72 70 20 28    6e 6f 76 2d 63 6f 6e 74 61 69 6e 65 72 2d 66 69  | ent.(nov-slurp.(nov-container-fi | 
| 8700 |  6c 65 6e 61 6d 65 20 6e 6f 76 2d 74 65 6d 70 2d    64 69 72 29 20 74 29 29 0a 20 20 20 20 20 20 20  | lename.nov-temp-dir).t))........ | 
| 8720 |  20 20 28 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 2d    6e 61 6d 65 20 28 6e 6f 76 2d 63 6f 6e 74 61 69  | ..(content-file-name.(nov-contai | 
| 8740 |  6e 65 72 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65    6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 29 0a 20  | ner-content-filename.content)).. | 
| 8760 |  20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74    2d 66 69 6c 65 20 28 6e 6f 76 2d 6d 61 6b 65 2d  | ........(content-file.(nov-make- | 
| 8780 |  70 61 74 68 20 6e 6f 76 2d 74 65 6d 70 2d 64 69    72 20 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 2d 6e  | path.nov-temp-dir.content-file-n | 
| 87a0 |  61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28    77 6f 72 6b 2d 64 69 72 20 28 66 69 6c 65 2d 6e  | ame))..........(work-dir.(file-n | 
| 87c0 |  61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 63 6f    6e 74 65 6e 74 2d 66 69 6c 65 29 29 0a 20 20 20  | ame-directory.content-file)).... | 
| 87e0 |  20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28    6e 6f 76 2d 73 6c 75 72 70 20 63 6f 6e 74 65 6e  | ......(content.(nov-slurp.conten | 
| 8800 |  74 2d 66 69 6c 65 20 74 29 29 29 0a 20 20 20 20    28 73 65 74 71 20 6e 6f 76 2d 63 6f 6e 74 65 6e  | t-file.t))).....(setq.nov-conten | 
| 8820 |  74 2d 66 69 6c 65 20 63 6f 6e 74 65 6e 74 2d 66    69 6c 65 29 0a 20 20 20 20 28 73 65 74 71 20 6e  | t-file.content-file).....(setq.n | 
| 8840 |  6f 76 2d 65 70 75 62 2d 76 65 72 73 69 6f 6e 20    28 6e 6f 76 2d 63 6f 6e 74 65 6e 74 2d 76 65 72  | ov-epub-version.(nov-content-ver | 
| 8860 |  73 69 6f 6e 20 63 6f 6e 74 65 6e 74 29 29 0a 20    20 20 20 28 73 65 74 71 20 6e 6f 76 2d 6d 65 74  | sion.content)).....(setq.nov-met | 
| 8880 |  61 64 61 74 61 20 28 6e 6f 76 2d 63 6f 6e 74 65    6e 74 2d 6d 65 74 61 64 61 74 61 20 63 6f 6e 74  | adata.(nov-content-metadata.cont | 
| 88a0 |  65 6e 74 29 29 0a 20 20 20 20 28 73 65 74 71 20    6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 20 28 61  | ent)).....(setq.nov-documents.(a | 
| 88c0 |  70 70 6c 79 20 27 76 65 63 74 6f 72 20 28 6e 6f    76 2d 63 6f 6e 74 65 6e 74 2d 66 69 6c 65 73 20  | pply.'vector.(nov-content-files. | 
| 88e0 |  77 6f 72 6b 2d 64 69 72 20 63 6f 6e 74 65 6e 74    29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f  | work-dir.content))).....(setq.no | 
| 8900 |  76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65    78 20 30 29 29 0a 20 20 28 73 65 74 71 20 62 75  | v-documents-index.0))...(setq.bu | 
| 8920 |  66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 20 74    29 0a 20 20 28 73 65 74 71 20 6e 6f 76 2d 66 69  | ffer-undo-list.t)...(setq.nov-fi | 
| 8940 |  6c 65 2d 6e 61 6d 65 20 28 62 75 66 66 65 72 2d    66 69 6c 65 2d 6e 61 6d 65 29 29 20 3b 20 6b 65  | le-name.(buffer-file-name)).;.ke | 
| 8960 |  70 74 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69    6c 69 74 79 20 72 65 61 73 6f 6e 73 0a 20 20 28  | pt.for.compatibility.reasons...( | 
| 8980 |  73 65 74 71 2d 6c 6f 63 61 6c 20 62 6f 6f 6b 6d    61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 2d  | setq-local.bookmark-make-record- | 
| 89a0 |  66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 27 6e 6f 76 2d 62 6f 6f 6b  | function...............'nov-book | 
| 89c0 |  6d 61 72 6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64    29 0a 20 20 28 6c 65 74 20 28 28 70 6c 61 63 65  | mark-make-record)...(let.((place | 
| 89e0 |  20 28 6e 6f 76 2d 73 61 76 65 64 2d 70 6c 61 63    65 20 28 63 64 72 20 28 61 73 73 71 20 27 69 64  | .(nov-saved-place.(cdr.(assq.'id | 
| 8a00 |  65 6e 74 69 66 69 65 72 20 6e 6f 76 2d 6d 65 74    61 64 61 74 61 29 29 29 29 29 0a 20 20 20 20 28  | entifier.nov-metadata))))).....( | 
| 8a20 |  69 66 20 70 6c 61 63 65 0a 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 69 6e 64 65 78 20 28 63  | if.place.........(let.((index.(c | 
| 8a40 |  64 72 20 28 61 73 73 71 20 27 69 6e 64 65 78 20    70 6c 61 63 65 29 29 29 0a 20 20 20 20 20 20 20  | dr.(assq.'index.place)))........ | 
| 8a60 |  20 20 20 20 20 20 20 28 70 6f 69 6e 74 20 28 63    64 72 20 28 61 73 73 71 20 27 70 6f 69 6e 74 20  | .......(point.(cdr.(assq.'point. | 
| 8a80 |  70 6c 61 63 65 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 6e 6f 76 2d 2d 69 6e  | place))))...........(if.(nov--in | 
| 8aa0 |  64 65 78 2d 76 61 6c 69 64 2d 70 20 6e 6f 76 2d    64 6f 63 75 6d 65 6e 74 73 20 69 6e 64 65 78 29  | dex-valid-p.nov-documents.index) | 
| 8ac0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20  | ...............(progn........... | 
| 8ae0 |  20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 76 2d    64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20  | ......(setq.nov-documents-index. | 
| 8b00 |  69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6e 6f 76 2d 72 65 6e 64  | index).................(nov-rend | 
| 8b20 |  65 72 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f  | er-document).................(go | 
| 8b40 |  74 6f 2d 63 68 61 72 20 70 6f 69 6e 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 76  | to-char.point)).............(nov | 
| 8b60 |  2d 77 61 72 6e 20 22 43 6f 75 6c 64 6e 27 74 20    72 65 73 74 6f 72 65 20 6c 61 73 74 20 70 6f 73  | -warn."Couldn't.restore.last.pos | 
| 8b80 |  69 74 69 6f 6e 22 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 6e 6f 76 2d 72 65 6e 64 65 72 2d  | ition").............(nov-render- | 
| 8ba0 |  64 6f 63 75 6d 65 6e 74 29 29 29 0a 20 20 20 20    20 20 28 6e 6f 76 2d 72 65 6e 64 65 72 2d 64 6f  | document))).......(nov-render-do | 
| 8bc0 |  63 75 6d 65 6e 74 29 29 29 29 0a 0a 0c 0a 3b 3b    3b 20 72 65 63 65 6e 74 66 20 69 6e 74 65 72 6f  | cument))))....;;;.recentf.intero | 
| 8be0 |  70 0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 61 64    64 2d 74 6f 2d 72 65 63 65 6e 74 66 20 28 29 0a  | p..(defun.nov-add-to-recentf.(). | 
| 8c00 |  20 20 22 41 64 64 20 72 65 61 6c 20 70 61 74 68    20 74 6f 20 72 65 63 65 6e 74 66 20 6c 69 73 74  | .."Add.real.path.to.recentf.list | 
| 8c20 |  20 69 66 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20    20 28 77 68 65 6e 20 6e 6f 76 2d 66 69 6c 65 2d  | .if.possible."...(when.nov-file- | 
| 8c40 |  6e 61 6d 65 0a 20 20 20 20 28 72 65 63 65 6e 74    66 2d 61 64 64 2d 66 69 6c 65 20 6e 6f 76 2d 66  | name.....(recentf-add-file.nov-f | 
| 8c60 |  69 6c 65 2d 6e 61 6d 65 29 29 29 0a 0a 28 61 64    64 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64 65  | ile-name)))..(add-hook.'nov-mode | 
| 8c80 |  2d 68 6f 6f 6b 20 27 6e 6f 76 2d 61 64 64 2d 74    6f 2d 72 65 63 65 6e 74 66 29 0a 28 61 64 64 2d  | -hook.'nov-add-to-recentf).(add- | 
| 8ca0 |  68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64 65 2d 68    6f 6f 6b 20 27 68 61 63 6b 2d 64 69 72 2d 6c 6f  | hook.'nov-mode-hook.'hack-dir-lo | 
| 8cc0 |  63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f    6e 2d 66 69 6c 65 2d 62 75 66 66 65 72 29 0a 0a  | cal-variables-non-file-buffer).. | 
| 8ce0 |  0c 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 2d 66 69    6e 64 2d 66 69 6c 65 20 28 66 69 6c 65 20 69 6e  | ..(defun.nov--find-file.(file.in | 
| 8d00 |  64 65 78 20 70 6f 69 6e 74 29 0a 20 20 22 4f 70    65 6e 20 46 49 4c 45 20 69 6e 20 6e 6f 76 2d 6d  | dex.point)..."Open.FILE.in.nov-m | 
| 8d20 |  6f 64 65 20 61 6e 64 20 67 6f 20 74 6f 20 74 68    65 20 73 70 65 63 69 66 69 65 64 20 49 4e 44 45  | ode.and.go.to.the.specified.INDE | 
| 8d40 |  58 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e 2e 0a    49 66 20 46 49 4c 45 20 69 73 20 6e 69 6c 2c 20  | X.and.POSITION..If.FILE.is.nil,. | 
| 8d60 |  74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66    65 72 20 69 73 20 75 73 65 64 2e 22 0a 20 20 28  | the.current.buffer.is.used."...( | 
| 8d80 |  77 68 65 6e 20 66 69 6c 65 0a 20 20 20 20 28 66    69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 29 29 0a  | when.file.....(find-file.file)). | 
| 8da0 |  20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 6d 61    6a 6f 72 2d 6d 6f 64 65 20 27 6e 6f 76 2d 6d 6f  | ..(unless.(eq.major-mode.'nov-mo | 
| 8dc0 |  64 65 29 0a 20 20 20 20 28 6e 6f 76 2d 6d 6f 64    65 29 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74  | de).....(nov-mode))...(when.(not | 
| 8de0 |  20 28 6e 6f 76 2d 2d 69 6e 64 65 78 2d 76 61 6c    69 64 2d 70 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e  | .(nov--index-valid-p.nov-documen | 
| 8e00 |  74 73 20 69 6e 64 65 78 29 29 0a 20 20 20 20 28    65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 64  | ts.index)).....(error."Invalid.d | 
| 8e20 |  6f 63 75 6d 65 6e 74 73 20 69 6e 64 65 78 22 29    29 0a 20 20 28 73 65 74 71 20 6e 6f 76 2d 64 6f  | ocuments.index"))...(setq.nov-do | 
| 8e40 |  63 75 6d 65 6e 74 73 2d 69 6e 64 65 78 20 69 6e    64 65 78 29 0a 20 20 28 6e 6f 76 2d 72 65 6e 64  | cuments-index.index)...(nov-rend | 
| 8e60 |  65 72 2d 64 6f 63 75 6d 65 6e 74 29 0a 20 20 28    67 6f 74 6f 2d 63 68 61 72 20 70 6f 69 6e 74 29  | er-document)...(goto-char.point) | 
| 8e80 |  29 0a 0a 3b 3b 20 42 6f 6f 6b 6d 61 72 6b 20 69    6e 74 65 72 6f 70 0a 28 64 65 66 75 6e 20 6e 6f  | )..;;.Bookmark.interop.(defun.no | 
| 8ea0 |  76 2d 62 6f 6f 6b 6d 61 72 6b 2d 6d 61 6b 65 2d    72 65 63 6f 72 64 20 20 28 29 0a 20 20 22 43 72  | v-bookmark-make-record..()..."Cr | 
| 8ec0 |  65 61 74 65 20 61 20 62 6f 6f 6b 6d 61 72 6b 20    65 70 75 62 20 72 65 63 6f 72 64 2e 22 0a 20 20  | eate.a.bookmark.epub.record."... | 
| 8ee0 |  28 63 6f 6e 73 20 28 62 75 66 66 65 72 2d 6e 61    6d 65 29 0a 20 20 20 20 20 20 20 20 60 28 28 66  | (cons.(buffer-name).........`((f | 
| 8f00 |  69 6c 65 6e 61 6d 65 20 2e 20 2c 6e 6f 76 2d 66    69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20  | ilename...,nov-file-name)....... | 
| 8f20 |  20 20 20 20 28 69 6e 64 65 78 20 2e 20 2c 6e 6f    76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65  | ....(index...,nov-documents-inde | 
| 8f40 |  78 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6f    73 69 74 69 6f 6e 20 2e 20 2c 28 70 6f 69 6e 74  | x)...........(position...,(point | 
| 8f60 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 61    6e 64 6c 65 72 20 2e 20 6e 6f 76 2d 62 6f 6f 6b  | ))...........(handler...nov-book | 
| 8f80 |  6d 61 72 6b 2d 6a 75 6d 70 2d 68 61 6e 64 6c 65    72 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74  | mark-jump-handler))))..;;;###aut | 
| 8fa0 |  6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6e 6f 76    2d 62 6f 6f 6b 6d 61 72 6b 2d 6a 75 6d 70 2d 68  | oload.(defun.nov-bookmark-jump-h | 
| 8fc0 |  61 6e 64 6c 65 72 20 28 62 6d 6b 29 0a 20 20 22    54 68 65 20 62 6f 6f 6b 6d 61 72 6b 20 68 61 6e  | andler.(bmk)..."The.bookmark.han | 
| 8fe0 |  64 6c 65 72 2d 66 75 6e 63 74 69 6f 6e 20 69 6e    74 65 72 66 61 63 65 20 66 6f 72 20 62 6f 6f 6b  | dler-function.interface.for.book | 
| 9000 |  6d 61 72 6b 20 42 4d 4b 2e 0a 0a 53 65 65 20 61    6c 73 6f 20 60 6e 6f 76 2d 62 6f 6f 6b 6d 61 72  | mark.BMK...See.also.`nov-bookmar | 
| 9020 |  6b 2d 6d 61 6b 65 2d 72 65 63 6f 72 64 27 2e 22    0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28  | k-make-record'."...(let.((file.( | 
| 9040 |  62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d 67 65    74 20 62 6d 6b 20 27 66 69 6c 65 6e 61 6d 65 29  | bookmark-prop-get.bmk.'filename) | 
| 9060 |  29 0a 20 20 20 20 20 20 20 20 28 69 6e 64 65 78    20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f 70 2d  | ).........(index.(bookmark-prop- | 
| 9080 |  67 65 74 20 62 6d 6b 20 27 69 6e 64 65 78 29 29    0a 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69  | get.bmk.'index)).........(positi | 
| 90a0 |  6f 6e 20 28 62 6f 6f 6b 6d 61 72 6b 2d 70 72 6f    70 2d 67 65 74 20 62 6d 6b 20 27 70 6f 73 69 74  | on.(bookmark-prop-get.bmk.'posit | 
| 90c0 |  69 6f 6e 29 29 29 0a 20 20 20 20 28 6e 6f 76 2d    2d 66 69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 20  | ion))).....(nov--find-file.file. | 
| 90e0 |  69 6e 64 65 78 20 70 6f 73 69 74 69 6f 6e 29 29    29 0a 0a 0c 0a 3b 3b 3b 20 4f 72 67 20 69 6e 74  | index.position)))....;;;.Org.int | 
| 9100 |  65 72 6f 70 0a 0a 28 64 65 66 75 6e 20 6e 6f 76    2d 6f 72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77  | erop..(defun.nov-org-link-follow | 
| 9120 |  20 28 70 61 74 68 29 0a 20 20 22 46 6f 6c 6c 6f    77 20 6e 6f 76 3a 20 6c 69 6e 6b 20 64 65 73 69  | .(path)..."Follow.nov:.link.desi | 
| 9140 |  67 6e 61 74 65 64 20 62 79 20 50 41 54 48 2e 22    0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d  | gnated.by.PATH."...(if.(string-m | 
| 9160 |  61 74 63 68 20 22 5e 5c 5c 28 2e 2a 5c 5c 29 3a    3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3a 5c 5c  | atch."^\\(.*\\)::\\([0-9]+\\):\\ | 
| 9180 |  28 5b 30 2d 39 5d 2b 5c 5c 29 24 22 20 70 61 74    68 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28  | ([0-9]+\\)$".path).......(let.(( | 
| 91a0 |  66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 72 69    6e 67 20 31 20 70 61 74 68 29 29 0a 20 20 20 20  | file.(match-string.1.path))..... | 
| 91c0 |  20 20 20 20 20 20 20 20 28 69 6e 64 65 78 20 28    73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72  | ........(index.(string-to-number | 
| 91e0 |  20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32    20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20  | .(match-string.2.path)))........ | 
| 9200 |  20 20 20 20 20 28 70 6f 69 6e 74 20 28 73 74 72    69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d  | .....(point.(string-to-number.(m | 
| 9220 |  61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 70 61    74 68 29 29 29 29 0a 20 20 20 20 20 20 20 20 28  | atch-string.3.path)))).........( | 
| 9240 |  6e 6f 76 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 66    69 6c 65 20 69 6e 64 65 78 20 70 6f 69 6e 74 29  | nov--find-file.file.index.point) | 
| 9260 |  29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e    76 61 6c 69 64 20 6e 6f 76 2e 65 6c 20 6c 69 6e  | ).....(error."Invalid.nov.el.lin | 
| 9280 |  6b 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f    76 2d 6f 72 67 2d 6c 69 6e 6b 2d 73 74 6f 72 65  | k")))..(defun.nov-org-link-store | 
| 92a0 |  20 28 29 0a 20 20 22 53 74 6f 72 65 20 63 75 72    72 65 6e 74 20 45 50 55 42 20 6c 6f 63 61 74 69  | .()..."Store.current.EPUB.locati | 
| 92c0 |  6f 6e 20 61 73 20 6e 6f 76 3a 20 6c 69 6e 6b 2e    22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28  | on.as.nov:.link."...(when.(and.( | 
| 92e0 |  65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6e    6f 76 2d 6d 6f 64 65 29 20 6e 6f 76 2d 66 69 6c  | eq.major-mode.'nov-mode).nov-fil | 
| 9300 |  65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 77 68 65    6e 20 28 6e 6f 74 20 28 69 6e 74 65 67 65 72 70  | e-name).....(when.(not.(integerp | 
| 9320 |  20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69    6e 64 65 78 29 29 0a 20 20 20 20 20 20 28 73 65  | .nov-documents-index)).......(se | 
| 9340 |  74 71 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73    2d 69 6e 64 65 78 20 30 29 29 0a 20 20 20 20 28  | tq.nov-documents-index.0)).....( | 
| 9360 |  6c 65 74 20 28 28 6f 72 67 2d 73 74 6f 72 65 2d    70 72 6f 70 73 2d 66 75 6e 63 74 69 6f 6e 0a 20  | let.((org-store-props-function.. | 
| 9380 |  20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66    62 6f 75 6e 64 70 20 27 6f 72 67 2d 6c 69 6e 6b  | ..........(if.(fboundp.'org-link | 
| 93a0 |  2d 73 74 6f 72 65 2d 70 72 6f 70 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f 72  | -store-props)................'or | 
| 93c0 |  67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 2d 70 72 6f    70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | g-link-store-props.............. | 
| 93e0 |  27 6f 72 67 2d 73 74 6f 72 65 2d 6c 69 6e 6b 2d    70 72 6f 70 73 29 29 0a 20 20 20 20 20 20 20 20  | 'org-store-link-props))......... | 
| 9400 |  20 20 28 6c 69 6e 6b 20 28 66 6f 72 6d 61 74 20    22 6e 6f 76 3a 25 73 3a 3a 25 64 3a 25 64 22 0a  | ..(link.(format."nov:%s::%d:%d". | 
| 9420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6e 6f 76 2d 66 69 6c 65  | ........................nov-file | 
| 9440 |  2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f  | -name.........................no | 
| 9460 |  76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65    78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | v-documents-index............... | 
| 9480 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64  | ..........(point)))...........(d | 
| 94a0 |  65 73 63 72 69 70 74 69 6f 6e 20 28 66 6f 72 6d    61 74 20 22 45 50 55 42 20 66 69 6c 65 20 61 74  | escription.(format."EPUB.file.at | 
| 94c0 |  20 25 73 22 20 6e 6f 76 2d 66 69 6c 65 2d 6e 61    6d 65 29 29 29 0a 20 20 20 20 20 20 28 66 75 6e  | .%s".nov-file-name))).......(fun | 
| 94e0 |  63 61 6c 6c 20 6f 72 67 2d 73 74 6f 72 65 2d 70    72 6f 70 73 2d 66 75 6e 63 74 69 6f 6e 0a 20 20  | call.org-store-props-function... | 
| 9500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 79    70 65 20 22 6e 6f 76 22 0a 20 20 20 20 20 20 20  | .............:type."nov"........ | 
| 9520 |  20 20 20 20 20 20 20 20 3a 6c 69 6e 6b 20 6c 69    6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........:link.link.............. | 
| 9540 |  20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 64    65 73 63 72 69 70 74 69 6f 6e 29 29 29 29 0a 0a  | ..:description.description)))).. | 
| 9560 |  28 63 6f 6e 64 0a 20 28 28 66 62 6f 75 6e 64 70    20 27 6f 72 67 2d 6c 69 6e 6b 2d 73 65 74 2d 70  | (cond..((fboundp.'org-link-set-p | 
| 9580 |  61 72 61 6d 65 74 65 72 73 29 0a 20 20 28 6f 72    67 2d 6c 69 6e 6b 2d 73 65 74 2d 70 61 72 61 6d  | arameters)...(org-link-set-param | 
| 95a0 |  65 74 65 72 73 0a 20 20 20 22 6e 6f 76 22 0a 20    20 20 3a 66 6f 6c 6c 6f 77 20 27 6e 6f 76 2d 6f  | eters...."nov"....:follow.'nov-o | 
| 95c0 |  72 67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 0a 20    20 20 3a 73 74 6f 72 65 20 27 6e 6f 76 2d 6f 72  | rg-link-follow....:store.'nov-or | 
| 95e0 |  67 2d 6c 69 6e 6b 2d 73 74 6f 72 65 29 29 0a 20    28 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 61  | g-link-store))..((fboundp.'org-a | 
| 9600 |  64 64 2d 6c 69 6e 6b 2d 74 79 70 65 29 0a 20 20    28 6f 72 67 2d 61 64 64 2d 6c 69 6e 6b 2d 74 79  | dd-link-type)...(org-add-link-ty | 
| 9620 |  70 65 20 22 6e 6f 76 22 20 27 6e 6f 76 2d 6f 72    67 2d 6c 69 6e 6b 2d 66 6f 6c 6c 6f 77 29 0a 20  | pe."nov".'nov-org-link-follow).. | 
| 9640 |  20 28 61 64 64 2d 68 6f 6f 6b 20 27 6f 72 67 2d    73 74 6f 72 65 2d 6c 69 6e 6b 2d 66 75 6e 63 74  | .(add-hook.'org-store-link-funct | 
| 9660 |  69 6f 6e 73 20 27 6e 6f 76 2d 6f 72 67 2d 6c 69    6e 6b 2d 73 74 6f 72 65 29 29 29 0a 0a 0c 0a 3b  | ions.'nov-org-link-store)))....; | 
| 9680 |  3b 3b 20 49 6d 65 6e 75 20 69 6e 74 65 72 6f 70    0a 0a 28 64 65 66 75 6e 20 6e 6f 76 2d 69 6d 65  | ;;.Imenu.interop..(defun.nov-ime | 
| 96a0 |  6e 75 2d 67 6f 74 6f 2d 66 75 6e 63 74 69 6f 6e    20 28 5f 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65  | nu-goto-function.(_name.filename | 
| 96c0 |  20 74 61 72 67 65 74 29 0a 20 20 22 56 69 73 69    74 20 69 6d 65 6e 75 20 69 74 65 6d 20 75 73 69  | .target)..."Visit.imenu.item.usi | 
| 96e0 |  6e 67 20 46 49 4c 45 4e 41 4d 45 20 61 6e 64 20    54 41 52 47 45 54 2e 22 0a 20 20 3b 3b 20 4d 61  | ng.FILENAME.and.TARGET."...;;.Ma | 
| 9700 |  6b 65 20 73 75 72 65 20 66 69 6c 65 20 69 73 20    76 69 73 69 74 65 64 20 72 65 6c 61 74 69 76 65  | ke.sure.file.is.visited.relative | 
| 9720 |  20 74 6f 20 74 6f 63 20 66 69 6c 65 2e 0a 20 20    28 6c 65 74 20 28 28 6e 6f 76 2d 64 6f 63 75 6d  | .to.toc.file....(let.((nov-docum | 
| 9740 |  65 6e 74 73 2d 69 6e 64 65 78 20 30 29 29 0a 20    20 20 20 28 6e 6f 76 2d 76 69 73 69 74 2d 72 65  | ents-index.0)).....(nov-visit-re | 
| 9760 |  6c 61 74 69 76 65 2d 66 69 6c 65 20 66 69 6c 65    6e 61 6d 65 20 74 61 72 67 65 74 29 29 29 0a 0a  | lative-file.filename.target))).. | 
| 9780 |  28 64 65 66 75 6e 20 6e 6f 76 2d 69 6d 65 6e 75    2d 63 72 65 61 74 65 2d 69 6e 64 65 78 20 28 29  | (defun.nov-imenu-create-index.() | 
| 97a0 |  0a 20 20 22 47 65 6e 65 72 61 74 65 20 49 6d 65    6e 75 20 69 6e 64 65 78 2e 22 0a 20 20 28 6c 65  | ..."Generate.Imenu.index."...(le | 
| 97c0 |  74 2a 20 28 28 74 6f 63 2d 70 61 74 68 20 28 63    64 72 20 28 61 72 65 66 20 6e 6f 76 2d 64 6f 63  | t*.((toc-path.(cdr.(aref.nov-doc | 
| 97e0 |  75 6d 65 6e 74 73 20 30 29 29 29 0a 20 20 20 20    20 20 20 20 20 28 6e 63 78 70 20 28 76 65 72 73  | uments.0)))..........(ncxp.(vers | 
| 9800 |  69 6f 6e 3c 20 6e 6f 76 2d 65 70 75 62 2d 76 65    72 73 69 6f 6e 20 22 33 2e 30 22 29 29 0a 20 20  | ion<.nov-epub-version."3.0"))... | 
| 9820 |  20 20 20 20 20 20 20 28 74 6f 63 20 28 77 69 74    68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20  | .......(toc.(with-temp-buffer... | 
| 9840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69    66 20 6e 63 78 70 0a 20 20 20 20 20 20 20 20 20  | ..............(if.ncxp.......... | 
| 9860 |  20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65    72 74 20 28 6e 6f 76 2d 6e 63 78 2d 74 6f 2d 68  | ...........(insert.(nov-ncx-to-h | 
| 9880 |  74 6d 6c 20 74 6f 63 2d 70 61 74 68 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tml.toc-path)).................. | 
| 98a0 |  20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f    6e 74 65 6e 74 73 20 74 6f 63 2d 70 61 74 68 29  | .(insert-file-contents.toc-path) | 
| 98c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 69 62 78 6d 6c 2d 70 61 72 73 65 2d  | ).................(libxml-parse- | 
| 98e0 |  68 74 6d 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69    6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d  | html-region.(point-min).(point-m | 
| 9900 |  61 78 29 29 29 29 29 0a 20 20 20 20 28 6d 61 70    63 61 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61  | ax))))).....(mapcar......(lambda | 
| 9920 |  20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28    6c 65 74 20 28 28 68 72 65 66 20 28 64 6f 6d 2d  | .(node)........(let.((href.(dom- | 
| 9940 |  61 74 74 72 20 6e 6f 64 65 20 27 68 72 65 66 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | attr.node.'href))..............( | 
| 9960 |  6c 61 62 65 6c 20 28 64 6f 6d 2d 74 65 78 74 20    6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20  | label.(dom-text.node)))......... | 
| 9980 |  20 28 73 65 71 2d 6c 65 74 20 28 66 69 6c 65 6e    61 6d 65 20 74 61 72 67 65 74 29 20 28 6e 6f 76  | .(seq-let.(filename.target).(nov | 
| 99a0 |  2d 75 72 6c 2d 66 69 6c 65 6e 61 6d 65 2d 61 6e    64 2d 74 61 72 67 65 74 20 68 72 65 66 29 0a 20  | -url-filename-and-target.href).. | 
| 99c0 |  20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20    6c 61 62 65 6c 20 66 69 6c 65 6e 61 6d 65 20 27  | ..........(list.label.filename.' | 
| 99e0 |  6e 6f 76 2d 69 6d 65 6e 75 2d 67 6f 74 6f 2d 66    75 6e 63 74 69 6f 6e 20 74 61 72 67 65 74 29 29  | nov-imenu-goto-function.target)) | 
| 9a00 |  29 29 0a 20 20 20 20 20 28 65 73 78 6d 6c 2d 71    75 65 72 79 2d 61 6c 6c 20 22 61 22 20 74 6f 63  | ))......(esxml-query-all."a".toc | 
| 9a20 |  29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6e 6f 76    2d 69 6d 65 6e 75 2d 73 65 74 75 70 20 28 29 0a  | ))))..(defun.nov-imenu-setup.(). | 
| 9a40 |  20 20 28 73 65 74 71 20 69 6d 65 6e 75 2d 63 72    65 61 74 65 2d 69 6e 64 65 78 2d 66 75 6e 63 74  | ..(setq.imenu-create-index-funct | 
| 9a60 |  69 6f 6e 20 27 6e 6f 76 2d 69 6d 65 6e 75 2d 63    72 65 61 74 65 2d 69 6e 64 65 78 29 29 0a 28 61  | ion.'nov-imenu-create-index)).(a | 
| 9a80 |  64 64 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64    65 2d 68 6f 6f 6b 20 27 6e 6f 76 2d 69 6d 65 6e  | dd-hook.'nov-mode-hook.'nov-imen | 
| 9aa0 |  75 2d 73 65 74 75 70 29 0a 0a 0c 0a 3b 3b 3b 20    6d 75 6c 74 69 2d 69 73 65 61 72 63 68 20 69 6e  | u-setup)....;;;.multi-isearch.in | 
| 9ac0 |  74 65 72 6f 70 0a 0a 28 64 65 66 75 6e 20 6e 6f    76 2d 6d 69 73 65 61 72 63 68 2d 6e 65 78 74 2d  | terop..(defun.nov-misearch-next- | 
| 9ae0 |  62 75 66 66 65 72 20 28 62 75 66 66 65 72 20 77    72 61 70 29 0a 20 20 28 69 66 20 69 73 65 61 72  | buffer.(buffer.wrap)...(if.isear | 
| 9b00 |  63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20    20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28  | ch-forward.......(cond........(( | 
| 9b20 |  3c 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d    69 6e 64 65 78 20 28 31 2d 20 28 6c 65 6e 67 74  | <.nov-documents-index.(1-.(lengt | 
| 9b40 |  68 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 29    29 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 76 2d  | h.nov-documents))).........(nov- | 
| 9b60 |  67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 31    2b 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d  | goto-document.(1+.nov-documents- | 
| 9b80 |  69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 20 20    28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29  | index)).........(current-buffer) | 
| 9ba0 |  29 0a 20 20 20 20 20 20 20 28 77 72 61 70 0a 20    20 20 20 20 20 20 20 28 6e 6f 76 2d 67 6f 74 6f  | )........(wrap.........(nov-goto | 
| 9bc0 |  2d 64 6f 63 75 6d 65 6e 74 20 30 29 0a 20 20 20    20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 20 28  | -document.0).........nil)).....( | 
| 9be0 |  63 6f 6e 64 0a 20 20 20 20 20 28 28 3e 20 6e 6f    76 2d 64 6f 63 75 6d 65 6e 74 73 2d 69 6e 64 65  | cond......((>.nov-documents-inde | 
| 9c00 |  78 20 30 29 0a 20 20 20 20 20 20 28 6e 6f 76 2d    67 6f 74 6f 2d 64 6f 63 75 6d 65 6e 74 20 28 31  | x.0).......(nov-goto-document.(1 | 
| 9c20 |  2d 20 6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 2d    69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 28 63  | -.nov-documents-index)).......(c | 
| 9c40 |  75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a    20 20 20 20 20 28 77 72 61 70 0a 20 20 20 20 20  | urrent-buffer))......(wrap...... | 
| 9c60 |  20 28 6e 6f 76 2d 67 6f 74 6f 2d 64 6f 63 75 6d    65 6e 74 20 28 31 2d 20 28 6c 65 6e 67 74 68 20  | .(nov-goto-document.(1-.(length. | 
| 9c80 |  6e 6f 76 2d 64 6f 63 75 6d 65 6e 74 73 29 29 29    0a 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 0a  | nov-documents))).......nil)))).. | 
| 9ca0 |  28 64 65 66 75 6e 20 6e 6f 76 2d 6d 69 73 65 61    72 63 68 2d 73 65 74 75 70 20 28 29 0a 20 20 28  | (defun.nov-misearch-setup.()...( | 
| 9cc0 |  73 65 74 71 2d 6c 6f 63 61 6c 20 6d 75 6c 74 69    2d 69 73 65 61 72 63 68 2d 6e 65 78 74 2d 62 75  | setq-local.multi-isearch-next-bu | 
| 9ce0 |  66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 23 27    6e 6f 76 2d 6d 69 73 65 61 72 63 68 2d 6e 65 78  | ffer-function.#'nov-misearch-nex | 
| 9d00 |  74 2d 62 75 66 66 65 72 29 29 0a 28 61 64 64 2d    68 6f 6f 6b 20 27 6e 6f 76 2d 6d 6f 64 65 2d 68  | t-buffer)).(add-hook.'nov-mode-h | 
| 9d20 |  6f 6f 6b 20 23 27 6e 6f 76 2d 6d 69 73 65 61 72    63 68 2d 73 65 74 75 70 29 0a 0a 28 70 72 6f 76  | ook.#'nov-misearch-setup)..(prov | 
| 9d40 |  69 64 65 20 27 6e 6f 76 29 0a 3b 3b 3b 20 6e 6f    76 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00  | ide.'nov).;;;.nov.el.ends.here.. | 
| 9d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9e00 |  6e 6f 76 2d 32 30 32 34 30 34 30 37 2e 31 32 31    39 2f 6e 6f 76 2d 70 6b 67 2e 65 6c 00 00 00 00  | nov-20240407.1219/nov-pkg.el.... | 
| 9e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9e60 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 9e80 |  30 30 30 30 37 35 32 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 35 32 31 00 20 30 00 00 00  | 0000752.00000000000.013521..0... | 
| 9ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9f00 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 9f20 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 9f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a000 |  28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 6e 6f 76 22 20 22 32 30 32 34 30 34 30 37 2e  | (define-package."nov"."20240407. | 
| a020 |  31 32 31 39 22 20 22 46 65 61 74 75 72 65 66 75    6c 20 45 50 55 42 20 72 65 61 64 65 72 20 6d 6f  | 1219"."Featureful.EPUB.reader.mo | 
| a040 |  64 65 22 0a 20 20 27 28 28 65 73 78 6d 6c 20 22    30 2e 33 2e 36 22 29 0a 20 20 20 20 28 65 6d 61  | de"...'((esxml."0.3.6").....(ema | 
| a060 |  63 73 20 22 32 35 2e 31 22 29 29 0a 20 20 3a 63    6f 6d 6d 69 74 20 22 39 62 37 62 65 66 39 35 30  | cs."25.1"))...:commit."9b7bef950 | 
| a080 |  64 36 38 63 32 35 31 38 37 31 30 63 34 38 30 37    32 39 64 36 62 62 36 30 32 36 65 39 34 38 39 22  | d68c2518710c480729d6bb6026e9489" | 
| a0a0 |  20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22    56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65  | .:authors...'(("Vasilij.Schneide | 
| a0c0 |  72 6d 61 6e 6e 22 20 2e 20 22 6d 61 69 6c 40 76    61 73 69 6c 69 6a 2e 64 65 22 29 29 0a 20 20 3a  | rmann"..."mail@vasilij.de"))...: | 
| a0e0 |  6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28    28 22 56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69  | maintainers...'(("Vasilij.Schnei | 
| a100 |  64 65 72 6d 61 6e 6e 22 20 2e 20 22 6d 61 69 6c    40 76 61 73 69 6c 69 6a 2e 64 65 22 29 29 0a 20  | dermann"..."mail@vasilij.de")).. | 
| a120 |  20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27    28 22 56 61 73 69 6c 69 6a 20 53 63 68 6e 65 69  | .:maintainer...'("Vasilij.Schnei | 
| a140 |  64 65 72 6d 61 6e 6e 22 20 2e 20 22 6d 61 69 6c    40 76 61 73 69 6c 69 6a 2e 64 65 22 29 0a 20 20  | dermann"..."mail@vasilij.de")... | 
| a160 |  3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 68    79 70 65 72 6d 65 64 69 61 22 20 22 6d 75 6c 74  | :keywords...'("hypermedia"."mult | 
| a180 |  69 6d 65 64 69 61 22 20 22 65 70 75 62 22 29 0a    20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f  | imedia"."epub")...:url."https:// | 
| a1a0 |  64 65 70 70 2e 62 72 61 75 73 65 2e 63 63 2f 6e    6f 76 2e 65 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c  | depp.brause.cc/nov.el").;;.Local | 
| a1c0 |  20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e    6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20  | .Variables:.;;.no-byte-compile:. | 
| a1e0 |  74 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | t.;;.End:....................... | 
| a200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a2a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a2c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a2e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a3a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a3c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a3e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a4a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a4c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a4e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a5a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a5c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a5e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a6a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a6c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a6e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a7a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a7c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a7e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a800 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a820 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a8a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a8c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a8e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a9a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a9c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| a9e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aa00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aa20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aa40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aa60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aa80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aaa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ab00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ab20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ab40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ab60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ab80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| abc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| abe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ac00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ac20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ac40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ac60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ac80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| acc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ace0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ad00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ad20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ad40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ad60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ad80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ada0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| adc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ade0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ae00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ae20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ae40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ae60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ae80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| aee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| af00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| af20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| af40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| af60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| af80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| afa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| afc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| afe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b0a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b0c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b0e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b1a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b1c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b1e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b2a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b2c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b2e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b3a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b3c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b3e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b4a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b4c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b4e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b5a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b5c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b5e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b6a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b6c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b6e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b7a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b7c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b7e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b800 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b820 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b8a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b8c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b8e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b9a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b9c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| b9e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ba00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ba20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ba40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ba60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| ba80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| baa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bb00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bb20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bb40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bb60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bb80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bbc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bbe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bc00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bc20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bc40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bc60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bc80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bcc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bd00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bd20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bd40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bd60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bd80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bda0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bdc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bde0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| be00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| be20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| be40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| be60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| be80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bf00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bf20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bf40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bf60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bf80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bfa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bfc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| bfe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c0a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c0c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c0e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c1a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c1c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c1e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c2a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c2c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c2e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c3a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c3c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c3e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c4a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c4c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c4e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c5a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c5c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c5e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c6a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c6c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c6e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c7a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c7c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| c7e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ |