summaryrefslogtreecommitdiff
path: root/.localrepo/f-20241003.1131.tar
blob: 890882003877809bf7501d971242d9c5e85619af (plain)
ofshex dumpascii
0000 66 2d 32 30 32 34 31 30 30 33 2e 31 31 33 31 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f-20241003.1131/................
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 32 31 37 00 20 35 00 00 00 0000000.00000000000.011217..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 66 2d 32 30 32 34 31 30 30 33 2e 31 31 33 31 2f 66 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 f-20241003.1131/f-pkg.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 30 30 30 37 34 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 35 35 00 20 30 00 00 00 0000747.00000000000.012555..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 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63 ;;.-*-.no-byte-compile:.t;.lexic
0420 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b al-binding:.nil.-*-.(define-pack
0440 61 67 65 20 22 66 22 20 22 32 30 32 34 31 30 30 33 2e 31 31 33 31 22 0a 20 20 22 4d 6f 64 65 72 age."f"."20241003.1131"..."Moder
0460 6e 20 41 50 49 20 66 6f 72 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 66 69 6c 65 73 20 61 6e 64 n.API.for.working.with.files.and
0480 20 64 69 72 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 34 2e 31 22 .directories."...'((emacs."24.1"
04a0 29 0a 20 20 20 20 28 73 20 20 20 20 20 22 31 2e 37 2e 30 22 29 0a 20 20 20 20 28 64 61 73 68 20 ).....(s....."1.7.0").....(dash.
04c0 20 22 32 2e 32 2e 30 22 29 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 ."2.2.0"))...:url."http://github
04e0 2e 63 6f 6d 2f 72 65 6a 65 65 70 2f 66 2e 65 6c 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 39 33 31 .com/rejeep/f.el"...:commit."931
0500 62 36 64 30 36 36 37 66 65 30 33 65 37 62 66 31 63 36 63 32 38 32 64 36 64 38 64 37 30 30 36 31 b6d0667fe03e7bf1c6c282d6d8d70061
0520 34 33 63 35 32 22 0a 20 20 3a 72 65 76 64 65 73 63 20 22 39 33 31 62 36 64 30 36 36 37 66 65 22 43c52"...:revdesc."931b6d0667fe"
0540 0a 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 66 69 6c 65 73 22 20 22 64 69 72 65 63 74 6f 72 ...:keywords.'("files"."director
0560 69 65 73 22 29 0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 4a 6f 68 61 6e 20 41 6e 64 65 72 ies")...:authors.'(("Johan.Ander
0580 73 73 6f 6e 22 20 2e 20 22 6a 6f 68 61 6e 2e 72 65 6a 65 65 70 40 67 6d 61 69 6c 2e 63 6f 6d 22 sson"..."johan.rejeep@gmail.com"
05a0 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 20 27 28 28 22 4c 75 63 69 65 6e 20 43 61 72 ))...:maintainers.'(("Lucien.Car
05c0 74 69 65 72 2d 54 69 6c 65 74 22 20 2e 20 22 6c 75 63 69 65 6e 40 70 68 75 6e 64 72 61 6b 2e 63 tier-Tilet"..."lucien@phundrak.c
05e0 6f 6d 22 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 om")))..........................
0600 66 2d 32 30 32 34 31 30 30 33 2e 31 31 33 31 2f 66 2d 73 68 6f 72 74 64 6f 63 2e 65 6c 00 00 00 f-20241003.1131/f-shortdoc.el...
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 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
0680 30 30 33 33 36 37 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 33 30 00 20 30 00 00 00 0033676.00000000000.013630..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 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...................
0720 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...................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 3b 3b 3b 20 66 2d 73 68 6f 72 74 64 6f 63 2e 65 6c 20 2d 2d 2d 20 53 68 6f 72 74 64 6f 63 20 66 ;;;.f-shortdoc.el.---.Shortdoc.f
0820 6f 72 20 66 2e 65 6c 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 or.f.el.-*-.lexical-binding:.t;.
0840 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 41 75 74 68 no-byte-compile:.t;.-*-..;;.Auth
0860 6f 72 3a 20 4c 75 63 69 65 6e 20 43 61 72 74 69 65 72 2d 54 69 6c 65 74 20 3c 6c 75 63 69 65 6e or:.Lucien.Cartier-Tilet.<lucien
0880 40 70 68 75 6e 64 72 61 6b 2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72 3a 20 4c 75 @phundrak.com>.;;.Maintainer:.Lu
08a0 63 69 65 6e 20 43 61 72 74 69 65 72 2d 54 69 6c 65 74 20 3c 6c 75 63 69 65 6e 40 70 68 75 6e 64 cien.Cartier-Tilet.<lucien@phund
08c0 72 61 6b 2e 63 6f 6d 3e 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 rak.com>.;;.Package-Requires:.((
08e0 65 6d 61 63 73 20 22 32 38 2e 31 22 29 29 0a 3b 3b 20 48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 emacs."28.1")).;;.Homepage:.http
0900 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 6a 65 65 70 2f 66 2e 65 6c 0a 0a 3b 3b 20 54 s://github.com/rejeep/f.el..;;.T
0920 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 his.file.is.not.part.of.GNU.Emac
0940 73 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 s..;;.This.program.is.free.softw
0960 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 are:.you.can.redistribute.it.and
0980 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 /or.modify.;;.it.under.the.terms
09a0 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .of.the.GNU.General.Public.Licen
09c0 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 se.as.published.by.;;.the.Free.S
09e0 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 oftware.Foundation,.either.versi
0a00 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 on.3.of.the.License,.or.;;.(at.y
0a20 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a our.option).any.later.version...
0a40 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 ;;.This.program.is.distributed.i
0a60 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 n.the.hope.that.it.will.be.usefu
0a80 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 l,.;;.but.WITHOUT.ANY.WARRANTY;.
0aa0 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 without.even.the.implied.warrant
0ac0 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 y.of.;;.MERCHANTABILITY.or.FITNE
0ae0 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
0b00 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 e.the.;;.GNU.General.Public.Lice
0b20 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 nse.for.more.details...;;.You.sh
0b40 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 ould.have.received.a.copy.of.the
0b60 20 47 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 0a 3b 3b 20 61 .GNU.General.Public.License.;;.a
0b80 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c long.with.this.program...If.not,
0ba0 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 .see.<https://www.gnu.org/licens
0bc0 65 73 2f 3e 2e 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 53 68 6f 72 es/>....;;;.Commentary:..;;.Shor
0be0 74 64 6f 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 66 2e 65 6c 0a 0a 3b 3b tdoc.implementation.for.f.el..;;
0c00 3b 20 43 6f 64 65 3a 0a 0a 28 77 68 65 6e 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 32 38 2e 31 22 ;.Code:..(when.(version<=."28.1"
0c20 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 68 6f 72 .emacs-version)...(require.'shor
0c40 74 64 6f 63 29 0a 0a 20 20 28 64 65 66 69 6e 65 2d 73 68 6f 72 74 2d 64 6f 63 75 6d 65 6e 74 61 tdoc)....(define-short-documenta
0c60 74 69 6f 6e 2d 67 72 6f 75 70 20 66 0a 20 20 20 20 22 50 61 74 68 73 22 0a 20 20 20 20 28 66 2d tion-group.f....."Paths".....(f-
0c80 6a 6f 69 6e 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6a 6f 69 6e 20 22 70 61 74 68 22 29 0a join......:eval.(f-join."path").
0ca0 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6a 6f 69 6e 20 22 70 61 74 68 22 20 22 74 6f 22 29 0a .....:eval.(f-join."path"."to").
0cc0 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6a 6f 69 6e 20 22 2f 22 20 22 70 61 74 68 22 20 22 74 .....:eval.(f-join."/"."path"."t
0ce0 6f 22 20 22 68 65 61 76 65 6e 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6a 6f 69 6e 20 o"."heaven")......:eval.(f-join.
0d00 22 70 61 74 68 22 20 22 2f 74 6f 22 20 22 66 69 6c 65 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 70 "path"."/to"."file"))......(f-sp
0d20 6c 69 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 70 6c 69 74 20 22 70 61 74 68 22 29 0a lit......:eval.(f-split."path").
0d40 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 70 6c 69 74 20 22 70 61 74 68 2f 74 6f 22 29 0a 20 .....:eval.(f-split."path/to")..
0d60 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 70 6c 69 74 20 22 2f 70 61 74 68 2f 74 6f 2f 68 65 61 ....:eval.(f-split."/path/to/hea
0d80 76 65 6e 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 70 6c 69 74 20 22 7e 2f 62 61 63 ven")......:eval.(f-split."~/bac
0da0 6b 2f 74 6f 2f 65 61 72 74 68 22 29 29 0a 0a 20 20 20 20 28 66 2d 65 78 70 61 6e 64 0a 20 20 20 k/to/earth"))......(f-expand....
0dc0 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 78 70 61 6e 64 20 22 6e 61 6d 65 22 29 0a 20 20 20 ..:no-eval.(f-expand."name")....
0de0 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 ..:result-string."/default/direc
0e00 74 6f 72 79 2f 6e 61 6d 65 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 65 78 70 61 tory/name"......:no-eval.(f-expa
0e20 6e 64 20 22 6e 61 6d 65 22 20 22 6f 74 68 65 72 2f 64 69 72 65 63 74 6f 72 79 22 29 0a 20 20 20 nd."name"."other/directory")....
0e40 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 6f 74 68 65 72 2f 64 69 72 65 63 74 6f 72 ..:result-string."other/director
0e60 79 2f 6e 61 6d 65 22 29 0a 0a 20 20 20 20 28 66 2d 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 3a y/name")......(f-filename......:
0e80 65 76 61 6c 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 eval.(f-filename."path/to/file.e
0ea0 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 22 70 61 74 xt")......:eval.(f-filename."pat
0ec0 68 2f 74 6f 2f 64 69 72 65 63 74 6f 72 79 22 29 29 0a 0a 20 20 20 20 28 66 2d 64 69 72 6e 61 6d h/to/directory"))......(f-dirnam
0ee0 65 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 69 72 6e 61 6d 65 20 22 70 61 74 68 2f 74 6f e......:eval.(f-dirname."path/to
0f00 2f 66 69 6c 65 2e 65 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 69 72 6e 61 6d /file.ext")......:eval.(f-dirnam
0f20 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 65 63 74 6f 72 79 22 29 0a 20 20 20 20 20 3a 65 76 61 e."path/to/directory")......:eva
0f40 6c 20 28 66 2d 64 69 72 6e 61 6d 65 20 22 2f 22 29 29 0a 0a 20 20 20 20 28 66 2d 63 6f 6d 6d 6f l.(f-dirname."/"))......(f-commo
0f60 6e 2d 70 61 72 65 6e 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 63 6f 6d 6d 6f 6e 2d 70 61 n-parent......:eval.(f-common-pa
0f80 72 65 6e 74 20 27 28 22 66 6f 6f 2f 62 61 72 2f 62 61 7a 22 20 22 66 6f 6f 2f 62 61 72 2f 71 75 rent.'("foo/bar/baz"."foo/bar/qu
0fa0 78 22 20 22 66 6f 6f 2f 62 61 72 2f 6d 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 x"."foo/bar/mux"))......:eval.(f
0fc0 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 27 28 22 2f 66 6f 6f 2f 62 61 72 2f 62 61 7a 22 20 -common-parent.'("/foo/bar/baz".
0fe0 22 2f 66 6f 6f 2f 62 61 72 2f 71 75 78 22 20 22 2f 66 6f 6f 2f 62 61 78 2f 6d 75 78 22 29 29 0a "/foo/bar/qux"."/foo/bax/mux")).
1000 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 27 28 22 66 .....:eval.(f-common-parent.'("f
1020 6f 6f 2f 62 61 72 2f 62 61 7a 22 20 22 71 75 61 63 6b 2f 62 61 72 2f 71 75 78 22 20 22 6c 61 63 oo/bar/baz"."quack/bar/qux"."lac
1040 6b 2f 62 61 72 2f 6d 75 78 22 29 29 29 0a 0a 20 20 20 20 28 66 2d 65 78 74 0a 20 20 20 20 20 3a k/bar/mux")))......(f-ext......:
1060 65 76 61 6c 20 28 66 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 eval.(f-ext."path/to/file").....
1080 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 .:eval.(f-ext."path/to/file.txt"
10a0 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c )......:eval.(f-ext."path/to/fil
10c0 65 2e 74 78 74 2e 6f 72 67 22 29 29 0a 0a 20 20 20 20 28 66 2d 6e 6f 2d 65 78 74 0a 20 20 20 20 e.txt.org"))......(f-no-ext.....
10e0 20 3a 65 76 61 6c 20 28 66 2d 6e 6f 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 .:eval.(f-no-ext."path/to/file")
1100 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6e 6f 2d 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 ......:eval.(f-no-ext."path/to/f
1120 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6e 6f 2d 65 78 74 20 22 ile.txt")......:eval.(f-no-ext."
1140 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 2e 6f 72 67 22 29 29 0a 0a 20 20 20 20 28 66 2d path/to/file.txt.org"))......(f-
1160 73 77 61 70 2d 65 78 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 77 61 70 2d 65 78 74 20 swap-ext......:eval.(f-swap-ext.
1180 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 78 74 22 20 22 6f 72 67 22 29 29 0a 0a 20 20 20 20 "path/to/file.ext"."org"))......
11a0 28 66 2d 62 61 73 65 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 62 61 73 65 20 22 70 61 74 68 (f-base......:eval.(f-base."path
11c0 2f 74 6f 2f 66 69 6c 65 2e 65 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 62 61 73 /to/file.ext")......:eval.(f-bas
11e0 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 65 63 74 6f 72 79 22 29 29 0a 0a 20 20 20 20 28 66 2d e."path/to/directory"))......(f-
1200 72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 65 6c 61 74 69 76 65 20 relative......:eval.(f-relative.
1220 22 2f 73 6f 6d 65 2f 70 61 74 68 2f 72 65 6c 61 74 69 76 65 2f 74 6f 2f 6d 79 2f 66 69 6c 65 2e "/some/path/relative/to/my/file.
1240 74 78 74 22 20 22 2f 73 6f 6d 65 2f 70 61 74 68 2f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 txt"."/some/path/")......:eval.(
1260 66 2d 72 65 6c 61 74 69 76 65 20 22 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 6d f-relative."/default/directory/m
1280 79 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 68 6f 72 74 0a 20 20 20 20 y/file.txt"))......(f-short.....
12a0 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 68 6f 72 74 20 22 2f 55 73 65 72 73 2f 66 6f 6f 2f 43 .:no-eval.(f-short."/Users/foo/C
12c0 6f 64 65 2f 6f 6e 2f 6d 61 63 4f 53 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 ode/on/macOS")......:result-stri
12e0 6e 67 20 22 7e 2f 43 6f 64 65 2f 6f 6e 2f 6d 61 63 4f 53 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 ng."~/Code/on/macOS"......:no-ev
1300 61 6c 20 28 66 2d 73 68 6f 72 74 20 22 2f 68 6f 6d 65 2f 66 6f 6f 2f 43 6f 64 65 2f 6f 6e 2f 6c al.(f-short."/home/foo/Code/on/l
1320 69 6e 75 78 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 7e 2f 43 6f inux")......:result-string."~/Co
1340 64 65 2f 6f 6e 2f 6c 69 6e 75 78 22 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 68 6f 72 74 de/on/linux"......:eval.(f-short
1360 20 22 2f 70 61 74 68 2f 74 6f 2f 43 6f 64 65 2f 62 61 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 6c ."/path/to/Code/bar"))......(f-l
1380 6f 6e 67 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6c 6f 6e 67 20 22 7e 2f 43 6f 64 65 2f 62 ong......:eval.(f-long."~/Code/b
13a0 61 72 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 6c 6f 6e 67 20 22 2f 70 61 74 68 2f 74 ar")......:eval.(f-long."/path/t
13c0 6f 2f 43 6f 64 65 2f 62 61 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 63 61 6e 6f 6e 69 63 61 6c 0a o/Code/bar"))......(f-canonical.
13e0 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 63 61 6e 6f 6e 69 63 61 6c 20 22 2f 70 61 74 68 2f 74 .....:eval.(f-canonical."/path/t
1400 6f 2f 72 65 61 6c 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 o/real/file")......:no-eval.(f-c
1420 61 6e 6f 6e 69 63 61 6c 20 22 2f 6c 69 6e 6b 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a anonical."/link/to/file")......:
1440 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 2f 70 61 74 68 2f 74 6f 2f 72 65 61 6c 2f 66 69 6c result-string."/path/to/real/fil
1460 65 22 29 0a 0a 20 20 20 20 28 66 2d 73 6c 61 73 68 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 e")......(f-slash......:no-eval.
1480 28 66 2d 73 6c 61 73 68 20 22 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a (f-slash."/path/to/file")......:
14a0 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 0a 20 20 result-string."/path/to/file"...
14c0 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 6c 61 73 68 20 22 2f 70 61 74 68 2f 74 6f 2f 64 ...:no-eval.(f-slash."/path/to/d
14e0 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 2f 70 61 74 68 2f ir")......:result-string."/path/
1500 74 6f 2f 64 69 72 2f 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 6c 61 73 68 20 to/dir/"......:no-eval.(f-slash.
1520 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 "/path/to/dir/")......:result-st
1540 72 69 6e 67 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2f 22 29 0a 0a 20 20 20 20 28 66 2d 66 75 ring."/path/to/dir/")......(f-fu
1560 6c 6c 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 66 75 6c 6c 20 22 7e 2f 70 61 74 68 2f 74 6f ll......:eval.(f-full."~/path/to
1580 2f 66 69 6c 65 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 66 75 6c 6c 20 22 7e 2f 70 61 /file")......:eval.(f-full."~/pa
15a0 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 66 75 6c 6c 20 22 th/to/dir")......:eval.(f-full."
15c0 7e 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2f 22 29 29 0a 0a 20 20 20 20 28 66 2d 75 6e 69 71 75 69 ~/path/to/dir/"))......(f-uniqui
15e0 66 79 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 20 27 28 22 2f 66 6f fy......:eval.(f-uniquify.'("/fo
1600 6f 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 62 61 7a 22 20 22 2f 66 6f 6f 2f 71 75 75 78 22 29 29 0a o/bar"."/foo/baz"."/foo/quux")).
1620 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 .....:eval.(f-uniquify.'("/foo/b
1640 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 71 75 75 78 22 29 29 0a 20 20 20 ar"."/www/bar"."/foo/quux"))....
1660 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 ..:eval.(f-uniquify.'("/foo/bar"
1680 20 22 2f 77 77 77 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 2f 71 75 75 78 22 29 29 0a 20 20 ."/www/bar"."/www/bar/quux"))...
16a0 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 20 27 28 22 2f 66 6f 6f 2f 62 61 72 ...:eval.(f-uniquify.'("/foo/bar
16c0 22 20 22 2f 66 6f 6f 2f 62 61 7a 22 20 22 2f 68 6f 6d 65 2f 77 77 77 2f 62 61 72 22 20 22 2f 68 "."/foo/baz"."/home/www/bar"."/h
16e0 6f 6d 65 2f 77 77 77 2f 62 61 7a 22 20 22 2f 76 61 72 2f 66 6f 6f 22 20 22 2f 6f 70 74 2f 66 6f ome/www/baz"."/var/foo"."/opt/fo
1700 6f 2f 77 77 77 2f 62 61 7a 22 29 29 29 0a 0a 20 20 20 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 o/www/baz")))......(f-uniquify-a
1720 6c 69 73 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 list......:eval.(f-uniquify-alis
1740 74 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 66 6f 6f 2f 62 61 7a 22 20 22 2f 66 6f 6f 2f t.'("/foo/bar"."/foo/baz"."/foo/
1760 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 79 2d 61 quux"))......:eval.(f-uniquify-a
1780 6c 69 73 74 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 20 22 2f 66 list.'("/foo/bar"."/www/bar"."/f
17a0 6f 6f 2f 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 75 6e 69 71 75 69 66 oo/quux"))......:eval.(f-uniquif
17c0 79 2d 61 6c 69 73 74 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 77 77 77 2f 62 61 72 22 20 y-alist.'("/foo/bar"."/www/bar".
17e0 22 2f 77 77 77 2f 62 61 72 2f 71 75 75 78 22 29 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d "/www/bar/quux"))......:eval.(f-
1800 75 6e 69 71 75 69 66 79 2d 61 6c 69 73 74 20 27 28 22 2f 66 6f 6f 2f 62 61 72 22 20 22 2f 66 6f uniquify-alist.'("/foo/bar"."/fo
1820 6f 2f 62 61 7a 22 20 22 2f 68 6f 6d 65 2f 77 77 77 2f 62 61 72 22 20 22 2f 68 6f 6d 65 2f 77 77 o/baz"."/home/www/bar"."/home/ww
1840 77 2f 62 61 7a 22 20 22 2f 76 61 72 2f 66 6f 6f 22 20 22 2f 6f 70 74 2f 66 6f 6f 2f 77 77 77 2f w/baz"."/var/foo"."/opt/foo/www/
1860 62 61 7a 22 29 29 29 0a 0a 20 20 20 20 22 49 2f 4f 22 0a 20 20 20 20 28 66 2d 72 65 61 64 2d 62 baz")))......"I/O".....(f-read-b
1880 79 74 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 2d 62 79 74 65 ytes......:no-eval*.(f-read-byte
18a0 73 20 22 70 61 74 68 2f 74 6f 2f 62 69 6e 61 72 79 2f 64 61 74 61 22 29 29 0a 0a 20 20 20 20 28 s."path/to/binary/data"))......(
18c0 66 2d 77 72 69 74 65 2d 62 79 74 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d f-write-bytes......:no-eval*.(f-
18e0 77 72 69 74 65 2d 62 79 74 65 73 20 28 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 20 37 32 20 31 write-bytes.(unibyte-string.72.1
1900 30 31 20 31 30 38 20 31 30 38 20 31 31 31 20 33 32 20 31 31 39 20 31 31 31 20 31 31 34 20 31 30 01.108.108.111.32.119.111.114.10
1920 38 20 31 30 30 29 20 22 70 61 74 68 2f 74 6f 2f 62 69 6e 61 72 79 2f 64 61 74 61 22 29 29 0a 0a 8.100)."path/to/binary/data"))..
1940 20 20 20 20 28 66 2d 61 70 70 65 6e 64 2d 62 79 74 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 ....(f-append-bytes......:no-eva
1960 6c 2a 20 28 66 2d 61 70 70 65 6e 64 2d 62 79 74 65 73 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 l*.(f-append-bytes."path/to/file
1980 22 20 28 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 20 37 32 20 31 30 31 20 31 30 38 20 31 30 38 ".(unibyte-string.72.101.108.108
19a0 20 31 31 31 20 33 32 20 31 31 39 20 31 31 31 20 31 31 34 20 31 30 38 20 31 30 30 29 29 29 0a 0a .111.32.119.111.114.108.100)))..
19c0 20 20 20 20 28 66 2d 72 65 61 64 2d 74 65 78 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 ....(f-read-text......:no-eval*.
19e0 28 66 2d 72 65 61 64 2d 74 65 78 74 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 (f-read-text."path/to/file.txt".
1a00 27 75 74 66 2d 38 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 20 22 'utf-8)......:no-eval*.(f-read."
1a20 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 75 74 66 2d 38 29 29 0a 0a 20 20 20 20 path/to/file.txt".'utf-8))......
1a40 28 66 2d 77 72 69 74 65 2d 74 65 78 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d (f-write-text......:no-eval*.(f-
1a60 77 72 69 74 65 2d 74 65 78 74 20 22 48 65 6c 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 write-text."Hello.world".'utf-8.
1a80 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 "path/to/file.txt")......:no-eva
1aa0 6c 2a 20 28 66 2d 77 72 69 74 65 20 22 48 65 6c 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 l*.(f-write."Hello.world".'utf-8
1ac0 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 61 70 ."path/to/file.txt"))......(f-ap
1ae0 70 65 6e 64 2d 74 65 78 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 61 70 70 65 pend-text......:no-eval*.(f-appe
1b00 6e 64 2d 74 65 78 74 20 22 48 65 6c 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 22 70 61 nd-text."Hello.world".'utf-8."pa
1b20 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 th/to/file.txt")......:no-eval*.
1b40 28 66 2d 61 70 70 65 6e 64 20 22 48 65 6c 6c 6f 20 77 6f 72 6c 64 22 20 27 75 74 66 2d 38 20 22 (f-append."Hello.world".'utf-8."
1b60 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a 0a 20 20 20 20 22 44 65 73 74 72 75 path/to/file.txt"))......"Destru
1b80 63 74 69 76 65 22 0a 20 20 20 20 28 66 2d 6d 6b 64 69 72 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 ctive".....(f-mkdir......:no-eva
1ba0 6c 20 28 66 2d 6d 6b 64 69 72 20 22 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 l.(f-mkdir."dir")......:result-s
1bc0 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 tring."creates./default/director
1be0 79 2f 64 69 72 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 20 22 6f y/dir"......:no-eval.(f-mkdir."o
1c00 74 68 65 72 22 20 22 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 ther"."dir")......:result-string
1c20 20 22 63 72 65 61 74 65 73 20 2f 64 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 6f 74 68 ."creates./default/directory/oth
1c40 65 72 2f 64 69 72 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 20 22 er/dir"......:no-eval.(f-mkdir."
1c60 2f 22 20 22 73 6f 6d 65 22 20 22 70 61 74 68 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 /"."some"."path")......:result-s
1c80 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 73 6f 6d 65 2f 70 61 74 68 22 0a 20 20 20 20 20 tring."creates./some/path"......
1ca0 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 20 22 7e 22 20 22 79 65 74 22 20 22 61 6e 6f :no-eval.(f-mkdir."~"."yet"."ano
1cc0 74 68 65 72 22 20 22 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 ther"."dir")......:result-string
1ce0 20 22 63 72 65 61 74 65 73 20 7e 2f 79 65 74 2f 61 6e 6f 74 68 65 72 2f 64 69 72 22 29 0a 0a 20 ."creates.~/yet/another/dir")...
1d00 20 20 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 0a 20 20 20 20 20 3a 6e 6f 2d 65 ...(f-mkdir-full-path......:no-e
1d20 76 61 6c 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 20 22 64 69 72 22 29 0a 20 20 val.(f-mkdir-full-path."dir")...
1d40 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 64 65 66 61 ...:result-string."creates./defa
1d60 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 64 69 72 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c ult/directory/dir"......:no-eval
1d80 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 20 22 6f 74 68 65 72 2f 64 69 72 22 29 .(f-mkdir-full-path."other/dir")
1da0 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 72 65 61 74 65 73 20 2f 64 ......:result-string."creates./d
1dc0 65 66 61 75 6c 74 2f 64 69 72 65 63 74 6f 72 79 2f 6f 74 68 65 72 2f 64 69 72 22 0a 20 20 20 20 efault/directory/other/dir".....
1de0 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 20 22 2f 73 .:no-eval.(f-mkdir-full-path."/s
1e00 6f 6d 65 2f 70 61 74 68 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 ome/path")......:result-string."
1e20 63 72 65 61 74 65 73 20 2f 73 6f 6d 65 2f 70 61 74 68 22 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 creates./some/path"......:no-eva
1e40 6c 20 28 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 20 22 7e 2f 79 65 74 2f 61 6e 6f 74 l.(f-mkdir-full-path."~/yet/anot
1e60 68 65 72 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 2d 73 74 72 69 6e 67 20 22 63 her/dir")......:result-string."c
1e80 72 65 61 74 65 73 20 7e 2f 79 65 74 2f 61 6e 6f 74 68 65 72 2f 64 69 72 22 29 0a 0a 20 20 20 20 reates.~/yet/another/dir")......
1ea0 28 66 2d 64 65 6c 65 74 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 65 6c 65 (f-delete......:no-eval*.(f-dele
1ec0 74 65 20 22 64 69 72 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 65 6c 65 te."dir")......:no-eval*.(f-dele
1ee0 74 65 20 22 6f 74 68 65 72 2f 64 69 72 22 20 74 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a te."other/dir".t)......:no-eval*
1f00 20 28 66 2d 64 65 6c 65 74 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a .(f-delete."path/to/file.txt")).
1f20 0a 20 20 20 20 28 66 2d 73 79 6d 6c 69 6e 6b 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 .....(f-symlink......:no-eval*.(
1f40 66 2d 73 79 6d 6c 69 6e 6b 20 22 70 61 74 68 2f 74 6f 2f 73 6f 75 72 63 65 22 20 22 70 61 74 68 f-symlink."path/to/source"."path
1f60 2f 74 6f 2f 6c 69 6e 6b 22 29 29 0a 0a 20 20 20 20 28 66 2d 6d 6f 76 65 0a 20 20 20 20 20 3a 6e /to/link"))......(f-move......:n
1f80 6f 2d 65 76 61 6c 2a 20 28 66 2d 6d 6f 76 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 o-eval*.(f-move."path/to/file.tx
1fa0 74 22 20 22 6e 65 77 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c t"."new-file.txt")......:no-eval
1fc0 2a 20 28 66 2d 6d 6f 76 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 22 6f 74 *.(f-move."path/to/file.txt"."ot
1fe0 68 65 72 2f 70 61 74 68 22 29 29 0a 0a 20 20 20 20 28 66 2d 63 6f 70 79 0a 20 20 20 20 20 3a 6e her/path"))......(f-copy......:n
2000 6f 2d 65 76 61 6c 2a 20 28 66 2d 63 6f 70 79 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 o-eval*.(f-copy."path/to/file.tx
2020 74 22 20 22 6e 65 77 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c t"."new-file.txt")......:no-eval
2040 2a 20 28 66 2d 63 6f 70 79 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 6f 74 68 65 72 2f 64 *.(f-copy."path/to/dir"."other/d
2060 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 63 6f 70 79 2d 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 ir"))......(f-copy-contents.....
2080 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 63 6f 70 79 2d 63 6f 6e 74 65 6e 74 73 20 22 70 61 74 .:no-eval*.(f-copy-contents."pat
20a0 68 2f 74 6f 2f 64 69 72 22 20 22 70 61 74 68 2f 74 6f 2f 6f 74 68 65 72 2f 64 69 72 22 29 29 0a h/to/dir"."path/to/other/dir")).
20c0 0a 20 20 20 20 28 66 2d 74 6f 75 63 68 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d .....(f-touch......:no-eval*.(f-
20e0 74 6f 75 63 68 20 22 70 61 74 68 2f 74 6f 2f 65 78 69 73 74 69 6e 67 2f 66 69 6c 65 2e 74 78 74 touch."path/to/existing/file.txt
2100 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 74 6f 75 63 68 20 22 70 61 74 68 ")......:no-eval*.(f-touch."path
2120 2f 74 6f 2f 6e 6f 6e 2f 65 78 69 73 74 69 6e 67 2f 66 69 6c 65 2e 74 78 74 22 29 29 0a 0a 20 20 /to/non/existing/file.txt"))....
2140 20 20 22 50 72 65 64 69 63 61 74 65 73 22 0a 20 20 20 20 28 66 2d 65 78 69 73 74 73 2d 70 0a 20 .."Predicates".....(f-exists-p..
2160 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 78 69 73 74 73 2d 70 20 22 70 61 74 68 2f ....:no-eval*.(f-exists-p."path/
2180 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d to/file.txt")......:no-eval*.(f-
21a0 65 78 69 73 74 73 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 exists-p."path/to/dir"))......(f
21c0 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 -directory-p......:no-eval*.(f-d
21e0 69 72 65 63 74 6f 72 79 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 irectory-p."path/to/file.txt")..
2200 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 22 70 61 ....:no-eval*.(f-directory-p."pa
2220 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 66 69 6c 65 2d 70 0a 20 20 20 20 th/to/dir"))......(f-file-p.....
2240 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 .:no-eval*.(f-file-p."path/to/fi
2260 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 6c 65 2d le.txt")......:no-eval*.(f-file-
2280 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 73 79 6d 6c 69 6e p."path/to/dir"))......(f-symlin
22a0 6b 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 k-p......:no-eval*.(f-symlink-p.
22c0 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 "path/to/file.txt")......:no-eva
22e0 6c 2a 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 l*.(f-symlink-p."path/to/dir")..
2300 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 22 70 61 74 68 ....:no-eval*.(f-symlink-p."path
2320 2f 74 6f 2f 6c 69 6e 6b 22 29 29 0a 0a 20 20 20 20 28 66 2d 72 65 61 64 61 62 6c 65 2d 70 0a 20 /to/link"))......(f-readable-p..
2340 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 72 65 61 64 61 62 6c 65 2d 70 20 22 70 61 74 ....:no-eval*.(f-readable-p."pat
2360 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 h/to/file.txt")......:no-eval*.(
2380 66 2d 72 65 61 64 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 f-readable-p."path/to/dir"))....
23a0 20 20 28 66 2d 77 72 69 74 61 62 6c 65 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 ..(f-writable-p......:no-eval*.(
23c0 66 2d 77 72 69 74 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 f-writable-p."path/to/file.txt")
23e0 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 77 72 69 74 61 62 6c 65 2d 70 20 22 70 ......:no-eval*.(f-writable-p."p
2400 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 65 78 65 63 75 74 61 62 6c 65 ath/to/dir"))......(f-executable
2420 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 78 65 63 75 74 61 62 6c 65 2d -p......:no-eval*.(f-executable-
2440 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 p."path/to/file.txt")......:no-e
2460 76 61 6c 2a 20 28 66 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 val*.(f-executable-p."path/to/di
2480 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 61 62 73 6f 6c 75 74 65 2d 70 0a 20 20 20 20 20 3a 65 76 r"))......(f-absolute-p......:ev
24a0 61 6c 20 28 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a al.(f-absolute-p."path/to/dir").
24c0 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 22 2f 66 75 6c 6c 2f .....:eval.(f-absolute-p."/full/
24e0 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 2d 72 65 6c 61 74 69 76 65 2d path/to/dir"))......(f-relative-
2500 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 22 70 61 74 68 p......:eval.(f-relative-p."path
2520 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 65 6c 61 74 69 76 65 /to/dir")......:eval.(f-relative
2540 2d 70 20 22 2f 66 75 6c 6c 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a 20 20 20 20 28 66 -p."/full/path/to/dir"))......(f
2560 2d 72 6f 6f 74 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 6f 6f 74 2d 70 20 22 2f 22 -root-p......:eval.(f-root-p."/"
2580 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 6f 6f 74 2d 70 20 22 2f 6e 6f 74 2f 72 6f 6f )......:eval.(f-root-p."/not/roo
25a0 74 22 29 29 0a 0a 20 20 20 20 28 66 2d 65 78 74 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 t"))......(f-ext-p......:eval.(f
25c0 2d 65 78 74 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 6c 22 20 22 65 6c 22 29 0a 20 -ext-p."path/to/file.el"."el")..
25e0 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 ....:eval.(f-ext-p."path/to/file
2600 2e 65 6c 22 20 22 74 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 65 78 74 2d 70 20 .el"."txt")......:eval.(f-ext-p.
2620 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 65 6c 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 "path/to/file.el")......:eval.(f
2640 2d 65 78 74 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 22 29 29 0a 0a 20 20 20 20 28 66 2d -ext-p."path/to/file"))......(f-
2660 73 61 6d 65 2d 70 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 61 6d 65 2d 70 20 22 66 6f 6f same-p......:eval.(f-same-p."foo
2680 2e 74 78 74 22 20 22 66 6f 6f 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 .txt"."foo.txt")......:eval.(f-s
26a0 61 6d 65 2d 70 20 22 66 6f 6f 2f 62 61 72 2f 2e 2e 2f 62 61 7a 22 20 22 66 6f 6f 2f 62 61 7a 22 ame-p."foo/bar/../baz"."foo/baz"
26c0 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 73 61 6d 65 2d 70 20 22 2f 70 61 74 68 2f 74 6f )......:eval.(f-same-p."/path/to
26e0 2f 66 6f 6f 2e 74 78 74 22 20 22 2f 70 61 74 68 2f 74 6f 2f 62 61 72 2e 74 78 74 22 29 29 0a 0a /foo.txt"."/path/to/bar.txt"))..
2700 20 20 20 20 28 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c ....(f-parent-of-p......:no-eval
2720 20 28 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 .(f-parent-of-p."/path/to"."/pat
2740 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a h/to/dir")......:result.t......:
2760 6e 6f 2d 65 76 61 6c 20 28 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f no-eval.(f-parent-of-p."/path/to
2780 2f 64 69 72 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e /dir"."/path/to")......:result.n
27a0 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 20 il......:no-eval.(f-parent-of-p.
27c0 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 "/path/to"."/path/to")......:res
27e0 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 0a 20 20 20 20 ult.nil)......(f-child-of-p.....
2800 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 .:no-eval.(f-child-of-p."/path/t
2820 6f 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 o"."/path/to/dir")......:result.
2840 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 69 6c 64 2d 6f 66 2d 70 20 nil......:no-eval.(f-child-of-p.
2860 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 "/path/to/dir"."/path/to")......
2880 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 69 6c 64 :result.t......:no-eval.(f-child
28a0 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 -of-p."/path/to"."/path/to")....
28c0 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d ..:result.nil)......(f-ancestor-
28e0 6f 66 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f of-p......:no-eval.(f-ancestor-o
2900 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 f-p."/path/to"."/path/to/dir")..
2920 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 ....:result.t......:no-eval.(f-a
2940 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 22 2f 70 61 74 68 22 20 22 2f 70 61 74 68 2f 74 6f 2f 64 ncestor-of-p."/path"."/path/to/d
2960 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 ir")......:result.t......:no-eva
2980 6c 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 l.(f-ancestor-of-p."/path/to/dir
29a0 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 "."/path/to")......:result.nil..
29c0 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 22 2f ....:no-eval.(f-ancestor-of-p."/
29e0 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c path/to"."/path/to")......:resul
2a00 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 0a 20 t.nil)......(f-descendant-of-p..
2a20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 ....:no-eval.(f-descendant-of-p.
2a40 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 "/path/to/dir"."/path/to")......
2a60 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 64 65 73 63 65 :result.t......:no-eval.(f-desce
2a80 6e 64 61 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 22 2f 70 61 74 68 ndant-of-p."/path/to/dir"."/path
2aa0 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 ")......:result.t......:no-eval.
2ac0 28 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f (f-descendant-of-p."/path/to"."/
2ae0 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 path/to/dir")......:result.nil..
2b00 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 ....:no-eval.(f-descendant-of-p.
2b20 22 2f 70 61 74 68 2f 74 6f 22 20 22 2f 70 61 74 68 2f 74 6f 22 29 0a 20 20 20 20 20 3a 72 65 73 "/path/to"."/path/to")......:res
2b40 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 68 69 64 64 65 6e 2d 70 0a 20 20 20 20 20 3a ult.nil)......(f-hidden-p......:
2b60 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 29 0a eval.(f-hidden-p."path/to/foo").
2b80 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 2e 70 61 74 68 2f 74 6f .....:eval.(f-hidden-p.".path/to
2ba0 2f 66 6f 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 /foo")......:eval.(f-hidden-p."p
2bc0 61 74 68 2f 2e 74 6f 2f 66 6f 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 ath/.to/foo")......:eval.(f-hidd
2be0 65 6e 2d 70 20 22 70 61 74 68 2f 74 6f 2f 2e 66 6f 6f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 en-p."path/to/.foo")......:eval.
2c00 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 2e 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 20 27 61 6e 79 29 (f-hidden-p.".path/to/foo".'any)
2c20 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 2e 74 ......:eval.(f-hidden-p."path/.t
2c40 6f 2f 66 6f 6f 22 20 27 61 6e 79 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 o/foo".'any)......:eval.(f-hidde
2c60 6e 2d 70 20 22 70 61 74 68 2f 74 6f 2f 2e 66 6f 6f 22 20 27 61 6e 79 29 0a 20 20 20 20 20 3a 65 n-p."path/to/.foo".'any)......:e
2c80 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 2e 70 61 74 68 2f 74 6f 2f 66 6f 6f 22 20 27 val.(f-hidden-p.".path/to/foo".'
2ca0 6c 61 73 74 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 last)......:eval.(f-hidden-p."pa
2cc0 74 68 2f 2e 74 6f 2f 66 6f 6f 22 20 27 6c 61 73 74 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 th/.to/foo".'last)......:eval.(f
2ce0 2d 68 69 64 64 65 6e 2d 70 20 22 70 61 74 68 2f 74 6f 2f 2e 66 6f 6f 22 20 27 6c 61 73 74 29 29 -hidden-p."path/to/.foo".'last))
2d00 0a 0a 20 20 20 20 28 66 2d 65 6d 70 74 79 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 ......(f-empty-p......:no-eval.(
2d20 66 2d 65 6d 70 74 79 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 65 6d 70 74 79 2d 66 69 6c 65 22 29 f-empty-p."/path/to/empty-file")
2d40 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 ......:result.t......:no-eval.(f
2d60 2d 65 6d 70 74 79 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2d 77 69 74 68 2d 63 6f 6e -empty-p."/path/to/file-with-con
2d80 74 65 6e 74 73 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e tents")......:result.nil......:n
2da0 6f 2d 65 76 61 6c 20 28 66 2d 65 6d 70 74 79 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 65 6d 70 74 o-eval.(f-empty-p."/path/to/empt
2dc0 79 2d 64 69 72 2f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f y-dir/")......:result.t......:no
2de0 2d 65 76 61 6c 20 28 66 2d 65 6d 70 74 79 2d 70 20 22 2f 70 61 74 68 2f 74 6f 2f 64 69 72 2d 77 -eval.(f-empty-p."/path/to/dir-w
2e00 69 74 68 2d 63 6f 6e 74 65 6e 74 73 2f 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c ith-contents/")......:result.nil
2e20 29 0a 0a 20 20 20 20 28 66 2d 6f 6c 64 65 72 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 )......(f-older-p......:no-eval.
2e40 28 66 2d 6f 6c 64 65 72 2d 70 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 77 (f-older-p."older-file.txt"."new
2e60 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 er-file.txt")......:result.t....
2e80 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6f 6c 64 65 72 2d 70 20 22 6e 65 77 65 72 2d 66 69 6c ..:no-eval.(f-older-p."newer-fil
2ea0 65 2e 74 78 74 22 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 e.txt"."older-file.txt")......:r
2ec0 65 73 75 6c 74 20 6e 69 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6f 6c 64 65 72 esult.nil......:no-eval.(f-older
2ee0 2d 70 20 22 73 61 6d 65 2d 74 69 6d 65 31 2e 74 78 74 22 20 22 73 61 6d 65 2d 74 69 6d 65 32 2e -p."same-time1.txt"."same-time2.
2f00 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d txt")......:result.nil)......(f-
2f20 6e 65 77 65 72 2d 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6e 65 77 65 72 2d 70 newer-p......:no-eval.(f-newer-p
2f40 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 ."newer-file.txt"."older-file.tx
2f60 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c t")......:result.t......:no-eval
2f80 20 28 66 2d 6e 65 77 65 72 2d 70 20 22 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 .(f-newer-p."older-file.txt"."ne
2fa0 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 0a wer-file.txt")......:result.nil.
2fc0 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6e 65 77 65 72 2d 70 20 22 73 61 6d 65 2d 74 .....:no-eval.(f-newer-p."same-t
2fe0 69 6d 65 31 2e 74 78 74 22 20 22 73 61 6d 65 2d 74 69 6d 65 32 2e 74 78 74 22 29 0a 20 20 20 20 ime1.txt"."same-time2.txt").....
3000 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d .:result.nil)......(f-same-time-
3020 70 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 22 p......:no-eval.(f-same-time-p."
3040 73 61 6d 65 2d 74 69 6d 65 31 2e 74 78 74 22 20 22 73 61 6d 65 2d 74 69 6d 65 32 2e 74 78 74 22 same-time1.txt"."same-time2.txt"
3060 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 74 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 )......:result.t......:no-eval.(
3080 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 f-same-time-p."newer-file.txt"."
30a0 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 older-file.txt")......:result.ni
30c0 6c 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 20 22 l......:no-eval.(f-same-time-p."
30e0 6f 6c 64 65 72 2d 66 69 6c 65 2e 74 78 74 22 20 22 6e 65 77 65 72 2d 66 69 6c 65 2e 74 78 74 22 older-file.txt"."newer-file.txt"
3100 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 6e 69 6c 29 0a 0a 20 20 20 20 22 53 74 61 74 73 22 )......:result.nil)......"Stats"
3120 0a 20 20 20 20 28 66 2d 73 69 7a 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 73 .....(f-size......:no-eval*.(f-s
3140 69 7a 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 6e 6f ize."path/to/file.txt")......:no
3160 2d 65 76 61 6c 2a 20 28 66 2d 73 69 7a 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 29 0a 0a -eval*.(f-size."path/to/dir"))..
3180 20 20 20 20 28 66 2d 64 65 70 74 68 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 65 70 74 68 ....(f-depth......:eval.(f-depth
31a0 20 22 2f 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 65 70 74 68 20 22 2f 76 61 72 2f ."/")......:eval.(f-depth."/var/
31c0 22 29 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 64 65 70 74 68 20 22 2f 75 73 72 2f 6c 6f 63 ")......:eval.(f-depth."/usr/loc
31e0 61 6c 2f 62 69 6e 22 29 29 0a 0a 20 20 20 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 0a 20 20 al/bin"))......(f-change-time...
3200 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 ...:no-eval.(f-change-time."path
3220 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 /to/file.txt")......:result.(255
3240 31 37 20 34 38 37 35 36 20 32 36 33 33 37 20 31 31 31 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 17.48756.26337.111000)......:no-
3260 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 eval.(f-change-time."path/to/dir
3280 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 31 37 20 35 37 38 38 37 20 33 34 34 ")......:result.(25517.57887.344
32a0 36 35 37 20 32 31 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 657.210000)......:no-eval.(f-cha
32c0 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 74 29 0a 20 nge-time."path/to/file.txt".t)..
32e0 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 30 38 36 38 30 32 36 33 33 37 31 31 31 ....:result.(1672330868026337111
3300 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d ...1000000000)......:no-eval.(f-
3320 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 74 29 0a 20 20 20 change-time."path/to/dir".t)....
3340 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 39 39 39 39 33 34 34 36 35 37 32 31 30 20 2e ..:result.(1672339999344657210..
3360 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 .1000000000)......:no-eval.(f-ch
3380 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 73 65 ange-time."path/to/file.txt".'se
33a0 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 33 30 38 36 38 0a 20 conds)......:result.1672330868..
33c0 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 22 70 61 74 ....:no-eval.(f-change-time."pat
33e0 68 2f 74 6f 2f 64 69 72 22 20 27 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 h/to/dir".'seconds)......:result
3400 20 31 36 37 32 33 33 39 39 39 39 29 0a 0a 20 20 20 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f .1672339999)......(f-modificatio
3420 6e 2d 74 69 6d 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 n-time......:no-eval.(f-modifica
3440 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 20 tion-time."path/to/file.txt")...
3460 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 31 37 20 34 38 37 35 36 20 32 36 33 33 37 20 31 31 ...:result.(25517.48756.26337.11
3480 31 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 1000)......:no-eval.(f-modificat
34a0 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 ion-time."path/to/dir")......:re
34c0 73 75 6c 74 20 28 32 35 35 31 37 20 35 37 38 38 37 20 33 34 34 36 35 37 20 32 31 30 30 30 30 29 sult.(25517.57887.344657.210000)
34e0 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 ......:no-eval.(f-modification-t
3500 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 74 29 0a 20 20 20 20 20 3a ime."path/to/file.txt".t)......:
3520 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 30 38 36 38 30 32 36 33 33 37 31 31 31 20 2e 20 31 30 result.(1672330868026337111...10
3540 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 00000000)......:no-eval.(f-modif
3560 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 74 29 0a 20 20 ication-time."path/to/dir".t)...
3580 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 33 39 39 39 39 33 34 34 36 35 37 32 31 30 20 ...:result.(1672339999344657210.
35a0 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d ..1000000000)......:no-eval.(f-m
35c0 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 odification-time."path/to/file.t
35e0 78 74 22 20 27 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 xt".'seconds)......:result.16723
3600 33 30 38 36 38 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 6d 6f 64 69 66 69 63 61 74 30868......:no-eval.(f-modificat
3620 69 6f 6e 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 27 73 65 63 6f 6e 64 73 29 ion-time."path/to/dir".'seconds)
3640 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 33 39 39 39 39 29 0a 0a 20 20 20 20 28 ......:result.1672339999)......(
3660 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 f-access-time......:no-eval.(f-a
3680 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 2e 74 78 74 22 29 0a 20 ccess-time."path/to/file.txt")..
36a0 20 20 20 20 3a 72 65 73 75 6c 74 20 28 32 35 35 31 37 20 34 38 37 35 36 20 32 36 33 33 37 20 31 ....:result.(25517.48756.26337.1
36c0 31 31 30 30 30 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 11000)......:no-eval.(f-access-t
36e0 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 ime."path/to/dir")......:result.
3700 28 32 35 35 31 37 20 35 37 38 38 37 20 33 34 34 36 35 37 20 32 31 30 30 30 30 29 0a 20 20 20 20 (25517.57887.344657.210000).....
3720 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 .:no-eval.(f-access-time."path/t
3740 6f 2f 66 69 6c 65 2e 74 78 74 22 20 74 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 o/file.txt".t)......:result.(167
3760 32 33 33 30 38 36 38 30 32 36 33 33 37 31 31 31 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 2330868026337111...1000000000)..
3780 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 ....:no-eval.(f-access-time."pat
37a0 68 2f 74 6f 2f 64 69 72 22 20 74 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 28 31 36 37 32 33 h/to/dir".t)......:result.(16723
37c0 33 39 39 39 39 33 34 34 36 35 37 32 31 30 20 2e 20 31 30 30 30 30 30 30 30 30 30 29 0a 20 20 20 39999344657210...1000000000)....
37e0 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f ..:no-eval.(f-access-time."path/
3800 74 6f 2f 66 69 6c 65 2e 74 78 74 22 20 27 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 3a 72 65 73 to/file.txt".'seconds)......:res
3820 75 6c 74 20 31 36 37 32 33 33 30 38 36 38 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d ult.1672330868......:no-eval.(f-
3840 61 63 63 65 73 73 2d 74 69 6d 65 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 27 73 65 63 6f 6e access-time."path/to/dir".'secon
3860 64 73 29 0a 20 20 20 20 20 3a 72 65 73 75 6c 74 20 31 36 37 32 33 33 39 39 39 39 29 0a 0a 20 20 ds)......:result.1672339999)....
3880 20 20 22 4d 69 73 63 22 0a 20 20 20 20 28 66 2d 74 68 69 73 2d 66 69 6c 65 0a 20 20 20 20 20 3a .."Misc".....(f-this-file......:
38a0 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 74 68 69 73 2d 66 69 6c 65 29 29 0a 0a 20 20 20 20 28 66 2d no-eval*.(f-this-file))......(f-
38c0 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 70 61 74 path-separator......:eval.(f-pat
38e0 68 2d 73 65 70 61 72 61 74 6f 72 29 29 0a 0a 20 20 20 20 28 66 2d 67 6c 6f 62 0a 20 20 20 20 20 h-separator))......(f-glob......
3900 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 67 6c 6f 62 20 22 70 61 74 68 2f 74 6f 2f 2a 2e 65 6c 22 :no-eval*.(f-glob."path/to/*.el"
3920 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 67 6c 6f 62 20 22 2a 2e 65 6c 22 20 )......:no-eval*.(f-glob."*.el".
3940 22 70 61 74 68 2f 74 6f 22 29 29 0a 0a 20 20 20 20 28 66 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 "path/to"))......(f-entries.....
3960 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 6e 74 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 .:no-eval*.(f-entries."path/to/d
3980 69 72 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 65 6e 74 72 69 65 73 20 22 ir")......:no-eval*.(f-entries."
39a0 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 73 2d 6d path/to/dir".(lambda.(file).(s-m
39c0 61 74 63 68 65 73 3f 20 22 74 65 73 74 22 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d atches?."test".file)))......:no-
39e0 65 76 61 6c 2a 20 28 66 2d 65 6e 74 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 6e eval*.(f-entries."path/to/dir".n
3a00 69 6c 20 74 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 2d 65 6e 74 72 69 65 73 il.t)......:no-eval*.(f--entries
3a20 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 73 2d 6d 61 74 63 68 65 73 3f 20 22 74 65 73 74 ."path/to/dir".(s-matches?."test
3a40 22 20 69 74 29 29 29 0a 0a 20 20 20 20 28 66 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 ".it)))......(f-directories.....
3a60 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 74 6f 72 69 65 73 20 22 70 61 74 68 2f .:no-eval*.(f-directories."path/
3a80 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 to/dir")......:no-eval*.(f-direc
3aa0 74 6f 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 28 6c 61 6d 62 64 61 20 28 64 69 tories."path/to/dir".(lambda.(di
3ac0 72 29 20 28 65 71 75 61 6c 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 64 69 72 29 20 22 74 65 73 74 r).(equal.(f-filename.dir)."test
3ae0 22 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 64 69 72 65 63 74 6f 72 69 ")))......:no-eval*.(f-directori
3b00 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 3a 6e 6f es."path/to/dir".nil.t)......:no
3b20 2d 65 76 61 6c 2a 20 28 66 2d 2d 64 69 72 65 63 74 6f 72 69 65 73 20 22 70 61 74 68 2f 74 6f 2f -eval*.(f--directories."path/to/
3b40 64 69 72 22 20 28 65 71 75 61 6c 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 69 74 29 20 22 74 65 73 dir".(equal.(f-filename.it)."tes
3b60 74 22 29 29 29 0a 0a 20 20 20 20 28 66 2d 66 69 6c 65 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 t")))......(f-files......:no-eva
3b80 6c 2a 20 28 66 2d 66 69 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 29 0a 20 20 20 20 20 l*.(f-files."path/to/dir")......
3ba0 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 :no-eval*.(f-files."path/to/dir"
3bc0 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 65 71 75 61 6c 20 28 66 2d 65 78 74 20 66 69 .(lambda.(file).(equal.(f-ext.fi
3be0 6c 65 29 20 22 65 6c 22 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 66 69 le)."el")))......:no-eval*.(f-fi
3c00 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 3a 6e les."path/to/dir".nil.t)......:n
3c20 6f 2d 65 76 61 6c 2a 20 28 66 2d 2d 66 69 6c 65 73 20 22 70 61 74 68 2f 74 6f 2f 64 69 72 22 20 o-eval*.(f--files."path/to/dir".
3c40 28 65 71 75 61 6c 20 28 66 2d 65 78 74 20 69 74 29 20 22 65 6c 22 29 29 29 0a 0a 20 20 20 20 28 (equal.(f-ext.it)."el")))......(
3c60 66 2d 72 6f 6f 74 0a 20 20 20 20 20 3a 65 76 61 6c 20 28 66 2d 72 6f 6f 74 29 29 0a 0a 20 20 20 f-root......:eval.(f-root)).....
3c80 20 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 .(f-traverse-upwards......:no-ev
3ca0 61 6c 2a 20 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 0a 20 20 20 20 20 20 20 20 al*.(f-traverse-upwards.........
3cc0 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 ........(lambda.(path)..........
3ce0 20 20 20 20 20 20 20 20 20 28 66 2d 65 78 69 73 74 73 3f 20 28 66 2d 65 78 70 61 6e 64 20 22 2e .........(f-exists?.(f-expand.".
3d00 67 69 74 22 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 git".path))).................sta
3d20 72 74 2d 70 61 74 68 29 0a 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 2a 20 28 66 2d 2d 74 72 61 rt-path).......:no-eval*.(f--tra
3d40 76 65 72 73 65 2d 75 70 77 61 72 64 73 20 28 66 2d 65 78 69 73 74 73 3f 20 28 66 2d 65 78 70 61 verse-upwards.(f-exists?.(f-expa
3d60 6e 64 20 22 2e 67 69 74 22 20 69 74 29 29 20 73 74 61 72 74 2d 70 61 74 68 29 29 0a 0a 20 20 20 nd.".git".it)).start-path)).....
3d80 20 28 66 2d 77 69 74 68 2d 73 61 6e 64 62 6f 78 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 .(f-with-sandbox......:no-eval.(
3da0 66 2d 77 69 74 68 2d 73 61 6e 64 62 6f 78 20 66 6f 6f 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 f-with-sandbox.foo-path.........
3dc0 20 20 20 20 20 20 20 20 28 66 2d 74 6f 75 63 68 20 28 66 2d 65 78 70 61 6e 64 20 22 66 6f 6f 22 ........(f-touch.(f-expand."foo"
3de0 20 66 6f 6f 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 77 69 .foo-path)))......:no-eval.(f-wi
3e00 74 68 2d 73 61 6e 64 62 6f 78 20 28 6c 69 73 74 20 66 6f 6f 2d 70 61 74 68 20 62 61 72 2d 70 61 th-sandbox.(list.foo-path.bar-pa
3e20 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 74 6f 75 63 68 20 28 66 2d th).................(f-touch.(f-
3e40 65 78 70 61 6e 64 20 22 66 6f 6f 22 20 66 6f 6f 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 expand."foo".foo-path)).........
3e60 20 20 20 20 20 20 20 20 28 66 2d 74 6f 75 63 68 20 28 66 2d 65 78 70 61 6e 64 20 22 62 61 72 22 ........(f-touch.(f-expand."bar"
3e80 20 62 61 72 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 3a 6e 6f 2d 65 76 61 6c 20 28 66 2d 77 69 .bar-path)))......:no-eval.(f-wi
3ea0 74 68 2d 73 61 6e 64 62 6f 78 20 66 6f 6f 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 th-sandbox.foo-path.............
3ec0 20 20 20 20 28 66 2d 74 6f 75 63 68 20 28 66 2d 65 78 70 61 6e 64 20 22 62 61 72 22 20 62 61 72 ....(f-touch.(f-expand."bar".bar
3ee0 2d 70 61 74 68 29 29 29 29 29 29 20 3b 3b 20 22 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 -path)))))).;;."Destructive.oper
3f00 61 74 69 6f 6e 20 6f 75 74 73 69 64 65 20 73 61 6e 64 62 6f 78 22 0a 0a 28 65 76 61 6c 2d 77 68 ation.outside.sandbox"..(eval-wh
3f20 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 77 68 65 6e 20 28 76 65 72 73 69 6f 6e 3c 20 65 6d 61 en-compile...(when.(version<.ema
3f40 63 73 2d 76 65 72 73 69 6f 6e 20 22 32 38 2e 31 22 29 0a 20 20 20 20 28 77 61 72 6e 20 22 45 6d cs-version."28.1").....(warn."Em
3f60 61 63 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68 69 73 acs.should.not.be.compiling.this
3f80 20 66 69 6c 65 22 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 66 2d 73 68 6f 72 74 64 6f 63 29 .file")))..(provide.'f-shortdoc)
3fa0 0a 0a 3b 3b 3b 20 66 2d 73 68 6f 72 74 64 6f 63 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 ..;;;.f-shortdoc.el.ends.here...
3fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4000 66 2d 32 30 32 34 31 30 30 33 2e 31 31 33 31 2f 66 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 f-20241003.1131/f.el............
4020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4060 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
4080 30 30 36 32 32 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 37 36 36 00 20 30 00 00 00 0062200.00000000000.011766..0...
40a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4100 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...................
4120 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...................
4140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4200 3b 3b 3b 20 66 2e 65 6c 20 2d 2d 2d 20 4d 6f 64 65 72 6e 20 41 50 49 20 66 6f 72 20 77 6f 72 6b ;;;.f.el.---.Modern.API.for.work
4220 69 6e 67 20 77 69 74 68 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 2d ing.with.files.and.directories.-
4240 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 *-.lexical-binding:.t;.-*-..;;.C
4260 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 20 4a 6f 68 61 6e 20 41 6e 64 65 72 73 73 6f opyright.(C).2013.Johan.Andersso
4280 6e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a 6f 68 61 6e 20 41 6e 64 65 72 73 73 6f 6e 20 3c 6a n..;;.Author:.Johan.Andersson.<j
42a0 6f 68 61 6e 2e 72 65 6a 65 65 70 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 ohan.rejeep@gmail.com>.;;.Mainta
42c0 69 6e 65 72 3a 20 4c 75 63 69 65 6e 20 43 61 72 74 69 65 72 2d 54 69 6c 65 74 20 3c 6c 75 63 69 iner:.Lucien.Cartier-Tilet.<luci
42e0 65 6e 40 70 68 75 6e 64 72 61 6b 2e 63 6f 6d 3e 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 56 65 72 73 en@phundrak.com>.;;.Package-Vers
4300 69 6f 6e 3a 20 32 30 32 34 31 30 30 33 2e 31 31 33 31 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 ion:.20241003.1131.;;.Package-Re
4320 76 69 73 69 6f 6e 3a 20 39 33 31 62 36 64 30 36 36 37 66 65 0a 3b 3b 20 50 61 63 6b 61 67 65 2d vision:.931b6d0667fe.;;.Package-
4340 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 34 2e 31 22 29 20 28 73 20 22 31 2e Requires:.((emacs."24.1").(s."1.
4360 37 2e 30 22 29 20 28 64 61 73 68 20 22 32 2e 32 2e 30 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 7.0").(dash."2.2.0")).;;.Keyword
4380 73 3a 20 66 69 6c 65 73 2c 20 64 69 72 65 63 74 6f 72 69 65 73 0a 3b 3b 20 48 6f 6d 65 70 61 67 s:.files,.directories.;;.Homepag
43a0 65 3a 20 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 6a 65 65 70 2f 66 2e 65 6c e:.http://github.com/rejeep/f.el
43c0 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 4e ..;;.This.file.is.NOT.part.of.GN
43e0 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 3b 20 4c 69 63 65 6e 73 65 3a 0a 0a 3b 3b 20 54 68 69 73 20 U.Emacs...;;;.License:..;;.This.
4400 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 61 program.is.free.software;.you.ca
4420 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 0a n.redistribute.it.and/or.modify.
4440 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 55 ;;.it.under.the.terms.of.the.GNU
4460 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 69 .General.Public.License.as.publi
4480 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 75 shed.by.;;.the.Free.Software.Fou
44a0 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 2c 20 6f 72 20 28 61 ndation;.either.version.3,.or.(a
44c0 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 t.your.option).;;.any.later.vers
44e0 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 ion...;;.This.program.is.distrib
4500 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 uted.in.the.hope.that.it.will.be
4520 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 .useful,.;;.but.WITHOUT.ANY.WARR
4540 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 ANTY;.without.even.the.implied.w
4560 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 arranty.of.;;.MERCHANTABILITY.or
4580 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 .FITNESS.FOR.A.PARTICULAR.PURPOS
45a0 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 E...See.the.;;.GNU.General.Publi
45c0 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 c.License.for.more.details...;;.
45e0 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 You.should.have.received.a.copy.
4600 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
4620 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 e.;;.along.with.GNU.Emacs;.see.t
4640 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 he.file.COPYING...If.not,.write.
4660 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 to.the.;;.Free.Software.Foundati
4680 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 on,.Inc.,.51.Franklin.Street,.Fi
46a0 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 fth.Floor,.;;.Boston,.MA.02110-1
46c0 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 301,.USA...;;;.Commentary:.;;.;;
46e0 20 4d 75 63 68 20 69 6e 73 70 69 72 65 64 20 62 79 20 6d 61 67 6e 61 72 27 73 20 65 78 63 65 6c .Much.inspired.by.magnar's.excel
4700 6c 65 6e 74 20 73 2e 65 6c 20 61 6e 64 20 64 61 73 68 2e 65 6c 2c 20 66 2e 65 6c 20 69 73 20 61 lent.s.el.and.dash.el,.f.el.is.a
4720 0a 3b 3b 20 6d 6f 64 65 72 6e 20 41 50 49 20 66 6f 72 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 .;;.modern.API.for.working.with.
4740 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 69 6e 20 45 6d 61 63 73 2e 0a files.and.directories.in.Emacs..
4760 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0c 0a 0a 28 72 65 71 75 69 72 65 20 27 73 29 0a 28 72 65 71 .;;;.Code:.....(require.'s).(req
4780 75 69 72 65 20 27 64 61 73 68 29 0a 28 77 68 65 6e 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 32 38 uire.'dash).(when.(version<=."28
47a0 2e 31 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 0a 20 20 28 77 68 65 6e 20 28 3c 20 65 6d .1".emacs-version)...(when.(<.em
47c0 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 39 29 0a 20 20 20 28 72 65 71 75 69 72 acs-major-version.29)....(requir
47e0 65 20 27 66 2d 73 68 6f 72 74 64 6f 63 20 6e 69 6c 20 74 29 29 29 0a 0a 28 70 75 74 20 27 66 2d e.'f-shortdoc.nil.t)))..(put.'f-
4800 67 75 61 72 64 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d 63 6f 6e 64 69 74 69 6f 6e 73 20 27 28 guard-error.'error-conditions.'(
4820 65 72 72 6f 72 20 66 2d 67 75 61 72 64 2d 65 72 72 6f 72 29 29 0a 28 70 75 74 20 27 66 2d 67 75 error.f-guard-error)).(put.'f-gu
4840 61 72 64 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 20 22 44 65 73 74 72 75 ard-error.'error-message."Destru
4860 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 75 74 73 69 64 65 20 73 61 6e 64 62 6f 78 22 ctive.operation.outside.sandbox"
4880 29 0a 0a 28 64 65 66 76 61 72 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 20 6e 69 6c 0a 20 20 )..(defvar.f--guard-paths.nil...
48a0 22 4c 69 73 74 20 6f 66 20 61 6c 6c 6f 77 65 64 20 70 61 74 68 73 20 74 6f 20 6d 6f 64 69 66 79 "List.of.allowed.paths.to.modify
48c0 20 77 68 65 6e 20 67 75 61 72 64 65 64 2e 0a 0a 44 6f 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 .when.guarded...Do.not.modify.th
48e0 69 73 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 2d 64 65 73 is.variable.")..(defmacro.f--des
4900 74 72 75 63 74 69 76 65 20 28 70 61 74 68 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 49 66 tructive.(path.&rest.body)..."If
4920 20 50 41 54 48 20 69 73 20 61 6c 6c 6f 77 65 64 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 2c .PATH.is.allowed.to.be.modified,
4940 20 79 69 65 6c 64 20 42 4f 44 59 2e 0a 0a 49 66 20 50 41 54 48 20 69 73 20 6e 6f 74 20 61 6c 6c .yield.BODY...If.PATH.is.not.all
4960 6f 77 65 64 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 2c 20 74 68 72 6f 77 20 65 72 72 6f 72 owed.to.be.modified,.throw.error
4980 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 69 66 ."...(declare.(indent.1))...`(if
49a0 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 28 69 66 20 28 2d 2d 61 6e .f--guard-paths........(if.(--an
49c0 79 3f 20 28 6f 72 20 28 66 2d 73 61 6d 65 2d 70 20 69 74 20 2c 70 61 74 68 29 0a 20 20 20 20 20 y?.(or.(f-same-p.it.,path)......
49e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 ..................(f-ancestor-of
4a00 2d 70 20 69 74 20 2c 70 61 74 68 29 29 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 29 0a 20 20 -p.it.,path)).f--guard-paths)...
4a20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 .........(progn.,@body).........
4a40 20 28 73 69 67 6e 61 6c 20 27 66 2d 67 75 61 72 64 2d 65 72 72 6f 72 20 28 6c 69 73 74 20 2c 70 .(signal.'f-guard-error.(list.,p
4a60 61 74 68 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 29 29 29 0a 20 20 20 20 20 2c 40 62 6f 64 ath.f--guard-paths)))......,@bod
4a80 79 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 50 61 74 68 73 0a 0a 28 64 65 66 75 6e 20 66 2d 6a 6f 69 6e y))....;;;;.Paths..(defun.f-join
4aa0 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 4a 6f 69 6e 20 41 52 47 53 20 74 6f 20 61 20 .(&rest.args)..."Join.ARGS.to.a.
4ac0 73 69 6e 67 6c 65 20 70 61 74 68 2e 0a 0a 42 65 20 61 77 61 72 65 20 69 66 20 6f 6e 65 20 6f 66 single.path...Be.aware.if.one.of
4ae0 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 .the.arguments.is.an.absolute.pa
4b00 74 68 2c 20 60 66 2d 6a 6f 69 6e 27 0a 77 69 6c 6c 20 64 69 73 63 61 72 64 20 61 6c 6c 20 74 68 th,.`f-join'.will.discard.all.th
4b20 65 20 70 72 65 63 65 65 64 69 6e 67 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 6d 61 6b 65 20 e.preceeding.arguments.and.make.
4b40 74 68 69 73 20 61 62 73 6f 6c 75 74 65 0a 70 61 74 68 20 74 68 65 20 6e 65 77 20 72 6f 6f 74 20 this.absolute.path.the.new.root.
4b60 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 70 61 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 of.the.generated.path."...(let.(
4b80 70 61 74 68 0a 20 20 20 20 20 20 20 20 28 72 65 6c 61 74 69 76 65 20 28 66 2d 72 65 6c 61 74 69 path.........(relative.(f-relati
4ba0 76 65 2d 70 20 28 63 61 72 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 0a 20 20 20 ve-p.(car.args)))).....(mapc....
4bc0 20 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 ..(lambda.(arg)........(setq.pat
4be0 68 20 28 63 6f 6e 64 20 28 28 6e 6f 74 20 70 61 74 68 29 20 61 72 67 29 0a 20 20 20 20 20 20 20 h.(cond.((not.path).arg)........
4c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 .................((f-absolute-p.
4c20 61 72 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 28 70 arg)..........................(p
4c40 72 6f 67 6e 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 rogn............................
4c60 28 73 65 74 71 20 72 65 6c 61 74 69 76 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (setq.relative.nil).............
4c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...............arg))............
4ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 66 2d 65 78 70 61 6e 64 20 61 72 67 20 70 61 .............(t.(f-expand.arg.pa
4cc0 74 68 29 29 29 29 29 0a 20 20 20 20 20 61 72 67 73 29 0a 20 20 20 20 28 69 66 20 72 65 6c 61 74 th)))))......args).....(if.relat
4ce0 69 76 65 20 28 66 2d 72 65 6c 61 74 69 76 65 20 70 61 74 68 29 20 70 61 74 68 29 29 29 0a 0a 28 ive.(f-relative.path).path)))..(
4d00 64 65 66 75 6e 20 66 2d 73 70 6c 69 74 20 28 70 61 74 68 29 0a 20 20 22 53 70 6c 69 74 20 50 41 defun.f-split.(path)..."Split.PA
4d20 54 48 20 61 6e 64 20 72 65 74 75 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 61 TH.and.return.list.containing.pa
4d40 72 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 74 73 20 28 73 70 6c 69 74 2d 73 74 72 69 rts."...(let.((parts.(split-stri
4d60 6e 67 20 70 61 74 68 20 28 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 20 27 6f 6d 69 74 ng.path.(f-path-separator).'omit
4d80 2d 6e 75 6c 6c 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 73 2d 6c 65 -nulls))).....(if.(string=.(s-le
4da0 66 74 20 31 20 70 61 74 68 29 20 28 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 29 0a 20 ft.1.path).(f-path-separator))..
4dc0 20 20 20 20 20 20 20 28 70 75 73 68 20 28 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 20 .......(push.(f-path-separator).
4de0 70 61 72 74 73 29 0a 20 20 20 20 20 20 70 61 72 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d parts).......parts)))..(defun.f-
4e00 65 78 70 61 6e 64 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 45 expand.(path.&optional.dir)..."E
4e20 78 70 61 6e 64 20 50 41 54 48 20 72 65 6c 61 74 69 76 65 20 74 6f 20 44 49 52 20 28 6f 72 20 60 xpand.PATH.relative.to.DIR.(or.`
4e40 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 27 29 2e 0a 50 41 54 48 20 61 6e 64 20 44 49 default-directory')..PATH.and.DI
4e60 52 20 63 61 6e 20 62 65 20 65 69 74 68 65 72 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 R.can.be.either.a.directory.name
4e80 73 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 0a 6e 61 6d 65 73 2e 20 20 52 65 74 75 s.or.directory.file.names...Retu
4ea0 72 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 20 69 66 20 50 41 54 48 20 69 73 20 61 rn.a.directory.name.if.PATH.is.a
4ec0 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 61 6e 64 0a 61 20 64 69 72 65 63 74 6f 72 79 .directory.name,.and.a.directory
4ee0 20 66 69 6c 65 20 6e 61 6d 65 20 6f 74 68 65 72 77 69 73 65 2e 20 20 46 69 6c 65 20 6e 61 6d 65 .file.name.otherwise...File.name
4f00 20 68 61 6e 64 6c 65 72 73 20 61 72 65 0a 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 .handlers.are.ignored."...(let.(
4f20 66 69 6c 65 2d 6e 61 6d 65 2d 68 61 6e 64 6c 65 72 2d 61 6c 69 73 74 29 0a 20 20 20 20 28 65 78 file-name-handler-alist).....(ex
4f40 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 68 20 64 69 72 29 29 29 0a 0a 28 64 65 66 pand-file-name.path.dir)))..(def
4f60 75 6e 20 66 2d 66 69 6c 65 6e 61 6d 65 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 un.f-filename.(path)..."Return.t
4f80 68 65 20 6e 61 6d 65 20 6f 66 20 50 41 54 48 2e 22 0a 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e he.name.of.PATH."...(file-name-n
4fa0 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 ondirectory.(directory-file-name
4fc0 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 70 61 72 65 6e 74 20 27 66 .path)))..(defalias.'f-parent.'f
4fe0 2d 64 69 72 6e 61 6d 65 29 0a 0a 28 64 65 66 75 6e 20 66 2d 64 69 72 6e 61 6d 65 20 28 70 61 74 -dirname)..(defun.f-dirname.(pat
5000 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 h)..."Return.the.parent.director
5020 79 20 74 6f 20 50 41 54 48 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 20 28 66 69 6c y.to.PATH."...(let.((parent.(fil
5040 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-name-directory................
5060 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 2d 65 78 70 61 6e 64 ..(directory-file-name.(f-expand
5080 20 70 61 74 68 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 0a 20 20 20 .path.default-directory)))))....
50a0 20 28 75 6e 6c 65 73 73 20 28 66 2d 73 61 6d 65 2d 70 20 70 61 74 68 20 70 61 72 65 6e 74 29 0a .(unless.(f-same-p.path.parent).
50c0 20 20 20 20 20 20 28 69 66 20 28 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 70 61 74 68 29 0a 20 20 ......(if.(f-relative-p.path)...
50e0 20 20 20 20 20 20 20 20 28 66 2d 72 65 6c 61 74 69 76 65 20 70 61 72 65 6e 74 29 0a 20 20 20 20 ........(f-relative.parent).....
5100 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 72 65 6e 74 29 ....(directory-file-name.parent)
5120 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 28 70 61 ))))..(defun.f-common-parent.(pa
5140 74 68 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 65 65 70 65 73 74 20 63 6f 6d 6d 6f ths)..."Return.the.deepest.commo
5160 6e 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 50 41 54 48 53 2e 22 0a 20 20 n.parent.directory.of.PATHS."...
5180 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6f 74 20 70 61 74 68 73 29 20 6e 69 6c 29 0a 20 20 20 28 28 (cond....((not.paths).nil)....((
51a0 6e 6f 74 20 28 63 64 72 20 70 61 74 68 73 29 29 20 28 66 2d 70 61 72 65 6e 74 20 28 63 61 72 20 not.(cdr.paths)).(f-parent.(car.
51c0 70 61 74 68 73 29 29 29 0a 20 20 20 28 3a 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 28 6c 65 74 paths)))....(:otherwise.....(let
51e0 2a 20 28 28 70 61 74 68 73 20 28 2d 6d 61 70 20 27 66 2d 73 70 6c 69 74 20 70 61 74 68 73 29 29 *.((paths.(-map.'f-split.paths))
5200 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 6f 6e 20 28 63 61 61 72 20 70 61 74 68 73 29 ............(common.(caar.paths)
5220 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 77 68 )............(re.nil)).......(wh
5240 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 28 63 61 72 20 70 61 74 68 73 29 29 ile.(and.(not.(null.(car.paths))
5260 29 20 28 2d 2d 61 6c 6c 3f 20 28 65 71 75 61 6c 20 28 63 61 72 20 69 74 29 20 63 6f 6d 6d 6f 6e ).(--all?.(equal.(car.it).common
5280 29 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 73 20 28 2d ).paths)).........(setq.paths.(-
52a0 6d 61 70 20 27 63 64 72 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 map.'cdr.paths)).........(push.c
52c0 6f 6d 6d 6f 6e 20 72 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 6f 6e 20 28 ommon.re).........(setq.common.(
52e0 63 61 61 72 20 70 61 74 68 73 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 caar.paths))).......(cond.......
5300 20 28 28 6e 75 6c 6c 20 72 65 29 20 22 22 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 .((null.re)."")........((and.(=.
5320 28 6c 65 6e 67 74 68 20 72 65 29 20 31 29 20 28 66 2d 72 6f 6f 74 2d 70 20 28 63 61 72 20 72 65 (length.re).1).(f-root-p.(car.re
5340 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 28 3a 6f ))).........(f-root))........(:o
5360 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 61 70 70 6c 79 20 therwise.........(concat.(apply.
5380 27 66 2d 6a 6f 69 6e 20 28 6e 72 65 76 65 72 73 65 20 72 65 29 29 20 22 2f 22 29 29 29 29 29 29 'f-join.(nreverse.re))."/"))))))
53a0 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 78 74 20 27 66 69 6c 65 2d 6e 61 6d 65 2d 65 )..(defalias.'f-ext.'file-name-e
53c0 78 74 65 6e 73 69 6f 6e 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 6e 6f 2d 65 78 74 20 27 xtension)..(defalias.'f-no-ext.'
53e0 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 29 0a 0a 28 64 65 66 75 file-name-sans-extension)..(defu
5400 6e 20 66 2d 73 77 61 70 2d 65 78 74 20 28 70 61 74 68 20 65 78 74 29 0a 20 20 22 52 65 74 75 72 n.f-swap-ext.(path.ext)..."Retur
5420 6e 20 50 41 54 48 20 62 75 74 20 77 69 74 68 20 45 58 54 20 61 73 20 74 68 65 20 6e 65 77 20 65 n.PATH.but.with.EXT.as.the.new.e
5440 78 74 65 6e 73 69 6f 6e 2e 0a 45 58 54 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 6e 69 6c 20 6f 72 xtension..EXT.must.not.be.nil.or
5460 20 65 6d 70 74 79 2e 22 0a 20 20 28 69 66 20 28 73 2d 62 6c 61 6e 6b 2d 70 20 65 78 74 29 0a 20 .empty."...(if.(s-blank-p.ext)..
5480 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 78 74 65 6e 73 69 6f 6e 20 63 61 6e 6e 6f 74 20 62 65 .....(error."Extension.cannot.be
54a0 20 65 6d 70 74 79 20 6f 72 20 6e 69 6c 22 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 2d 6e .empty.or.nil").....(concat.(f-n
54c0 6f 2d 65 78 74 20 70 61 74 68 29 20 22 2e 22 20 65 78 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 o-ext.path).".".ext)))..(defun.f
54e0 2d 62 61 73 65 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 -base.(path)..."Return.the.name.
5500 6f 66 20 50 41 54 48 2c 20 65 78 63 6c 75 64 69 6e 67 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e of.PATH,.excluding.the.extension
5520 20 6f 66 20 66 69 6c 65 2e 22 0a 20 20 28 66 2d 6e 6f 2d 65 78 74 20 28 66 2d 66 69 6c 65 6e 61 .of.file."...(f-no-ext.(f-filena
5540 6d 65 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 65 6c 61 74 69 76 me.path)))..(defalias.'f-relativ
5560 65 20 27 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 29 0a 0a 28 64 65 66 61 6c 69 61 e.'file-relative-name)..(defalia
5580 73 20 27 66 2d 73 68 6f 72 74 20 27 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 s.'f-short.'abbreviate-file-name
55a0 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 61 62 62 72 65 76 20 27 61 62 62 72 65 76 69 61 74 ).(defalias.'f-abbrev.'abbreviat
55c0 65 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6c 6f 6e 67 20 28 70 61 74 e-file-name)..(defun.f-long.(pat
55e0 68 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 6f 6e 67 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 41 54 h)..."Return.long.version.of.PAT
5600 48 2e 22 0a 20 20 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 29 29 0a 0a 28 64 65 66 61 6c 69 61 H."...(f-expand.path))..(defalia
5620 73 20 27 66 2d 63 61 6e 6f 6e 69 63 61 6c 20 27 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 29 0a 0a s.'f-canonical.'file-truename)..
5640 28 64 65 66 75 6e 20 66 2d 73 6c 61 73 68 20 28 70 61 74 68 29 0a 20 20 22 41 70 70 65 6e 64 20 (defun.f-slash.(path)..."Append.
5660 73 6c 61 73 68 20 74 6f 20 50 41 54 48 20 75 6e 6c 65 73 73 20 6f 6e 65 20 61 6c 72 65 61 64 79 slash.to.PATH.unless.one.already
5680 2e 0a 0a 53 6f 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 60 63 61 6c 6c ...Some.functions,.such.as.`call
56a0 2d 70 72 6f 63 65 73 73 27 20 72 65 71 75 69 72 65 73 20 74 68 65 72 65 20 74 6f 20 62 65 20 61 -process'.requires.there.to.be.a
56c0 6e 0a 65 6e 64 69 6e 67 20 73 6c 61 73 68 2e 22 0a 20 20 28 69 66 20 28 66 2d 64 69 72 2d 70 20 n.ending.slash."...(if.(f-dir-p.
56e0 70 61 74 68 29 0a 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 path).......(file-name-as-direct
5700 6f 72 79 20 70 61 74 68 29 0a 20 20 20 20 70 61 74 68 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 66 ory.path).....path))..(defun.f-f
5720 75 6c 6c 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 ull.(path)..."Return.absolute.pa
5740 74 68 20 74 6f 20 50 41 54 48 2c 20 77 69 74 68 20 65 6e 64 69 6e 67 20 73 6c 61 73 68 2e 22 0a th.to.PATH,.with.ending.slash.".
5760 20 20 28 66 2d 73 6c 61 73 68 20 28 66 2d 6c 6f 6e 67 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 ..(f-slash.(f-long.path)))..(def
5780 75 6e 20 66 2d 2d 75 6e 69 71 75 69 66 79 20 28 70 61 74 68 73 29 0a 20 20 22 48 65 6c 70 65 72 un.f--uniquify.(paths)..."Helper
57a0 20 66 6f 72 20 60 66 2d 75 6e 69 71 75 69 66 79 27 20 61 6e 64 20 60 66 2d 75 6e 69 71 75 69 66 .for.`f-uniquify'.and.`f-uniquif
57c0 79 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 73 2d 6c 65 6e 67 74 y-alist'."...(let*.((files-lengt
57e0 68 20 28 6c 65 6e 67 74 68 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 6e 69 71 h.(length.paths))..........(uniq
5800 2d 66 69 6c 65 6e 61 6d 65 73 20 28 2d 2d 6d 61 70 20 28 63 6f 6e 73 20 69 74 20 28 66 2d 66 69 -filenames.(--map.(cons.it.(f-fi
5820 6c 65 6e 61 6d 65 20 69 74 29 29 20 70 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 6e lename.it)).paths))..........(un
5840 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 20 28 2d 67 72 6f 75 70 2d 62 79 20 27 63 64 iq-filenames-next.(-group-by.'cd
5860 72 20 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 r.uniq-filenames))).....(while.(
5880 2f 3d 20 66 69 6c 65 73 2d 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 20 75 6e 69 71 2d 66 69 6c /=.files-length.(length.uniq-fil
58a0 65 6e 61 6d 65 73 2d 6e 65 78 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 75 6e 69 71 2d 66 enames-next)).......(setq.uniq-f
58c0 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 67 72 6f 75 ilenames-next.............(-grou
58e0 70 2d 62 79 20 27 63 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p-by.'cdr.......................
5900 20 28 2d 2d 6d 61 70 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(--mapcat......................
5920 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 66 2d 66 69 6c 65 73 20 28 63 64 72 20 69 74 29 29 29 0a ...(let.((conf-files.(cdr.it))).
5940 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 69 66 20 28 3e ..........................(if.(>
5960 20 28 6c 65 6e 67 74 68 20 63 6f 6e 66 2d 66 69 6c 65 73 29 20 31 29 0a 20 20 20 20 20 20 20 20 .(length.conf-files).1).........
5980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 20 28 63 6f ......................(--map.(co
59a0 6e 73 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 ns..............................
59c0 20 20 20 20 20 20 20 20 20 28 63 61 72 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(car.it)...............
59e0 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 63 6f 6e 63 61 74 0a ........................(concat.
5a00 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 ................................
5a20 20 20 20 20 20 20 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 28 73 2d 63 68 6f 70 2d 73 75 66 66 69 .......(f-filename.(s-chop-suffi
5a40 78 20 28 63 64 72 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x.(cdr.it)......................
5a60 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 ................................
5a80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 .............(car.it))).........
5aa0 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 ...............................(
5ac0 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 29 20 28 63 64 72 20 69 74 29 29 29 0a 20 20 20 f-path-separator).(cdr.it)))....
5ae0 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 ................................
5b00 20 20 63 6f 6e 66 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..conf-files)...................
5b20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 ..........conf-files))..........
5b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 ...............uniq-filenames-ne
5b60 78 74 29 29 29 29 0a 20 20 20 20 75 6e 69 71 2d 66 69 6c 65 6e 61 6d 65 73 2d 6e 65 78 74 29 29 xt)))).....uniq-filenames-next))
5b80 0a 0a 28 64 65 66 75 6e 20 66 2d 75 6e 69 71 75 69 66 79 20 28 66 69 6c 65 73 29 0a 20 20 22 52 ..(defun.f-uniquify.(files)..."R
5ba0 65 74 75 72 6e 20 75 6e 69 71 75 65 20 73 75 66 66 69 78 65 73 20 6f 66 20 46 49 4c 45 53 2e 0a eturn.unique.suffixes.of.FILES..
5bc0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 65 63 74 73 20 6e 6f 20 64 75 70 6c 69 63 .This.function.expects.no.duplic
5be0 61 74 65 20 70 61 74 68 73 2e 22 0a 20 20 28 2d 6d 61 70 20 27 63 61 72 20 28 66 2d 2d 75 6e 69 ate.paths."...(-map.'car.(f--uni
5c00 71 75 69 66 79 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 75 6e 69 71 75 69 66 quify.files)))..(defun.f-uniquif
5c20 79 2d 61 6c 69 73 74 20 28 66 69 6c 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 69 73 74 20 y-alist.(files)..."Return.alist.
5c40 6d 61 70 70 69 6e 67 20 46 49 4c 45 53 20 74 6f 20 75 6e 69 71 75 65 20 73 75 66 66 69 78 65 73 mapping.FILES.to.unique.suffixes
5c60 20 6f 66 20 46 49 4c 45 53 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 65 63 74 .of.FILES...This.function.expect
5c80 73 20 6e 6f 20 64 75 70 6c 69 63 61 74 65 20 70 61 74 68 73 2e 22 0a 20 20 28 2d 6d 61 70 20 27 s.no.duplicate.paths."...(-map.'
5ca0 63 61 64 72 20 28 66 2d 2d 75 6e 69 71 75 69 66 79 20 66 69 6c 65 73 29 29 29 0a 0a 0c 0a 3b 3b cadr.(f--uniquify.files)))....;;
5cc0 3b 3b 20 49 2f 4f 0a 0a 28 64 65 66 75 6e 20 66 2d 72 65 61 64 2d 62 79 74 65 73 20 28 70 61 74 ;;.I/O..(defun.f-read-bytes.(pat
5ce0 68 20 26 6f 70 74 69 6f 6e 61 6c 20 62 65 67 20 65 6e 64 29 0a 20 20 22 52 65 61 64 20 62 69 6e h.&optional.beg.end)..."Read.bin
5d00 61 72 79 20 64 61 74 61 20 66 72 6f 6d 20 50 41 54 48 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 ary.data.from.PATH...Return.the.
5d20 62 69 6e 61 72 79 20 64 61 74 61 20 61 73 20 75 6e 69 62 79 74 65 20 73 74 72 69 6e 67 2e 20 20 binary.data.as.unibyte.string...
5d40 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 73 65 63 6f 6e 64 0a 61 6e 64 20 74 68 69 72 64 20 61 72 The.optional.second.and.third.ar
5d60 67 75 6d 65 6e 74 73 20 42 45 47 20 61 6e 64 20 45 4e 44 20 73 70 65 63 69 66 79 20 77 68 61 74 guments.BEG.and.END.specify.what
5d80 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6c 65 0a 74 6f 20 72 65 61 64 2e 22 0a 20 .portion.of.the.file.to.read."..
5da0 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 .(with-temp-buffer.....(set-buff
5dc0 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 er-multibyte.nil).....(setq.buff
5de0 65 72 2d 66 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 62 69 6e 61 72 79 29 0a 20 er-file-coding-system.'binary)..
5e00 20 20 20 28 69 6e 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 ...(insert-file-contents-literal
5e20 6c 79 20 70 61 74 68 20 6e 69 6c 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 62 75 66 66 65 72 ly.path.nil.beg.end).....(buffer
5e40 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d -substring-no-properties.(point-
5e60 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 min).(point-max))))..(defalias.'
5e80 66 2d 72 65 61 64 20 27 66 2d 72 65 61 64 2d 74 65 78 74 29 0a 28 64 65 66 75 6e 20 66 2d 72 65 f-read.'f-read-text).(defun.f-re
5ea0 61 64 2d 74 65 78 74 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 64 69 6e 67 29 0a ad-text.(path.&optional.coding).
5ec0 20 20 22 52 65 61 64 20 74 65 78 74 20 77 69 74 68 20 50 41 54 48 2c 20 75 73 69 6e 67 20 43 4f .."Read.text.with.PATH,.using.CO
5ee0 44 49 4e 47 2e 0a 0a 43 4f 44 49 4e 47 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 75 74 66 2d 38 DING...CODING.defaults.to.`utf-8
5f00 27 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 64 65 63 6f 64 65 64 20 74 65 78 74 20 61 73 20 6d '...Return.the.decoded.text.as.m
5f20 75 6c 74 69 62 79 74 65 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 ultibyte.string."...(decode-codi
5f40 6e 67 2d 73 74 72 69 6e 67 20 28 66 2d 72 65 61 64 2d 62 79 74 65 73 20 70 61 74 68 29 20 28 6f ng-string.(f-read-bytes.path).(o
5f60 72 20 63 6f 64 69 6e 67 20 27 75 74 66 2d 38 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 r.coding.'utf-8)))..(defalias.'f
5f80 2d 77 72 69 74 65 20 27 66 2d 77 72 69 74 65 2d 74 65 78 74 29 0a 28 64 65 66 75 6e 20 66 2d 77 -write.'f-write-text).(defun.f-w
5fa0 72 69 74 65 2d 74 65 78 74 20 28 74 65 78 74 20 63 6f 64 69 6e 67 20 70 61 74 68 29 0a 20 20 22 rite-text.(text.coding.path)..."
5fc0 57 72 69 74 65 20 54 45 58 54 20 77 69 74 68 20 43 4f 44 49 4e 47 20 74 6f 20 50 41 54 48 2e 0a Write.TEXT.with.CODING.to.PATH..
5fe0 0a 54 45 58 54 20 69 73 20 61 20 6d 75 6c 74 69 62 79 74 65 20 73 74 72 69 6e 67 2e 20 20 43 4f .TEXT.is.a.multibyte.string...CO
6000 44 49 4e 47 20 69 73 20 61 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 74 6f 20 65 6e 63 6f 64 DING.is.a.coding.system.to.encod
6020 65 0a 54 45 58 54 20 77 69 74 68 2e 20 20 50 41 54 48 20 69 73 20 61 20 66 69 6c 65 20 6e 61 6d e.TEXT.with...PATH.is.a.file.nam
6040 65 20 74 6f 20 77 72 69 74 65 20 74 6f 2e 22 0a 20 20 28 66 2d 77 72 69 74 65 2d 62 79 74 65 73 e.to.write.to."...(f-write-bytes
6060 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 74 65 78 74 20 63 6f 64 69 .(encode-coding-string.text.codi
6080 6e 67 29 20 70 61 74 68 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 75 6e 69 62 79 74 65 2d 73 74 72 ng).path))..(defun.f-unibyte-str
60a0 69 6e 67 2d 70 20 28 73 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 53 ing-p.(s)..."Determine.whether.S
60c0 20 69 73 20 61 20 75 6e 69 62 79 74 65 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6e 6f 74 20 28 6d .is.a.unibyte.string."...(not.(m
60e0 75 6c 74 69 62 79 74 65 2d 73 74 72 69 6e 67 2d 70 20 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 ultibyte-string-p.s)))..(defun.f
6100 2d 77 72 69 74 65 2d 62 79 74 65 73 20 28 64 61 74 61 20 70 61 74 68 29 0a 20 20 22 57 72 69 74 -write-bytes.(data.path)..."Writ
6120 65 20 62 69 6e 61 72 79 20 44 41 54 41 20 74 6f 20 50 41 54 48 2e 0a 0a 44 41 54 41 20 69 73 20 e.binary.DATA.to.PATH...DATA.is.
6140 61 20 75 6e 69 62 79 74 65 20 73 74 72 69 6e 67 2e 20 20 50 41 54 48 20 69 73 20 61 20 66 69 6c a.unibyte.string...PATH.is.a.fil
6160 65 20 6e 61 6d 65 20 74 6f 20 77 72 69 74 65 20 74 6f 2e 22 0a 20 20 28 66 2d 2d 77 72 69 74 65 e.name.to.write.to."...(f--write
6180 2d 62 79 74 65 73 20 64 61 74 61 20 70 61 74 68 20 6e 69 6c 29 29 0a 0a 28 64 65 66 61 6c 69 61 -bytes.data.path.nil))..(defalia
61a0 73 20 27 66 2d 61 70 70 65 6e 64 20 27 66 2d 61 70 70 65 6e 64 2d 74 65 78 74 29 0a 28 64 65 66 s.'f-append.'f-append-text).(def
61c0 75 6e 20 66 2d 61 70 70 65 6e 64 2d 74 65 78 74 20 28 74 65 78 74 20 63 6f 64 69 6e 67 20 70 61 un.f-append-text.(text.coding.pa
61e0 74 68 29 0a 20 20 22 41 70 70 65 6e 64 20 54 45 58 54 20 77 69 74 68 20 43 4f 44 49 4e 47 20 74 th)..."Append.TEXT.with.CODING.t
6200 6f 20 50 41 54 48 2e 0a 0a 49 66 20 50 41 54 48 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c o.PATH...If.PATH.does.not.exist,
6220 20 69 74 20 69 73 20 63 72 65 61 74 65 64 2e 22 0a 20 20 28 66 2d 61 70 70 65 6e 64 2d 62 79 74 .it.is.created."...(f-append-byt
6240 65 73 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 74 65 78 74 20 63 6f es.(encode-coding-string.text.co
6260 64 69 6e 67 29 20 70 61 74 68 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 61 70 70 65 6e 64 2d 62 79 ding).path))..(defun.f-append-by
6280 74 65 73 20 28 64 61 74 61 20 70 61 74 68 29 0a 20 20 22 41 70 70 65 6e 64 20 62 69 6e 61 72 79 tes.(data.path)..."Append.binary
62a0 20 44 41 54 41 20 74 6f 20 50 41 54 48 2e 0a 0a 49 66 20 50 41 54 48 20 64 6f 65 73 20 6e 6f 74 .DATA.to.PATH...If.PATH.does.not
62c0 20 65 78 69 73 74 2c 20 69 74 20 69 73 20 63 72 65 61 74 65 64 2e 22 0a 20 20 28 66 2d 2d 77 72 .exist,.it.is.created."...(f--wr
62e0 69 74 65 2d 62 79 74 65 73 20 64 61 74 61 20 70 61 74 68 20 3a 61 70 70 65 6e 64 29 29 0a 0a 28 ite-bytes.data.path.:append))..(
6300 64 65 66 75 6e 20 66 2d 2d 77 72 69 74 65 2d 62 79 74 65 73 20 28 64 61 74 61 20 66 69 6c 65 6e defun.f--write-bytes.(data.filen
6320 61 6d 65 20 61 70 70 65 6e 64 29 0a 20 20 22 57 72 69 74 65 20 62 69 6e 61 72 79 20 44 41 54 41 ame.append)..."Write.binary.DATA
6340 20 74 6f 20 46 49 4c 45 4e 41 4d 45 2e 0a 49 66 20 41 50 50 45 4e 44 20 69 73 20 6e 6f 6e 2d 6e .to.FILENAME..If.APPEND.is.non-n
6360 69 6c 2c 20 61 70 70 65 6e 64 20 74 68 65 20 44 41 54 41 20 74 6f 20 74 68 65 20 65 78 69 73 74 il,.append.the.DATA.to.the.exist
6380 69 6e 67 20 63 6f 6e 74 65 6e 74 73 2e 22 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 ing.contents."...(f--destructive
63a0 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 75 6e 69 62 79 74 65 .filename.....(unless.(f-unibyte
63c0 2d 73 74 72 69 6e 67 2d 70 20 64 61 74 61 29 0a 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 77 -string-p.data).......(signal.'w
63e0 72 6f 6e 67 2d 74 79 70 65 2d 61 72 67 75 6d 65 6e 74 20 28 6c 69 73 74 20 27 66 2d 75 6e 69 62 rong-type-argument.(list.'f-unib
6400 79 74 65 2d 73 74 72 69 6e 67 2d 70 20 64 61 74 61 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 yte-string-p.data))).....(let.((
6420 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 77 72 69 74 65 20 27 62 69 6e 61 72 79 29 coding-system-for-write.'binary)
6440 0a 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 2d 72 65 67 69 6f 6e 2d 61 6e 6e 6f 74 61 74 ...........(write-region-annotat
6460 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 e-functions.nil)...........(writ
6480 65 2d 72 65 67 69 6f 6e 2d 70 6f 73 74 2d 61 6e 6e 6f 74 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f e-region-post-annotation-functio
64a0 6e 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 77 72 69 74 65 2d 72 65 67 69 6f 6e 20 64 61 74 61 n.nil)).......(write-region.data
64c0 20 6e 69 6c 20 66 69 6c 65 6e 61 6d 65 20 61 70 70 65 6e 64 20 3a 73 69 6c 65 6e 74 29 0a 20 20 .nil.filename.append.:silent)...
64e0 20 20 20 20 6e 69 6c 29 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 44 65 73 74 72 75 63 74 69 76 65 0a 0a ....nil)))....;;;;.Destructive..
6500 28 64 65 66 75 6e 20 66 2d 6d 6b 64 69 72 20 28 26 72 65 73 74 20 64 69 72 73 29 0a 20 20 22 43 (defun.f-mkdir.(&rest.dirs)..."C
6520 72 65 61 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 44 49 52 53 2e 0a 0a 44 49 52 53 20 73 68 reate.directories.DIRS...DIRS.sh
6540 6f 75 6c 64 20 62 65 20 61 20 73 75 63 63 65 73 73 69 76 65 20 6c 69 73 74 20 6f 66 20 64 69 72 ould.be.a.successive.list.of.dir
6560 65 63 74 6f 72 69 65 73 20 66 6f 72 6d 69 6e 67 20 74 6f 67 65 74 68 65 72 0a 61 20 66 75 6c 6c ectories.forming.together.a.full
6580 20 70 61 74 68 2e 20 20 54 68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74 6f 20 63 61 6c 6c 20 .path...The.easiest.way.to.call.
65a0 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 66 75 6c 6c 79 0a 66 6f 72 6d 65 this.function.with.a.fully.forme
65c0 64 20 70 61 74 68 20 69 73 20 75 73 69 6e 67 20 60 66 2d 73 70 6c 69 74 27 20 61 6c 6f 6e 67 73 d.path.is.using.`f-split'.alongs
65e0 69 64 65 20 69 74 3a 0a 0a 20 20 20 20 28 61 70 70 6c 79 20 23 5c 5c 3d 27 66 2d 6d 6b 64 69 72 ide.it:......(apply.#\\='f-mkdir
6600 20 28 66 2d 73 70 6c 69 74 20 5c 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 5c 22 29 29 0a 0a 41 6c .(f-split.\"path/to/file\"))..Al
6620 74 68 6f 75 67 68 20 69 74 20 77 6f 72 6b 73 20 73 6f 6d 65 74 69 6d 65 73 2c 20 69 74 20 69 73 though.it.works.sometimes,.it.is
6640 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 66 75 6c 6c 79 0a 66 6f .not.recommended.to.use.fully.fo
6660 72 6d 65 64 20 70 61 74 68 73 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 20 49 6e 20 74 rmed.paths.in.the.function..In.t
6680 68 69 73 20 63 61 73 65 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 0a 75 his.case,.it.is.recommended.to.u
66a0 73 65 20 60 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 27 20 69 6e 73 74 65 61 64 2e 22 se.`f-mkdir-full-path'.instead."
66c0 0a 20 20 28 6c 65 74 20 28 70 61 74 68 29 0a 20 20 20 20 28 2d 65 61 63 68 0a 20 20 20 20 20 20 ...(let.(path).....(-each.......
66e0 20 20 64 69 72 73 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 ..dirs.......(lambda.(dir)......
6700 20 20 20 28 73 65 74 71 20 70 61 74 68 20 28 66 2d 65 78 70 61 6e 64 20 64 69 72 20 70 61 74 68 ...(setq.path.(f-expand.dir.path
6720 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d )).........(unless.(f-directory-
6740 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 p.path)...........(f--destructiv
6760 65 20 70 61 74 68 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 29 29 29 29 e.path.(make-directory.path)))))
6780 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6d 6b 64 69 72 2d 66 75 6c 6c 2d 70 61 74 68 20 28 64 69 ))..(defun.f-mkdir-full-path.(di
67a0 72 29 0a 20 20 22 43 72 65 61 74 65 20 44 49 52 20 66 72 6f 6d 20 61 20 66 75 6c 6c 20 70 61 74 r)..."Create.DIR.from.a.full.pat
67c0 68 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 h...This.function.is.similar.to.
67e0 60 66 2d 6d 6b 64 69 72 27 20 65 78 63 65 70 74 20 69 74 20 63 61 6e 20 61 63 63 65 70 74 20 61 `f-mkdir'.except.it.can.accept.a
6800 20 66 75 6c 6c 0a 70 61 74 68 20 69 6e 73 74 65 61 64 20 6f 66 20 72 65 71 75 69 72 69 6e 67 20 .full.path.instead.of.requiring.
6820 73 65 76 65 72 61 6c 20 73 75 63 63 65 73 73 69 76 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d several.successive.directory.nam
6840 65 73 2e 22 0a 20 20 28 61 70 70 6c 79 20 23 27 66 2d 6d 6b 64 69 72 20 28 66 2d 73 70 6c 69 74 es."...(apply.#'f-mkdir.(f-split
6860 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 64 65 6c 65 74 65 20 28 70 61 74 68 20 26 .dir)))..(defun.f-delete.(path.&
6880 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 63 65 29 0a 20 20 22 44 65 6c 65 74 65 20 50 41 54 48 2c 20 optional.force)..."Delete.PATH,.
68a0 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 2e 0a which.can.be.file.or.directory..
68c0 0a 49 66 20 46 4f 52 43 45 20 69 73 20 74 2c 20 61 20 64 69 72 65 63 74 6f 72 79 20 77 69 6c 6c .If.FORCE.is.t,.a.directory.will
68e0 20 62 65 20 64 65 6c 65 74 65 64 20 72 65 63 75 72 73 69 76 65 6c 79 2e 22 0a 20 20 28 66 2d 2d .be.deleted.recursively."...(f--
6900 64 65 73 74 72 75 63 74 69 76 65 20 70 61 74 68 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 66 2d destructive.path.....(if.(or.(f-
6920 66 69 6c 65 2d 70 20 70 61 74 68 29 20 28 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 70 61 74 68 29 29 file-p.path).(f-symlink-p.path))
6940 0a 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 69 6c 65 20 70 61 74 68 29 0a 20 20 20 20 .........(delete-file.path).....
6960 20 20 28 64 65 6c 65 74 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 66 6f 72 63 65 29 29 ..(delete-directory.path.force))
6980 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 79 6d 6c 69 6e 6b 20 28 73 6f 75 72 63 65 20 70 61 74 ))..(defun.f-symlink.(source.pat
69a0 68 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 73 79 6d 6c 69 6e 6b 20 74 6f 20 53 4f 55 52 43 45 h)..."Create.a.symlink.to.SOURCE
69c0 20 66 72 6f 6d 20 50 41 54 48 2e 22 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 70 .from.PATH."...(f--destructive.p
69e0 61 74 68 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 69 63 2d 6c 69 6e 6b 20 73 6f 75 72 63 65 20 70 ath.(make-symbolic-link.source.p
6a00 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6d 6f 76 65 20 28 66 72 6f 6d 20 74 6f 29 0a ath)))..(defun.f-move.(from.to).
6a20 20 20 22 4d 6f 76 65 20 6f 72 20 72 65 6e 61 6d 65 20 46 52 4f 4d 20 74 6f 20 54 4f 2e 0a 49 66 .."Move.or.rename.FROM.to.TO..If
6a40 20 54 4f 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 6d 6f 76 65 20 46 52 .TO.is.a.directory.name,.move.FR
6a60 4f 4d 20 69 6e 74 6f 20 54 4f 2e 22 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 74 OM.into.TO."...(f--destructive.t
6a80 6f 20 28 72 65 6e 61 6d 65 2d 66 69 6c 65 20 66 72 6f 6d 20 74 6f 20 74 29 29 29 0a 0a 28 64 65 o.(rename-file.from.to.t)))..(de
6aa0 66 75 6e 20 66 2d 63 6f 70 79 20 28 66 72 6f 6d 20 74 6f 29 0a 20 20 22 43 6f 70 79 20 66 69 6c fun.f-copy.(from.to)..."Copy.fil
6ac0 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 46 52 4f 4d 20 74 6f 20 54 4f 2e 0a 49 66 20 46 52 e.or.directory.FROM.to.TO..If.FR
6ae0 4f 4d 20 6e 61 6d 65 73 20 61 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 54 4f 20 69 73 20 61 OM.names.a.directory.and.TO.is.a
6b00 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 63 6f 70 79 20 46 52 4f 4d 0a 69 6e 74 6f 20 .directory.name,.copy.FROM.into.
6b20 54 4f 20 61 73 20 61 20 73 75 62 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 66 2d 2d 64 65 73 TO.as.a.subdirectory."...(f--des
6b40 74 72 75 63 74 69 76 65 20 74 6f 0a 20 20 20 20 28 69 66 20 28 66 2d 66 69 6c 65 2d 70 20 66 72 tructive.to.....(if.(f-file-p.fr
6b60 6f 6d 29 0a 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 66 69 6c 65 20 66 72 6f 6d 20 74 6f 29 0a om).........(copy-file.from.to).
6b80 20 20 20 20 20 20 3b 3b 20 54 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20 60 63 6f 70 79 2d 64 ......;;.The.behavior.of.`copy-d
6ba0 69 72 65 63 74 6f 72 79 27 20 64 69 66 66 65 72 73 20 62 65 74 77 65 65 6e 20 45 6d 61 63 73 20 irectory'.differs.between.Emacs.
6bc0 32 33 20 61 6e 64 0a 20 20 20 20 20 20 3b 3b 20 32 34 20 69 6e 20 74 68 61 74 20 69 6e 20 45 6d 23.and.......;;.24.in.that.in.Em
6be0 61 63 73 20 32 33 2c 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 60 66 72 6f 6d 27 20 69 acs.23,.the.contents.of.`from'.i
6c00 73 20 63 6f 70 69 65 64 20 74 6f 0a 20 20 20 20 20 20 3b 3b 20 60 74 6f 27 2c 20 77 68 69 6c 65 s.copied.to.......;;.`to',.while
6c20 20 69 6e 20 45 6d 61 63 73 20 32 34 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 60 66 72 6f 6d .in.Emacs.24.the.directory.`from
6c40 27 20 69 73 20 63 6f 70 69 65 64 20 74 6f 0a 20 20 20 20 20 20 3b 3b 20 60 74 6f 27 2e 20 57 65 '.is.copied.to.......;;.`to'..We
6c60 20 77 61 6e 74 20 74 68 65 20 45 6d 61 63 73 20 32 34 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 .want.the.Emacs.24.behavior.....
6c80 20 20 20 28 69 66 20 28 3e 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 33 ...(if.(>.emacs-major-version.23
6ca0 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d )...........(copy-directory.from
6cc0 20 74 6f 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 66 2d 64 69 72 2d 70 20 74 6f 29 0a 20 20 .to).........(if.(f-dir-p.to)...
6ce0 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 20 20 20 20 28 ..........(progn...............(
6d00 61 70 70 6c 79 20 27 66 2d 6d 6b 64 69 72 20 28 66 2d 73 70 6c 69 74 20 74 6f 29 29 0a 20 20 20 apply.'f-mkdir.(f-split.to))....
6d20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 77 2d 74 6f 20 28 66 2d 65 78 70 61 ...........(let.((new-to.(f-expa
6d40 6e 64 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 66 72 6f 6d 29 20 74 6f 29 29 29 0a 20 20 20 20 20 nd.(f-filename.from).to)))......
6d60 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 ...........(copy-directory.from.
6d80 6e 65 77 2d 74 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 64 69 72 65 63 74 new-to)))...........(copy-direct
6da0 6f 72 79 20 66 72 6f 6d 20 74 6f 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 6f 70 79 ory.from.to))))))..(defun.f-copy
6dc0 2d 63 6f 6e 74 65 6e 74 73 20 28 66 72 6f 6d 20 74 6f 29 0a 20 20 22 43 6f 70 79 20 63 6f 6e 74 -contents.(from.to)..."Copy.cont
6de0 65 6e 74 73 20 69 6e 20 64 69 72 65 63 74 6f 72 79 20 46 52 4f 4d 2c 20 74 6f 20 64 69 72 65 63 ents.in.directory.FROM,.to.direc
6e00 74 6f 72 79 20 54 4f 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 65 78 69 73 74 73 2d 70 20 tory.TO."...(unless.(f-exists-p.
6e20 74 6f 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 63 6f 70 79 20 63 6f 6e 74 to).....(error."Cannot.copy.cont
6e40 65 6e 74 73 20 74 6f 20 6e 6f 6e 20 65 78 69 73 74 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 25 ents.to.non.existing.directory.%
6e60 73 22 20 74 6f 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 64 69 72 2d 70 20 66 72 6f 6d 29 s".to))...(unless.(f-dir-p.from)
6e80 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 63 6f 70 79 20 63 6f 6e 74 65 6e 74 .....(error."Cannot.copy.content
6ea0 73 20 61 73 20 25 73 20 69 73 20 61 20 66 69 6c 65 22 20 66 72 6f 6d 29 29 0a 20 20 28 2d 2d 65 s.as.%s.is.a.file".from))...(--e
6ec0 61 63 68 20 28 66 2d 65 6e 74 72 69 65 73 20 66 72 6f 6d 29 0a 20 20 20 20 28 66 2d 63 6f 70 79 ach.(f-entries.from).....(f-copy
6ee0 20 69 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 74 6f 29 29 .it.(file-name-as-directory.to))
6f00 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 74 6f 75 63 68 20 28 70 61 74 68 29 0a 20 20 22 55 70 64 ))..(defun.f-touch.(path)..."Upd
6f20 61 74 65 20 50 41 54 48 20 6c 61 73 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 64 61 74 65 20 ate.PATH.last.modification.date.
6f40 6f 72 20 63 72 65 61 74 65 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 or.create.if.it.does.not.exist."
6f60 0a 20 20 28 66 2d 2d 64 65 73 74 72 75 63 74 69 76 65 20 70 61 74 68 0a 20 20 20 20 28 69 66 20 ...(f--destructive.path.....(if.
6f80 28 66 2d 66 69 6c 65 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 66 69 6c (f-file-p.path).........(set-fil
6fa0 65 2d 74 69 6d 65 73 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 66 2d 77 72 69 74 65 2d 62 79 74 e-times.path).......(f-write-byt
6fc0 65 73 20 22 22 20 70 61 74 68 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 50 72 65 64 69 63 61 74 65 es."".path))))....;;;;.Predicate
6fe0 73 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 78 69 73 74 73 2d 70 20 27 66 69 6c 65 2d 65 s..(defalias.'f-exists-p.'file-e
7000 78 69 73 74 73 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 78 69 73 74 73 3f 20 27 66 xists-p).(defalias.'f-exists?.'f
7020 69 6c 65 2d 65 78 69 73 74 73 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 64 69 72 65 ile-exists-p)..(defalias.'f-dire
7040 63 74 6f 72 79 2d 70 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 29 0a 28 64 65 66 61 ctory-p.'file-directory-p).(defa
7060 6c 69 61 73 20 27 66 2d 64 69 72 65 63 74 6f 72 79 3f 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f lias.'f-directory?.'file-directo
7080 72 79 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 64 69 72 2d 70 20 27 66 69 6c 65 2d 64 ry-p).(defalias.'f-dir-p.'file-d
70a0 69 72 65 63 74 6f 72 79 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 64 69 72 3f 20 27 66 irectory-p).(defalias.'f-dir?.'f
70c0 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 29 0a 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d ile-directory-p)...(defalias.'f-
70e0 66 69 6c 65 2d 70 20 27 66 69 6c 65 2d 72 65 67 75 6c 61 72 2d 70 29 0a 28 64 65 66 61 6c 69 61 file-p.'file-regular-p).(defalia
7100 73 20 27 66 2d 66 69 6c 65 3f 20 27 66 69 6c 65 2d 72 65 67 75 6c 61 72 2d 70 29 0a 0a 28 64 65 s.'f-file?.'file-regular-p)..(de
7120 66 75 6e 20 66 2d 73 79 6d 6c 69 6e 6b 2d 70 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e fun.f-symlink-p.(path)..."Return
7140 20 74 20 69 66 20 50 41 54 48 20 69 73 20 73 79 6d 6c 69 6e 6b 2c 20 66 61 6c 73 65 20 6f 74 68 .t.if.PATH.is.symlink,.false.oth
7160 65 72 77 69 73 65 2e 22 0a 20 20 28 6e 6f 74 20 28 6e 6f 74 20 28 66 69 6c 65 2d 73 79 6d 6c 69 erwise."...(not.(not.(file-symli
7180 6e 6b 2d 70 20 70 61 74 68 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 73 79 6d 6c nk-p.path))))..(defalias.'f-syml
71a0 69 6e 6b 3f 20 27 66 2d 73 79 6d 6c 69 6e 6b 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 ink?.'f-symlink-p)..(defalias.'f
71c0 2d 72 65 61 64 61 62 6c 65 2d 70 20 27 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 29 0a 28 64 -readable-p.'file-readable-p).(d
71e0 65 66 61 6c 69 61 73 20 27 66 2d 72 65 61 64 61 62 6c 65 3f 20 27 66 69 6c 65 2d 72 65 61 64 61 efalias.'f-readable?.'file-reada
7200 62 6c 65 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 77 72 69 74 61 62 6c 65 2d 70 20 ble-p)..(defalias.'f-writable-p.
7220 27 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 77 'file-writable-p).(defalias.'f-w
7240 72 69 74 61 62 6c 65 3f 20 27 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 29 0a 0a 28 64 65 66 ritable?.'file-writable-p)..(def
7260 61 6c 69 61 73 20 27 66 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 20 27 66 69 6c 65 2d 65 78 65 63 alias.'f-executable-p.'file-exec
7280 75 74 61 62 6c 65 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 78 65 63 75 74 61 62 6c utable-p).(defalias.'f-executabl
72a0 65 3f 20 27 66 69 6c 65 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 29 0a 0a 28 64 65 66 61 6c 69 61 e?.'file-executable-p)..(defalia
72c0 73 20 27 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 27 66 69 6c 65 2d 6e 61 6d 65 2d 61 62 73 6f 6c s.'f-absolute-p.'file-name-absol
72e0 75 74 65 2d 70 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 61 62 73 6f 6c 75 74 65 3f 20 27 66 ute-p).(defalias.'f-absolute?.'f
7300 69 6c 65 2d 6e 61 6d 65 2d 61 62 73 6f 6c 75 74 65 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 72 ile-name-absolute-p)..(defun.f-r
7320 65 6c 61 74 69 76 65 2d 70 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 elative-p.(path)..."Return.t.if.
7340 50 41 54 48 20 69 73 20 72 65 6c 61 74 69 76 65 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 PATH.is.relative,.false.otherwis
7360 65 2e 22 0a 20 20 28 6e 6f 74 20 28 66 2d 61 62 73 6f 6c 75 74 65 2d 70 20 70 61 74 68 29 29 29 e."...(not.(f-absolute-p.path)))
7380 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 72 65 6c 61 74 69 76 65 3f 20 27 66 2d 72 65 6c 61 ..(defalias.'f-relative?.'f-rela
73a0 74 69 76 65 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 72 6f 6f 74 2d 70 20 28 70 61 74 68 29 0a tive-p)..(defun.f-root-p.(path).
73c0 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 20 69 73 20 72 6f 6f 74 20 64 69 72 65 .."Return.t.if.PATH.is.root.dire
73e0 63 74 6f 72 79 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 6e 6f 74 20 ctory,.false.otherwise."...(not.
7400 28 66 2d 70 61 72 65 6e 74 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d (f-parent.path)))..(defalias.'f-
7420 72 6f 6f 74 3f 20 27 66 2d 72 6f 6f 74 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 65 78 74 2d 70 root?.'f-root-p)..(defun.f-ext-p
7440 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 65 78 74 29 0a 20 20 22 52 65 74 75 72 6e 20 .(path.&optional.ext)..."Return.
7460 74 20 69 66 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 20 50 41 54 48 20 69 73 20 45 58 54 2c 20 66 t.if.extension.of.PATH.is.EXT,.f
7480 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 49 66 20 45 58 54 20 69 73 20 6e 69 6c 20 6f alse.otherwise...If.EXT.is.nil.o
74a0 72 20 6f 6d 69 74 74 65 64 2c 20 72 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 20 68 61 73 20 r.omitted,.return.t.if.PATH.has.
74c0 61 6e 79 20 65 78 74 65 6e 73 69 6f 6e 2c 0a 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2e 0a any.extension,.false.otherwise..
74e0 0a 54 68 65 20 65 78 74 65 6e 73 69 6f 6e 2c 20 69 6e 20 61 20 66 69 6c 65 20 6e 61 6d 65 2c 20 .The.extension,.in.a.file.name,.
7500 69 73 20 74 68 65 20 70 61 72 74 20 74 68 61 74 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 6c 61 73 is.the.part.that.follows.the.las
7520 74 0a 27 2e 27 2c 20 65 78 63 6c 75 64 69 6e 67 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 73 t.'.',.excluding.version.numbers
7540 20 61 6e 64 20 62 61 63 6b 75 70 20 73 75 66 66 69 78 65 73 2e 22 0a 20 20 28 69 66 20 65 78 74 .and.backup.suffixes."...(if.ext
7560 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 66 2d 65 78 74 20 70 61 74 68 29 20 65 78 74 .......(string=.(f-ext.path).ext
7580 29 0a 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 66 2d 65 78 74 20 70 61 74 68 29 20 6e 69 6c 29 ).....(not.(eq.(f-ext.path).nil)
75a0 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 78 74 3f 20 27 66 2d 65 78 74 2d 70 29 )))..(defalias.'f-ext?.'f-ext-p)
75c0 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 71 75 61 6c 2d 70 20 27 66 2d 73 61 6d 65 2d 70 ..(defalias.'f-equal-p.'f-same-p
75e0 29 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 65 71 75 61 6c 3f 20 27 66 2d 73 61 6d 65 2d 70 29 ).(defalias.'f-equal?.'f-same-p)
7600 0a 0a 28 64 65 66 75 6e 20 66 2d 73 61 6d 65 2d 70 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 ..(defun.f-same-p.(path-a.path-b
7620 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 2d 41 20 61 6e 64 20 50 41 54 48 )..."Return.t.if.PATH-A.and.PATH
7640 2d 42 20 61 72 65 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 73 61 6d 65 20 66 69 6c 65 2e 22 -B.are.references.to.same.file."
7660 0a 20 20 28 65 71 75 61 6c 0a 20 20 20 28 66 2d 63 61 6e 6f 6e 69 63 61 6c 20 28 64 69 72 65 63 ...(equal....(f-canonical.(direc
7680 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 2d 61 29 tory-file-name.(f-expand.path-a)
76a0 29 29 0a 20 20 20 28 66 2d 63 61 6e 6f 6e 69 63 61 6c 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 ))....(f-canonical.(directory-fi
76c0 6c 65 2d 6e 61 6d 65 20 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 2d 62 29 29 29 29 29 0a 0a 28 le-name.(f-expand.path-b)))))..(
76e0 64 65 66 61 6c 69 61 73 20 27 66 2d 73 61 6d 65 3f 20 27 66 2d 73 61 6d 65 2d 70 29 0a 0a 28 64 defalias.'f-same?.'f-same-p)..(d
7700 65 66 75 6e 20 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d efun.f-parent-of-p.(path-a.path-
7720 62 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 2d 41 20 69 73 20 70 61 72 65 b)..."Return.t.if.PATH-A.is.pare
7740 6e 74 20 6f 66 20 50 41 54 48 2d 42 2e 22 0a 20 20 28 2d 2d 77 68 65 6e 2d 6c 65 74 20 28 66 2d nt.of.PATH-B."...(--when-let.(f-
7760 70 61 72 65 6e 74 20 70 61 74 68 2d 62 29 0a 20 20 20 20 28 66 2d 73 61 6d 65 2d 70 20 70 61 74 parent.path-b).....(f-same-p.pat
7780 68 2d 61 20 69 74 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 70 61 72 65 6e 74 2d 6f h-a.it)))..(defalias.'f-parent-o
77a0 66 3f 20 27 66 2d 70 61 72 65 6e 74 2d 6f 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 63 68 69 f?.'f-parent-of-p)..(defun.f-chi
77c0 6c 64 2d 6f 66 2d 70 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 22 52 65 74 75 72 ld-of-p.(path-a.path-b)..."Retur
77e0 6e 20 74 20 69 66 20 50 41 54 48 2d 41 20 69 73 20 63 68 69 6c 64 20 6f 66 20 50 41 54 48 2d 42 n.t.if.PATH-A.is.child.of.PATH-B
7800 2e 22 0a 20 20 28 2d 2d 77 68 65 6e 2d 6c 65 74 20 28 66 2d 70 61 72 65 6e 74 20 70 61 74 68 2d ."...(--when-let.(f-parent.path-
7820 61 29 0a 20 20 20 20 28 66 2d 73 61 6d 65 2d 70 20 69 74 20 70 61 74 68 2d 62 29 29 29 0a 0a 28 a).....(f-same-p.it.path-b)))..(
7840 64 65 66 61 6c 69 61 73 20 27 66 2d 63 68 69 6c 64 2d 6f 66 3f 20 27 66 2d 63 68 69 6c 64 2d 6f defalias.'f-child-of?.'f-child-o
7860 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 20 28 70 61 f-p)..(defun.f-ancestor-of-p.(pa
7880 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 th-a.path-b)..."Return.t.if.PATH
78a0 2d 41 20 69 73 20 61 6e 63 65 73 74 6f 72 20 6f 66 20 50 41 54 48 2d 42 2e 22 0a 20 20 28 75 6e -A.is.ancestor.of.PATH-B."...(un
78c0 6c 65 73 73 20 28 66 2d 73 61 6d 65 2d 70 20 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 less.(f-same-p.path-a.path-b)...
78e0 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 28 66 2d 66 75 6c 6c 20 70 61 74 68 2d ..(string-prefix-p.(f-full.path-
7900 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 2d 66 75 6c 6c 20 a)......................(f-full.
7920 70 61 74 68 2d 62 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 61 6e 63 65 73 74 6f path-b))))..(defalias.'f-ancesto
7940 72 2d 6f 66 3f 20 27 66 2d 61 6e 63 65 73 74 6f 72 2d 6f 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 r-of?.'f-ancestor-of-p)..(defun.
7960 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 2d 70 20 28 70 61 74 68 2d 61 20 70 61 74 68 2d 62 f-descendant-of-p.(path-a.path-b
7980 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 41 54 48 2d 41 20 69 73 20 64 65 73 65 6e )..."Return.t.if.PATH-A.is.desen
79a0 64 61 6e 74 20 6f 66 20 50 41 54 48 2d 42 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 73 61 dant.of.PATH-B."...(unless.(f-sa
79c0 6d 65 2d 70 20 70 61 74 68 2d 61 20 70 61 74 68 2d 62 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 me-p.path-a.path-b).....(let.((p
79e0 61 74 68 2d 61 20 28 66 2d 73 70 6c 69 74 20 28 66 2d 66 75 6c 6c 20 70 61 74 68 2d 61 29 29 29 ath-a.(f-split.(f-full.path-a)))
7a00 0a 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 2d 62 20 28 66 2d 73 70 6c 69 74 20 28 66 2d 66 ...........(path-b.(f-split.(f-f
7a20 75 6c 6c 20 70 61 74 68 2d 62 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 2d ull.path-b)))...........(parent-
7a40 70 20 74 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 70 61 74 68 2d 62 20 70 p.t)).......(while.(and.path-b.p
7a60 61 72 65 6e 74 2d 70 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 63 arent-p).........(if.(string=.(c
7a80 61 72 20 70 61 74 68 2d 61 29 20 28 63 61 72 20 70 61 74 68 2d 62 29 29 0a 20 20 20 20 20 20 20 ar.path-a).(car.path-b))........
7aa0 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 2d 61 20 28 63 64 72 20 70 61 74 68 2d 61 29 0a 20 .....(setq.path-a.(cdr.path-a)..
7ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 74 68 2d 62 20 28 63 64 72 20 70 61 74 .................path-b.(cdr.pat
7ae0 68 2d 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 74 2d 70 20 6e h-b))...........(setq.parent-p.n
7b00 69 6c 29 29 29 0a 20 20 20 20 20 20 70 61 72 65 6e 74 2d 70 29 29 29 0a 0a 28 64 65 66 61 6c 69 il))).......parent-p)))..(defali
7b20 61 73 20 27 66 2d 64 65 73 63 65 6e 64 61 6e 74 2d 6f 66 3f 20 27 66 2d 64 65 73 63 65 6e 64 61 as.'f-descendant-of?.'f-descenda
7b40 6e 74 2d 6f 66 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 68 69 64 64 65 6e 2d 70 20 28 70 61 74 nt-of-p)..(defun.f-hidden-p.(pat
7b60 68 20 26 6f 70 74 69 6f 6e 61 6c 20 62 65 68 61 76 69 6f 72 29 0a 20 20 22 52 65 74 75 72 6e 20 h.&optional.behavior)..."Return.
7b80 74 20 69 66 20 50 41 54 48 20 69 73 20 68 69 64 64 65 6e 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 t.if.PATH.is.hidden,.nil.otherwi
7ba0 73 65 2e 0a 0a 42 45 48 41 56 49 4f 52 20 63 6f 6e 74 72 6f 6c 73 20 77 68 65 6e 20 61 20 70 61 se...BEHAVIOR.controls.when.a.pa
7bc0 74 68 20 73 68 6f 75 6c 64 20 62 65 20 63 6f 6e 73 69 64 65 72 65 64 20 61 73 20 68 69 64 64 65 th.should.be.considered.as.hidde
7be0 6e 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 69 74 73 20 76 61 6c 75 65 2e 20 20 42 65 77 61 72 n.depending.on.its.value...Bewar
7c00 65 2c 20 69 66 20 50 41 54 48 20 62 65 67 69 6e 73 20 77 69 74 68 20 5c 22 2e 2f 5c 22 2c 20 74 e,.if.PATH.begins.with.\"./\",.t
7c20 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 20 5c 22 2e 5c 22 20 77 69 6c 6c 20 6e 6f 74 20 62 65 he.current.dir.\".\".will.not.be
7c40 20 63 6f 6e 73 69 64 65 72 65 64 20 61 73 20 68 69 64 64 65 6e 2e 0a 0a 57 68 65 6e 20 42 45 48 .considered.as.hidden...When.BEH
7c60 41 56 49 4f 52 20 69 73 20 6e 69 6c 2c 20 69 74 20 77 69 6c 6c 20 6f 6e 6c 79 20 63 68 65 63 6b AVIOR.is.nil,.it.will.only.check
7c80 20 69 66 20 74 68 65 20 70 61 74 68 20 62 65 67 69 6e 73 20 77 69 74 68 0a 61 20 64 6f 74 2c 20 .if.the.path.begins.with.a.dot,.
7ca0 61 73 20 69 6e 20 2e 61 2f 62 2f 63 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 20 69 66 20 74 68 as.in..a/b/c,.and.return.t.if.th
7cc0 65 72 65 20 69 73 20 6f 6e 65 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 0a 6f 6c 64 20 62 65 68 ere.is.one...This.is.the.old.beh
7ce0 61 76 69 6f 72 20 6f 66 20 66 2e 65 6c 20 6c 65 66 74 20 61 73 20 64 65 66 61 75 6c 74 20 66 6f avior.of.f.el.left.as.default.fo
7d00 72 20 62 61 63 6b 77 61 72 64 2d 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 70 75 72 70 6f 73 65 r.backward-compatibility.purpose
7d20 73 2e 0a 0a 57 68 65 6e 20 42 45 48 41 56 49 4f 52 20 69 73 20 41 4e 59 2c 20 72 65 74 75 72 6e s...When.BEHAVIOR.is.ANY,.return
7d40 20 74 20 69 66 20 61 6e 79 20 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 50 41 54 .t.if.any.of.the.elements.of.PAT
7d60 48 20 69 73 0a 68 69 64 64 65 6e 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 57 68 65 H.is.hidden,.nil.otherwise...Whe
7d80 6e 20 42 45 48 41 56 49 4f 52 20 69 73 20 4c 41 53 54 2c 20 72 65 74 75 72 6e 20 74 20 6f 6e 6c n.BEHAVIOR.is.LAST,.return.t.onl
7da0 79 20 69 66 20 74 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 50 41 54 48 0a 69 73 y.if.the.last.element.of.PATH.is
7dc0 20 68 69 64 64 65 6e 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 54 4f 44 4f 3a 20 48 .hidden,.nil.otherwise...TODO:.H
7de0 69 64 64 65 6e 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 6e 64 20 66 69 6c 65 73 20 6f 6e 20 57 idden.directories.and.files.on.W
7e00 69 6e 64 6f 77 73 20 61 72 65 20 6d 61 72 6b 65 64 0a 64 69 66 66 65 72 65 6e 74 6c 79 20 74 68 indows.are.marked.differently.th
7e20 61 6e 20 6f 6e 20 2a 4e 49 58 20 73 79 73 74 65 6d 73 2e 20 20 54 68 69 73 20 73 68 6f 75 6c 64 an.on.*NIX.systems...This.should
7e40 20 62 65 20 70 72 6f 70 65 72 6c 79 0a 69 6d 70 6c 65 6d 65 6e 74 65 64 2e 22 0a 20 20 28 6c 65 .be.properly.implemented."...(le
7e60 74 20 28 28 73 70 6c 69 74 2d 70 61 74 68 20 28 66 2d 73 70 6c 69 74 20 70 61 74 68 29 29 0a 20 t.((split-path.(f-split.path))..
7e80 20 20 20 20 20 20 20 28 63 68 65 63 6b 2d 68 69 64 64 65 6e 20 28 6c 61 6d 62 64 61 20 28 65 6c .......(check-hidden.(lambda.(el
7ea0 74 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 28 61 6e 64 20 t).........................(and.
7ec0 28 73 74 72 69 6e 67 3d 20 28 73 75 62 73 74 72 69 6e 67 20 65 6c 74 20 30 20 31 29 20 22 2e 22 (string=.(substring.elt.0.1)."."
7ee0 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 28 )..............................(
7f00 6e 6f 74 20 28 6d 65 6d 62 65 72 20 65 6c 74 20 27 28 22 2e 22 20 22 2e 2e 22 29 29 29 29 29 29 not.(member.elt.'(".".".."))))))
7f20 29 0a 20 20 20 20 28 70 63 61 73 65 20 62 65 68 61 76 69 6f 72 0a 20 20 20 20 20 20 28 27 61 6e ).....(pcase.behavior.......('an
7f40 79 20 20 28 2d 61 6e 79 20 63 68 65 63 6b 2d 68 69 64 64 65 6e 20 73 70 6c 69 74 2d 70 61 74 68 y..(-any.check-hidden.split-path
7f60 29 29 0a 20 20 20 20 20 20 28 27 6c 61 73 74 20 28 61 70 70 6c 79 20 63 68 65 63 6b 2d 68 69 64 )).......('last.(apply.check-hid
7f80 64 65 6e 20 28 6c 61 73 74 20 73 70 6c 69 74 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 28 6f den.(last.split-path))).......(o
7fa0 74 68 65 72 77 69 73 65 20 28 69 66 20 28 6e 75 6c 6c 20 6f 74 68 65 72 77 69 73 65 29 0a 20 20 therwise.(if.(null.otherwise)...
7fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 68 65 63 ...................(funcall.chec
7fe0 6b 2d 68 69 64 64 65 6e 20 28 63 61 72 20 73 70 6c 69 74 2d 70 61 74 68 29 29 0a 20 20 20 20 20 k-hidden.(car.split-path))......
8000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 76 61 ..............(error."Invalid.va
8020 6c 75 65 20 25 53 20 66 6f 72 20 61 72 67 75 6d 65 6e 74 20 42 45 48 41 56 49 4f 52 22 20 6f 74 lue.%S.for.argument.BEHAVIOR".ot
8040 68 65 72 77 69 73 65 29 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 68 69 64 64 herwise))))))..(defalias.'f-hidd
8060 65 6e 3f 20 27 66 2d 68 69 64 64 65 6e 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 65 6d 70 74 79 en?.'f-hidden-p)..(defun.f-empty
8080 2d 70 20 28 70 61 74 68 29 0a 20 20 22 49 66 20 50 41 54 48 20 69 73 20 61 20 66 69 6c 65 2c 20 -p.(path)..."If.PATH.is.a.file,.
80a0 72 65 74 75 72 6e 20 74 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 6e 20 50 41 54 48 20 69 73 20 return.t.if.the.file.in.PATH.is.
80c0 65 6d 70 74 79 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 0a 49 66 20 50 41 54 48 20 69 73 empty,.nil.otherwise..If.PATH.is
80e0 20 64 69 72 65 63 74 6f 72 79 2c 20 72 65 74 75 72 6e 20 74 20 69 66 20 64 69 72 65 63 74 6f 72 .directory,.return.t.if.director
8100 79 20 68 61 73 20 6e 6f 20 66 69 6c 65 73 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a y.has.no.files,.nil.otherwise.".
8120 20 20 28 69 66 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 ..(if.(f-directory-p.path)......
8140 20 28 65 71 75 61 6c 20 28 66 2d 66 69 6c 65 73 20 70 61 74 68 20 6e 69 6c 20 74 29 20 6e 69 6c .(equal.(f-files.path.nil.t).nil
8160 29 0a 20 20 20 20 28 3d 20 28 66 2d 73 69 7a 65 20 70 61 74 68 29 20 30 29 29 29 0a 0a 28 64 65 ).....(=.(f-size.path).0)))..(de
8180 66 61 6c 69 61 73 20 27 66 2d 65 6d 70 74 79 3f 20 27 66 2d 65 6d 70 74 79 2d 70 29 0a 0a 0c 0a falias.'f-empty?.'f-empty-p)....
81a0 3b 3b 3b 3b 20 53 74 61 74 73 0a 0a 28 64 65 66 75 6e 20 66 2d 73 69 7a 65 20 28 70 61 74 68 29 ;;;;.Stats..(defun.f-size.(path)
81c0 0a 20 20 22 52 65 74 75 72 6e 20 73 69 7a 65 20 6f 66 20 50 41 54 48 2e 0a 0a 49 66 20 50 41 54 ..."Return.size.of.PATH...If.PAT
81e0 48 20 69 73 20 61 20 66 69 6c 65 2c 20 72 65 74 75 72 6e 20 73 69 7a 65 20 6f 66 20 74 68 61 74 H.is.a.file,.return.size.of.that
8200 20 66 69 6c 65 2e 20 20 49 66 20 50 41 54 48 20 69 73 0a 64 69 72 65 63 74 6f 72 79 2c 20 72 65 .file...If.PATH.is.directory,.re
8220 74 75 72 6e 20 73 75 6d 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 50 41 54 48 2e 22 0a turn.sum.of.all.files.in.PATH.".
8240 20 20 28 69 66 20 28 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 ..(if.(f-directory-p.path)......
8260 20 28 2d 73 75 6d 20 28 2d 6d 61 70 20 27 66 2d 73 69 7a 65 20 28 66 2d 66 69 6c 65 73 20 70 61 .(-sum.(-map.'f-size.(f-files.pa
8280 74 68 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 6e 74 68 20 37 20 28 66 69 6c 65 2d 61 74 74 th.nil.t))).....(nth.7.(file-att
82a0 72 69 62 75 74 65 73 20 70 61 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 64 65 70 74 68 ributes.path))))..(defun.f-depth
82c0 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 65 70 74 68 20 6f 66 20 50 .(path)..."Return.the.depth.of.P
82e0 41 54 48 2e 0a 0a 41 74 20 66 69 72 73 74 2c 20 50 41 54 48 20 69 73 20 65 78 70 61 6e 64 65 64 ATH...At.first,.PATH.is.expanded
8300 20 77 69 74 68 20 60 66 2d 65 78 70 61 6e 64 27 2e 20 20 54 68 65 6e 20 74 68 65 20 66 75 6c 6c .with.`f-expand'...Then.the.full
8320 20 70 61 74 68 20 69 73 20 75 73 65 64 20 74 6f 0a 64 65 74 65 63 74 20 74 68 65 20 64 65 70 74 .path.is.used.to.detect.the.dept
8340 68 2e 0a 27 2f 27 20 77 69 6c 6c 20 62 65 20 7a 65 72 6f 20 64 65 70 74 68 2c 20 20 27 2f 75 73 h..'/'.will.be.zero.depth,..'/us
8360 72 27 20 77 69 6c 6c 20 62 65 20 6f 6e 65 20 64 65 70 74 68 2e 20 20 41 6e 64 20 73 6f 20 6f 6e r'.will.be.one.depth...And.so.on
8380 2e 22 0a 20 20 28 2d 20 28 6c 65 6e 67 74 68 20 28 66 2d 73 70 6c 69 74 20 28 66 2d 65 78 70 61 ."...(-.(length.(f-split.(f-expa
83a0 6e 64 20 70 61 74 68 29 29 29 20 31 29 29 0a 0a 3b 3b 20 46 6f 72 20 45 6d 61 63 73 20 32 38 20 nd.path))).1))..;;.For.Emacs.28.
83c0 61 6e 64 20 62 65 6c 6f 77 2c 20 66 6f 72 77 61 72 64 2d 64 65 63 6c 61 72 65 20 e2 80 98 63 75 and.below,.forward-declare....cu
83e0 72 72 65 6e 74 2d 74 69 6d 65 2d 6c 69 73 74 e2 80 99 2c 20 77 68 69 63 68 20 77 61 73 0a 3b 3b rrent-time-list...,.which.was.;;
8400 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 45 6d 61 63 73 20 32 39 2e 0a 28 64 65 66 76 61 72 .introduced.in.Emacs.29..(defvar
8420 20 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 6c 69 73 74 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 67 .current-time-list)..(defun.f--g
8440 65 74 2d 74 69 6d 65 20 28 70 61 74 68 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 66 6e 29 0a 20 20 et-time.(path.timestamp-p.fn)...
8460 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 2c 20 67 65 74 20 74 69 6d 65 2d 72 65 6c 61 74 "Helper.function,.get.time-relat
8480 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 50 41 54 48 2e 0a 48 65 6c 70 65 72 20 ed.information.for.PATH..Helper.
84a0 66 6f 72 20 60 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 27 2c 20 60 66 2d 6d 6f 64 69 66 69 63 61 for.`f-change-time',.`f-modifica
84c0 74 69 6f 6e 2d 74 69 6d 65 27 2c 0a 60 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 27 2e 20 20 49 74 tion-time',.`f-access-time'...It
84e0 20 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 6e 61 6c 6c .is.meant.to.be.called.internall
8500 79 2c 20 61 76 6f 69 64 0a 63 61 6c 6c 69 6e 67 20 69 74 20 6d 61 6e 75 61 6c 6c 79 20 75 6e 6c y,.avoid.calling.it.manually.unl
8520 65 73 73 20 79 6f 75 20 68 61 76 65 20 74 6f 2e 0a 0a 49 66 20 54 49 4d 45 53 54 41 4d 50 2d 50 ess.you.have.to...If.TIMESTAMP-P
8540 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 74 75 72 6e 20 74 68 65 20 64 61 74 65 20 72 65 71 .is.non-nil,.return.the.date.req
8560 75 65 73 74 65 64 20 61 73 20 61 0a 74 69 6d 65 73 74 61 6d 70 2e 20 20 49 66 20 74 68 65 20 76 uested.as.a.timestamp...If.the.v
8580 61 6c 75 65 20 69 73 20 5c 5c 3d 27 73 65 63 6f 6e 64 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 alue.is.\\='seconds,.return.the.
85a0 74 69 6d 65 73 74 61 6d 70 20 61 73 0a 61 20 74 69 6d 65 73 74 61 6d 70 20 77 69 74 68 20 61 20 timestamp.as.a.timestamp.with.a.
85c0 6f 6e 65 2d 73 65 63 6f 6e 64 20 70 72 65 63 69 73 69 6f 6e 2e 20 20 4f 74 68 65 72 77 69 73 65 one-second.precision...Otherwise
85e0 2c 20 74 68 65 0a 74 69 6d 65 73 74 61 6d 70 20 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 61 ,.the.timestamp.is.returned.in.a
8600 20 28 54 49 43 4b 53 20 2e 20 48 5a 29 20 66 6f 72 6d 61 74 2c 20 73 65 65 0a 60 63 75 72 72 65 .(TICKS...HZ).format,.see.`curre
8620 6e 74 2d 74 69 6d 65 27 20 69 66 20 75 73 69 6e 67 20 45 6d 61 63 73 20 32 39 20 6f 72 20 6e 65 nt-time'.if.using.Emacs.29.or.ne
8640 77 65 72 2e 0a 0a 4f 74 68 65 72 77 69 73 65 2c 20 69 66 20 54 49 4d 45 53 54 41 4d 50 2d 50 20 wer...Otherwise,.if.TIMESTAMP-P.
8660 69 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 74 79 6c 65 is.nil,.return.the.default.style
8680 20 6f 66 0a 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 27 2e 0a 0a 46 4e 20 69 73 20 74 68 65 20 66 .of.`current-time'...FN.is.the.f
86a0 75 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 20 unction.specified.by.the.caller.
86c0 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 72 69 65 76 65 0a 74 68 65 20 63 6f 72 72 65 63 74 function.to.retrieve.the.correct
86e0 20 64 61 74 61 20 66 72 6f 6d 20 50 41 54 48 2e 22 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 .data.from.PATH.".......(let*.((
8700 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 6c 69 73 74 20 28 6e 6f 74 20 74 69 6d 65 73 74 61 6d 70 current-time-list.(not.timestamp
8720 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 65 20 28 61 70 70 6c 79 20 66 -p))..............(date.(apply.f
8740 6e 20 28 6c 69 73 74 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 70 61 74 68 29 29 29 n.(list.(file-attributes.path)))
8760 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 )..............(emacs29-or-newer
8780 2d 70 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 32 39 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e -p.(version<=."29".emacs-version
87a0 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 ))).........(cond..........((and
87c0 20 28 65 71 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 27 73 65 63 6f 6e 64 73 29 20 65 6d 61 63 73 .(eq.timestamp-p.'seconds).emacs
87e0 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 2f 20 28 63 61 72 29-or-newer-p)...........(/.(car
8800 20 64 61 74 65 29 20 28 63 64 72 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6f .date).(cdr.date)))..........((o
8820 72 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 71 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 27 73 65 63 r.(and.(not.(eq.timestamp-p.'sec
8840 6f 6e 64 73 29 29 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 0a 20 20 20 20 20 onds)).emacs29-or-newer-p)......
8860 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 74 69 6d 65 73 74 61 6d 70 2d 70 29 20 .........(and.(not.timestamp-p).
8880 28 6e 6f 74 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 29 29 0a 20 20 20 20 20 (not.emacs29-or-newer-p)))......
88a0 20 20 20 20 20 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 74 69 .....date)..........((and.(eq.ti
88c0 6d 65 73 74 61 6d 70 2d 70 20 27 73 65 63 6f 6e 64 73 29 20 28 6e 6f 74 20 65 6d 61 63 73 32 39 mestamp-p.'seconds).(not.emacs29
88e0 2d 6f 72 2d 6e 65 77 65 72 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 2a 20 28 6e -or-newer-p))...........(+.(*.(n
8900 74 68 20 30 20 64 61 74 65 29 20 28 65 78 70 74 20 32 20 31 36 29 29 0a 20 20 20 20 20 20 20 20 th.0.date).(expt.2.16)).........
8920 20 20 20 20 20 28 6e 74 68 20 31 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 61 .....(nth.1.date)))..........((a
8940 6e 64 20 74 69 6d 65 73 74 61 6d 70 2d 70 20 28 6e 6f 74 20 65 6d 61 63 73 32 39 2d 6f 72 2d 6e nd.timestamp-p.(not.emacs29-or-n
8960 65 77 65 72 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 60 28 2c 28 2b 20 28 2a 20 28 6e 74 68 ewer-p))...........`(,(+.(*.(nth
8980 20 30 20 64 61 74 65 29 20 28 65 78 70 74 20 32 20 31 36 29 20 31 30 30 30 29 0a 20 20 20 20 20 .0.date).(expt.2.16).1000)......
89a0 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 28 6e 74 68 20 31 20 64 61 74 65 29 20 31 30 30 30 29 ...........(*.(nth.1.date).1000)
89c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 33 20 64 61 74 65 29 29 0a 20 .................(nth.3.date))..
89e0 20 20 20 20 20 20 20 20 20 20 20 2e 20 31 30 30 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 .............1000)))))..(defun.f
8a00 2d 63 68 61 6e 67 65 2d 74 69 6d 65 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 74 69 6d -change-time.(path.&optional.tim
8a20 65 73 74 61 6d 70 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 73 74 61 estamp-p)..."Return.the.last.sta
8a40 74 75 73 20 63 68 61 6e 67 65 20 74 69 6d 65 20 6f 66 20 50 41 54 48 2e 0a 0a 54 68 65 20 73 74 tus.change.time.of.PATH...The.st
8a60 61 74 75 73 20 63 68 61 6e 67 65 20 74 69 6d 65 20 28 63 74 69 6d 65 29 20 6f 66 20 50 41 54 48 atus.change.time.(ctime).of.PATH
8a80 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d 61 74 20 61 73 0a 60 63 75 72 72 65 6e 74 2d .in.the.same.format.as.`current-
8aa0 74 69 6d 65 27 2e 20 20 46 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 54 49 4d 45 53 54 41 4d 50 time'...For.details.on.TIMESTAMP
8ac0 2d 50 20 61 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 0a 72 65 74 75 72 6e 65 -P.and.the.format.of.the.returne
8ae0 64 20 76 61 6c 75 65 2c 20 73 65 65 20 60 66 2d 2d 67 65 74 2d 74 69 6d 65 27 2e 22 0a 20 20 28 d.value,.see.`f--get-time'."...(
8b00 66 2d 2d 67 65 74 2d 74 69 6d 65 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f--get-time.path................
8b20 74 69 6d 65 73 74 61 6d 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 timestamp-p................(if.(
8b40 66 62 6f 75 6e 64 70 20 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 73 74 61 74 75 73 2d 63 fboundp.'file-attribute-status-c
8b60 68 61 6e 67 65 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 hange-time)....................#
8b80 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 73 74 61 74 75 73 2d 63 68 61 6e 67 65 2d 74 69 'file-attribute-status-change-ti
8ba0 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 20 me..................(lambda.(f).
8bc0 28 6e 74 68 20 36 20 66 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 6d 6f 64 69 66 69 63 61 (nth.6.f)))))..(defun.f-modifica
8be0 74 69 6f 6e 2d 74 69 6d 65 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 74 69 6d 65 73 74 tion-time.(path.&optional.timest
8c00 61 6d 70 2d 70 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 6d 6f 64 69 66 69 amp-p)..."Return.the.last.modifi
8c20 63 61 74 69 6f 6e 20 74 69 6d 65 20 6f 66 20 50 41 54 48 2e 0a 54 68 65 20 6d 6f 64 69 66 69 63 cation.time.of.PATH..The.modific
8c40 61 74 69 6f 6e 20 74 69 6d 65 20 28 6d 74 69 6d 65 29 20 6f 66 20 50 41 54 48 20 69 6e 20 74 68 ation.time.(mtime).of.PATH.in.th
8c60 65 20 73 61 6d 65 20 66 6f 72 6d 61 74 20 61 73 0a 60 63 75 72 72 65 6e 74 2d 74 69 6d 65 27 2e e.same.format.as.`current-time'.
8c80 20 20 46 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 54 49 4d 45 53 54 41 4d 50 2d 50 20 61 6e 64 ..For.details.on.TIMESTAMP-P.and
8ca0 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 0a 72 65 74 75 72 6e 65 64 20 76 61 6c 75 .the.format.of.the.returned.valu
8cc0 65 2c 20 73 65 65 20 60 66 2d 2d 67 65 74 2d 74 69 6d 65 27 2e 22 0a 20 20 28 66 2d 2d 67 65 74 e,.see.`f--get-time'."...(f--get
8ce0 2d 74 69 6d 65 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 73 74 -time.path................timest
8d00 61 6d 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 amp-p................(if.(fbound
8d20 70 20 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 p.'file-attribute-modification-t
8d40 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 66 69 6c 65 2d 61 ime)....................#'file-a
8d60 74 74 72 69 62 75 74 65 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 0a 20 20 20 20 20 ttribute-modification-time......
8d80 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 6e 74 68 20 35 20 66 ............(lambda.(f).(nth.5.f
8da0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 28 70 61 74 )))))..(defun.f-access-time.(pat
8dc0 68 20 26 6f 70 74 69 6f 6e 61 6c 20 74 69 6d 65 73 74 61 6d 70 2d 70 29 0a 20 20 22 52 65 74 75 h.&optional.timestamp-p)..."Retu
8de0 72 6e 20 74 68 65 20 6c 61 73 74 20 61 63 63 65 73 73 20 74 69 6d 65 20 6f 66 20 50 41 54 48 2e rn.the.last.access.time.of.PATH.
8e00 0a 54 68 65 20 61 63 63 65 73 73 20 74 69 6d 65 20 28 61 74 69 6d 65 29 20 6f 66 20 50 41 54 48 .The.access.time.(atime).of.PATH
8e20 20 69 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d 61 74 20 61 73 0a 60 63 75 72 72 65 .is.in.the.same.format.as.`curre
8e40 6e 74 2d 74 69 6d 65 27 2e 20 20 46 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 54 49 4d 45 53 54 nt-time'...For.details.on.TIMEST
8e60 41 4d 50 2d 50 20 61 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 0a 72 65 74 75 AMP-P.and.the.format.of.the.retu
8e80 72 6e 65 64 20 76 61 6c 75 65 2c 20 73 65 65 20 60 66 2d 2d 67 65 74 2d 74 69 6d 65 27 2e 22 0a rned.value,.see.`f--get-time'.".
8ea0 20 20 28 66 2d 2d 67 65 74 2d 74 69 6d 65 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(f--get-time.path.............
8ec0 20 20 20 74 69 6d 65 73 74 61 6d 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ...timestamp-p................(i
8ee0 66 20 28 66 62 6f 75 6e 64 70 20 27 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 f.(fboundp.'file-attribute-acces
8f00 73 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 66 69 6c s-time)....................#'fil
8f20 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 73 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 e-attribute-access-time.........
8f40 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 6e 74 68 20 34 20 66 29 29 29 .........(lambda.(f).(nth.4.f)))
8f60 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 2d 74 68 72 65 65 2d 77 61 79 2d 63 6f 6d 70 61 72 65 20 ))..(defun.f--three-way-compare.
8f80 28 61 20 62 29 0a 20 20 22 54 68 72 65 65 20 77 61 79 20 63 6f 6d 70 61 72 69 73 6f 6e 2e 0a 0a (a.b)..."Three.way.comparison...
8fa0 52 65 74 75 72 6e 20 2d 31 20 69 66 20 41 20 3c 20 42 2e 0a 52 65 74 75 72 6e 20 30 20 69 66 20 Return.-1.if.A.<.B..Return.0.if.
8fc0 41 20 3d 20 42 2e 0a 52 65 74 75 72 6e 20 31 20 69 66 20 41 20 3e 20 42 2e 22 0a 20 20 28 63 6f A.=.B..Return.1.if.A.>.B."...(co
8fe0 6e 64 20 28 28 3c 20 61 20 62 29 20 2d 31 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 61 20 62 29 nd.((<.a.b).-1).........((=.a.b)
9000 20 30 29 0a 20 20 20 20 20 20 20 20 28 28 3e 20 61 20 62 29 20 31 29 29 29 0a 0a 3b 3b 20 54 4f .0).........((>.a.b).1)))..;;.TO
9020 44 4f 3a 20 48 6f 77 20 74 6f 20 70 72 6f 70 65 72 6c 79 20 74 65 73 74 20 74 68 69 73 20 66 75 DO:.How.to.properly.test.this.fu
9040 6e 63 74 69 6f 6e 3f 0a 28 64 65 66 75 6e 20 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 20 28 nction?.(defun.f--date-compare.(
9060 66 69 6c 65 20 6f 74 68 65 72 20 6d 65 74 68 6f 64 29 0a 20 20 22 54 68 72 65 65 2d 77 61 79 20 file.other.method)..."Three-way.
9080 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 66 20 74 68 65 20 64 61 74 65 20 6f 66 20 46 49 4c 45 20 61 comparison.of.the.date.of.FILE.a
90a0 6e 64 20 4f 54 48 45 52 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 72 65 74 nd.OTHER...This.function.can.ret
90c0 75 72 6e 20 74 68 72 65 65 20 76 61 6c 75 65 73 3a 0a 2a 20 31 20 6d 65 61 6e 73 20 46 49 4c 45 urn.three.values:.*.1.means.FILE
90e0 20 69 73 20 6e 65 77 65 72 20 74 68 61 6e 20 4f 54 48 45 52 0a 2a 20 30 20 6d 65 61 6e 73 20 46 .is.newer.than.OTHER.*.0.means.F
9100 49 4c 45 20 61 6e 64 20 4e 45 57 45 52 20 73 68 61 72 65 20 74 68 65 20 73 61 6d 65 20 64 61 74 ILE.and.NEWER.share.the.same.dat
9120 65 0a 2a 20 2d 31 20 6d 65 61 6e 73 20 46 49 4c 45 20 69 73 20 6f 6c 64 65 72 20 74 68 61 6e 20 e.*.-1.means.FILE.is.older.than.
9140 4f 54 48 45 52 0a 0a 54 68 65 20 73 74 61 74 69 73 74 69 63 73 20 75 73 65 64 20 66 6f 72 20 74 OTHER..The.statistics.used.for.t
9160 68 65 20 64 61 74 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 64 65 70 65 6e 64 73 20 6f 6e 20 4d 45 he.date.comparison.depends.on.ME
9180 54 48 4f 44 2e 0a 57 68 65 6e 20 4d 45 54 48 4f 44 20 69 73 20 6e 75 6c 6c 2c 20 63 6f 6d 70 61 THOD..When.METHOD.is.null,.compa
91a0 72 65 20 74 68 65 69 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 69 6d 65 2e 20 20 4f 74 68 re.their.modification.time...Oth
91c0 65 72 77 69 73 65 2c 0a 63 6f 6d 70 61 72 65 20 74 68 65 69 72 20 63 68 61 6e 67 65 20 74 69 6d erwise,.compare.their.change.tim
91e0 65 20 77 68 65 6e 20 4d 45 54 48 4f 44 20 69 73 20 5c 5c 3d 27 63 68 61 6e 67 65 2c 20 6f 72 20 e.when.METHOD.is.\\='change,.or.
9200 63 6f 6d 70 61 72 65 0a 74 68 65 69 72 20 6c 61 73 74 20 61 63 63 65 73 73 20 74 69 6d 65 20 77 compare.their.last.access.time.w
9220 68 65 6e 20 4d 45 54 48 4f 44 20 69 73 20 5c 5c 3d 27 61 63 63 65 73 73 2e 22 0a 20 20 28 6c 65 hen.METHOD.is.\\='access."...(le
9240 74 2a 20 28 28 66 6e 2d 6d 65 74 68 6f 64 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 t*.((fn-method.(cond............
9260 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 27 63 68 61 6e 67 65 20 6d 65 74 68 6f 64 29 20 23 ..........((eq.'change.method).#
9280 27 66 2d 63 68 61 6e 67 65 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'f-change-time).................
92a0 20 20 20 20 20 28 28 65 71 20 27 61 63 63 65 73 73 20 6d 65 74 68 6f 64 29 20 23 27 66 2d 61 63 .....((eq.'access.method).#'f-ac
92c0 63 65 73 73 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cess-time)......................
92e0 28 28 6e 75 6c 6c 20 6d 65 74 68 6f 64 29 20 20 20 20 20 20 20 23 27 66 2d 6d 6f 64 69 66 69 63 ((null.method).......#'f-modific
9300 61 74 69 6f 6e 2d 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ation-time).....................
9320 20 28 74 20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 6d 65 74 68 6f 64 20 25 53 22 20 6d .(t.(error."Unknown.method.%S".m
9340 65 74 68 6f 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 65 2d 66 69 6c 65 20 28 61 ethod))))..........(date-file.(a
9360 70 70 6c 79 20 66 6e 2d 6d 65 74 68 6f 64 20 28 6c 69 73 74 20 66 69 6c 65 29 29 29 0a 20 20 20 pply.fn-method.(list.file)))....
9380 20 20 20 20 20 20 28 64 61 74 65 2d 6f 74 68 65 72 20 28 61 70 70 6c 79 20 66 6e 2d 6d 65 74 68 ......(date-other.(apply.fn-meth
93a0 6f 64 20 28 6c 69 73 74 20 6f 74 68 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 65 od.(list.other)))..........(date
93c0 73 20 20 20 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 20 64 61 74 65 2d 66 69 6c 65 20 64 61 74 65 s......(-zip-pair.date-file.date
93e0 2d 6f 74 68 65 72 29 29 29 0a 20 20 20 20 28 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 6c 61 6d -other))).....(-reduce-from.(lam
9400 62 64 61 20 28 61 63 63 20 65 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bda.(acc.elt)...................
9420 20 20 28 69 66 20 28 3d 20 61 63 63 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(if.(=.acc.0).................
9440 20 20 20 20 20 20 20 20 28 66 2d 2d 74 68 72 65 65 2d 77 61 79 2d 63 6f 6d 70 61 72 65 20 28 63 ........(f--three-way-compare.(c
9460 61 72 20 65 6c 74 29 20 28 63 64 72 20 65 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.elt).(cdr.elt))..............
9480 20 20 20 20 20 20 20 20 20 61 63 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........acc))..................
94a0 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 65 73 29 29 29 0a 0a 28 .0...................dates)))..(
94c0 64 65 66 75 6e 20 66 2d 6f 6c 64 65 72 2d 70 20 28 66 69 6c 65 20 6f 74 68 65 72 20 26 6f 70 74 defun.f-older-p.(file.other.&opt
94e0 69 6f 6e 61 6c 20 6d 65 74 68 6f 64 29 0a 20 20 22 43 6f 6d 70 61 72 65 20 69 66 20 46 49 4c 45 ional.method)..."Compare.if.FILE
9500 20 69 73 20 6f 6c 64 65 72 20 74 68 61 6e 20 4f 54 48 45 52 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 .is.older.than.OTHER...For.more.
9520 69 6e 66 6f 20 6f 6e 20 4d 45 54 48 4f 44 2c 20 73 65 65 20 60 66 2d 2d 64 61 74 65 2d 63 6f 6d info.on.METHOD,.see.`f--date-com
9540 70 61 72 65 27 2e 22 0a 20 20 28 3c 20 28 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 20 66 69 pare'."...(<.(f--date-compare.fi
9560 6c 65 20 6f 74 68 65 72 20 6d 65 74 68 6f 64 29 20 30 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 le.other.method).0))..(defalias.
9580 27 66 2d 6f 6c 64 65 72 3f 20 23 27 66 2d 6f 6c 64 65 72 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 'f-older?.#'f-older-p)..(defun.f
95a0 2d 6e 65 77 65 72 2d 70 20 28 66 69 6c 65 20 6f 74 68 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6d -newer-p.(file.other.&optional.m
95c0 65 74 68 6f 64 29 0a 20 20 22 43 6f 6d 70 61 72 65 20 69 66 20 46 49 4c 45 20 69 73 20 6e 65 77 ethod)..."Compare.if.FILE.is.new
95e0 65 72 20 74 68 61 6e 20 4f 54 48 45 52 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e er.than.OTHER...For.more.info.on
9600 20 4d 45 54 48 4f 44 2c 20 73 65 65 20 60 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 27 2e 22 .METHOD,.see.`f--date-compare'."
9620 0a 20 20 28 3e 20 28 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 20 66 69 6c 65 20 6f 74 68 65 ...(>.(f--date-compare.file.othe
9640 72 20 6d 65 74 68 6f 64 29 20 30 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 6e 65 77 65 r.method).0))..(defalias.'f-newe
9660 72 3f 20 23 27 66 2d 6e 65 77 65 72 2d 70 29 0a 0a 28 64 65 66 75 6e 20 66 2d 73 61 6d 65 2d 74 r?.#'f-newer-p)..(defun.f-same-t
9680 69 6d 65 2d 70 20 28 66 69 6c 65 20 6f 74 68 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 68 ime-p.(file.other.&optional.meth
96a0 6f 64 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 61 6e 64 20 4f 54 48 45 52 20 73 od)..."Check.if.FILE.and.OTHER.s
96c0 68 61 72 65 20 74 68 65 20 73 61 6d 65 20 61 63 63 65 73 73 20 6f 72 20 6d 6f 64 69 66 69 63 61 hare.the.same.access.or.modifica
96e0 74 69 6f 6e 20 74 69 6d 65 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 4d 45 54 tion.time...For.more.info.on.MET
9700 48 4f 44 2c 20 73 65 65 20 60 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 27 2e 22 0a 20 20 28 HOD,.see.`f--date-compare'."...(
9720 3d 20 28 66 2d 2d 64 61 74 65 2d 63 6f 6d 70 61 72 65 20 66 69 6c 65 20 6f 74 68 65 72 20 6d 65 =.(f--date-compare.file.other.me
9740 74 68 6f 64 29 20 30 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 66 2d 73 61 6d 65 2d 74 69 6d thod).0))..(defalias.'f-same-tim
9760 65 3f 20 23 27 66 2d 73 61 6d 65 2d 74 69 6d 65 2d 70 29 0a 0a 0c 0a 3b 3b 3b 3b 20 4d 69 73 63 e?.#'f-same-time-p)....;;;;.Misc
9780 0a 0a 28 64 65 66 75 6e 20 66 2d 74 68 69 73 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 74 75 72 ..(defun.f-this-file.()..."Retur
97a0 6e 20 70 61 74 68 20 74 6f 20 74 68 69 73 20 66 69 6c 65 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 n.path.to.this.file."...(cond...
97c0 20 28 6c 6f 61 64 2d 69 6e 2d 70 72 6f 67 72 65 73 73 20 6c 6f 61 64 2d 66 69 6c 65 2d 6e 61 6d .(load-in-progress.load-file-nam
97e0 65 29 0a 20 20 20 28 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 27 62 79 74 65 2d 63 6f 6d 70 69 6c e)....((and.(boundp.'byte-compil
9800 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 63 75 72 e-current-file).byte-compile-cur
9820 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 63 75 72 72 rent-file).....byte-compile-curr
9840 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 28 3a 65 6c 73 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 ent-file)....(:else.(buffer-file
9860 2d 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 66 2d 2d 70 61 74 68 2d 73 65 70 61 72 -name))))..(defvar.f--path-separ
9880 61 74 6f 72 20 6e 69 6c 0a 20 20 22 41 20 76 61 72 69 61 62 6c 65 20 74 6f 20 63 61 63 68 65 20 ator.nil..."A.variable.to.cache.
98a0 72 65 73 75 6c 74 20 6f 66 20 60 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 27 2e 22 29 0a result.of.`f-path-separator'.").
98c0 0a 28 64 65 66 75 6e 20 66 2d 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 20 28 29 0a 20 20 22 52 .(defun.f-path-separator.()..."R
98e0 65 74 75 72 6e 20 70 61 74 68 20 73 65 70 61 72 61 74 6f 72 2e 22 0a 20 20 28 6f 72 20 66 2d 2d eturn.path.separator."...(or.f--
9900 70 61 74 68 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 2d 2d 70 61 path-separator.......(setq.f--pa
9920 74 68 2d 73 65 70 61 72 61 74 6f 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 66 2d 6a 6f 69 6e 20 th-separator.(substring.(f-join.
9940 22 78 22 20 22 79 22 29 20 31 20 32 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 67 6c 6f 62 20 "x"."y").1.2))))..(defun.f-glob.
9960 28 70 61 74 74 65 72 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 70 61 74 68 29 0a 20 20 22 46 69 6e 64 (pattern.&optional.path)..."Find
9980 20 50 41 54 54 45 52 4e 20 69 6e 20 50 41 54 48 2e 22 0a 20 20 28 66 69 6c 65 2d 65 78 70 61 6e .PATTERN.in.PATH."...(file-expan
99a0 64 2d 77 69 6c 64 63 61 72 64 73 0a 20 20 20 28 66 2d 6a 6f 69 6e 20 28 6f 72 20 70 61 74 68 20 d-wildcards....(f-join.(or.path.
99c0 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 20 70 61 74 74 65 72 6e 29 29 29 0a 0a 28 default-directory).pattern)))..(
99e0 64 65 66 75 6e 20 66 2d 2d 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 28 70 61 74 68 20 72 defun.f--collect-entries.(path.r
9a00 65 63 75 72 73 69 76 65 29 0a 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 ecursive)...(let.(result........
9a20 20 28 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 28 2d 72 65 6a 65 63 74 0a 20 20 20 20 .(entries..........(-reject.....
9a40 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......(lambda.(file)............
9a60 20 28 6d 65 6d 62 65 72 20 28 66 2d 66 69 6c 65 6e 61 6d 65 20 66 69 6c 65 29 20 27 28 22 2e 22 .(member.(f-filename.file).'("."
9a80 20 22 2e 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 ."..")))...........(directory-fi
9aa0 6c 65 73 20 70 61 74 68 20 74 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 72 65 63 75 72 73 les.path.t)))).....(cond.(recurs
9ac0 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 20 20 20 20 20 20 ive............(mapc............
9ae0 20 28 6c 61 6d 62 64 61 20 28 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .(lambda.(entry)...............(
9b00 69 66 20 28 66 2d 66 69 6c 65 2d 70 20 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 if.(f-file-p.entry).............
9b20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 73 20 65 6e 74 72 79 20 72 ......(setq.result.(cons.entry.r
9b40 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 esult)).................(when.(f
9b60 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -directory-p.entry).............
9b80 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 73 20 65 6e 74 72 79 20 72 ......(setq.result.(cons.entry.r
9ba0 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 esult))...................(if.(f
9bc0 2d 72 65 61 64 61 62 6c 65 2d 70 20 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -readable-p.entry)..............
9be0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 61 70 70 65 6e 64 20 72 65 .........(setq.result.(append.re
9c00 73 75 6c 74 20 28 66 2d 2d 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 65 6e 74 72 79 20 72 sult.(f--collect-entries.entry.r
9c20 65 63 75 72 73 69 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ecursive))).....................
9c40 72 65 73 75 6c 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 69 65 73 29 29 result)))).............entries))
9c60 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 65 6e 74 72 69 ...........(t.(setq.result.entri
9c80 65 73 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d es))).....result))..(defmacro.f-
9ca0 2d 65 6e 74 72 69 65 73 20 28 70 61 74 68 20 62 6f 64 79 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 -entries.(path.body.&optional.re
9cc0 63 75 72 73 69 76 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 cursive)..."Anaphoric.version.of
9ce0 20 60 66 2d 65 6e 74 72 69 65 73 27 2e 22 0a 20 20 60 28 66 2d 65 6e 74 72 69 65 73 0a 20 20 20 .`f-entries'."...`(f-entries....
9d00 20 2c 70 61 74 68 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 20 20 .,path.....(lambda.(path).......
9d20 28 6c 65 74 20 28 28 69 74 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 2c 62 6f 64 79 29 29 (let.((it.path)).........,body))
9d40 0a 20 20 20 20 2c 72 65 63 75 72 73 69 76 65 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 65 6e 74 72 .....,recursive))..(defun.f-entr
9d60 69 65 73 20 28 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6e 20 72 65 63 75 72 73 69 76 65 ies.(path.&optional.fn.recursive
9d80 29 0a 20 20 22 46 69 6e 64 20 61 6c 6c 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 )..."Find.all.files.and.director
9da0 69 65 73 20 69 6e 20 50 41 54 48 2e 0a 0a 46 4e 20 2d 20 63 61 6c 6c 65 64 20 66 6f 72 20 65 61 ies.in.PATH...FN.-.called.for.ea
9dc0 63 68 20 66 6f 75 6e 64 20 66 69 6c 65 20 61 6e 64 20 64 69 72 65 63 74 6f 72 79 2e 20 20 49 66 ch.found.file.and.directory...If
9de0 20 46 4e 20 72 65 74 75 72 6e 73 20 61 20 74 68 72 75 74 68 79 0a 76 61 6c 75 65 2c 20 66 69 6c .FN.returns.a.thruthy.value,.fil
9e00 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 77 69 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 2e e.or.directory.will.be.included.
9e20 0a 52 45 43 55 52 53 49 56 45 20 2d 20 53 65 61 72 63 68 20 66 6f 72 20 66 69 6c 65 73 20 61 6e .RECURSIVE.-.Search.for.files.an
9e40 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 72 65 63 75 72 73 69 76 65 2e 22 0a 20 20 28 6c 65 74 d.directories.recursive."...(let
9e60 20 28 28 65 6e 74 72 69 65 73 20 28 66 2d 2d 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 70 .((entries.(f--collect-entries.p
9e80 61 74 68 20 72 65 63 75 72 73 69 76 65 29 29 29 0a 20 20 20 20 28 69 66 20 66 6e 20 28 2d 73 65 ath.recursive))).....(if.fn.(-se
9ea0 6c 65 63 74 20 66 6e 20 65 6e 74 72 69 65 73 29 20 65 6e 74 72 69 65 73 29 29 29 0a 0a 28 64 65 lect.fn.entries).entries)))..(de
9ec0 66 6d 61 63 72 6f 20 66 2d 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 61 74 68 20 62 6f 64 79 fmacro.f--directories.(path.body
9ee0 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 .&optional.recursive)..."Anaphor
9f00 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 66 2d 64 69 72 65 63 74 6f 72 69 65 73 27 2e 22 0a ic.version.of.`f-directories'.".
9f20 20 20 60 28 66 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 2c 70 61 74 68 0a 20 20 20 20 ..`(f-directories.....,path.....
9f40 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 70 (lambda.(path).......(let.((it.p
9f60 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 2c 62 6f 64 79 29 29 0a 20 20 20 20 2c 72 65 63 75 72 ath)).........,body)).....,recur
9f80 73 69 76 65 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 61 sive))..(defun.f-directories.(pa
9fa0 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6e 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 46 69 th.&optional.fn.recursive)..."Fi
9fc0 6e 64 20 61 6c 6c 20 64 69 72 65 63 74 6f 72 69 65 73 20 69 6e 20 50 41 54 48 2e 20 20 53 65 65 nd.all.directories.in.PATH...See
9fe0 20 60 66 2d 65 6e 74 72 69 65 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 72 65 63 74 6f 72 .`f-entries'."...(let.((director
a000 69 65 73 20 28 2d 73 65 6c 65 63 74 20 27 66 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 66 2d 2d ies.(-select.'f-directory-p.(f--
a020 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 20 70 61 74 68 20 72 65 63 75 72 73 69 76 65 29 29 collect-entries.path.recursive))
a040 29 29 0a 20 20 20 20 28 69 66 20 66 6e 20 28 2d 73 65 6c 65 63 74 20 66 6e 20 64 69 72 65 63 74 )).....(if.fn.(-select.fn.direct
a060 6f 72 69 65 73 29 20 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f ories).directories)))..(defmacro
a080 20 66 2d 2d 66 69 6c 65 73 20 28 70 61 74 68 20 62 6f 64 79 20 26 6f 70 74 69 6f 6e 61 6c 20 72 .f--files.(path.body.&optional.r
a0a0 65 63 75 72 73 69 76 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f ecursive)..."Anaphoric.version.o
a0c0 66 20 60 66 2d 66 69 6c 65 73 27 2e 22 0a 20 20 60 28 66 2d 66 69 6c 65 73 0a 20 20 20 20 2c 70 f.`f-files'."...`(f-files.....,p
a0e0 61 74 68 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 20 20 28 6c 65 ath.....(lambda.(path).......(le
a100 74 20 28 28 69 74 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 2c 62 6f 64 79 29 29 0a 20 20 t.((it.path)).........,body))...
a120 20 20 2c 72 65 63 75 72 73 69 76 65 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 66 69 6c 65 73 20 28 ..,recursive))..(defun.f-files.(
a140 70 61 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6e 20 72 65 63 75 72 73 69 76 65 29 0a 20 20 22 path.&optional.fn.recursive)..."
a160 46 69 6e 64 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 50 41 54 48 2e 20 20 53 65 65 20 60 66 2d Find.all.files.in.PATH...See.`f-
a180 65 6e 74 72 69 65 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 28 2d 73 65 6c 65 entries'."...(let.((files.(-sele
a1a0 63 74 20 27 66 2d 66 69 6c 65 2d 70 20 28 66 2d 2d 63 6f 6c 6c 65 63 74 2d 65 6e 74 72 69 65 73 ct.'f-file-p.(f--collect-entries
a1c0 20 70 61 74 68 20 72 65 63 75 72 73 69 76 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 66 6e 20 28 .path.recursive)))).....(if.fn.(
a1e0 2d 73 65 6c 65 63 74 20 66 6e 20 66 69 6c 65 73 29 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 -select.fn.files).files)))..(def
a200 6d 61 63 72 6f 20 66 2d 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 20 28 62 6f 64 79 20 macro.f--traverse-upwards.(body.
a220 26 6f 70 74 69 6f 6e 61 6c 20 70 61 74 68 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 &optional.path)..."Anaphoric.ver
a240 73 69 6f 6e 20 6f 66 20 60 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 27 2e 22 0a 20 sion.of.`f-traverse-upwards'."..
a260 20 60 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 0a 20 20 20 20 28 6c 61 6d 62 64 .`(f-traverse-upwards.....(lambd
a280 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 64 69 72 29 29 0a 20 20 a.(dir).......(let.((it.dir))...
a2a0 20 20 20 20 20 20 2c 62 6f 64 79 29 29 0a 20 20 20 20 2c 70 61 74 68 29 29 0a 0a 28 64 65 66 75 ......,body)).....,path))..(defu
a2c0 6e 20 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 20 28 66 6e 20 26 6f 70 74 69 6f 6e n.f-traverse-upwards.(fn.&option
a2e0 61 6c 20 70 61 74 68 29 0a 20 20 22 54 72 61 76 65 72 73 65 20 75 70 20 61 73 20 6c 6f 6e 67 20 al.path)..."Traverse.up.as.long.
a300 61 73 20 46 4e 20 72 65 74 75 72 6e 20 6e 69 6c 2c 20 73 74 61 72 74 69 6e 67 20 61 74 20 50 41 as.FN.return.nil,.starting.at.PA
a320 54 48 2e 0a 0a 49 66 20 46 4e 20 72 65 74 75 72 6e 73 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c TH...If.FN.returns.a.non-nil.val
a340 75 65 2c 20 74 68 65 20 70 61 74 68 20 73 65 6e 74 20 61 73 20 61 72 67 75 6d 65 6e 74 20 74 6f ue,.the.path.sent.as.argument.to
a360 20 46 4e 20 69 73 0a 72 65 74 75 72 6e 65 64 2e 20 20 49 66 20 6e 6f 20 66 75 6e 63 74 69 6f 6e .FN.is.returned...If.no.function
a380 20 63 61 6c 6c 62 61 63 6b 20 72 65 74 75 72 6e 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 .callback.return.a.non-nil.value
a3a0 2c 20 6e 69 6c 20 69 73 0a 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 70 61 ,.nil.is.returned."...(unless.pa
a3c0 74 68 0a 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 th.....(setq.path.default-direct
a3e0 6f 72 79 29 29 0a 20 20 28 77 68 65 6e 20 28 66 2d 72 65 6c 61 74 69 76 65 2d 70 20 70 61 74 68 ory))...(when.(f-relative-p.path
a400 29 0a 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 28 66 2d 65 78 70 61 6e 64 20 70 61 74 68 29 ).....(setq.path.(f-expand.path)
a420 29 29 0a 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 70 61 74 68 29 0a 20 20 20 20 20 ))...(if.(funcall.fn.path)......
a440 20 70 61 74 68 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 2d 72 6f 6f 74 2d 70 20 70 61 74 68 .path.....(unless.(f-root-p.path
a460 29 0a 20 20 20 20 20 20 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 20 66 6e 20 28 ).......(f-traverse-upwards.fn.(
a480 66 2d 70 61 72 65 6e 74 20 70 61 74 68 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 66 2d 72 6f 6f f-parent.path)))))..(defun.f-roo
a4a0 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 62 73 6f 6c 75 74 65 20 72 6f 6f 74 2e 22 0a 20 t.()..."Return.absolute.root."..
a4c0 20 28 66 2d 74 72 61 76 65 72 73 65 2d 75 70 77 61 72 64 73 20 27 66 2d 72 6f 6f 74 2d 70 29 29 .(f-traverse-upwards.'f-root-p))
a4e0 0a 0a 28 64 65 66 6d 61 63 72 6f 20 66 2d 77 69 74 68 2d 73 61 6e 64 62 6f 78 20 28 70 61 74 68 ..(defmacro.f-with-sandbox.(path
a500 2d 6f 72 2d 70 61 74 68 73 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 4f 6e 6c 79 20 61 6c -or-paths.&rest.body)..."Only.al
a520 6c 6f 77 20 50 41 54 48 2d 4f 52 2d 50 41 54 48 53 20 61 6e 64 20 64 65 73 63 65 6e 64 61 6e 74 low.PATH-OR-PATHS.and.descendant
a540 73 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 20 69 6e 20 42 4f 44 59 2e 22 0a 20 20 28 64 65 s.to.be.modified.in.BODY."...(de
a560 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 6c 65 74 20 28 28 70 61 74 68 clare.(indent.1))...`(let.((path
a580 73 20 28 69 66 20 28 6c 69 73 74 70 20 2c 70 61 74 68 2d 6f 72 2d 70 61 74 68 73 29 0a 20 20 20 s.(if.(listp.,path-or-paths)....
a5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 70 61 74 68 2d 6f 72 2d 70 61 74 68 73 0a .................,path-or-paths.
a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 2c 70 61 74 68 2d 6f 72 ..................(list.,path-or
a5e0 2d 70 61 74 68 73 29 29 29 29 0a 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a -paths))))......(unwind-protect.
a600 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 20 70 .........(let.((f--guard-paths.p
a620 61 74 68 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 aths))............,@body).......
a640 20 28 73 65 74 71 20 66 2d 2d 67 75 61 72 64 2d 70 61 74 68 73 20 6e 69 6c 29 29 29 29 0a 0a 28 .(setq.f--guard-paths.nil))))..(
a660 70 72 6f 76 69 64 65 20 27 66 29 0a 0a 3b 3b 3b 20 66 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a provide.'f)..;;;.f.el.ends.here.
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 ................................