| ofs | hex dump | ascii | 
|---|
| 0000 |  65 73 78 6d 6c 2d 32 30 32 35 30 34 32 31 2e 31    36 33 32 2f 00 00 00 00 00 00 00 00 00 00 00 00  | esxml-20250421.1632/............ | 
| 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 32 31 33 34 00 20 35 00 00 00  | 0000000.00000000000.012134..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 |  65 73 78 6d 6c 2d 32 30 32 35 30 34 32 31 2e 31    36 33 32 2f 65 73 78 6d 6c 2d 70 6b 67 2e 65 6c  | esxml-20250421.1632/esxml-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 36 33 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 33 36 34 00 20 30 00 00 00  | 0000630.00000000000.014364..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 65 73 78 6d 6c 22 20 22 32 30 32    35 30 34 32 31 2e 31 36 33 32 22 0a 20 20 22 4c  | age."esxml"."20250421.1632"..."L | 
| 0460 |  69 62 72 61 72 79 20 66 6f 72 20 77 6f 72 6b 69    6e 67 20 77 69 74 68 20 78 6d 6c 20 76 69 61 20  | ibrary.for.working.with.xml.via. | 
| 0480 |  65 73 78 6d 6c 20 61 6e 64 20 73 78 6d 6c 2e 22    0a 20 20 27 28 28 65 6d 61 63 73 20 20 22 32 34  | esxml.and.sxml."...'((emacs.."24 | 
| 04a0 |  2e 31 22 29 0a 20 20 20 20 28 63 6c 2d 6c 69 62    20 22 30 2e 35 22 29 29 0a 20 20 3a 75 72 6c 20  | .1").....(cl-lib."0.5"))...:url. | 
| 04c0 |  22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e    63 6f 6d 2f 74 61 6c 69 37 31 33 2f 65 73 78 6d  | "https://github.com/tali713/esxm | 
| 04e0 |  6c 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 61 66    66 61 64 61 31 34 33 66 65 64 37 65 32 64 61 30  | l"...:commit."affada143fed7e2da0 | 
| 0500 |  38 66 32 62 33 64 39 32 37 61 30 32 37 66 32 36    61 64 34 61 38 66 22 0a 20 20 3a 72 65 76 64 65  | 8f2b3d927a027f26ad4a8f"...:revde | 
| 0520 |  73 63 20 22 61 66 66 61 64 61 31 34 33 66 65 64    22 0a 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28  | sc."affada143fed"...:keywords.'( | 
| 0540 |  22 74 6f 6f 6c 73 22 20 22 6c 69 73 70 22 20 22    63 6f 6d 6d 22 29 0a 20 20 3a 61 75 74 68 6f 72  | "tools"."lisp"."comm")...:author | 
| 0560 |  73 20 27 28 28 22 56 61 6e 79 61 20 49 7a 61 6b    73 6f 6e 61 73 2d 53 6d 69 74 68 22 20 2e 20 22  | s.'(("Vanya.Izaksonas-Smith"..." | 
| 0580 |  69 7a 61 6b 30 30 30 32 61 74 75 6d 6e 64 6f 74    65 64 75 22 29 29 29 0a 00 00 00 00 00 00 00 00  | izak0002atumndotedu")))......... | 
| 05a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0600 |  65 73 78 6d 6c 2d 32 30 32 35 30 34 32 31 2e 31    36 33 32 2f 65 73 78 6d 6c 2d 71 75 65 72 79 2e  | esxml-20250421.1632/esxml-query. | 
| 0620 |  65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | el.............................. | 
| 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 37 31 30 33 35 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 37 35 37 00 20 30 00 00 00  | 0071035.00000000000.014757..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 65 73 78 6d 6c 2d 71 75 65 72 79 2e    65 6c 20 2d 2d 2d 20 73 65 6c 65 63 74 20 65 73  | ;;;.esxml-query.el.---.select.es | 
| 0820 |  78 6d 6c 20 6e 6f 64 65 73 20 6a 51 75 65 72 79    2d 73 74 79 6c 65 20 20 2d 2a 2d 20 6c 65 78 69  | xml.nodes.jQuery-style..-*-.lexi | 
| 0840 |  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 6f 70 79 72 69 67 68  | cal-binding:.t;.-*-..;;.Copyrigh | 
| 0860 |  74 20 28 43 29 20 32 30 31 37 20 56 61 73 69 6c    69 6a 20 53 63 68 6e 65 69 64 65 72 6d 61 6e 6e  | t.(C).2017.Vasilij.Schneidermann | 
| 0880 |  20 3c 6d 61 69 6c 40 76 61 73 69 6c 69 6a 2e 64    65 3e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 56  | .<mail@vasilij.de>..;;.Author:.V | 
| 08a0 |  61 73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65 72    6d 61 6e 6e 20 3c 6d 61 69 6c 40 76 61 73 69 6c  | asilij.Schneidermann.<mail@vasil | 
| 08c0 |  69 6a 2e 64 65 3e 0a 3b 3b 20 4d 61 69 6e 74 61    69 6e 65 72 3a 20 56 61 73 69 6c 69 6a 20 53 63  | ij.de>.;;.Maintainer:.Vasilij.Sc | 
| 08e0 |  68 6e 65 69 64 65 72 6d 61 6e 6e 0a 3b 3b 20 4b    65 79 77 6f 72 64 73 3a 20 64 61 74 61 2c 20 6c  | hneidermann.;;.Keywords:.data,.l | 
| 0900 |  69 73 70 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52    65 71 75 69 72 65 73 3a 20 28 28 63 6c 2d 6c 69  | isp.;;.Package-Requires:.((cl-li | 
| 0920 |  62 20 22 30 2e 31 22 29 29 0a 3b 3b 0a 3b 3b 20    54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20  | b."0.1")).;;.;;.This.program.is. | 
| 0940 |  66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79    6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62  | free.software;.you.can.redistrib | 
| 0960 |  75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 3b 3b    20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72  | ute.it.and/or.;;.modify.it.under | 
| 0980 |  20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68    65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75  | .the.terms.of.the.GNU.General.Pu | 
| 09a0 |  62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 0a    3b 3b 20 70 75 62 6c 69 73 68 65 64 20 62 79 20  | blic.License.as.;;.published.by. | 
| 09c0 |  74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72    65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69  | the.Free.Software.Foundation,.ei | 
| 09e0 |  74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f    66 20 74 68 65 0a 3b 3b 20 4c 69 63 65 6e 73 65  | ther.version.3.of.the.;;.License | 
| 0a00 |  2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70    74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20  | ,.or.(at.your.option).any.later. | 
| 0a20 |  76 65 72 73 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  | version...;;.This.program.is.dis | 
| 0a40 |  74 72 69 62 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  | tributed.in.the.hope.that.it.wil | 
| 0a60 |  6c 20 62 65 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  | l.be.useful,.;;.but.WITHOUT.ANY. | 
| 0a80 |  57 41 52 52 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  | WARRANTY;.without.even.the.impli | 
| 0aa0 |  65 64 20 77 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  | ed.warranty.of.;;.MERCHANTABILIT | 
| 0ac0 |  59 20 6f 72 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  | Y.or.FITNESS.FOR.A.PARTICULAR.PU | 
| 0ae0 |  52 50 4f 53 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  | RPOSE...See.the.;;.GNU.General.P | 
| 0b00 |  75 62 6c 69 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  | ublic.License.for.more.details.. | 
| 0b20 |  0a 3b 3b 20 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  | .;;.You.should.have.received.a.c | 
| 0b40 |  6f 70 79 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  | opy.of.the.GNU.General.Public.Li | 
| 0b60 |  63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77    69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d  | cense.;;.along.with.this.program | 
| 0b80 |  2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c    68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f  | ...If.not,.see.<http://www.gnu.o | 
| 0ba0 |  72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a    3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a  | rg/licenses/>...;;;.Commentary:. | 
| 0bc0 |  0a 3b 3b 20 54 72 61 64 69 74 69 6f 6e 61 6c 6c    79 20 70 65 6f 70 6c 65 20 70 69 63 6b 20 6f 6e  | .;;.Traditionally.people.pick.on | 
| 0be0 |  65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69    6e 67 20 6f 70 74 69 6f 6e 73 20 77 68 65 6e 20  | e.of.the.following.options.when. | 
| 0c00 |  66 61 63 65 64 0a 3b 3b 20 77 69 74 68 20 74 68    65 20 74 61 73 6b 20 6f 66 20 65 78 74 72 61 63  | faced.;;.with.the.task.of.extrac | 
| 0c20 |  74 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 58    4d 4c 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70  | ting.data.from.XML.in.Emacs.Lisp | 
| 0c40 |  3a 0a 3b 3b 0a 3b 3b 20 2d 20 55 73 69 6e 67 20    72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69  | :.;;.;;.-.Using.regular.expressi | 
| 0c60 |  6f 6e 73 20 6f 6e 20 74 68 65 20 75 6e 70 61 72    73 65 64 20 64 6f 63 75 6d 65 6e 74 0a 3b 3b 20  | ons.on.the.unparsed.document.;;. | 
| 0c80 |  2d 20 4d 61 6e 75 61 6c 20 74 72 65 65 20 74 72    61 76 65 72 73 61 6c 20 77 69 74 68 20 60 61 73  | -.Manual.tree.traversal.with.`as | 
| 0ca0 |  73 6f 63 27 2c 20 60 63 61 72 27 20 61 6e 64 20    60 63 64 72 27 0a 3b 3b 0a 3b 3b 20 42 72 6f 77  | soc',.`car'.and.`cdr'.;;.;;.Brow | 
| 0cc0 |  73 65 72 73 20 66 61 63 65 64 20 61 20 73 69 6d    69 6c 61 72 20 70 72 6f 62 6c 65 6d 20 75 6e 74  | sers.faced.a.similar.problem.unt | 
| 0ce0 |  69 6c 20 6a 51 75 65 72 79 20 68 61 70 70 65 6e    65 64 2c 20 73 68 6f 72 74 6c 79 0a 3b 3b 20 61  | il.jQuery.happened,.shortly.;;.a | 
| 0d00 |  66 74 65 72 77 61 72 64 73 20 74 68 65 79 20 73    74 61 72 74 65 64 20 70 72 6f 76 69 64 69 6e 67  | fterwards.they.started.providing | 
| 0d20 |  20 74 68 65 20 60 6e 6f 64 65 2e 71 75 65 72 79    53 65 6c 65 63 74 6f 72 27 20 61 6e 64 0a 3b 3b  | .the.`node.querySelector'.and.;; | 
| 0d40 |  20 60 6e 6f 64 65 2e 71 75 65 72 79 53 65 6c 65    63 74 6f 72 41 6c 6c 27 20 41 50 49 20 66 6f 72  | .`node.querySelectorAll'.API.for | 
| 0d60 |  20 72 65 74 72 69 65 76 69 6e 67 20 6f 6e 65 20    6f 72 20 61 6c 6c 20 6e 6f 64 65 73 0a 3b 3b 20  | .retrieving.one.or.all.nodes.;;. | 
| 0d80 |  6d 61 74 63 68 69 6e 67 20 61 20 67 69 76 65 6e    20 43 53 53 20 73 65 6c 65 63 74 6f 72 2e 20 20  | matching.a.given.CSS.selector... | 
| 0da0 |  54 68 69 73 20 63 6f 64 65 20 69 6d 70 6c 65 6d    65 6e 74 73 20 74 68 65 20 73 61 6d 65 20 41 50  | This.code.implements.the.same.AP | 
| 0dc0 |  49 0a 3b 3b 20 77 69 74 68 20 74 68 65 20 60 65    73 78 6d 6c 2d 71 75 65 72 79 27 20 61 6e 64 20  | I.;;.with.the.`esxml-query'.and. | 
| 0de0 |  60 65 73 78 6d 6c 2d 71 75 65 72 79 2d 61 6c 6c    27 20 66 75 6e 63 74 69 6f 6e 73 2e 20 20 54 68  | `esxml-query-all'.functions...Th | 
| 0e00 |  65 0a 3b 3b 20 66 6f 6c 6c 6f 77 69 6e 67 20 74    61 62 6c 65 20 73 75 6d 6d 61 72 69 7a 65 73 20  | e.;;.following.table.summarizes. | 
| 0e20 |  74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 73 75    70 70 6f 72 74 65 64 20 6d 6f 64 69 66 69 65 72  | the.currently.supported.modifier | 
| 0e40 |  73 20 61 6e 64 0a 3b 3b 20 63 6f 6d 62 69 6e 61    74 6f 72 73 3a 0a 3b 3b 0a 3b 3b 20 7c 20 4e 61  | s.and.;;.combinators:.;;.;;.|.Na | 
| 0e60 |  6d 65 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  | me.............................. | 
| 0e80 |  20 7c 20 53 75 70 70 6f 72 74 65 64 3f 20 7c 20    53 79 6e 74 61 78 20 20 20 20 20 20 7c 0a 3b 3b  | .|.Supported?.|.Syntax......|.;; | 
| 0ea0 |  20 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | .|------------------------------ | 
| 0ec0 |  2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | ------+------------+------------ | 
| 0ee0 |  2d 7c 0a 3b 3b 20 7c 20 4e 61 6d 65 73 70 61 63    65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -|.;;.|.Namespaces.............. | 
| 0f00 |  20 20 20 20 20 20 20 20 20 20 20 7c 20 4e 6f 20    20 20 20 20 20 20 20 20 7c 20 66 6f 6f 7c 62 61  | ...........|.No.........|.foo|ba | 
| 0f20 |  72 20 20 20 20 20 7c 0a 3b 3b 20 7c 20 43 6f 6d    6d 61 73 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.....|.;;.|.Commas............. | 
| 0f40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    7c 20 59 65 73 20 20 20 20 20 20 20 20 7c 20 66  | ................|.Yes........|.f | 
| 0f60 |  6f 6f 2c 20 62 61 72 20 20 20 20 7c 0a 3b 3b 20    7c 20 44 65 73 63 65 6e 64 61 6e 74 20 63 6f 6d  | oo,.bar....|.;;.|.Descendant.com | 
| 0f80 |  62 69 6e 61 74 6f 72 20 20 20 20 20 20 20 20 20    20 20 20 20 20 7c 20 59 65 73 20 20 20 20 20 20  | binator..............|.Yes...... | 
| 0fa0 |  20 20 7c 20 66 6f 6f 20 62 61 72 20 20 20 20 20    7c 0a 3b 3b 20 7c 20 43 68 69 6c 64 20 63 6f 6d  | ..|.foo.bar.....|.;;.|.Child.com | 
| 0fc0 |  62 69 6e 61 74 6f 72 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 7c 20 59 65 73 20  | binator...................|.Yes. | 
| 0fe0 |  20 20 20 20 20 20 20 7c 20 66 6f 6f 3e 62 61 72    20 20 20 20 20 7c 0a 3b 3b 20 7c 20 41 64 6a 61  | .......|.foo>bar.....|.;;.|.Adja | 
| 1000 |  63 65 6e 74 20 73 69 62 6c 69 6e 67 20 63 6f 6d    62 69 6e 61 74 6f 72 20 20 20 20 20 20 20 20 7c  | cent.sibling.combinator........| | 
| 1020 |  20 4e 6f 20 20 20 20 20 20 20 20 20 7c 20 66 6f    6f 2b 62 61 72 20 20 20 20 20 7c 0a 3b 3b 20 7c  | .No.........|.foo+bar.....|.;;.| | 
| 1040 |  20 47 65 6e 65 72 61 6c 20 73 69 62 6c 69 6e 67    20 63 6f 6d 62 69 6e 61 74 6f 72 20 20 20 20 20  | .General.sibling.combinator..... | 
| 1060 |  20 20 20 20 7c 20 4e 6f 20 20 20 20 20 20 20 20    20 7c 20 66 6f 6f 7e 62 61 72 20 20 20 20 20 7c  | ....|.No.........|.foo~bar.....| | 
| 1080 |  0a 3b 3b 20 7c 20 55 6e 69 76 65 72 73 61 6c 20    73 65 6c 65 63 74 6f 72 20 20 20 20 20 20 20 20  | .;;.|.Universal.selector........ | 
| 10a0 |  20 20 20 20 20 20 20 20 20 7c 20 59 65 73 20 20    20 20 20 20 20 20 7c 20 2a 20 20 20 20 20 20 20  | .........|.Yes........|.*....... | 
| 10c0 |  20 20 20 20 7c 0a 3b 3b 20 7c 20 54 79 70 65 20    73 65 6c 65 63 74 6f 72 20 20 20 20 20 20 20 20  | ....|.;;.|.Type.selector........ | 
| 10e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20    59 65 73 20 20 20 20 20 20 20 20 7c 20 74 61 67  | ..............|.Yes........|.tag | 
| 1100 |  20 20 20 20 20 20 20 20 20 7c 0a 3b 3b 20 7c 20    49 44 20 73 65 6c 65 63 74 6f 72 20 20 20 20 20  | .........|.;;.|.ID.selector..... | 
| 1120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 7c 20 59 65 73 20 20 20 20 20 20 20 20  | ...................|.Yes........ | 
| 1140 |  7c 20 23 66 6f 6f 20 20 20 20 20 20 20 20 7c 0a    3b 3b 20 7c 20 43 6c 61 73 73 20 73 65 6c 65 63  | |.#foo........|.;;.|.Class.selec | 
| 1160 |  74 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 7c 20 59 65 73 20 20 20  | tor.....................|.Yes... | 
| 1180 |  20 20 20 20 20 7c 20 2e 66 6f 6f 20 20 20 20 20    20 20 20 7c 0a 3b 3b 20 7c 20 41 74 74 72 69 62  | .....|..foo........|.;;.|.Attrib | 
| 11a0 |  75 74 65 20 73 65 6c 65 63 74 6f 72 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 59  | ute.selector.................|.Y | 
| 11c0 |  65 73 20 20 20 20 20 20 20 20 7c 20 5b 66 6f 6f    5d 20 20 20 20 20 20 20 7c 0a 3b 3b 20 7c 20 45  | es........|.[foo].......|.;;.|.E | 
| 11e0 |  78 61 63 74 20 6d 61 74 63 68 20 61 74 74 72 69    62 75 74 65 20 73 65 6c 65 63 74 6f 72 20 20 20  | xact.match.attribute.selector... | 
| 1200 |  20 20 7c 20 59 65 73 20 20 20 20 20 20 20 20 7c    20 5b 66 6f 6f 3d 62 61 72 5d 20 20 20 7c 0a 3b  | ..|.Yes........|.[foo=bar]...|.; | 
| 1220 |  3b 20 7c 20 50 72 65 66 69 78 20 6d 61 74 63 68    20 61 74 74 72 69 62 75 74 65 20 73 65 6c 65 63  | ;.|.Prefix.match.attribute.selec | 
| 1240 |  74 6f 72 20 20 20 20 7c 20 59 65 73 20 20 20 20    20 20 20 20 7c 20 5b 66 6f 6f 5e 3d 62 61 72 5d  | tor....|.Yes........|.[foo^=bar] | 
| 1260 |  20 20 7c 0a 3b 3b 20 7c 20 53 75 66 66 69 78 20    6d 61 74 63 68 20 61 74 74 72 69 62 75 74 65 20  | ..|.;;.|.Suffix.match.attribute. | 
| 1280 |  73 65 6c 65 63 74 6f 72 20 20 20 20 7c 20 59 65    73 20 20 20 20 20 20 20 20 7c 20 5b 66 6f 6f 24  | selector....|.Yes........|.[foo$ | 
| 12a0 |  3d 62 61 72 5d 20 20 7c 0a 3b 3b 20 7c 20 53 75    62 73 74 72 69 6e 67 20 6d 61 74 63 68 20 61 74  | =bar]..|.;;.|.Substring.match.at | 
| 12c0 |  74 72 69 62 75 74 65 20 73 65 6c 65 63 74 6f 72    20 7c 20 59 65 73 20 20 20 20 20 20 20 20 7c 20  | tribute.selector.|.Yes........|. | 
| 12e0 |  5b 66 6f 6f 2a 3d 62 61 72 5d 20 20 7c 0a 3b 3b    20 7c 20 49 6e 63 6c 75 64 65 20 6d 61 74 63 68  | [foo*=bar]..|.;;.|.Include.match | 
| 1300 |  20 61 74 74 72 69 62 75 74 65 20 73 65 6c 65 63    74 6f 72 20 20 20 7c 20 59 65 73 20 20 20 20 20  | .attribute.selector...|.Yes..... | 
| 1320 |  20 20 20 7c 20 5b 66 6f 6f 7e 3d 62 61 72 5d 20    20 7c 0a 3b 3b 20 7c 20 44 61 73 68 20 6d 61 74  | ...|.[foo~=bar]..|.;;.|.Dash.mat | 
| 1340 |  63 68 20 61 74 74 72 69 62 75 74 65 20 73 65 6c    65 63 74 6f 72 20 20 20 20 20 20 7c 20 59 65 73  | ch.attribute.selector......|.Yes | 
| 1360 |  20 20 20 20 20 20 20 20 7c 20 5b 66 6f 6f 7c 3d    62 61 72 5d 20 20 7c 0a 3b 3b 20 7c 20 41 74 74  | ........|.[foo|=bar]..|.;;.|.Att | 
| 1380 |  72 69 62 75 74 65 20 73 65 6c 65 63 74 6f 72 20    6d 6f 64 69 66 69 65 72 73 20 20 20 20 20 20 20  | ribute.selector.modifiers....... | 
| 13a0 |  7c 20 4e 6f 20 20 20 20 20 20 20 20 20 7c 20 5b    66 6f 6f 3d 62 61 72 20 69 5d 20 7c 0a 3b 3b 20  | |.No.........|.[foo=bar.i].|.;;. | 
| 13c0 |  7c 20 50 73 65 75 64 6f 20 65 6c 65 6d 65 6e 74    73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | |.Pseudo.elements............... | 
| 13e0 |  20 20 20 20 20 7c 20 4e 6f 20 20 20 20 20 20 20    20 20 7c 20 3a 3a 66 6f 6f 20 20 20 20 20 20 20  | .....|.No.........|.::foo....... | 
| 1400 |  7c 0a 3b 3b 20 7c 20 50 73 65 75 64 6f 20 63 6c    61 73 73 65 73 20 20 20 20 20 20 20 20 20 20 20  | |.;;.|.Pseudo.classes........... | 
| 1420 |  20 20 20 20 20 20 20 20 20 20 7c 20 4e 6f 20 20    20 20 20 20 20 20 20 7c 20 3a 66 6f 6f 20 20 20  | ..........|.No.........|.:foo... | 
| 1440 |  20 20 20 20 20 7c 0a 0a 3b 3b 3b 20 43 6f 64 65    3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d  | .....|..;;;.Code:..(require.'cl- | 
| 1460 |  6c 69 62 29 0a 0a 0c 0a 3b 3b 3b 20 43 53 53 20    73 65 6c 65 63 74 6f 72 20 70 61 72 73 69 6e 67  | lib)....;;;.CSS.selector.parsing | 
| 1480 |  0a 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 77 77 77    2e 77 33 2e 6f 72 67 2f 54 52 2f 73 65 6c 65 63  | ..;;.https://www.w3.org/TR/selec | 
| 14a0 |  74 6f 72 73 2f 23 77 33 63 73 65 6c 67 72 61 6d    6d 61 72 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 77  | tors/#w3cselgrammar.;;.https://w | 
| 14c0 |  77 77 2e 77 33 2e 6f 72 67 2f 54 52 2f 73 65 6c    65 63 74 6f 72 73 34 2f 23 67 72 61 6d 6d 61 72  | ww.w3.org/TR/selectors4/#grammar | 
| 14e0 |  0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e    77 33 2e 6f 72 67 2f 54 52 2f 32 30 30 33 2f 57  | .;;.https://www.w3.org/TR/2003/W | 
| 1500 |  44 2d 63 73 73 33 2d 73 79 6e 74 61 78 2d 32 30    30 33 30 38 31 33 2f 23 64 65 74 61 69 6c 65 64  | D-css3-syntax-20030813/#detailed | 
| 1520 |  2d 67 72 61 6d 6d 61 72 0a 3b 3b 20 68 74 74 70    73 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 54  | -grammar.;;.https://www.w3.org/T | 
| 1540 |  52 2f 32 30 30 33 2f 57 44 2d 63 73 73 33 2d 73    79 6e 74 61 78 2d 32 30 30 33 30 38 31 33 2f 23  | R/2003/WD-css3-syntax-20030813/# | 
| 1560 |  74 6f 6b 65 6e 69 7a 61 74 69 6f 6e 0a 0a 3b 3b    20 79 6f 75 20 6d 69 67 68 74 20 62 65 20 77 6f  | tokenization..;;.you.might.be.wo | 
| 1580 |  6e 64 65 72 69 6e 67 20 77 68 79 20 49 27 6d 20    75 73 69 6e 67 20 62 6f 74 68 20 6c 65 76 65 6c  | ndering.why.I'm.using.both.level | 
| 15a0 |  20 33 20 61 6e 64 20 34 20 73 74 61 6e 64 61 72    64 73 2c 0a 3b 3b 20 77 65 6c 6c 2c 20 74 68 65  | .3.and.4.standards,.;;.well,.the | 
| 15c0 |  20 6c 65 76 65 6c 20 33 20 6f 6e 65 20 68 61 73    20 61 20 62 75 67 67 79 20 6c 65 78 65 72 20 73  | .level.3.one.has.a.buggy.lexer.s | 
| 15e0 |  65 63 74 69 6f 6e 20 77 68 65 72 65 61 73 20 6c    65 76 65 6c 20 34 0a 3b 3b 20 6f 6d 69 74 73 20  | ection.whereas.level.4.;;.omits. | 
| 1600 |  63 72 75 63 69 61 6c 20 70 61 72 73 65 72 20 64    65 66 69 6e 69 74 69 6f 6e 73 2c 20 73 6f 20 62  | crucial.parser.definitions,.so.b | 
| 1620 |  6f 74 68 20 68 61 76 65 20 74 6f 20 62 65 20 75    73 65 64 2e 2e 2e 0a 0a 3b 3b 20 54 4f 44 4f 3a  | oth.have.to.be.used.....;;.TODO: | 
| 1640 |  20 72 65 6e 61 6d 65 20 74 6f 20 64 6f 6d 2d 71    75 65 72 79 2d 73 65 6c 65 63 74 6f 72 2f 2d 71  | .rename.to.dom-query-selector/-q | 
| 1660 |  75 65 72 79 2d 73 65 6c 65 63 74 6f 72 2d 61 6c    6c 0a 3b 3b 20 54 4f 44 4f 3a 20 70 72 65 66 69  | uery-selector-all.;;.TODO:.prefi | 
| 1680 |  78 20 65 76 65 72 79 74 68 69 6e 67 20 77 69 74    68 20 64 6f 6d 2d 0a 0a 3b 3b 20 54 4f 44 4f 3a  | x.everything.with.dom-..;;.TODO: | 
| 16a0 |  20 73 75 70 70 6f 72 74 20 3a 6e 6f 74 0a 28 64    65 66 76 61 72 20 65 73 78 6d 6c 2d 2d 63 73 73  | .support.:not.(defvar.esxml--css | 
| 16c0 |  2d 73 65 6c 65 63 74 6f 72 2d 74 6f 6b 65 6e 2d    6d 61 74 63 68 65 72 73 0a 20 20 28 6c 65 74 2a  | -selector-token-matchers...(let* | 
| 16e0 |  20 28 28 68 20 22 5b 30 2d 39 61 2d 66 5d 22 29    0a 20 20 20 20 20 20 20 20 20 28 6e 6c 20 22 5c  | .((h."[0-9a-f]")..........(nl."\ | 
| 1700 |  6e 5c 5c 7c 5c 72 5c 6e 5c 5c 7c 5c 72 5c 5c 7c    5c 66 22 29 0a 20 20 20 20 20 20 20 20 20 28 6e  | n\\|\r\n\\|\r\\|\f")..........(n | 
| 1720 |  6f 6e 61 73 63 69 69 20 22 5b 5c 32 30 30 2d 5c    55 30 30 31 30 66 66 66 66 5d 22 29 0a 20 20 20  | onascii."[\200-\U0010ffff]").... | 
| 1740 |  20 20 20 20 20 20 28 75 6e 69 63 6f 64 65 20 28    66 6f 72 6d 61 74 20 22 5c 5c 5c 5c 25 73 5c 5c  | ......(unicode.(format."\\\\%s\\ | 
| 1760 |  7b 31 2c 36 5c 5c 7d 5b 20 5c 74 5c 72 5c 6e 5c    66 5d 3f 22 20 68 29 29 0a 20 20 20 20 20 20 20  | {1,6\\}[.\t\r\n\f]?".h))........ | 
| 1780 |  20 20 28 65 73 63 61 70 65 20 28 66 6f 72 6d 61    74 20 22 5c 5c 28 3f 3a 25 73 5c 5c 29 5c 5c 7c  | ..(escape.(format."\\(?:%s\\)\\| | 
| 17a0 |  5c 5c 5c 5c 5b 20 2d 7e 5c 32 30 30 2d 5c 55 30    30 31 30 66 66 66 66 5d 22 20 75 6e 69 63 6f 64  | \\\\[.-~\200-\U0010ffff]".unicod | 
| 17c0 |  65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6d    73 74 61 72 74 20 28 66 6f 72 6d 61 74 20 22 5b  | e))..........(nmstart.(format."[ | 
| 17e0 |  61 2d 7a 5f 5d 5c 5c 7c 25 73 5c 5c 7c 5c 5c 28    3f 3a 25 73 5c 5c 29 22 20 6e 6f 6e 61 73 63 69  | a-z_]\\|%s\\|\\(?:%s\\)".nonasci | 
| 1800 |  69 20 65 73 63 61 70 65 29 29 0a 20 20 20 20 20    20 20 20 20 28 6e 6d 63 68 61 72 20 28 66 6f 72  | i.escape))..........(nmchar.(for | 
| 1820 |  6d 61 74 20 22 5b 61 2d 7a 30 2d 39 5f 2d 5d 5c    5c 7c 25 73 5c 5c 7c 5c 5c 28 3f 3a 25 73 5c 5c  | mat."[a-z0-9_-]\\|%s\\|\\(?:%s\\ | 
| 1840 |  29 22 20 6e 6f 6e 61 73 63 69 69 20 65 73 63 61    70 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e  | )".nonascii.escape))..........(n | 
| 1860 |  75 6d 20 22 5b 30 2d 39 5d 2b 5c 5c 7c 5b 30 2d    39 5d 2a 5c 5c 2e 5b 30 2d 39 5d 2b 22 29 0a 20  | um."[0-9]+\\|[0-9]*\\.[0-9]+").. | 
| 1880 |  20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 31    20 28 66 6f 72 6d 61 74 20 22 5c 22 5c 5c 28 3f  | ........(string1.(format."\"\\(? | 
| 18a0 |  3a 5b 5c 74 20 21 23 24 25 25 26 28 2d 7e 5d 5c    5c 7c 5c 5c 5c 5c 5c 5c 28 3f 3a 25 73 5c 5c 29  | :[\t.!#$%%&(-~]\\|\\\\\\(?:%s\\) | 
| 18c0 |  5c 5c 7c 27 5c 5c 7c 25 73 5c 5c 7c 5c 5c 28 3f    3a 25 73 5c 5c 29 5c 5c 29 2a 5c 22 22 20 6e 6c  | \\|'\\|%s\\|\\(?:%s\\)\\)*\"".nl | 
| 18e0 |  20 6e 6f 6e 61 73 63 69 69 20 65 73 63 61 70 65    29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72  | .nonascii.escape))..........(str | 
| 1900 |  69 6e 67 32 20 28 66 6f 72 6d 61 74 20 22 27 5c    5c 28 3f 3a 5b 5c 74 20 21 23 24 25 25 26 28 2d  | ing2.(format."'\\(?:[\t.!#$%%&(- | 
| 1920 |  7e 5d 5c 5c 7c 5c 5c 5c 5c 5c 5c 28 3f 3a 25 73    5c 5c 29 5c 5c 7c 5c 22 5c 5c 7c 25 73 5c 5c 7c  | ~]\\|\\\\\\(?:%s\\)\\|\"\\|%s\\| | 
| 1940 |  5c 5c 28 3f 3a 25 73 5c 5c 29 5c 5c 29 2a 27 22    20 6e 6c 20 6e 6f 6e 61 73 63 69 69 20 65 73 63  | \\(?:%s\\)\\)*'".nl.nonascii.esc | 
| 1960 |  61 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 28    69 64 65 6e 74 20 28 66 6f 72 6d 61 74 20 22 5b  | ape))..........(ident.(format."[ | 
| 1980 |  2d 5d 3f 5c 5c 28 3f 3a 25 73 5c 5c 29 5c 5c 28    3f 3a 25 73 5c 5c 29 2a 22 20 6e 6d 73 74 61 72  | -]?\\(?:%s\\)\\(?:%s\\)*".nmstar | 
| 19a0 |  74 20 6e 6d 63 68 61 72 29 29 0a 20 20 20 20 20    20 20 20 20 28 75 6e 69 74 20 28 66 6f 72 6d 61  | t.nmchar))..........(unit.(forma | 
| 19c0 |  74 20 22 5b 2d 5d 3f 5c 5c 28 3f 3a 25 73 5c 5c    29 5c 5c 28 3f 3a 25 73 5c 5c 29 2b 22 20 6e 6d  | t."[-]?\\(?:%s\\)\\(?:%s\\)+".nm | 
| 19e0 |  73 74 61 72 74 20 6e 6d 63 68 61 72 29 29 0a 20    20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 66  | start.nmchar))..........(name.(f | 
| 1a00 |  6f 72 6d 61 74 20 22 5c 5c 28 3f 3a 25 73 5c 5c    29 2b 22 20 6e 6d 63 68 61 72 29 29 29 0a 0a 20  | ormat."\\(?:%s\\)+".nmchar)))... | 
| 1a20 |  20 20 20 60 28 28 77 68 69 74 65 73 70 61 63 65    20 2e 20 22 5b 20 5c 74 5c 72 5c 6e 5c 66 5d 2b  | ...`((whitespace..."[.\t\r\n\f]+ | 
| 1a40 |  22 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67    20 2e 20 2c 28 66 6f 72 6d 61 74 20 22 5c 5c 28  | ").......(string...,(format."\\( | 
| 1a60 |  3f 3a 25 73 5c 5c 7c 25 73 5c 5c 29 22 20 73 74    72 69 6e 67 31 20 73 74 72 69 6e 67 32 29 29 0a  | ?:%s\\|%s\\)".string1.string2)). | 
| 1a80 |  20 20 20 20 20 20 28 69 64 65 6e 74 20 2e 20 2c    69 64 65 6e 74 29 0a 20 20 20 20 20 20 28 68 61  | ......(ident...,ident).......(ha | 
| 1aa0 |  73 68 20 2e 20 2c 28 66 6f 72 6d 61 74 20 22 23    25 73 22 20 6e 61 6d 65 29 29 0a 20 20 20 20 20  | sh...,(format."#%s".name))...... | 
| 1ac0 |  20 28 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 28 66    6f 72 6d 61 74 20 22 25 73 28 22 20 69 64 65 6e  | .(function...,(format."%s(".iden | 
| 1ae0 |  74 29 29 0a 20 20 20 20 20 20 28 6e 75 6d 62 65    72 20 2e 20 2c 6e 75 6d 29 0a 20 20 20 20 20 20  | t)).......(number...,num)....... | 
| 1b00 |  28 64 69 6d 65 6e 73 69 6f 6e 20 2e 20 2c 28 66    6f 72 6d 61 74 20 22 5c 5c 28 3f 3a 25 73 5c 5c  | (dimension...,(format."\\(?:%s\\ | 
| 1b20 |  29 25 73 22 20 6e 75 6d 20 75 6e 69 74 29 29 0a    20 20 20 20 20 20 28 70 72 65 66 69 78 2d 6d 61  | )%s".num.unit)).......(prefix-ma | 
| 1b40 |  74 63 68 20 2e 20 22 5c 5c 5e 3d 22 29 0a 20 20    20 20 20 20 28 73 75 66 66 69 78 2d 6d 61 74 63  | tch..."\\^=").......(suffix-matc | 
| 1b60 |  68 20 2e 20 22 5c 5c 24 3d 22 29 0a 20 20 20 20    20 20 28 73 75 62 73 74 72 69 6e 67 2d 6d 61 74  | h..."\\$=").......(substring-mat | 
| 1b80 |  63 68 20 2e 20 22 5c 5c 2a 3d 22 29 0a 20 20 20    20 20 20 28 69 6e 63 6c 75 64 65 2d 6d 61 74 63  | ch..."\\*=").......(include-matc | 
| 1ba0 |  68 20 2e 20 22 7e 3d 22 29 0a 20 20 20 20 20 20    28 64 61 73 68 2d 6d 61 74 63 68 20 2e 20 22 7c  | h..."~=").......(dash-match..."| | 
| 1bc0 |  3d 22 29 0a 20 20 20 20 20 20 28 63 6f 6d 6d 61    20 2e 20 22 2c 22 29 0a 20 20 20 20 20 20 28 67  | =").......(comma...",").......(g | 
| 1be0 |  74 20 2e 20 22 3e 22 29 0a 20 20 20 20 20 20 28    70 6c 75 73 20 2e 20 22 5c 5c 2b 22 29 0a 20 20  | t...">").......(plus..."\\+")... | 
| 1c00 |  20 20 20 20 28 6d 69 6e 75 73 20 2e 20 22 2d 22    29 0a 20 20 20 20 20 20 28 74 69 6c 64 65 20 2e  | ....(minus..."-").......(tilde.. | 
| 1c20 |  20 22 7e 22 29 0a 20 20 20 20 20 20 28 61 73 74    65 72 69 73 6b 20 2e 20 22 5c 5c 2a 22 29 0a 20  | ."~").......(asterisk..."\\*").. | 
| 1c40 |  20 20 20 20 20 28 70 65 72 69 6f 64 20 2e 20 22    5c 5c 2e 22 29 0a 20 20 20 20 20 20 28 65 71 75  | .....(period..."\\.").......(equ | 
| 1c60 |  61 6c 73 20 2e 20 22 3d 22 29 0a 20 20 20 20 20    20 28 63 6f 6c 6f 6e 20 2e 20 22 3a 22 29 0a 20  | als..."=").......(colon...":").. | 
| 1c80 |  20 20 20 20 20 28 6c 62 72 61 63 6b 65 74 20 2e    20 22 5c 5c 5b 22 29 0a 20 20 20 20 20 20 28 72  | .....(lbracket..."\\[").......(r | 
| 1ca0 |  62 72 61 63 6b 65 74 20 2e 20 22 5c 5c 5d 22 29    0a 20 20 20 20 20 20 28 72 70 61 72 65 6e 20 2e  | bracket..."\\]").......(rparen.. | 
| 1cc0 |  20 22 29 22 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 65 73 78 6d 6c 2d 2d 74 6f 6b 65 6e 69 7a 65  | .")"))))..(defun.esxml--tokenize | 
| 1ce0 |  2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 20 28 73    74 72 69 6e 67 29 0a 20 20 28 6c 65 74 20 28 72  | -css-selector.(string)...(let.(r | 
| 1d00 |  65 73 75 6c 74 29 0a 20 20 20 20 28 77 69 74 68    2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20  | esult).....(with-temp-buffer.... | 
| 1d20 |  20 20 20 28 69 6e 73 65 72 74 20 73 74 72 69 6e    67 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63  | ...(insert.string).......(goto-c | 
| 1d40 |  68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29    0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e  | har.(point-min)).......(while.(n | 
| 1d60 |  6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20    20 20 20 28 6c 65 74 20 28 28 6d 61 78 2d 6c 65  | ot.(eobp)).........(let.((max-le | 
| 1d80 |  6e 67 74 68 20 30 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6c 6f 6e 67 65 73 74 29 0a 20  | ngth.0)...............longest).. | 
| 1da0 |  20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74    20 28 6d 61 74 63 68 65 72 20 65 73 78 6d 6c 2d  | .........(dolist.(matcher.esxml- | 
| 1dc0 |  2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 2d 74 6f    6b 65 6e 2d 6d 61 74 63 68 65 72 73 29 0a 20 20  | -css-selector-token-matchers)... | 
| 1de0 |  20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28    28 69 64 20 28 63 61 72 20 6d 61 74 63 68 65 72  | ..........(let.((id.(car.matcher | 
| 1e00 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 72 65 20 28 63 64 72 20 6d 61  | ))...................(re.(cdr.ma | 
| 1e20 |  74 63 68 65 72 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f  | tcher)))...............(when.(lo | 
| 1e40 |  6f 6b 69 6e 67 2d 61 74 20 72 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65  | oking-at.re).................(le | 
| 1e60 |  74 2a 20 28 28 74 6f 6b 65 6e 20 28 6d 61 74 63    68 2d 73 74 72 69 6e 67 20 30 29 29 0a 20 20 20  | t*.((token.(match-string.0)).... | 
| 1e80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6c 65 6e 67 74 68 20 28 6c 65 6e  | ....................(length.(len | 
| 1ea0 |  67 74 68 20 74 6f 6b 65 6e 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | gth.token)))...................( | 
| 1ec0 |  77 68 65 6e 20 28 3e 20 6c 65 6e 67 74 68 20 6d    61 78 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20  | when.(>.length.max-length)...... | 
| 1ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 6d 61 78 2d 6c 65 6e 67 74 68 20  | ...............(setq.max-length. | 
| 1f00 |  6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | length).....................(set | 
| 1f20 |  71 20 6c 6f 6e 67 65 73 74 20 28 63 6f 6e 73 20    69 64 20 74 6f 6b 65 6e 29 29 29 29 29 29 29 0a  | q.longest.(cons.id.token))))))). | 
| 1f40 |  20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    28 6e 6f 74 20 6c 6f 6e 67 65 73 74 29 0a 20 20  | ..........(when.(not.longest)... | 
| 1f60 |  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 74 6f 6b 65 6e 20  | ..........(error."Invalid.token. | 
| 1f80 |  64 65 74 65 63 74 65 64 3a 20 25 73 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | detected:.%s"................... | 
| 1fa0 |  20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69    6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e  | .(buffer-substring.(point).(poin | 
| 1fc0 |  74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 70 75 73 68 20 6c 6f 6e 67 65 73  | t-max))))...........(push.longes | 
| 1fe0 |  74 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20    20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28  | t.result)...........(goto-char.( | 
| 2000 |  2b 20 28 70 6f 69 6e 74 29 20 6d 61 78 2d 6c 65    6e 67 74 68 29 29 29 29 29 0a 20 20 20 20 28 6e  | +.(point).max-length))))).....(n | 
| 2020 |  72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 29    29 0a 0a 3b 3b 20 74 68 65 20 61 6c 74 65 72 6e  | reverse.result)))..;;.the.altern | 
| 2040 |  61 74 69 76 65 20 69 73 20 63 72 65 61 74 69 6e    67 20 61 20 6d 75 74 61 62 6c 65 20 6f 62 6a 65  | ative.is.creating.a.mutable.obje | 
| 2060 |  63 74 20 77 69 74 68 20 70 65 65 6b 2f 6e 65 78    74 20 6d 65 74 68 6f 64 73 0a 3b 3b 20 61 6e 64  | ct.with.peek/next.methods.;;.and | 
| 2080 |  20 70 61 73 73 69 6e 67 20 69 74 20 61 72 6f 75    6e 64 2c 20 73 6f 20 49 20 63 68 6f 73 65 20 74  | .passing.it.around,.so.I.chose.t | 
| 20a0 |  68 65 20 6f 6e 65 20 72 65 71 75 69 72 69 6e 67    20 6c 65 73 73 20 74 79 70 69 6e 67 2c 20 61 0a  | he.one.requiring.less.typing,.a. | 
| 20c0 |  3b 3b 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 62    6f 75 6e 64 20 76 61 72 69 61 62 6c 65 20 3a 3c  | ;;.dynamically.bound.variable.:< | 
| 20e0 |  0a 0a 28 64 65 66 76 61 72 20 65 73 78 6d 6c 2d    2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 29 0a 0a  | ..(defvar.esxml--token-stream).. | 
| 2100 |  3b 3b 20 54 4f 44 4f 3a 20 73 75 70 70 6f 72 74    20 3a 6e 6f 74 0a 3b 3b 20 54 4f 44 4f 3a 20 70  | ;;.TODO:.support.:not.;;.TODO:.p | 
| 2120 |  61 72 73 65 20 61 72 69 74 68 6d 65 74 69 63 73    20 77 69 74 68 20 73 68 75 6e 74 69 6e 67 20 79  | arse.arithmetics.with.shunting.y | 
| 2140 |  61 72 64 20 6f 72 20 70 72 61 74 74 0a 3b 3b 20    4e 4f 54 45 3a 20 68 74 74 70 3a 2f 2f 6a 6f 75  | ard.or.pratt.;;.NOTE:.http://jou | 
| 2160 |  72 6e 61 6c 2e 73 74 75 66 66 77 69 74 68 73 74    75 66 66 2e 63 6f 6d 2f 32 30 31 31 2f 30 33 2f  | rnal.stuffwithstuff.com/2011/03/ | 
| 2180 |  31 39 2f 70 72 61 74 74 2d 70 61 72 73 65 72 73    2d 65 78 70 72 65 73 73 69 6f 6e 2d 70 61 72 73  | 19/pratt-parsers-expression-pars | 
| 21a0 |  69 6e 67 2d 6d 61 64 65 2d 65 61 73 79 2f 0a 3b    3b 20 63 73 73 2d 73 65 6c 65 63 74 6f 72 3a 0a  | ing-made-easy/.;;.css-selector:. | 
| 21c0 |  3b 3b 20 20 20 63 73 73 2d 73 65 6c 65 63 74 6f    72 2d 6c 69 73 74 3b 0a 3b 3b 20 63 73 73 2d 73  | ;;...css-selector-list;.;;.css-s | 
| 21e0 |  65 6c 65 63 74 6f 72 2d 6c 69 73 74 3a 0a 3b 3b    20 20 20 63 6f 6d 70 6c 65 78 2d 63 73 73 2d 73  | elector-list:.;;...complex-css-s | 
| 2200 |  65 6c 65 63 74 6f 72 20 5b 20 63 6f 6d 6d 61 20    77 68 69 74 65 73 70 61 63 65 2a 20 63 6f 6d 70  | elector.[.comma.whitespace*.comp | 
| 2220 |  6c 65 78 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72    20 5d 2a 3b 0a 3b 3b 20 63 6f 6d 70 6c 65 78 2d  | lex-css-selector.]*;.;;.complex- | 
| 2240 |  63 73 73 2d 73 65 6c 65 63 74 6f 72 3a 0a 3b 3b    20 20 20 63 6f 6d 70 6f 75 6e 64 2d 63 73 73 2d  | css-selector:.;;...compound-css- | 
| 2260 |  73 65 6c 65 63 74 6f 72 20 5b 20 63 73 73 2d 63    6f 6d 62 69 6e 61 74 6f 72 20 63 6f 6d 70 6f 75  | selector.[.css-combinator.compou | 
| 2280 |  6e 64 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 20    5d 2a 20 77 68 69 74 65 73 70 61 63 65 2a 3b 0a  | nd-css-selector.]*.whitespace*;. | 
| 22a0 |  3b 3b 20 63 73 73 2d 63 6f 6d 62 69 6e 61 74 6f    72 3a 0a 3b 3b 20 20 20 77 68 69 74 65 73 70 61  | ;;.css-combinator:.;;...whitespa | 
| 22c0 |  63 65 2b 20 7c 20 77 68 69 74 65 73 70 61 63 65    2a 20 5b 20 27 3e 27 20 7c 20 27 2b 27 20 7c 20  | ce+.|.whitespace*.[.'>'.|.'+'.|. | 
| 22e0 |  27 7e 27 20 5d 20 77 68 69 74 65 73 70 61 63 65    2a 3b 0a 3b 3b 20 63 6f 6d 70 6f 75 6e 64 2d 63  | '~'.].whitespace*;.;;.compound-c | 
| 2300 |  73 73 2d 73 65 6c 65 63 74 6f 72 3a 0a 3b 3b 20    20 20 63 73 73 2d 74 79 70 65 2d 73 65 6c 65 63  | ss-selector:.;;...css-type-selec | 
| 2320 |  74 6f 72 20 63 73 73 2d 6d 6f 64 69 66 69 65 72    2a 20 7c 20 63 73 73 2d 6d 6f 64 69 66 69 65 72  | tor.css-modifier*.|.css-modifier | 
| 2340 |  2b 3b 0a 3b 3b 20 63 73 73 2d 74 79 70 65 2d 73    65 6c 65 63 74 6f 72 3a 0a 3b 3b 20 20 20 49 44  | +;.;;.css-type-selector:.;;...ID | 
| 2360 |  45 4e 54 20 7c 20 2a 3b 0a 3b 3b 20 63 73 73 2d    6d 6f 64 69 66 69 65 72 3a 0a 3b 3b 20 20 20 20  | ENT.|.*;.;;.css-modifier:.;;.... | 
| 2380 |  63 73 73 2d 69 64 20 7c 20 63 73 73 2d 63 6c 61    73 73 20 7c 20 63 73 73 2d 61 74 74 72 69 62 20  | css-id.|.css-class.|.css-attrib. | 
| 23a0 |  7c 20 63 73 73 2d 70 73 65 75 64 6f 3b 0a 3b 3b    20 63 73 73 2d 69 64 3a 0a 3b 3b 20 20 20 48 41  | |.css-pseudo;.;;.css-id:.;;...HA | 
| 23c0 |  53 48 3b 0a 3b 3b 20 63 73 73 2d 63 6c 61 73 73    3a 0a 3b 3b 20 20 20 27 2e 27 20 49 44 45 4e 54  | SH;.;;.css-class:.;;...'.'.IDENT | 
| 23e0 |  3b 0a 3b 3b 20 63 73 73 2d 61 74 74 72 69 62 3a    0a 3b 3b 20 20 20 27 5b 27 20 77 68 69 74 65 73  | ;.;;.css-attrib:.;;...'['.whites | 
| 2400 |  70 61 63 65 2a 20 63 73 73 2d 61 74 74 72 69 62    2d 6e 61 6d 65 20 27 5d 27 0a 3b 3b 20 20 20 7c  | pace*.css-attrib-name.']'.;;...| | 
| 2420 |  20 27 5b 27 20 77 68 69 74 65 73 70 61 63 65 2a    20 63 73 73 2d 61 74 74 72 69 62 2d 6e 61 6d 65  | .'['.whitespace*.css-attrib-name | 
| 2440 |  20 63 73 73 2d 61 74 74 72 69 62 2d 6d 61 74 63    68 20 63 73 73 2d 61 74 74 72 69 62 2d 76 61 6c  | .css-attrib-match.css-attrib-val | 
| 2460 |  75 65 20 77 68 69 74 65 73 70 61 63 65 2a 20 27    5d 27 3b 0a 3b 3b 20 63 73 73 2d 61 74 74 72 69  | ue.whitespace*.']';.;;.css-attri | 
| 2480 |  62 2d 6e 61 6d 65 3a 0a 3b 3b 20 20 20 49 44 45    4e 54 20 77 68 69 74 65 73 70 61 63 65 2a 3b 0a  | b-name:.;;...IDENT.whitespace*;. | 
| 24a0 |  3b 3b 20 63 73 73 2d 61 74 74 72 69 62 2d 6d 61    74 63 68 3a 0a 3b 3b 20 20 20 5b 20 27 3d 27 20  | ;;.css-attrib-match:.;;...[.'='. | 
| 24c0 |  7c 20 50 52 45 46 49 58 2d 4d 41 54 43 48 20 7c    20 53 55 46 46 49 58 2d 4d 41 54 43 48 20 7c 20  | |.PREFIX-MATCH.|.SUFFIX-MATCH.|. | 
| 24e0 |  53 55 42 53 54 52 49 4e 47 2d 4d 41 54 43 48 20    7c 20 49 4e 43 4c 55 44 45 2d 4d 41 54 43 48 20  | SUBSTRING-MATCH.|.INCLUDE-MATCH. | 
| 2500 |  7c 20 44 41 53 48 2d 4d 41 54 43 48 20 5d 20 77    68 69 74 65 73 70 61 63 65 2a 3b 0a 3b 3b 20 63  | |.DASH-MATCH.].whitespace*;.;;.c | 
| 2520 |  73 73 2d 61 74 74 72 69 62 2d 76 61 6c 75 65 3a    0a 3b 3b 20 20 20 49 44 45 4e 54 20 7c 20 53 54  | ss-attrib-value:.;;...IDENT.|.ST | 
| 2540 |  52 49 4e 47 3b 0a 3b 3b 20 63 73 73 2d 70 73 65    75 64 6f 3a 0a 3b 3b 20 20 20 27 3a 27 20 27 3a  | RING;.;;.css-pseudo:.;;...':'.': | 
| 2560 |  27 3f 20 5b 20 49 44 45 4e 54 20 7c 20 63 73 73    2d 66 75 6e 63 74 69 6f 6e 61 6c 2d 70 73 65 75  | '?.[.IDENT.|.css-functional-pseu | 
| 2580 |  64 6f 20 5d 3b 0a 3b 3b 20 63 73 73 2d 66 75 6e    63 74 69 6f 6e 61 6c 2d 70 73 65 75 64 6f 3a 0a  | do.];.;;.css-functional-pseudo:. | 
| 25a0 |  3b 3b 20 20 20 46 55 4e 43 54 49 4f 4e 20 77 68    69 74 65 73 70 61 63 65 2a 20 5b 20 63 73 73 2d  | ;;...FUNCTION.whitespace*.[.css- | 
| 25c0 |  65 78 70 72 65 73 73 69 6f 6e 20 77 68 69 74 65    73 70 61 63 65 2a 20 5d 2b 20 27 29 27 3b 0a 3b  | expression.whitespace*.]+.')';.; | 
| 25e0 |  3b 20 63 73 73 2d 65 78 70 72 65 73 73 69 6f 6e    3a 0a 3b 3b 20 20 20 27 2b 27 20 7c 20 27 2d 27  | ;.css-expression:.;;...'+'.|.'-' | 
| 2600 |  20 7c 20 44 49 4d 45 4e 53 49 4f 4e 20 7c 20 4e    55 4d 42 45 52 20 7c 20 53 54 52 49 4e 47 20 7c  | .|.DIMENSION.|.NUMBER.|.STRING.| | 
| 2620 |  20 49 44 45 4e 54 0a 0a 28 64 65 66 75 6e 20 65    73 78 6d 6c 2d 71 75 65 72 79 2d 63 73 73 2d 65  | .IDENT..(defun.esxml-query-css-e | 
| 2640 |  73 63 61 70 65 20 28 73 74 72 69 6e 67 29 0a 20    20 22 52 65 74 75 72 6e 73 20 65 73 63 61 70 65  | scape.(string)..."Returns.escape | 
| 2660 |  64 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 54 52    49 4e 47 20 66 6f 72 20 75 73 65 20 69 6e 20 73  | d.version.of.STRING.for.use.in.s | 
| 2680 |  65 6c 65 63 74 6f 72 73 2e 0a 54 68 65 20 6c 6f    67 69 63 20 75 73 65 64 20 68 65 72 65 20 63 6f  | electors..The.logic.used.here.co | 
| 26a0 |  72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65    20 43 53 53 2e 65 73 63 61 70 65 20 41 50 49 20  | rresponds.to.the.CSS.escape.API. | 
| 26c0 |  61 73 0a 73 70 65 63 69 66 69 65 64 20 69 6e 20    68 74 74 70 73 3a 2f 2f 64 72 61 66 74 73 2e 63  | as.specified.in.https://drafts.c | 
| 26e0 |  73 73 77 67 2e 6f 72 67 2f 63 73 73 6f 6d 2f 23    74 68 65 2d 63 73 73 2e 65 73 63 61 70 65 28 29  | sswg.org/cssom/#the-css.escape() | 
| 2700 |  2d 6d 65 74 68 6f 64 2e 22 0a 20 20 28 6c 65 74    20 28 63 68 61 72 73 29 0a 20 20 20 20 28 64 6f  | -method."...(let.(chars).....(do | 
| 2720 |  74 69 6d 65 73 20 28 69 20 28 6c 65 6e 67 74 68    20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20  | times.(i.(length.string))....... | 
| 2740 |  28 6c 65 74 2a 20 28 28 63 68 61 72 20 28 61 72    65 66 20 73 74 72 69 6e 67 20 69 29 29 0a 20 20  | (let*.((char.(aref.string.i))... | 
| 2760 |  20 20 20 20 20 20 20 20 20 20 20 28 75 6e 70 72    69 6e 74 61 62 6c 65 70 20 28 6f 72 20 28 61 6e  | ...........(unprintablep.(or.(an | 
| 2780 |  64 20 28 3e 3d 20 63 68 61 72 20 3f 5c 75 30 30    30 31 29 20 28 3c 3d 20 63 68 61 72 20 3f 5c 75  | d.(>=.char.?\u0001).(<=.char.?\u | 
| 27a0 |  30 30 31 66 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 001f)).......................... | 
| 27c0 |  20 20 20 20 20 20 28 3d 20 63 68 61 72 20 3f 5c    75 30 30 37 66 29 29 29 0a 20 20 20 20 20 20 20  | ......(=.char.?\u007f)))........ | 
| 27e0 |  20 20 20 20 20 20 28 6e 6f 6e 61 73 63 69 69 70    20 28 3e 3d 20 63 68 61 72 20 3f 5c 75 30 30 38  | ......(nonasciip.(>=.char.?\u008 | 
| 2800 |  30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 64 69 67 69 74 70 20 28 61 6e 64 20 28 3e  | 0))..............(digitp.(and.(> | 
| 2820 |  3d 20 63 68 61 72 20 3f 5c 75 30 30 33 30 29 20    28 3c 3d 20 63 68 61 72 20 3f 5c 75 30 30 33 39  | =.char.?\u0030).(<=.char.?\u0039 | 
| 2840 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 75 70 70 65 72 70 20 28 61 6e 64 20 28 3e  | )))..............(upperp.(and.(> | 
| 2860 |  3d 20 63 68 61 72 20 3f 5c 75 30 30 34 31 29 20    28 3c 3d 20 63 68 61 72 20 3f 5c 75 30 30 35 61  | =.char.?\u0041).(<=.char.?\u005a | 
| 2880 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6c 6f 77 65 72 70 20 28 61 6e 64 20 28 3e  | )))..............(lowerp.(and.(> | 
| 28a0 |  3d 20 63 68 61 72 20 3f 5c 75 30 30 36 31 29 20    28 3c 3d 20 63 68 61 72 20 3f 5c 75 30 30 37 61  | =.char.?\u0061).(<=.char.?\u007a | 
| 28c0 |  29 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 3d 20  | )))).........(cond..........((=. | 
| 28e0 |  63 68 61 72 20 3f 5c 75 30 30 30 30 29 0a 20 20    20 20 20 20 20 20 20 20 28 70 75 73 68 20 3f 5c  | char.?\u0000)...........(push.?\ | 
| 2900 |  75 66 66 66 64 20 63 68 61 72 73 29 29 0a 20 20    20 20 20 20 20 20 20 28 75 6e 70 72 69 6e 74 61  | ufffd.chars))..........(unprinta | 
| 2920 |  62 6c 65 70 0a 20 20 20 20 20 20 20 20 20 20 28    64 6f 6c 69 73 74 20 28 63 68 61 72 20 28 73 74  | blep...........(dolist.(char.(st | 
| 2940 |  72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 28 66 6f    72 6d 61 74 20 22 5c 5c 25 78 20 22 20 63 68 61  | ring-to-list.(format."\\%x.".cha | 
| 2960 |  72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 70 75 73 68 20 63 68 61 72 20 63 68 61 72  | r))).............(push.char.char | 
| 2980 |  73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28    61 6e 64 20 28 3d 20 69 20 30 29 20 64 69 67 69  | s)))..........((and.(=.i.0).digi | 
| 29a0 |  74 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 64    6f 6c 69 73 74 20 28 63 68 61 72 20 28 73 74 72  | tp)...........(dolist.(char.(str | 
| 29c0 |  69 6e 67 2d 74 6f 2d 6c 69 73 74 20 28 66 6f 72    6d 61 74 20 22 5c 5c 25 78 20 22 20 63 68 61 72  | ing-to-list.(format."\\%x.".char | 
| 29e0 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 70 75 73 68 20 63 68 61 72 20 63 68 61 72 73  | ))).............(push.char.chars | 
| 2a00 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 61    6e 64 20 28 3d 20 69 20 31 29 20 64 69 67 69 74  | )))..........((and.(=.i.1).digit | 
| 2a20 |  70 20 28 3d 20 28 61 72 65 66 20 73 74 72 69 6e    67 20 30 29 20 3f 2d 29 29 0a 20 20 20 20 20 20  | p.(=.(aref.string.0).?-))....... | 
| 2a40 |  20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 68 61    72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73  | ....(dolist.(char.(string-to-lis | 
| 2a60 |  74 20 28 66 6f 72 6d 61 74 20 22 5c 5c 25 78 20    22 20 63 68 61 72 29 29 29 0a 20 20 20 20 20 20  | t.(format."\\%x.".char)))....... | 
| 2a80 |  20 20 20 20 20 20 28 70 75 73 68 20 63 68 61 72    20 63 68 61 72 73 29 29 29 0a 20 20 20 20 20 20  | ......(push.char.chars)))....... | 
| 2aa0 |  20 20 20 28 28 61 6e 64 20 28 3d 20 69 20 30 29    20 28 3d 20 63 68 61 72 20 3f 2d 29 20 28 3d 20  | ...((and.(=.i.0).(=.char.?-).(=. | 
| 2ac0 |  28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29 20    31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70  | (length.string).1))...........(p | 
| 2ae0 |  75 73 68 20 3f 5c 5c 20 63 68 61 72 73 29 0a 20    20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63  | ush.?\\.chars)...........(push.c | 
| 2b00 |  68 61 72 20 63 68 61 72 73 29 29 0a 20 20 20 20    20 20 20 20 20 28 28 6f 72 20 6e 6f 6e 61 73 63  | har.chars))..........((or.nonasc | 
| 2b20 |  69 69 70 20 28 3d 20 63 68 61 72 20 3f 2d 29 20    28 3d 20 63 68 61 72 20 3f 5f 29 20 64 69 67 69  | iip.(=.char.?-).(=.char.?_).digi | 
| 2b40 |  74 70 20 75 70 70 65 72 70 20 6c 6f 77 65 72 70    29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73  | tp.upperp.lowerp)...........(pus | 
| 2b60 |  68 20 63 68 61 72 20 63 68 61 72 73 29 29 0a 20    20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20  | h.char.chars))..........(t...... | 
| 2b80 |  20 20 20 20 20 28 70 75 73 68 20 3f 5c 5c 20 63    68 61 72 73 29 0a 20 20 20 20 20 20 20 20 20 20  | .....(push.?\\.chars)........... | 
| 2ba0 |  28 70 75 73 68 20 63 68 61 72 20 63 68 61 72 73    29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61  | (push.char.chars))))).....(conca | 
| 2bc0 |  74 20 28 6e 72 65 76 65 72 73 65 20 63 68 61 72    73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73  | t.(nreverse.chars))))..(defun.es | 
| 2be0 |  78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 69    64 65 6e 74 69 66 69 65 72 20 28 73 74 72 69 6e  | xml--parse-css-identifier.(strin | 
| 2c00 |  67 29 0a 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f    77 77 77 2e 77 33 2e 6f 72 67 2f 54 52 2f 63 73  | g)...;;.https://www.w3.org/TR/cs | 
| 2c20 |  73 2d 73 79 6e 74 61 78 2d 33 2f 23 63 6f 6e 73    75 6d 65 2d 73 74 72 69 6e 67 2d 74 6f 6b 65 6e  | s-syntax-3/#consume-string-token | 
| 2c40 |  0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 64 65 2d    70 6f 69 6e 74 73 20 28 73 74 72 69 6e 67 2d 74  | ...(let*.((code-points.(string-t | 
| 2c60 |  6f 2d 6c 69 73 74 20 73 74 72 69 6e 67 29 29 0a    20 20 20 20 20 20 20 20 20 63 68 61 72 73 29 0a  | o-list.string))..........chars). | 
| 2c80 |  20 20 20 20 28 77 68 69 6c 65 20 63 6f 64 65 2d    70 6f 69 6e 74 73 0a 20 20 20 20 20 20 28 6c 65  | ....(while.code-points.......(le | 
| 2ca0 |  74 20 28 28 63 68 61 72 20 28 70 6f 70 20 63 6f    64 65 2d 70 6f 69 6e 74 73 29 29 29 0a 20 20 20  | t.((char.(pop.code-points))).... | 
| 2cc0 |  20 20 20 20 20 28 69 66 20 28 3d 20 63 68 61 72    20 3f 5c 5c 29 0a 20 20 20 20 20 20 20 20 20 20  | .....(if.(=.char.?\\)........... | 
| 2ce0 |  20 20 28 6c 65 74 20 28 28 63 68 61 72 20 28 70    6f 70 20 63 6f 64 65 2d 70 6f 69 6e 74 73 29 29  | ..(let.((char.(pop.code-points)) | 
| 2d00 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20  | )...............(cond........... | 
| 2d20 |  20 20 20 20 20 28 28 6e 6f 74 20 63 68 61 72 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....((not.char))............... | 
| 2d40 |  20 28 28 3d 20 63 68 61 72 20 3f 5c 6e 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .((=.char.?\n))................( | 
| 2d60 |  28 6f 72 20 28 61 6e 64 20 28 3e 3d 20 63 68 61    72 20 3f 30 29 20 28 3c 3d 20 63 68 61 72 20 3f  | (or.(and.(>=.char.?0).(<=.char.? | 
| 2d80 |  39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d  | 9)).....................(and.(>= | 
| 2da0 |  20 63 68 61 72 20 3f 61 29 20 28 3c 3d 20 63 68    61 72 20 3f 66 29 29 0a 20 20 20 20 20 20 20 20  | .char.?a).(<=.char.?f))......... | 
| 2dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64    20 28 3e 3d 20 63 68 61 72 20 3f 41 29 20 28 3c  | ............(and.(>=.char.?A).(< | 
| 2de0 |  3d 20 63 68 61 72 20 3f 46 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65  | =.char.?F))).................(le | 
| 2e00 |  74 20 28 28 69 20 30 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | t.((i.0).......................( | 
| 2e20 |  68 65 78 2d 63 68 61 72 73 20 28 6c 69 73 74 20    63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20  | hex-chars.(list.char)))......... | 
| 2e40 |  20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65    20 28 61 6e 64 20 28 3c 20 69 20 35 29 20 63 6f  | ..........(while.(and.(<.i.5).co | 
| 2e60 |  64 65 2d 70 6f 69 6e 74 73 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | de-points).....................( | 
| 2e80 |  6c 65 74 20 28 28 63 68 61 72 20 28 63 61 72 20    63 6f 64 65 2d 70 6f 69 6e 74 73 29 29 29 0a 20  | let.((char.(car.code-points))).. | 
| 2ea0 |  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 6f 72 20 28 61 6e  | .....................(if.(or.(an | 
| 2ec0 |  64 20 28 3e 3d 20 63 68 61 72 20 3f 30 29 20 28    3c 3d 20 63 68 61 72 20 3f 39 29 29 0a 20 20 20  | d.(>=.char.?0).(<=.char.?9)).... | 
| 2ee0 |  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 61 6e 64 20  | ...........................(and. | 
| 2f00 |  28 3e 3d 20 63 68 61 72 20 3f 61 29 20 28 3c 3d    20 63 68 61 72 20 3f 66 29 29 0a 20 20 20 20 20  | (>=.char.?a).(<=.char.?f))...... | 
| 2f20 |  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 61 6e 64 20 28 3e  | .........................(and.(> | 
| 2f40 |  3d 20 63 68 61 72 20 3f 41 29 20 28 3c 3d 20 63    68 61 72 20 3f 46 29 29 29 0a 20 20 20 20 20 20  | =.char.?A).(<=.char.?F)))....... | 
| 2f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 70 75 73 68 20 28 70 6f 70 20 63  | ....................(push.(pop.c | 
| 2f80 |  6f 64 65 2d 70 6f 69 6e 74 73 29 20 68 65 78 2d    63 68 61 72 73 29 0a 20 20 20 20 20 20 20 20 20  | ode-points).hex-chars).......... | 
| 2fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 69 20 35 29 29 29 0a 20 20 20 20  | ...............(setq.i.5)))..... | 
| 2fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 69 20 28 31 2b 20 69 29 29 29  | ................(setq.i.(1+.i))) | 
| 2fe0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6c 65 74 20 28 28 63 68 61 72 20 28  | ...................(let.((char.( | 
| 3000 |  63 61 72 20 63 6f 64 65 2d 70 6f 69 6e 74 73 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | car.code-points))).............. | 
| 3020 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e    64 20 63 68 61 72 20 28 3d 20 63 68 61 72 20 3f  | .......(when.(and.char.(=.char.? | 
| 3040 |  5c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20  | \s)).......................(pop. | 
| 3060 |  63 6f 64 65 2d 70 6f 69 6e 74 73 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | code-points))).................. | 
| 3080 |  20 28 6c 65 74 2a 20 28 28 68 65 78 2d 74 6f 6b    65 6e 20 28 63 6f 6e 63 61 74 20 28 6e 72 65 76  | .(let*.((hex-token.(concat.(nrev | 
| 30a0 |  65 72 73 65 20 68 65 78 2d 63 68 61 72 73 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | erse.hex-chars)))............... | 
| 30c0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 64 65    2d 70 6f 69 6e 74 20 28 73 74 72 69 6e 67 2d 74  | ...........(code-point.(string-t | 
| 30e0 |  6f 2d 6e 75 6d 62 65 72 20 68 65 78 2d 74 6f 6b    65 6e 20 31 36 29 29 29 0a 20 20 20 20 20 20 20  | o-number.hex-token.16)))........ | 
| 3100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66    20 28 6f 72 20 28 7a 65 72 6f 70 20 63 6f 64 65  | .............(if.(or.(zerop.code | 
| 3120 |  2d 70 6f 69 6e 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  | -point)......................... | 
| 3140 |  20 20 20 20 28 61 6e 64 20 28 3e 3d 20 63 6f 64    65 2d 70 6f 69 6e 74 20 3f 5c 75 64 38 30 30 29  | ....(and.(>=.code-point.?\ud800) | 
| 3160 |  20 28 3c 3d 20 63 6f 64 65 2d 70 6f 69 6e 74 20    3f 5c 75 64 66 66 66 29 29 0a 20 20 20 20 20 20  | .(<=.code-point.?\udfff))....... | 
| 3180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3e 20 63 6f 64 65 2d 70 6f  | ......................(>.code-po | 
| 31a0 |  69 6e 74 20 3f 5c 55 30 30 31 30 66 66 66 66 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | int.?\U0010ffff))............... | 
| 31c0 |  20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20    3f 5c 75 66 66 66 64 20 63 68 61 72 73 29 0a 20  | ..........(push.?\ufffd.chars).. | 
| 31e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 75 73 68 20 63 6f 64 65 2d  | .....................(push.code- | 
| 3200 |  70 6f 69 6e 74 20 63 68 61 72 73 29 29 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | point.chars)))))................ | 
| 3220 |  28 74 20 3b 20 75 6e 73 70 65 63 69 66 69 65 64    3a 20 6e 6f 6e 2d 68 65 78 20 64 69 67 69 74 0a  | (t.;.unspecified:.non-hex.digit. | 
| 3240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 70 75 73 68 20 63 68 61 72 20 63 68 61 72 73  | ................(push.char.chars | 
| 3260 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28    70 75 73 68 20 63 68 61 72 20 63 68 61 72 73 29  | ))))...........(push.char.chars) | 
| 3280 |  29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20    28 6e 72 65 76 65 72 73 65 20 63 68 61 72 73 29  | ))).....(concat.(nreverse.chars) | 
| 32a0 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d    6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 73 74 72  | )))..(defun.esxml--parse-css-str | 
| 32c0 |  69 6e 67 2d 6c 69 74 65 72 61 6c 20 28 73 74 72    69 6e 67 29 0a 20 20 28 65 73 78 6d 6c 2d 2d 70  | ing-literal.(string)...(esxml--p | 
| 32e0 |  61 72 73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66    69 65 72 20 28 73 75 62 73 74 72 69 6e 67 20 73  | arse-css-identifier.(substring.s | 
| 3300 |  74 72 69 6e 67 20 31 20 2d 31 29 29 29 0a 0a 28    64 65 66 6d 61 63 72 6f 20 65 73 78 6d 6c 2d 2d  | tring.1.-1)))..(defmacro.esxml-- | 
| 3320 |  77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74    68 61 6e 64 73 20 28 26 72 65 73 74 20 62 6f 64  | with-parse-shorthands.(&rest.bod | 
| 3340 |  79 29 0a 20 20 60 28 63 6c 2d 6d 61 63 72 6f 6c    65 74 20 28 28 70 65 65 6b 20 28 29 20 27 28 63  | y)...`(cl-macrolet.((peek.().'(c | 
| 3360 |  61 72 20 65 73 78 6d 6c 2d 2d 74 6f 6b 65 6e 2d    73 74 72 65 61 6d 29 29 0a 20 20 20 20 20 20 20  | ar.esxml--token-stream))........ | 
| 3380 |  20 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 20    28 29 20 27 28 70 6f 70 20 65 73 78 6d 6c 2d 2d  | ..........(next.().'(pop.esxml-- | 
| 33a0 |  74 6f 6b 65 6e 2d 73 74 72 65 61 6d 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | token-stream)).................. | 
| 33c0 |  28 61 63 63 65 70 74 20 28 74 79 70 65 29 20 60    28 61 6e 64 20 28 70 65 65 6b 29 20 28 65 71 20  | (accept.(type).`(and.(peek).(eq. | 
| 33e0 |  28 63 61 72 20 28 70 65 65 6b 29 29 20 2c 74 79    70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (car.(peek)).,type)............. | 
| 3400 |  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 63 64 72 20 28  | ..........................(cdr.( | 
| 3420 |  6e 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 65 61 74 2d 77  | next))))..................(eat-w | 
| 3440 |  68 69 74 65 73 70 61 63 65 20 28 29 20 27 28 77    68 69 6c 65 20 28 61 63 63 65 70 74 20 27 77 68  | hitespace.().'(while.(accept.'wh | 
| 3460 |  69 74 65 73 70 61 63 65 29 29 29 29 0a 20 20 20    20 20 2c 40 62 6f 64 79 29 29 0a 28 64 65 66 2d  | itespace))))......,@body)).(def- | 
| 3480 |  65 64 65 62 75 67 2d 73 70 65 63 20 65 73 78 6d    6c 2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68  | edebug-spec.esxml--with-parse-sh | 
| 34a0 |  6f 72 74 68 61 6e 64 73 20 28 62 6f 64 79 29 29    0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 70  | orthands.(body))..(defun.esxml-p | 
| 34c0 |  61 72 73 65 2d 63 73 73 2d 73 65 6c 65 63 74 6f    72 20 28 73 74 72 69 6e 67 29 0a 20 20 22 50 61  | arse-css-selector.(string)..."Pa | 
| 34e0 |  72 73 65 20 43 53 53 20 73 65 6c 65 63 74 6f 72    20 53 54 52 49 4e 47 20 69 6e 74 6f 20 61 20 6c  | rse.CSS.selector.STRING.into.a.l | 
| 3500 |  69 73 74 20 6f 66 20 61 6c 69 73 74 73 2e 0a 45    61 63 68 20 61 6c 69 73 74 20 72 65 70 72 65 73  | ist.of.alists..Each.alist.repres | 
| 3520 |  65 6e 74 73 20 61 20 63 6f 6d 70 6c 65 78 20 43    53 53 20 73 65 6c 65 63 74 6f 72 2e 20 20 54 68  | ents.a.complex.CSS.selector...Th | 
| 3540 |  65 20 72 65 73 75 6c 74 20 63 61 6e 20 62 65 0a    70 61 73 73 65 64 20 74 6f 20 60 65 73 78 6d 6c  | e.result.can.be.passed.to.`esxml | 
| 3560 |  2d 71 75 65 72 79 27 20 61 6e 64 20 60 65 73 78    6d 6c 2d 71 75 65 72 79 2d 61 6c 6c 27 20 61 73  | -query'.and.`esxml-query-all'.as | 
| 3580 |  20 74 68 65 20 73 65 6c 65 63 74 6f 72 0a 61 72    67 75 6d 65 6e 74 2e 22 0a 20 20 28 6c 65 74 2a  | .the.selector.argument."...(let* | 
| 35a0 |  20 28 28 65 73 78 6d 6c 2d 2d 74 6f 6b 65 6e 2d    73 74 72 65 61 6d 20 28 65 73 78 6d 6c 2d 2d 74  | .((esxml--token-stream.(esxml--t | 
| 35c0 |  6f 6b 65 6e 69 7a 65 2d 63 73 73 2d 73 65 6c 65    63 74 6f 72 20 73 74 72 69 6e 67 29 29 0a 20 20  | okenize-css-selector.string))... | 
| 35e0 |  20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 28    65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73  | .......(result.(esxml--parse-css | 
| 3600 |  2d 73 65 6c 65 63 74 6f 72 2d 6c 69 73 74 29 29    29 0a 20 20 20 20 28 77 68 65 6e 20 65 73 78 6d  | -selector-list))).....(when.esxm | 
| 3620 |  6c 2d 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 0a    20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 72  | l--token-stream.......(error."Tr | 
| 3640 |  61 69 6c 69 6e 67 20 67 61 72 62 61 67 65 3a 20    25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ailing.garbage:.%s"............. | 
| 3660 |  20 28 6d 61 70 63 6f 6e 63 61 74 20 27 63 64 72    20 65 73 78 6d 6c 2d 2d 74 6f 6b 65 6e 2d 73 74  | .(mapconcat.'cdr.esxml--token-st | 
| 3680 |  72 65 61 6d 20 22 22 29 29 29 0a 20 20 20 20 72    65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20  | ream.""))).....result))..(defun. | 
| 36a0 |  65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73    2d 73 65 6c 65 63 74 6f 72 2d 6c 69 73 74 20 28  | esxml--parse-css-selector-list.( | 
| 36c0 |  29 0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69 74 68    2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64  | )...(esxml--with-parse-shorthand | 
| 36e0 |  73 0a 20 20 20 28 6c 65 74 20 28 28 66 69 72 73    74 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d  | s....(let.((first.(esxml--parse- | 
| 3700 |  63 6f 6d 70 6c 65 78 2d 63 73 73 2d 73 65 6c 65    63 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20  | complex-css-selector)).......... | 
| 3720 |  72 65 73 75 6c 74 29 0a 20 20 20 20 20 28 77 68    65 6e 20 28 6e 6f 74 20 66 69 72 73 74 29 0a 20  | result)......(when.(not.first).. | 
| 3740 |  20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 78    70 65 63 74 65 64 20 61 74 20 6c 65 61 73 74 20  | ......(error."Expected.at.least. | 
| 3760 |  6f 6e 65 20 73 65 6c 65 63 74 6f 72 22 29 29 0a    20 20 20 20 20 28 70 75 73 68 20 66 69 72 73 74  | one.selector"))......(push.first | 
| 3780 |  20 72 65 73 75 6c 74 29 0a 0a 20 20 20 20 20 28    77 68 69 6c 65 20 28 61 63 63 65 70 74 20 27 63  | .result).......(while.(accept.'c | 
| 37a0 |  6f 6d 6d 61 29 0a 20 20 20 20 20 20 20 28 65 61    74 2d 77 68 69 74 65 73 70 61 63 65 29 0a 20 20  | omma)........(eat-whitespace)... | 
| 37c0 |  20 20 20 20 20 28 6c 65 74 20 28 28 73 65 6c 65    63 74 6f 72 20 28 65 73 78 6d 6c 2d 2d 70 61 72  | .....(let.((selector.(esxml--par | 
| 37e0 |  73 65 2d 63 6f 6d 70 6c 65 78 2d 63 73 73 2d 73    65 6c 65 63 74 6f 72 29 29 29 0a 20 20 20 20 20  | se-complex-css-selector)))...... | 
| 3800 |  20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 73    65 6c 65 63 74 6f 72 29 0a 20 20 20 20 20 20 20  | ....(when.(not.selector)........ | 
| 3820 |  20 20 20 20 28 65 72 72 6f 72 20 22 45 78 70 65    63 74 65 64 20 73 65 6c 65 63 74 6f 72 20 61 66  | ....(error."Expected.selector.af | 
| 3840 |  74 65 72 20 63 6f 6d 6d 61 22 29 29 0a 20 20 20    20 20 20 20 20 20 28 70 75 73 68 20 73 65 6c 65  | ter.comma"))..........(push.sele | 
| 3860 |  63 74 6f 72 20 72 65 73 75 6c 74 29 29 29 0a 20    20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65  | ctor.result)))......(nreverse.re | 
| 3880 |  73 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 6f  | sult))))..(defun.esxml--parse-co | 
| 38a0 |  6d 70 6c 65 78 2d 63 73 73 2d 73 65 6c 65 63 74    6f 72 20 28 29 0a 20 20 28 65 73 78 6d 6c 2d 2d  | mplex-css-selector.()...(esxml-- | 
| 38c0 |  77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74    68 61 6e 64 73 0a 20 20 20 28 6c 65 74 20 28 28  | with-parse-shorthands....(let.(( | 
| 38e0 |  66 69 72 73 74 20 28 65 73 78 6d 6c 2d 2d 70 61    72 73 65 2d 63 6f 6d 70 6f 75 6e 64 2d 63 73 73  | first.(esxml--parse-compound-css | 
| 3900 |  2d 73 65 6c 65 63 74 6f 72 29 29 0a 20 20 20 20    20 20 20 20 20 72 65 73 75 6c 74 20 64 6f 6e 65  | -selector))..........result.done | 
| 3920 |  29 0a 20 20 20 20 20 28 77 68 65 6e 20 66 69 72    73 74 0a 20 20 20 20 20 20 20 28 70 75 73 68 20  | )......(when.first........(push. | 
| 3940 |  66 69 72 73 74 20 72 65 73 75 6c 74 29 0a 0a 20    20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f  | first.result).........(while.(no | 
| 3960 |  74 20 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 63 6f 6d 62 69 6e 61 74  | t.done)..........(let.((combinat | 
| 3980 |  6f 72 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65    2d 63 73 73 2d 63 6f 6d 62 69 6e 61 74 6f 72 29  | or.(esxml--parse-css-combinator) | 
| 39a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69    66 20 63 6f 6d 62 69 6e 61 74 6f 72 0a 20 20 20  | ))............(if.combinator.... | 
| 39c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74    20 28 28 63 6f 6d 70 6f 75 6e 64 20 28 65 73 78  | ............(let.((compound.(esx | 
| 39e0 |  6d 6c 2d 2d 70 61 72 73 65 2d 63 6f 6d 70 6f 75    6e 64 2d 63 73 73 2d 73 65 6c 65 63 74 6f 72 29  | ml--parse-compound-css-selector) | 
| 3a00 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20  | ))..................(cond....... | 
| 3a20 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d    70 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20  | ............(compound........... | 
| 3a40 |  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 28 6c  | .........(setq.result.(append.(l | 
| 3a60 |  69 73 74 20 63 6f 6d 70 6f 75 6e 64 20 63 6f 6d    62 69 6e 61 74 6f 72 29 20 72 65 73 75 6c 74 29  | ist.compound.combinator).result) | 
| 3a80 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 61 6c 6c 6f 77 20 77 68  | ))...................;;.allow.wh | 
| 3aa0 |  69 74 65 73 70 61 63 65 20 62 65 66 6f 72 65 20    63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 20 20  | itespace.before.comma........... | 
| 3ac0 |  20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 65    71 20 28 63 61 72 20 28 70 65 65 6b 29 29 20 27  | ........((not.(eq.(car.(peek)).' | 
| 3ae0 |  63 6f 6d 6d 61 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f  | comma))....................(erro | 
| 3b00 |  72 20 22 54 72 61 69 6c 69 6e 67 20 63 6f 6d 62    69 6e 61 74 6f 72 22 29 29 29 29 0a 20 20 20 20  | r."Trailing.combinator"))))..... | 
| 3b20 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64    6f 6e 65 20 74 29 29 29 29 0a 20 20 20 20 20 20  | .........(setq.done.t))))....... | 
| 3b40 |  20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c    74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65  | .(nreverse.result)))))..(defun.e | 
| 3b60 |  73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d    63 6f 6d 62 69 6e 61 74 6f 72 20 28 29 0a 20 20  | sxml--parse-css-combinator.()... | 
| 3b80 |  28 65 73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72    73 65 2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20  | (esxml--with-parse-shorthands... | 
| 3ba0 |  20 3b 3b 20 4e 4f 54 45 3a 20 77 68 69 74 65 73    70 61 63 65 2d 73 75 72 72 6f 75 6e 64 65 64 20  | .;;.NOTE:.whitespace-surrounded. | 
| 3bc0 |  63 6f 6d 62 69 6e 61 74 6f 72 73 20 61 72 65 20    64 69 73 74 69 6e 67 75 69 73 68 65 64 20 66 72  | combinators.are.distinguished.fr | 
| 3be0 |  6f 6d 0a 20 20 20 3b 3b 20 77 68 69 74 65 73 70    61 63 65 2d 6f 6e 6c 79 20 6f 6e 65 73 20 62 79  | om....;;.whitespace-only.ones.by | 
| 3c00 |  20 63 68 65 63 6b 69 6e 67 20 77 68 65 74 68 65    72 20 74 68 65 72 65 20 68 61 73 20 62 65 65 6e  | .checking.whether.there.has.been | 
| 3c20 |  0a 20 20 20 3b 3b 20 77 68 69 74 65 73 70 61 63    65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20  | ....;;.whitespace.followed.by.a. | 
| 3c40 |  6e 6f 6e 2d 62 6c 61 6e 6b 20 63 6f 6d 62 69 6e    61 74 6f 72 0a 20 20 20 28 6c 65 74 20 28 28 6c  | non-blank.combinator....(let.((l | 
| 3c60 |  65 61 64 69 6e 67 2d 77 68 69 74 65 73 70 61 63    65 2d 70 20 28 65 71 20 28 63 61 72 20 28 70 65  | eading-whitespace-p.(eq.(car.(pe | 
| 3c80 |  65 6b 29 29 20 27 77 68 69 74 65 73 70 61 63 65    29 29 0a 20 20 20 20 20 20 20 20 20 72 65 73 75  | ek)).'whitespace))..........resu | 
| 3ca0 |  6c 74 29 0a 20 20 20 20 20 28 65 61 74 2d 77 68    69 74 65 73 70 61 63 65 29 0a 20 20 20 20 20 28  | lt)......(eat-whitespace)......( | 
| 3cc0 |  6c 65 74 20 28 28 74 79 70 65 20 28 63 61 72 20    28 70 65 65 6b 29 29 29 29 0a 20 20 20 20 20 20  | let.((type.(car.(peek))))....... | 
| 3ce0 |  20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28    28 6d 65 6d 62 65 72 20 74 79 70 65 20 27 28 67  | .(cond.........((member.type.'(g | 
| 3d00 |  74 20 70 6c 75 73 20 74 69 6c 64 65 29 29 0a 20    20 20 20 20 20 20 20 20 28 6e 65 78 74 29 0a 20  | t.plus.tilde))..........(next).. | 
| 3d20 |  20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20    20 20 20 20 20 20 20 20 28 28 65 71 20 74 79 70  | ........(cond...........((eq.typ | 
| 3d40 |  65 20 27 67 74 29 0a 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 27  | e.'gt)............(setq.result.' | 
| 3d60 |  28 28 63 6f 6d 62 69 6e 61 74 6f 72 20 2e 20 63    68 69 6c 64 29 29 29 29 0a 20 20 20 20 20 20 20  | ((combinator...child))))........ | 
| 3d80 |  20 20 20 28 28 65 71 20 74 79 70 65 20 27 70 6c    75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28  | ...((eq.type.'plus)............( | 
| 3da0 |  73 65 74 71 20 72 65 73 75 6c 74 20 27 28 28 63    6f 6d 62 69 6e 61 74 6f 72 20 2e 20 64 69 72 65  | setq.result.'((combinator...dire | 
| 3dc0 |  63 74 2d 73 69 62 6c 69 6e 67 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79  | ct-sibling))))...........((eq.ty | 
| 3de0 |  70 65 20 27 74 69 6c 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75  | pe.'tilde)............(setq.resu | 
| 3e00 |  6c 74 20 27 28 28 63 6f 6d 62 69 6e 61 74 6f 72    20 2e 20 69 6e 64 69 72 65 63 74 2d 73 69 62 6c  | lt.'((combinator...indirect-sibl | 
| 3e20 |  69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 28 65 61 74 2d 77 68 69 74 65 73 70 61 63  | ing)))))..........(eat-whitespac | 
| 3e40 |  65 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 61    64 69 6e 67 2d 77 68 69 74 65 73 70 61 63 65 2d  | e)).........(leading-whitespace- | 
| 3e60 |  70 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 72 65 73 75 6c 74 20 27 28 28 63 6f 6d 62 69  | p..........(setq.result.'((combi | 
| 3e80 |  6e 61 74 6f 72 20 2e 20 64 65 73 63 65 6e 64 61    6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28  | nator...descendant)))).........( | 
| 3ea0 |  74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 72 65    73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20  | t.nil)))......result)))..(defun. | 
| 3ec0 |  65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 6f 6d    70 6f 75 6e 64 2d 63 73 73 2d 73 65 6c 65 63 74  | esxml--parse-compound-css-select | 
| 3ee0 |  6f 72 20 28 29 0a 20 20 28 65 73 78 6d 6c 2d 2d    77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f 72 74  | or.()...(esxml--with-parse-short | 
| 3f00 |  68 61 6e 64 73 0a 20 20 20 28 6c 65 74 20 28 28    74 79 70 65 2d 73 65 6c 65 63 74 6f 72 20 28 65  | hands....(let.((type-selector.(e | 
| 3f20 |  73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d    74 79 70 65 2d 73 65 6c 65 63 74 6f 72 29 29 0a  | sxml--parse-css-type-selector)). | 
| 3f40 |  20 20 20 20 20 20 20 20 20 64 6f 6e 65 0a 20 20    20 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a 20  | .........done..........result).. | 
| 3f60 |  20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 63 73 73    2d 74 79 70 65 2d 73 65 6c 65 63 74 6f 72 20 63  | ....;;.NOTE:.css-type-selector.c | 
| 3f80 |  73 73 2d 6d 6f 64 69 66 69 65 72 2a 20 7c 20 63    73 73 2d 6d 6f 64 69 66 69 65 72 2b 3b 20 69 73  | ss-modifier*.|.css-modifier+;.is | 
| 3fa0 |  0a 20 20 20 20 20 3b 3b 20 65 71 75 69 76 61 6c    65 6e 74 20 74 6f 3a 20 5b 20 63 73 73 2d 74 79  | ......;;.equivalent.to:.[.css-ty | 
| 3fc0 |  70 65 2d 73 65 6c 65 63 74 6f 72 20 7c 20 63 73    73 2d 6d 6f 64 69 66 69 65 72 20 5d 20 63 73 73  | pe-selector.|.css-modifier.].css | 
| 3fe0 |  2d 6d 6f 64 69 66 69 65 72 2a 3b 0a 20 20 20 20    20 28 69 66 20 74 79 70 65 2d 73 65 6c 65 63 74  | -modifier*;......(if.type-select | 
| 4000 |  6f 72 0a 20 20 20 20 20 20 20 20 20 28 70 75 73    68 20 74 79 70 65 2d 73 65 6c 65 63 74 6f 72 20  | or..........(push.type-selector. | 
| 4020 |  72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 28    6c 65 74 20 28 28 6d 6f 64 69 66 69 65 72 20 28  | result)........(let.((modifier.( | 
| 4040 |  65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73    2d 6d 6f 64 69 66 69 65 72 29 29 29 0a 20 20 20  | esxml--parse-css-modifier))).... | 
| 4060 |  20 20 20 20 20 20 28 69 66 20 6d 6f 64 69 66 69    65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......(if.modifier.............. | 
| 4080 |  28 70 75 73 68 20 6d 6f 64 69 66 69 65 72 20 72    65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20  | (push.modifier.result).......... | 
| 40a0 |  20 20 3b 3b 20 4e 4f 54 45 3a 20 74 68 69 73 20    61 6c 6c 6f 77 73 20 74 68 65 20 74 72 61 69 6c  | ..;;.NOTE:.this.allows.the.trail | 
| 40c0 |  69 6e 67 20 63 6f 6d 62 69 6e 61 74 6f 72 20 65    72 72 6f 72 20 74 6f 20 62 65 20 74 68 72 6f 77  | ing.combinator.error.to.be.throw | 
| 40e0 |  6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 64 6f 6e 65 20 74 29 29 29 29 0a 0a 20  | n............(setq.done.t))))... | 
| 4100 |  20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20    64 6f 6e 65 29 0a 20 20 20 20 20 20 20 28 6c 65  | ....(while.(not.done)........(le | 
| 4120 |  74 20 28 28 6d 6f 64 69 66 69 65 72 20 28 65 73    78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 6d  | t.((modifier.(esxml--parse-css-m | 
| 4140 |  6f 64 69 66 69 65 72 29 29 29 0a 20 20 20 20 20    20 20 20 20 28 69 66 20 6d 6f 64 69 66 69 65 72  | odifier)))..........(if.modifier | 
| 4160 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    75 73 68 20 6d 6f 64 69 66 69 65 72 20 72 65 73  | ..............(push.modifier.res | 
| 4180 |  75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 64 6f 6e 65 20 74 29 29 29 29  | ult)............(setq.done.t)))) | 
| 41a0 |  0a 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28    63 6c 2d 63 6f 75 6e 74 20 27 69 64 20 72 65 73  | ......(when.(>.(cl-count.'id.res | 
| 41c0 |  75 6c 74 20 3a 6b 65 79 20 27 63 61 72 29 20 31    29 0a 20 20 20 20 20 20 20 28 65 72 72 6f 72 20  | ult.:key.'car).1)........(error. | 
| 41e0 |  22 4f 6e 6c 79 20 6f 6e 65 20 69 64 20 73 65 6c    65 63 74 6f 72 20 61 6c 6c 6f 77 65 64 20 70 65  | "Only.one.id.selector.allowed.pe | 
| 4200 |  72 20 63 6f 6d 70 6f 75 6e 64 22 29 29 0a 20 20    20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73  | r.compound"))......(nreverse.res | 
| 4220 |  75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73  | ult))))..(defun.esxml--parse-css | 
| 4240 |  2d 74 79 70 65 2d 73 65 6c 65 63 74 6f 72 20 28    29 0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69 74 68  | -type-selector.()...(esxml--with | 
| 4260 |  2d 70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64    73 0a 20 20 20 28 6c 65 74 20 28 28 74 6f 6b 65  | -parse-shorthands....(let.((toke | 
| 4280 |  6e 20 28 70 65 65 6b 29 29 29 0a 20 20 20 20 20    28 63 6f 6e 64 0a 20 20 20 20 20 20 28 28 65 71  | n.(peek)))......(cond.......((eq | 
| 42a0 |  20 28 63 61 72 20 74 6f 6b 65 6e 29 20 27 69 64    65 6e 74 29 0a 20 20 20 20 20 20 20 28 6e 65 78  | .(car.token).'ident)........(nex | 
| 42c0 |  74 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 73 20    27 74 61 67 20 28 69 6e 74 65 72 6e 20 28 65 73  | t)........(cons.'tag.(intern.(es | 
| 42e0 |  78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 69    64 65 6e 74 69 66 69 65 72 20 28 63 64 72 20 74  | xml--parse-css-identifier.(cdr.t | 
| 4300 |  6f 6b 65 6e 29 29 29 29 29 0a 20 20 20 20 20 20    28 28 65 71 20 28 63 61 72 20 74 6f 6b 65 6e 29  | oken))))).......((eq.(car.token) | 
| 4320 |  20 27 61 73 74 65 72 69 73 6b 29 0a 20 20 20 20    20 20 20 28 6e 65 78 74 29 0a 20 20 20 20 20 20  | .'asterisk)........(next)....... | 
| 4340 |  20 27 28 77 69 6c 64 63 61 72 64 29 29 0a 20 20    20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 29 0a  | .'(wildcard)).......(t.nil))))). | 
| 4360 |  0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70    61 72 73 65 2d 63 73 73 2d 6d 6f 64 69 66 69 65  | .(defun.esxml--parse-css-modifie | 
| 4380 |  72 20 28 29 0a 20 20 28 6f 72 20 28 65 73 78 6d    6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 69 64 29  | r.()...(or.(esxml--parse-css-id) | 
| 43a0 |  0a 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 70    61 72 73 65 2d 63 73 73 2d 63 6c 61 73 73 29 0a  | .......(esxml--parse-css-class). | 
| 43c0 |  20 20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 70 61    72 73 65 2d 63 73 73 2d 61 74 74 72 69 62 29 0a  | ......(esxml--parse-css-attrib). | 
| 43e0 |  20 20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 70 61    72 73 65 2d 63 73 73 2d 70 73 65 75 64 6f 29 29  | ......(esxml--parse-css-pseudo)) | 
| 4400 |  29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d    2d 70 61 72 73 65 2d 63 73 73 2d 69 64 20 28 29  | )..(defun.esxml--parse-css-id.() | 
| 4420 |  0a 20 20 28 65 73 78 6d 6c 2d 2d 77 69 74 68 2d    70 61 72 73 65 2d 73 68 6f 72 74 68 61 6e 64 73  | ...(esxml--with-parse-shorthands | 
| 4440 |  0a 20 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65    20 28 61 63 63 65 70 74 20 27 68 61 73 68 29 29  | ....(let.((value.(accept.'hash)) | 
| 4460 |  29 0a 20 20 20 20 20 28 77 68 65 6e 20 76 61 6c    75 65 0a 20 20 20 20 20 20 20 28 63 6f 6e 73 20  | )......(when.value........(cons. | 
| 4480 |  27 69 64 20 28 73 75 62 73 74 72 69 6e 67 20 76    61 6c 75 65 20 31 29 29 29 29 29 29 0a 0a 28 64  | 'id.(substring.value.1))))))..(d | 
| 44a0 |  65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70 61 72 73    65 2d 63 73 73 2d 63 6c 61 73 73 20 28 29 0a 20  | efun.esxml--parse-css-class.().. | 
| 44c0 |  20 28 65 73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61    72 73 65 2d 73 68 6f 72 74 68 61 6e 64 73 0a 20  | .(esxml--with-parse-shorthands.. | 
| 44e0 |  20 20 28 77 68 65 6e 20 28 61 63 63 65 70 74 20    27 70 65 72 69 6f 64 29 0a 20 20 20 20 20 28 6c  | ..(when.(accept.'period)......(l | 
| 4500 |  65 74 20 28 28 76 61 6c 75 65 20 28 61 63 63 65    70 74 20 27 69 64 65 6e 74 29 29 29 0a 20 20 20  | et.((value.(accept.'ident))).... | 
| 4520 |  20 20 20 20 28 69 66 20 76 61 6c 75 65 0a 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27  | ....(if.value............(cons.' | 
| 4540 |  63 6c 61 73 73 20 76 61 6c 75 65 29 0a 20 20 20    20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 78  | class.value)..........(error."Ex | 
| 4560 |  70 65 63 74 65 64 20 69 64 65 6e 74 69 66 69 65    72 20 61 66 74 65 72 20 70 65 72 69 6f 64 22 29  | pected.identifier.after.period") | 
| 4580 |  29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73    78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 61  | )))))..(defun.esxml--parse-css-a | 
| 45a0 |  74 74 72 69 62 20 28 29 0a 20 20 28 65 73 78 6d    6c 2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68  | ttrib.()...(esxml--with-parse-sh | 
| 45c0 |  6f 72 74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74    20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 28  | orthands....(let.(result)......( | 
| 45e0 |  77 68 65 6e 20 28 61 63 63 65 70 74 20 27 6c 62    72 61 63 6b 65 74 29 0a 20 20 20 20 20 20 20 28  | when.(accept.'lbracket)........( | 
| 4600 |  65 61 74 2d 77 68 69 74 65 73 70 61 63 65 29 0a    20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61  | eat-whitespace)........(let.((na | 
| 4620 |  6d 65 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65    2d 63 73 73 2d 61 74 74 72 69 62 2d 6e 61 6d 65  | me.(esxml--parse-css-attrib-name | 
| 4640 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68    65 6e 20 28 6e 6f 74 20 6e 61 6d 65 29 0a 20 20  | )))..........(when.(not.name)... | 
| 4660 |  20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20    22 45 78 70 65 63 74 65 64 20 61 74 74 72 69 62  | .........(error."Expected.attrib | 
| 4680 |  75 74 65 20 6e 61 6d 65 22 29 29 0a 20 20 20 20    20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73  | ute.name"))..........(push.(cons | 
| 46a0 |  20 27 6e 61 6d 65 20 28 65 73 78 6d 6c 2d 2d 70    61 72 73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66  | .'name.(esxml--parse-css-identif | 
| 46c0 |  69 65 72 20 6e 61 6d 65 29 29 20 72 65 73 75 6c    74 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65  | ier.name)).result)..........(whe | 
| 46e0 |  6e 20 28 6e 6f 74 20 28 61 63 63 65 70 74 20 27    72 62 72 61 63 6b 65 74 29 29 0a 20 20 20 20 20  | n.(not.(accept.'rbracket))...... | 
| 4700 |  20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 61 74    63 68 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65  | ......(let.((match.(esxml--parse | 
| 4720 |  2d 63 73 73 2d 61 74 74 72 69 62 2d 6d 61 74 63    68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -css-attrib-match)))............ | 
| 4740 |  20 20 28 77 68 65 6e 20 28 6e 6f 74 20 6d 61 74    63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..(when.(not.match)............. | 
| 4760 |  20 20 20 28 65 72 72 6f 72 20 22 45 78 70 65 63    74 65 64 20 61 74 74 72 69 62 75 74 65 20 6d 61  | ...(error."Expected.attribute.ma | 
| 4780 |  74 63 68 65 72 22 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 6c  | tcher"))..............(let.((val | 
| 47a0 |  75 65 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65    2d 63 73 73 2d 61 74 74 72 69 62 2d 76 61 6c 75  | ue.(esxml--parse-css-attrib-valu | 
| 47c0 |  65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 76  | e)))................(when.(not.v | 
| 47e0 |  61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45  | alue)..................(error."E | 
| 4800 |  78 70 65 63 74 65 64 20 61 74 74 72 69 62 75 74    65 20 76 61 6c 75 65 22 29 29 0a 20 20 20 20 20  | xpected.attribute.value"))...... | 
| 4820 |  20 20 20 20 20 20 20 20 20 20 28 65 61 74 2d 77    68 69 74 65 73 70 61 63 65 29 0a 20 20 20 20 20  | ..........(eat-whitespace)...... | 
| 4840 |  20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    28 6e 6f 74 20 28 61 63 63 65 70 74 20 27 72 62  | ..........(when.(not.(accept.'rb | 
| 4860 |  72 61 63 6b 65 74 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72  | racket))..................(error | 
| 4880 |  20 22 55 6e 74 65 72 6d 69 6e 61 74 65 64 20 61    74 74 72 69 62 75 74 65 22 29 29 0a 20 20 20 20  | ."Unterminated.attribute"))..... | 
| 48a0 |  20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68    20 28 63 6f 6e 73 20 6d 61 74 63 68 20 76 61 6c  | ...........(push.(cons.match.val | 
| 48c0 |  75 65 29 20 72 65 73 75 6c 74 29 29 29 29 29 0a    20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 61 74  | ue).result)))))........(cons.'at | 
| 48e0 |  74 72 69 62 75 74 65 20 28 6e 72 65 76 65 72 73    65 20 72 65 73 75 6c 74 29 29 29 29 29 29 0a 0a  | tribute.(nreverse.result)))))).. | 
| 4900 |  28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70 61    72 73 65 2d 63 73 73 2d 61 74 74 72 69 62 2d 6e  | (defun.esxml--parse-css-attrib-n | 
| 4920 |  61 6d 65 20 28 29 0a 20 20 28 65 73 78 6d 6c 2d    2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68 6f 72  | ame.()...(esxml--with-parse-shor | 
| 4940 |  74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74 20 28    28 6e 61 6d 65 20 28 61 63 63 65 70 74 20 27 69  | thands....(let.((name.(accept.'i | 
| 4960 |  64 65 6e 74 29 29 29 0a 20 20 20 20 20 28 77 68    65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 28  | dent)))......(when.name........( | 
| 4980 |  65 61 74 2d 77 68 69 74 65 73 70 61 63 65 29 0a    20 20 20 20 20 20 20 6e 61 6d 65 29 29 29 29 0a  | eat-whitespace)........name)))). | 
| 49a0 |  0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70    61 72 73 65 2d 63 73 73 2d 61 74 74 72 69 62 2d  | .(defun.esxml--parse-css-attrib- | 
| 49c0 |  6d 61 74 63 68 20 28 29 0a 20 20 28 65 73 78 6d    6c 2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68  | match.()...(esxml--with-parse-sh | 
| 49e0 |  6f 72 74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74    20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 28  | orthands....(let.(result)......( | 
| 4a00 |  63 6f 6e 64 0a 20 20 20 20 20 20 28 28 61 63 63    65 70 74 20 27 65 71 75 61 6c 73 29 0a 20 20 20  | cond.......((accept.'equals).... | 
| 4a20 |  20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74    20 27 65 78 61 63 74 2d 6d 61 74 63 68 29 29 0a  | ....(setq.result.'exact-match)). | 
| 4a40 |  20 20 20 20 20 20 28 28 61 63 63 65 70 74 20 27    70 72 65 66 69 78 2d 6d 61 74 63 68 29 0a 20 20  | ......((accept.'prefix-match)... | 
| 4a60 |  20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c    74 20 27 70 72 65 66 69 78 2d 6d 61 74 63 68 29  | .....(setq.result.'prefix-match) | 
| 4a80 |  29 0a 20 20 20 20 20 20 28 28 61 63 63 65 70 74    20 27 73 75 66 66 69 78 2d 6d 61 74 63 68 29 0a  | ).......((accept.'suffix-match). | 
| 4aa0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73    75 6c 74 20 27 73 75 66 66 69 78 2d 6d 61 74 63  | .......(setq.result.'suffix-matc | 
| 4ac0 |  68 29 29 0a 20 20 20 20 20 20 28 28 61 63 63 65    70 74 20 27 73 75 62 73 74 72 69 6e 67 2d 6d 61  | h)).......((accept.'substring-ma | 
| 4ae0 |  74 63 68 29 0a 20 20 20 20 20 20 20 28 73 65 74    71 20 72 65 73 75 6c 74 20 27 73 75 62 73 74 72  | tch)........(setq.result.'substr | 
| 4b00 |  69 6e 67 2d 6d 61 74 63 68 29 29 0a 20 20 20 20    20 20 28 28 61 63 63 65 70 74 20 27 69 6e 63 6c  | ing-match)).......((accept.'incl | 
| 4b20 |  75 64 65 2d 6d 61 74 63 68 29 0a 20 20 20 20 20    20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 27  | ude-match)........(setq.result.' | 
| 4b40 |  69 6e 63 6c 75 64 65 2d 6d 61 74 63 68 29 29 0a    20 20 20 20 20 20 28 28 61 63 63 65 70 74 20 27  | include-match)).......((accept.' | 
| 4b60 |  64 61 73 68 2d 6d 61 74 63 68 29 0a 20 20 20 20    20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20  | dash-match)........(setq.result. | 
| 4b80 |  27 64 61 73 68 2d 6d 61 74 63 68 29 29 29 0a 20    20 20 20 20 28 65 61 74 2d 77 68 69 74 65 73 70  | 'dash-match)))......(eat-whitesp | 
| 4ba0 |  61 63 65 29 0a 20 20 20 20 20 72 65 73 75 6c 74    29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d  | ace)......result)))..(defun.esxm | 
| 4bc0 |  6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 61 74 74    72 69 62 2d 76 61 6c 75 65 20 28 29 0a 20 20 28  | l--parse-css-attrib-value.()...( | 
| 4be0 |  65 73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73    65 2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20 20  | esxml--with-parse-shorthands.... | 
| 4c00 |  28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 70 65    65 6b 29 29 29 0a 20 20 20 20 20 28 63 6f 6e 64  | (let.((token.(peek)))......(cond | 
| 4c20 |  0a 20 20 20 20 20 20 28 28 65 71 20 28 63 61 72    20 74 6f 6b 65 6e 29 20 27 69 64 65 6e 74 29 0a  | .......((eq.(car.token).'ident). | 
| 4c40 |  20 20 20 20 20 20 20 28 6e 65 78 74 29 0a 20 20    20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 70 61 72  | .......(next)........(esxml--par | 
| 4c60 |  73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66 69 65    72 20 28 63 64 72 20 74 6f 6b 65 6e 29 29 29 0a  | se-css-identifier.(cdr.token))). | 
| 4c80 |  20 20 20 20 20 20 28 28 65 71 20 28 63 61 72 20    74 6f 6b 65 6e 29 20 27 73 74 72 69 6e 67 29 0a  | ......((eq.(car.token).'string). | 
| 4ca0 |  20 20 20 20 20 20 20 28 6e 65 78 74 29 0a 20 20    20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 70 61 72  | .......(next)........(esxml--par | 
| 4cc0 |  73 65 2d 63 73 73 2d 73 74 72 69 6e 67 2d 6c 69    74 65 72 61 6c 20 28 63 64 72 20 74 6f 6b 65 6e  | se-css-string-literal.(cdr.token | 
| 4ce0 |  29 29 29 0a 20 20 20 20 20 20 28 74 20 6e 69 6c    29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73  | ))).......(t.nil)))))..(defun.es | 
| 4d00 |  78 6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 70    73 65 75 64 6f 20 28 29 0a 20 20 28 65 73 78 6d  | xml--parse-css-pseudo.()...(esxm | 
| 4d20 |  6c 2d 2d 77 69 74 68 2d 70 61 72 73 65 2d 73 68    6f 72 74 68 61 6e 64 73 0a 20 20 20 28 6c 65 74  | l--with-parse-shorthands....(let | 
| 4d40 |  20 28 72 65 73 75 6c 74 20 74 79 70 65 29 0a 20    20 20 20 20 28 77 68 65 6e 20 28 61 63 63 65 70  | .(result.type)......(when.(accep | 
| 4d60 |  74 20 27 63 6f 6c 6f 6e 29 0a 20 20 20 20 20 20    20 28 69 66 20 28 61 63 63 65 70 74 20 27 63 6f  | t.'colon)........(if.(accept.'co | 
| 4d80 |  6c 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 74 79 70 65 20 27 70 73 65 75  | lon)............(setq.type.'pseu | 
| 4da0 |  64 6f 2d 65 6c 65 6d 65 6e 74 29 0a 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 74 79 70 65 20  | do-element)..........(setq.type. | 
| 4dc0 |  27 70 73 65 75 64 6f 2d 63 6c 61 73 73 29 29 0a    20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75  | 'pseudo-class))........(let.((fu | 
| 4de0 |  6e 63 74 69 6f 6e 61 6c 20 28 65 73 78 6d 6c 2d    2d 70 61 72 73 65 2d 63 73 73 2d 66 75 6e 63 74  | nctional.(esxml--parse-css-funct | 
| 4e00 |  69 6f 6e 61 6c 2d 70 73 65 75 64 6f 29 29 29 0a    20 20 20 20 20 20 20 20 20 28 69 66 20 66 75 6e  | ional-pseudo)))..........(if.fun | 
| 4e20 |  63 74 69 6f 6e 61 6c 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 69 66 20 28 65 71 20 74 79 70  | ctional..............(if.(eq.typ | 
| 4e40 |  65 20 27 70 73 65 75 64 6f 2d 63 6c 61 73 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.'pseudo-class)................ | 
| 4e60 |  20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28    63 61 72 20 66 75 6e 63 74 69 6f 6e 61 6c 29 29  | ..(let.((value.(car.functional)) | 
| 4e80 |  0a 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 72 67 73 20 28 63  | ........................(args.(c | 
| 4ea0 |  64 72 20 66 75 6e 63 74 69 6f 6e 61 6c 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | dr.functional)))................ | 
| 4ec0 |  20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20    27 6e 61 6d 65 20 28 65 73 78 6d 6c 2d 2d 70 61  | ....(push.(cons.'name.(esxml--pa | 
| 4ee0 |  72 73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66 69    65 72 20 76 61 6c 75 65 29 29 20 72 65 73 75 6c  | rse-css-identifier.value)).resul | 
| 4f00 |  74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e  | t)....................(push.(con | 
| 4f20 |  73 20 27 61 72 67 73 20 61 72 67 73 29 20 72 65    73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20  | s.'args.args).result)).......... | 
| 4f40 |  20 20 20 20 20 20 28 65 72 72 6f 72 20 22 50 73    65 75 64 6f 2d 65 6c 65 6d 65 6e 74 73 20 6d 61  | ......(error."Pseudo-elements.ma | 
| 4f60 |  79 20 6e 6f 74 20 68 61 76 65 20 61 72 67 75 6d    65 6e 74 73 22 29 29 0a 20 20 20 20 20 20 20 20  | y.not.have.arguments"))......... | 
| 4f80 |  20 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20    28 61 63 63 65 70 74 20 27 69 64 65 6e 74 29 29  | ...(let.((value.(accept.'ident)) | 
| 4fa0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    69 66 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20  | )..............(if.value........ | 
| 4fc0 |  20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20    28 63 6f 6e 73 20 27 6e 61 6d 65 20 28 65 73 78  | ..........(push.(cons.'name.(esx | 
| 4fe0 |  6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 69 64    65 6e 74 69 66 69 65 72 20 76 61 6c 75 65 29 29  | ml--parse-css-identifier.value)) | 
| 5000 |  20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22  | .result)................(error." | 
| 5020 |  45 78 70 65 63 74 65 64 20 66 75 6e 63 74 69 6f    6e 20 6f 72 20 69 64 65 6e 74 69 66 69 65 72 22  | Expected.function.or.identifier" | 
| 5040 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 28 63 6f    6e 73 20 74 79 70 65 20 28 6e 72 65 76 65 72 73  | )))))........(cons.type.(nrevers | 
| 5060 |  65 20 72 65 73 75 6c 74 29 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 70 61  | e.result))))))..(defun.esxml--pa | 
| 5080 |  72 73 65 2d 63 73 73 2d 66 75 6e 63 74 69 6f 6e    61 6c 2d 70 73 65 75 64 6f 20 28 29 0a 20 20 28  | rse-css-functional-pseudo.()...( | 
| 50a0 |  65 73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73    65 2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20 20  | esxml--with-parse-shorthands.... | 
| 50c0 |  28 6c 65 74 20 28 28 66 75 6e 63 74 69 6f 6e 20    28 61 63 63 65 70 74 20 27 66 75 6e 63 74 69 6f  | (let.((function.(accept.'functio | 
| 50e0 |  6e 29 29 0a 20 20 20 20 20 20 20 20 20 72 65 73    75 6c 74 29 0a 20 20 20 20 20 28 77 68 65 6e 20  | n))..........result)......(when. | 
| 5100 |  66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20    28 70 75 73 68 20 28 73 75 62 73 74 72 69 6e 67  | function........(push.(substring | 
| 5120 |  20 66 75 6e 63 74 69 6f 6e 20 30 20 2d 31 29 20    72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 28  | .function.0.-1).result)........( | 
| 5140 |  65 61 74 2d 77 68 69 74 65 73 70 61 63 65 29 0a    20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 78  | eat-whitespace)........(let.((ex | 
| 5160 |  70 72 65 73 73 69 6f 6e 20 28 65 73 78 6d 6c 2d    2d 70 61 72 73 65 2d 63 73 73 2d 65 78 70 72 65  | pression.(esxml--parse-css-expre | 
| 5180 |  73 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 64 6f 6e 65 29 0a 20 20 20 20 20  | ssion))..............done)...... | 
| 51a0 |  20 20 20 20 28 65 61 74 2d 77 68 69 74 65 73 70    61 63 65 29 0a 20 20 20 20 20 20 20 20 20 28 77  | ....(eat-whitespace)..........(w | 
| 51c0 |  68 65 6e 20 28 6e 6f 74 20 65 78 70 72 65 73 73    69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20  | hen.(not.expression)............ | 
| 51e0 |  28 65 72 72 6f 72 20 22 45 78 70 65 63 74 65 64    20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 65 78  | (error."Expected.at.least.one.ex | 
| 5200 |  70 72 65 73 73 69 6f 6e 20 66 6f 72 20 66 75 6e    63 74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20  | pression.for.function"))........ | 
| 5220 |  20 20 28 70 75 73 68 20 65 78 70 72 65 73 73 69    6f 6e 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20  | ..(push.expression.result)...... | 
| 5240 |  20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20    64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20  | ....(while.(not.done)........... | 
| 5260 |  20 28 73 65 74 71 20 65 78 70 72 65 73 73 69 6f    6e 20 28 65 73 78 6d 6c 2d 2d 70 61 72 73 65 2d  | .(setq.expression.(esxml--parse- | 
| 5280 |  63 73 73 2d 65 78 70 72 65 73 73 69 6f 6e 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20  | css-expression))............(if. | 
| 52a0 |  65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e  | expression................(progn | 
| 52c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 70 75 73 68 20 65 78 70 72 65 73 73 69  | ..................(push.expressi | 
| 52e0 |  6f 6e 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 65 61 74  | on.result)..................(eat | 
| 5300 |  2d 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | -whitespace))..............(setq | 
| 5320 |  20 64 6f 6e 65 20 74 29 29 29 29 0a 20 20 20 20    20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 61  | .done.t))))........(when.(not.(a | 
| 5340 |  63 63 65 70 74 20 27 72 70 61 72 65 6e 29 29 0a    20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20  | ccept.'rparen))..........(error. | 
| 5360 |  22 55 6e 74 65 72 6d 69 6e 61 74 65 64 20 66 75    6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 20  | "Unterminated.function.argument. | 
| 5380 |  6c 69 73 74 22 29 29 0a 20 20 20 20 20 20 20 28    6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29  | list"))........(nreverse.result) | 
| 53a0 |  29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78    6d 6c 2d 2d 70 61 72 73 65 2d 63 73 73 2d 65 78  | ))))..(defun.esxml--parse-css-ex | 
| 53c0 |  70 72 65 73 73 69 6f 6e 20 28 29 0a 20 20 28 65    73 78 6d 6c 2d 2d 77 69 74 68 2d 70 61 72 73 65  | pression.()...(esxml--with-parse | 
| 53e0 |  2d 73 68 6f 72 74 68 61 6e 64 73 0a 20 20 20 28    6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 70 65 65  | -shorthands....(let.((token.(pee | 
| 5400 |  6b 29 29 29 0a 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 28 28 61 63 63 65 70 74 20 27  | k)))......(cond.......((accept.' | 
| 5420 |  70 6c 75 73 29 0a 20 20 20 20 20 20 20 27 28 6f    70 65 72 61 74 6f 72 20 2e 20 2b 29 29 0a 20 20  | plus)........'(operator...+))... | 
| 5440 |  20 20 20 20 28 28 61 63 63 65 70 74 20 27 6d 69    6e 75 73 29 0a 20 20 20 20 20 20 20 27 28 6f 70  | ....((accept.'minus)........'(op | 
| 5460 |  65 72 61 74 6f 72 20 2e 20 2d 29 29 0a 20 20 20    20 20 20 28 28 65 71 20 28 63 61 72 20 74 6f 6b  | erator...-)).......((eq.(car.tok | 
| 5480 |  65 6e 29 20 27 64 69 6d 65 6e 73 69 6f 6e 29 0a    20 20 20 20 20 20 20 28 6e 65 78 74 29 0a 20 20  | en).'dimension)........(next)... | 
| 54a0 |  20 20 20 20 20 28 63 6f 6e 73 20 27 64 69 6d 65    6e 73 69 6f 6e 20 28 65 73 78 6d 6c 2d 2d 70 61  | .....(cons.'dimension.(esxml--pa | 
| 54c0 |  72 73 65 2d 63 73 73 2d 69 64 65 6e 74 69 66 69    65 72 20 28 63 64 72 20 74 6f 6b 65 6e 29 29 29  | rse-css-identifier.(cdr.token))) | 
| 54e0 |  29 0a 20 20 20 20 20 20 28 28 65 71 20 28 63 61    72 20 74 6f 6b 65 6e 29 20 27 6e 75 6d 62 65 72  | ).......((eq.(car.token).'number | 
| 5500 |  29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 29 0a    20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 6e 75  | )........(next)........(cons.'nu | 
| 5520 |  6d 62 65 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d    6e 75 6d 62 65 72 20 28 63 64 72 20 74 6f 6b 65  | mber.(string-to-number.(cdr.toke | 
| 5540 |  6e 29 29 29 29 0a 20 20 20 20 20 20 28 28 65 71    20 28 63 61 72 20 74 6f 6b 65 6e 29 20 27 73 74  | n)))).......((eq.(car.token).'st | 
| 5560 |  72 69 6e 67 29 0a 20 20 20 20 20 20 20 28 6e 65    78 74 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 73  | ring)........(next)........(cons | 
| 5580 |  20 27 73 74 72 69 6e 67 20 28 65 73 78 6d 6c 2d    2d 70 61 72 73 65 2d 63 73 73 2d 73 74 72 69 6e  | .'string.(esxml--parse-css-strin | 
| 55a0 |  67 2d 6c 69 74 65 72 61 6c 20 28 63 64 72 20 74    6f 6b 65 6e 29 29 29 29 0a 20 20 20 20 20 20 28  | g-literal.(cdr.token)))).......( | 
| 55c0 |  28 65 71 20 28 63 61 72 20 74 6f 6b 65 6e 29 20    27 69 64 65 6e 74 29 0a 20 20 20 20 20 20 20 28  | (eq.(car.token).'ident)........( | 
| 55e0 |  6e 65 78 74 29 0a 20 20 20 20 20 20 20 28 63 6f    6e 73 20 27 69 64 65 6e 74 20 28 65 73 78 6d 6c  | next)........(cons.'ident.(esxml | 
| 5600 |  2d 2d 70 61 72 73 65 2d 63 73 73 2d 69 64 65 6e    74 69 66 69 65 72 20 28 63 64 72 20 74 6f 6b 65  | --parse-css-identifier.(cdr.toke | 
| 5620 |  6e 29 29 29 29 0a 20 20 20 20 20 20 28 74 20 6e    69 6c 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 74  | n)))).......(t.nil)))))....;;;.t | 
| 5640 |  72 65 65 20 74 72 61 76 65 72 73 61 6c 0a 0a 3b    3b 20 54 4f 44 4f 3a 20 77 68 79 20 62 72 61 6e  | ree.traversal..;;.TODO:.why.bran | 
| 5660 |  63 68 3f 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c    2d 62 72 61 6e 63 68 2d 70 20 28 6e 6f 64 65 29  | ch?.(defun.esxml-branch-p.(node) | 
| 5680 |  0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 4e    4f 44 45 20 72 65 66 65 72 73 20 74 6f 20 61 6e  | ..."Non-nil.if.NODE.refers.to.an | 
| 56a0 |  20 65 73 78 6d 6c 20 62 72 61 6e 63 68 2e 22 0a    20 20 28 61 6e 64 20 28 6c 69 73 74 70 20 6e 6f  | .esxml.branch."...(and.(listp.no | 
| 56c0 |  64 65 29 0a 20 20 20 20 20 20 20 28 3e 3d 20 28    6c 65 6e 67 74 68 20 6e 6f 64 65 29 20 32 29 0a  | de)........(>=.(length.node).2). | 
| 56e0 |  20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20    28 63 61 72 20 6e 6f 64 65 29 29 0a 20 20 20 20  | .......(symbolp.(car.node))..... | 
| 5700 |  20 20 20 28 6c 69 73 74 70 20 28 63 61 64 72 20    6e 6f 64 65 29 29 29 29 0a 0a 3b 3b 20 54 4f 44  | ...(listp.(cadr.node))))..;;.TOD | 
| 5720 |  4f 3a 20 74 68 65 73 65 20 68 65 6c 70 65 72 73    20 73 68 6f 75 6c 64 20 62 65 20 64 65 70 72 65  | O:.these.helpers.should.be.depre | 
| 5740 |  63 61 74 65 64 20 69 6e 20 66 61 76 6f 72 20 6f    66 20 64 6f 6d 2e 65 6c 0a 28 64 65 66 75 6e 20  | cated.in.favor.of.dom.el.(defun. | 
| 5760 |  65 73 78 6d 6c 2d 6e 6f 64 65 2d 74 61 67 20 28    6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 73  | esxml-node-tag.(node)..."Returns | 
| 5780 |  20 74 68 65 20 74 61 67 20 6f 66 20 4e 4f 44 45    20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 22 0a  | .the.tag.of.NODE.if.available.". | 
| 57a0 |  20 20 28 61 6e 64 20 28 65 73 78 6d 6c 2d 62 72    61 6e 63 68 2d 70 20 6e 6f 64 65 29 0a 20 20 20  | ..(and.(esxml-branch-p.node).... | 
| 57c0 |  20 20 20 20 28 63 61 72 20 6e 6f 64 65 29 29 29    0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 6e  | ....(car.node)))..(defun.esxml-n | 
| 57e0 |  6f 64 65 2d 61 74 74 72 69 62 75 74 65 73 20 28    6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 73  | ode-attributes.(node)..."Returns | 
| 5800 |  20 74 68 65 20 61 74 74 72 69 62 75 74 65 73 20    6f 66 20 4e 4f 44 45 20 69 66 20 61 76 61 69 6c  | .the.attributes.of.NODE.if.avail | 
| 5820 |  61 62 6c 65 2e 22 0a 20 20 28 61 6e 64 20 28 65    73 78 6d 6c 2d 62 72 61 6e 63 68 2d 70 20 6e 6f  | able."...(and.(esxml-branch-p.no | 
| 5840 |  64 65 29 0a 20 20 20 20 20 20 20 28 63 61 64 72    20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e  | de)........(cadr.node)))..(defun | 
| 5860 |  20 65 73 78 6d 6c 2d 6e 6f 64 65 2d 61 74 74 72    69 62 75 74 65 20 28 61 74 74 72 69 62 75 74 65  | .esxml-node-attribute.(attribute | 
| 5880 |  20 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e    73 20 74 68 65 20 61 74 74 72 69 62 75 74 65 20  | .node)..."Returns.the.attribute. | 
| 58a0 |  41 54 54 52 49 42 55 54 45 20 6f 66 20 4e 4f 44    45 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 22  | ATTRIBUTE.of.NODE.if.available." | 
| 58c0 |  0a 20 20 28 61 6e 64 20 28 65 73 78 6d 6c 2d 62    72 61 6e 63 68 2d 70 20 6e 6f 64 65 29 0a 20 20  | ...(and.(esxml-branch-p.node)... | 
| 58e0 |  20 20 20 20 20 28 63 64 72 20 28 61 73 73 71 20    61 74 74 72 69 62 75 74 65 20 28 63 61 64 72 20  | .....(cdr.(assq.attribute.(cadr. | 
| 5900 |  6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69  | node)))))..(defun.esxml-node-chi | 
| 5920 |  6c 64 72 65 6e 20 28 6e 6f 64 65 29 0a 20 20 22    52 65 74 75 72 6e 73 20 74 68 65 20 63 68 69 6c  | ldren.(node)..."Returns.the.chil | 
| 5940 |  64 72 65 6e 20 6f 66 20 4e 4f 44 45 20 69 66 20    61 76 61 69 6c 61 62 6c 65 2e 22 0a 20 20 28 61  | dren.of.NODE.if.available."...(a | 
| 5960 |  6e 64 20 28 65 73 78 6d 6c 2d 62 72 61 6e 63 68    2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | nd.(esxml-branch-p.node)........ | 
| 5980 |  28 6e 74 68 63 64 72 20 32 20 6e 6f 64 65 29 29    29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d  | (nthcdr.2.node)))..(defun.esxml- | 
| 59a0 |  66 69 6e 64 2d 6e 6f 64 65 20 28 70 72 65 64 20    72 6f 6f 74 29 0a 20 20 22 4c 6f 63 61 74 65 73  | find-node.(pred.root)..."Locates | 
| 59c0 |  20 61 20 6e 6f 64 65 20 73 61 74 69 73 66 79 69    6e 67 20 50 52 45 44 20 73 74 61 72 74 69 6e 67  | .a.node.satisfying.PRED.starting | 
| 59e0 |  20 66 72 6f 6d 20 52 4f 4f 54 2e 0a 52 65 74 75    72 6e 73 20 74 68 65 20 6e 6f 64 65 20 6f 72 20  | .from.ROOT..Returns.the.node.or. | 
| 5a00 |  6e 69 6c 20 69 66 20 6e 6f 6e 65 20 66 6f 75 6e    64 2e 22 0a 20 20 28 69 66 20 28 66 75 6e 63 61  | nil.if.none.found."...(if.(funca | 
| 5a20 |  6c 6c 20 70 72 65 64 20 72 6f 6f 74 29 0a 20 20    20 20 20 20 72 6f 6f 74 0a 20 20 20 20 28 63 6c  | ll.pred.root).......root.....(cl | 
| 5a40 |  2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 6e    6f 64 65 29 20 28 65 73 78 6d 6c 2d 66 69 6e 64  | -some.(lambda.(node).(esxml-find | 
| 5a60 |  2d 6e 6f 64 65 20 70 72 65 64 20 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | -node.pred.node))..............( | 
| 5a80 |  65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c 64    72 65 6e 20 72 6f 6f 74 29 29 29 29 0a 0a 28 64  | esxml-node-children.root))))..(d | 
| 5aa0 |  65 66 75 6e 20 65 73 78 6d 6c 2d 76 69 73 69 74    2d 6e 6f 64 65 73 20 28 66 75 6e 63 74 69 6f 6e  | efun.esxml-visit-nodes.(function | 
| 5ac0 |  20 72 6f 6f 74 29 0a 20 20 22 56 69 73 69 74 20    6e 6f 64 65 73 20 62 79 20 63 61 6c 6c 69 6e 67  | .root)..."Visit.nodes.by.calling | 
| 5ae0 |  20 46 55 4e 43 54 49 4f 4e 20 6f 6e 20 65 61 63    68 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20  | .FUNCTION.on.each.starting.from. | 
| 5b00 |  52 4f 4f 54 2e 22 0a 20 20 28 66 75 6e 63 61 6c    6c 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6f 74 29  | ROOT."...(funcall.function.root) | 
| 5b20 |  0a 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61    20 28 6e 6f 64 65 29 20 28 65 73 78 6d 6c 2d 76  | ...(mapc.(lambda.(node).(esxml-v | 
| 5b40 |  69 73 69 74 2d 6e 6f 64 65 73 20 66 75 6e 63 74    69 6f 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20  | isit-nodes.function.node))...... | 
| 5b60 |  20 20 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 63    68 69 6c 64 72 65 6e 20 72 6f 6f 74 29 29 29 0a  | ...(esxml-node-children.root))). | 
| 5b80 |  0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 66 69    6e 64 2d 6e 6f 64 65 73 20 28 70 72 65 64 20 72  | .(defun.esxml-find-nodes.(pred.r | 
| 5ba0 |  6f 6f 74 29 0a 20 20 22 4c 6f 63 61 74 65 73 20    61 6c 6c 20 6e 6f 64 65 73 20 73 61 74 69 73 66  | oot)..."Locates.all.nodes.satisf | 
| 5bc0 |  79 69 6e 67 20 50 52 45 44 20 73 74 61 72 74 69    6e 67 20 66 72 6f 6d 20 52 4f 4f 54 2e 0a 52 65  | ying.PRED.starting.from.ROOT..Re | 
| 5be0 |  74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20    74 68 65 20 6e 6f 64 65 73 20 6f 72 20 6e 69 6c  | turns.a.list.of.the.nodes.or.nil | 
| 5c00 |  20 69 66 20 6e 6f 6e 65 20 66 6f 75 6e 64 2e 22    0a 20 20 28 6c 65 74 20 28 28 61 63 63 20 27 28  | .if.none.found."...(let.((acc.'( | 
| 5c20 |  29 29 29 0a 20 20 20 20 28 65 73 78 6d 6c 2d 76    69 73 69 74 2d 6e 6f 64 65 73 0a 20 20 20 20 20  | ))).....(esxml-visit-nodes...... | 
| 5c40 |  28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 0a 20    20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e  | (lambda.(node)........(when.(fun | 
| 5c60 |  63 61 6c 6c 20 70 72 65 64 20 6e 6f 64 65 29 0a    20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e  | call.pred.node)..........(push.n | 
| 5c80 |  6f 64 65 20 61 63 63 29 29 29 0a 20 20 20 20 20    72 6f 6f 74 29 0a 20 20 20 20 28 6e 72 65 76 65  | ode.acc)))......root).....(nreve | 
| 5ca0 |  72 73 65 20 61 63 63 29 29 29 0a 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 66 69 6e 64 2d 64 65  | rse.acc)))..(defun.esxml-find-de | 
| 5cc0 |  73 63 65 6e 64 61 6e 74 20 28 70 72 65 64 20 72    6f 6f 74 29 0a 20 20 22 4c 6f 63 61 74 65 73 20  | scendant.(pred.root)..."Locates. | 
| 5ce0 |  61 20 6e 6f 64 65 20 73 61 74 69 73 66 79 69 6e    67 20 50 52 45 44 20 73 74 61 72 74 69 6e 67 20  | a.node.satisfying.PRED.starting. | 
| 5d00 |  66 72 6f 6d 20 52 4f 4f 54 27 73 20 63 68 69 6c    64 72 65 6e 2e 0a 52 65 74 75 72 6e 73 20 74 68  | from.ROOT's.children..Returns.th | 
| 5d20 |  65 20 6e 6f 64 65 20 6f 72 20 6e 69 6c 20 69 66    20 6e 6f 6e 65 20 66 6f 75 6e 64 2e 22 0a 20 20  | e.node.or.nil.if.none.found."... | 
| 5d40 |  28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61    20 28 6e 6f 64 65 29 20 28 65 73 78 6d 6c 2d 66  | (cl-some.(lambda.(node).(esxml-f | 
| 5d60 |  69 6e 64 2d 6e 6f 64 65 20 70 72 65 64 20 6e 6f    64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ind-node.pred.node))............ | 
| 5d80 |  28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c    64 72 65 6e 20 72 6f 6f 74 29 29 29 0a 0a 28 64  | (esxml-node-children.root)))..(d | 
| 5da0 |  65 66 75 6e 20 65 73 78 6d 6c 2d 66 69 6e 64 2d    64 65 73 63 65 6e 64 61 6e 74 73 20 28 70 72 65  | efun.esxml-find-descendants.(pre | 
| 5dc0 |  64 20 72 6f 6f 74 29 0a 20 20 22 4c 6f 63 61 74    65 73 20 61 6c 6c 20 6e 6f 64 65 73 20 73 61 74  | d.root)..."Locates.all.nodes.sat | 
| 5de0 |  69 73 66 79 69 6e 67 20 50 52 45 44 20 73 74 61    72 74 69 6e 67 20 66 72 6f 6d 20 52 4f 4f 54 27  | isfying.PRED.starting.from.ROOT' | 
| 5e00 |  73 20 63 68 69 6c 64 72 65 6e 2e 0a 52 65 74 75    72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68  | s.children..Returns.a.list.of.th | 
| 5e20 |  65 20 6e 6f 64 65 73 20 6f 72 20 6e 69 6c 20 69    66 20 6e 6f 6e 65 20 66 6f 75 6e 64 2e 22 0a 20  | e.nodes.or.nil.if.none.found.".. | 
| 5e40 |  20 28 63 6c 2d 6d 61 70 63 61 6e 20 28 6c 61 6d    62 64 61 20 28 6e 6f 64 65 29 20 28 65 73 78 6d  | .(cl-mapcan.(lambda.(node).(esxm | 
| 5e60 |  6c 2d 66 69 6e 64 2d 6e 6f 64 65 73 20 70 72 65    64 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20  | l-find-nodes.pred.node))........ | 
| 5e80 |  20 20 20 20 20 20 28 65 73 78 6d 6c 2d 6e 6f 64    65 2d 63 68 69 6c 64 72 65 6e 20 72 6f 6f 74 29  | ......(esxml-node-children.root) | 
| 5ea0 |  29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c    2d 66 69 6e 64 2d 63 68 69 6c 64 20 28 70 72 65  | ))..(defun.esxml-find-child.(pre | 
| 5ec0 |  64 20 72 6f 6f 74 29 0a 20 20 22 4c 6f 63 61 74    65 73 20 61 20 6e 6f 64 65 20 73 61 74 69 73 66  | d.root)..."Locates.a.node.satisf | 
| 5ee0 |  79 69 6e 67 20 50 52 45 44 20 61 6d 6f 6e 67 20    52 4f 4f 54 27 73 20 63 68 69 6c 64 72 65 6e 2e  | ying.PRED.among.ROOT's.children. | 
| 5f00 |  0a 52 65 74 75 72 6e 73 20 74 68 65 20 6e 6f 64    65 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 6e 65  | .Returns.the.node.or.nil.if.none | 
| 5f20 |  20 66 6f 75 6e 64 2e 22 0a 20 20 28 63 6c 2d 73    6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64  | .found."...(cl-some.(lambda.(nod | 
| 5f40 |  65 29 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c    6c 20 70 72 65 64 20 6e 6f 64 65 29 20 6e 6f 64  | e).(when.(funcall.pred.node).nod | 
| 5f60 |  65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28    65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69 6c 64  | e))............(esxml-node-child | 
| 5f80 |  72 65 6e 20 72 6f 6f 74 29 29 29 0a 0a 28 64 65    66 75 6e 20 65 73 78 6d 6c 2d 66 69 6e 64 2d 63  | ren.root)))..(defun.esxml-find-c | 
| 5fa0 |  68 69 6c 64 72 65 6e 20 28 70 72 65 64 20 72 6f    6f 74 29 0a 20 20 22 4c 6f 63 61 74 65 73 20 61  | hildren.(pred.root)..."Locates.a | 
| 5fc0 |  6c 6c 20 6e 6f 64 65 73 20 73 61 74 69 73 66 79    69 6e 67 20 50 52 45 44 20 61 6d 6f 6e 67 20 52  | ll.nodes.satisfying.PRED.among.R | 
| 5fe0 |  4f 4f 54 27 73 20 63 68 69 6c 64 72 65 6e 2e 0a    52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f  | OOT's.children..Returns.a.list.o | 
| 6000 |  66 20 74 68 65 20 6e 6f 64 65 73 20 6f 72 20 6e    69 6c 20 69 66 20 6e 6f 6e 65 20 66 6f 75 6e 64  | f.the.nodes.or.nil.if.none.found | 
| 6020 |  2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61    6d 62 64 61 20 28 6e 6f 64 65 29 20 28 77 68 65  | ."...(mapcar.(lambda.(node).(whe | 
| 6040 |  6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20    6e 6f 64 65 29 20 6e 6f 64 65 29 29 0a 20 20 20  | n.(funcall.pred.node).node)).... | 
| 6060 |  20 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 6e 6f    64 65 2d 63 68 69 6c 64 72 65 6e 20 72 6f 6f 74  | .......(esxml-node-children.root | 
| 6080 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d    6c 2d 2d 6e 6f 64 65 2d 77 69 74 68 2d 63 68 69  | )))..(defun.esxml--node-with-chi | 
| 60a0 |  6c 64 72 65 6e 20 28 6e 6f 64 65 20 63 68 69 6c    64 72 65 6e 29 0a 20 20 28 6c 65 74 20 28 28 74  | ldren.(node.children)...(let.((t | 
| 60c0 |  61 67 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 74    61 67 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20  | ag.(esxml-node-tag.node))....... | 
| 60e0 |  20 20 28 61 74 74 72 69 62 75 74 65 73 20 28 65    73 78 6d 6c 2d 6e 6f 64 65 2d 61 74 74 72 69 62  | ..(attributes.(esxml-node-attrib | 
| 6100 |  75 74 65 73 20 6e 6f 64 65 29 29 29 0a 20 20 20    20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 74  | utes.node))).....(append.(list.t | 
| 6120 |  61 67 20 61 74 74 72 69 62 75 74 65 73 29 20 63    68 69 6c 64 72 65 6e 29 29 29 0a 0a 28 64 65 66  | ag.attributes).children)))..(def | 
| 6140 |  75 6e 20 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d 77    69 74 68 2d 61 74 74 72 69 62 75 74 65 73 20 28  | un.esxml--node-with-attributes.( | 
| 6160 |  6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 73 29    0a 20 20 28 6c 65 74 20 28 28 74 61 67 20 28 65  | node.attributes)...(let.((tag.(e | 
| 6180 |  73 78 6d 6c 2d 6e 6f 64 65 2d 74 61 67 20 6e 6f    64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68  | sxml-node-tag.node)).........(ch | 
| 61a0 |  69 6c 64 72 65 6e 20 28 65 73 78 6d 6c 2d 6e 6f    64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65  | ildren.(esxml-node-children.node | 
| 61c0 |  29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20    28 6c 69 73 74 20 74 61 67 20 61 74 74 72 69 62  | ))).....(append.(list.tag.attrib | 
| 61e0 |  75 74 65 73 29 20 63 68 69 6c 64 72 65 6e 29 29    29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d  | utes).children)))..(defun.esxml- | 
| 6200 |  74 72 65 65 2d 6d 61 70 20 28 66 75 6e 63 74 69    6f 6e 20 72 6f 6f 74 29 0a 20 20 22 52 65 74 75  | tree-map.(function.root)..."Retu | 
| 6220 |  72 6e 73 20 61 20 63 6f 70 79 20 6f 66 20 52 4f    4f 54 20 77 69 74 68 20 46 55 4e 43 54 49 4f 4e  | rns.a.copy.of.ROOT.with.FUNCTION | 
| 6240 |  20 61 70 70 6c 69 65 64 20 74 6f 20 65 61 63 68    20 6e 6f 64 65 2e 22 0a 20 20 28 69 66 20 28 65  | .applied.to.each.node."...(if.(e | 
| 6260 |  73 78 6d 6c 2d 62 72 61 6e 63 68 2d 70 20 72 6f    6f 74 29 0a 20 20 20 20 20 20 28 65 73 78 6d 6c  | sxml-branch-p.root).......(esxml | 
| 6280 |  2d 2d 6e 6f 64 65 2d 77 69 74 68 2d 63 68 69 6c    64 72 65 6e 0a 20 20 20 20 20 20 20 28 66 75 6e  | --node-with-children........(fun | 
| 62a0 |  63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 72 6f    6f 74 29 0a 20 20 20 20 20 20 20 28 6d 61 70 63  | call.function.root)........(mapc | 
| 62c0 |  61 72 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65    29 20 28 65 73 78 6d 6c 2d 74 72 65 65 2d 6d 61  | ar.(lambda.(node).(esxml-tree-ma | 
| 62e0 |  70 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p.function.node))............... | 
| 6300 |  20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 63 68 69    6c 64 72 65 6e 20 72 6f 6f 74 29 29 29 0a 20 20  | .(esxml-node-children.root)))... | 
| 6320 |  20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 74    69 6f 6e 20 72 6f 6f 74 29 29 29 0a 0a 28 64 65  | ..(funcall.function.root)))..(de | 
| 6340 |  66 76 61 72 20 65 73 78 6d 6c 2d 2d 73 79 6d 62    6f 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20  | fvar.esxml--symbol.(make-symbol. | 
| 6360 |  22 69 64 22 29 29 0a 0a 28 64 65 66 75 6e 20 65    73 78 6d 6c 2d 2d 64 65 63 6f 72 61 74 65 2d 74  | "id"))..(defun.esxml--decorate-t | 
| 6380 |  72 65 65 20 28 72 6f 6f 74 29 0a 20 20 28 6c 65    74 20 28 28 69 20 30 29 29 0a 20 20 20 20 28 65  | ree.(root)...(let.((i.0)).....(e | 
| 63a0 |  73 78 6d 6c 2d 74 72 65 65 2d 6d 61 70 0a 20 20    20 20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65  | sxml-tree-map......(lambda.(node | 
| 63c0 |  29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28    61 74 74 72 69 62 75 74 65 20 28 63 6f 6e 73 20  | )........(let.((attribute.(cons. | 
| 63e0 |  65 73 78 6d 6c 2d 2d 73 79 6d 62 6f 6c 20 69 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | esxml--symbol.i))..............( | 
| 6400 |  61 74 74 72 69 62 75 74 65 73 20 28 65 73 78 6d    6c 2d 6e 6f 64 65 2d 61 74 74 72 69 62 75 74 65  | attributes.(esxml-node-attribute | 
| 6420 |  73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 61 74 74 72 69 62 75  | s.node)))..........(setq.attribu | 
| 6440 |  74 65 73 20 28 61 70 70 65 6e 64 20 28 6c 69 73    74 20 61 74 74 72 69 62 75 74 65 29 20 61 74 74  | tes.(append.(list.attribute).att | 
| 6460 |  72 69 62 75 74 65 73 29 29 0a 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69  | ributes))..........(setq.i.(1+.i | 
| 6480 |  29 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20    28 65 73 78 6d 6c 2d 62 72 61 6e 63 68 2d 70 20  | ))..........(if.(esxml-branch-p. | 
| 64a0 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d  | node)..............(esxml--node- | 
| 64c0 |  77 69 74 68 2d 61 74 74 72 69 62 75 74 65 73 20    6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 73 29  | with-attributes.node.attributes) | 
| 64e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65    29 29 29 0a 20 20 20 20 20 72 6f 6f 74 29 29 29  | ............node)))......root))) | 
| 6500 |  0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d    75 6e 64 65 63 6f 72 61 74 65 2d 6e 6f 64 65 20  | ..(defun.esxml--undecorate-node. | 
| 6520 |  28 6e 6f 64 65 29 0a 20 20 28 69 66 20 28 65 73    78 6d 6c 2d 62 72 61 6e 63 68 2d 70 20 6e 6f 64  | (node)...(if.(esxml-branch-p.nod | 
| 6540 |  65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28    61 74 74 72 69 62 75 74 65 73 20 28 65 73 78 6d  | e).......(let.((attributes.(esxm | 
| 6560 |  6c 2d 6e 6f 64 65 2d 61 74 74 72 69 62 75 74 65    73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20  | l-node-attributes.node)))....... | 
| 6580 |  20 20 28 65 73 78 6d 6c 2d 2d 6e 6f 64 65 2d 77    69 74 68 2d 61 74 74 72 69 62 75 74 65 73 20 6e  | ..(esxml--node-with-attributes.n | 
| 65a0 |  6f 64 65 20 28 61 73 73 71 2d 64 65 6c 65 74 65    2d 61 6c 6c 20 65 73 78 6d 6c 2d 2d 73 79 6d 62  | ode.(assq-delete-all.esxml--symb | 
| 65c0 |  6f 6c 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  | ol.............................. | 
| 65e0 |  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 61 74  | ..............................at | 
| 6600 |  74 72 69 62 75 74 65 73 29 29 29 0a 20 20 20 20    6e 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 65  | tributes))).....node))..(defun.e | 
| 6620 |  73 78 6d 6c 2d 2d 72 65 74 72 69 65 76 65 2d 64    65 63 6f 72 61 74 69 6f 6e 20 28 6e 6f 64 65 29  | sxml--retrieve-decoration.(node) | 
| 6640 |  0a 20 20 28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 61    74 74 72 69 62 75 74 65 20 65 73 78 6d 6c 2d 2d  | ...(esxml-node-attribute.esxml-- | 
| 6660 |  73 79 6d 62 6f 6c 20 6e 6f 64 65 29 29 0a 0a 0c    0a 3b 3b 3b 20 71 75 65 72 79 69 6e 67 0a 0a 3b  | symbol.node))....;;;.querying..; | 
| 6680 |  3b 20 4e 4f 54 45 3a 20 73 75 70 70 6f 72 74 69    6e 67 20 73 74 72 75 63 74 75 72 61 6c 20 70 73  | ;.NOTE:.supporting.structural.ps | 
| 66a0 |  65 75 64 6f 20 66 75 6e 63 74 69 6f 6e 73 2c 20    64 69 72 65 63 74 20 73 69 62 6c 69 6e 67 73 20  | eudo.functions,.direct.siblings. | 
| 66c0 |  61 6e 64 0a 3b 3b 20 69 6e 64 69 72 65 63 74 20    73 69 62 6c 69 6e 67 73 20 72 65 71 75 69 72 65  | and.;;.indirect.siblings.require | 
| 66e0 |  73 20 62 72 65 61 64 74 68 20 69 6e 73 74 65 61    64 20 6f 66 20 64 65 70 74 68 20 74 72 61 76 65  | s.breadth.instead.of.depth.trave | 
| 6700 |  72 73 61 6c 2c 0a 3b 3b 20 73 6f 6d 65 74 68 69    6e 67 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65  | rsal,.;;.something.that.could.be | 
| 6720 |  20 65 6d 75 6c 61 74 65 64 20 77 69 74 68 6f 75    74 20 7a 69 70 70 65 72 73 20 69 66 20 79 6f 75  | .emulated.without.zippers.if.you | 
| 6740 |  20 68 61 64 20 74 68 65 0a 3b 3b 20 70 61 72 65    6e 74 20 6f 66 20 74 68 65 20 6e 6f 64 65 20 28  | .had.the.;;.parent.of.the.node.( | 
| 6760 |  61 6e 64 20 74 68 65 20 70 6f 73 69 74 69 6f 6e    20 6f 66 20 74 68 65 20 63 68 69 6c 64 29 2e 2e  | and.the.position.of.the.child).. | 
| 6780 |  2e 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d    2d 6e 6f 64 65 2d 6d 61 74 63 68 65 73 2d 61 74  | ...(defun.esxml--node-matches-at | 
| 67a0 |  74 72 69 62 75 74 65 2d 70 20 28 6e 6f 64 65 20    6d 6f 64 69 66 69 65 72 29 0a 20 20 28 6c 65 74  | tribute-p.(node.modifier)...(let | 
| 67c0 |  20 28 28 61 74 74 72 69 62 75 74 65 73 20 28 65    73 78 6d 6c 2d 6e 6f 64 65 2d 61 74 74 72 69 62  | .((attributes.(esxml-node-attrib | 
| 67e0 |  75 74 65 73 20 6e 6f 64 65 29 29 0a 20 20 20 20    20 20 20 20 68 61 79 73 74 61 63 6b 29 0a 20 20  | utes.node)).........haystack)... | 
| 6800 |  20 20 28 63 6c 2d 65 76 65 72 79 0a 20 20 20 20    20 28 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 0a  | ..(cl-every......(lambda.(item). | 
| 6820 |  20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 79    70 65 20 28 63 61 72 20 69 74 65 6d 29 29 0a 20  | .......(let.((type.(car.item)).. | 
| 6840 |  20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c    75 65 20 28 63 64 72 20 69 74 65 6d 29 29 29 0a  | ............(value.(cdr.item))). | 
| 6860 |  20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20    20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79  | .........(cond...........((eq.ty | 
| 6880 |  70 65 20 27 6e 61 6d 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 28 6c 65 74 20 28 28 6d 61 74 63  | pe.'name)............(let.((matc | 
| 68a0 |  68 20 28 61 73 73 71 20 28 69 6e 74 65 72 6e 20    76 61 6c 75 65 29 20 61 74 74 72 69 62 75 74 65  | h.(assq.(intern.value).attribute | 
| 68c0 |  73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 68 61 79 73 74 61 63 6b  | s)))..............(setq.haystack | 
| 68e0 |  20 28 63 64 72 20 6d 61 74 63 68 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68  | .(cdr.match))..............match | 
| 6900 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65    71 20 74 79 70 65 20 27 65 78 61 63 74 2d 6d 61  | ))...........((eq.type.'exact-ma | 
| 6920 |  74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 65 71 75 61 6c 20 68 61 79 73 74 61 63 6b 20  | tch)............(equal.haystack. | 
| 6940 |  76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 28 65 71 20 74 79 70 65 20 27 70 72 65  | value))...........((eq.type.'pre | 
| 6960 |  66 69 78 2d 6d 61 74 63 68 29 0a 20 20 20 20 20    20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72  | fix-match)............(string-pr | 
| 6980 |  65 66 69 78 2d 70 20 76 61 6c 75 65 20 68 61 79    73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20  | efix-p.value.haystack))......... | 
| 69a0 |  20 20 28 28 65 71 20 74 79 70 65 20 27 73 75 66    66 69 78 2d 6d 61 74 63 68 29 0a 20 20 20 20 20  | ..((eq.type.'suffix-match)...... | 
| 69c0 |  20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 73 75    66 66 69 78 2d 70 20 76 61 6c 75 65 20 68 61 79  | ......(string-suffix-p.value.hay | 
| 69e0 |  73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 28 65 71 20 74 79 70 65 20 27 73 75 62  | stack))...........((eq.type.'sub | 
| 6a00 |  73 74 72 69 6e 67 2d 6d 61 74 63 68 29 0a 20 20    20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67  | string-match)............(string | 
| 6a20 |  2d 6d 61 74 63 68 2d 70 20 28 72 65 67 65 78 70    2d 71 75 6f 74 65 20 76 61 6c 75 65 29 20 68 61  | -match-p.(regexp-quote.value).ha | 
| 6a40 |  79 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 20    20 20 20 28 28 65 71 20 74 79 70 65 20 27 69 6e  | ystack))...........((eq.type.'in | 
| 6a60 |  63 6c 75 64 65 2d 6d 61 74 63 68 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20  | clude-match)............(member. | 
| 6a80 |  76 61 6c 75 65 20 28 73 70 6c 69 74 2d 73 74 72    69 6e 67 20 68 61 79 73 74 61 63 6b 20 22 20 22  | value.(split-string.haystack."." | 
| 6aa0 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28    65 71 20 74 79 70 65 20 27 64 61 73 68 2d 6d 61  | )))...........((eq.type.'dash-ma | 
| 6ac0 |  74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 6f 72 20 28 65 71 75 61 6c 20 76 61 6c 75 65  | tch)............(or.(equal.value | 
| 6ae0 |  20 68 61 79 73 74 61 63 6b 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e  | .haystack)................(strin | 
| 6b00 |  67 2d 6d 61 74 63 68 2d 70 20 28 66 6f 72 6d 61    74 20 22 5e 25 73 2d 22 20 28 72 65 67 65 78 70  | g-match-p.(format."^%s-".(regexp | 
| 6b20 |  2d 71 75 6f 74 65 20 76 61 6c 75 65 29 29 20 68    61 79 73 74 61 63 6b 29 29 29 0a 20 20 20 20 20  | -quote.value)).haystack)))...... | 
| 6b40 |  20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22    55 6e 6b 6e 6f 77 6e 20 61 74 74 72 69 62 75 74  | .....(t.(error."Unknown.attribut | 
| 6b60 |  65 20 6d 6f 64 69 66 69 65 72 22 29 29 29 29 29    0a 20 20 20 20 20 6d 6f 64 69 66 69 65 72 29 29  | e.modifier")))))......modifier)) | 
| 6b80 |  29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d    2d 6e 6f 64 65 2d 6d 61 74 63 68 65 73 2d 6d 6f  | )..(defun.esxml--node-matches-mo | 
| 6ba0 |  64 69 66 69 65 72 2d 70 20 28 6e 6f 64 65 20 74    79 70 65 20 76 61 6c 75 65 29 0a 20 20 28 63 6f  | difier-p.(node.type.value)...(co | 
| 6bc0 |  6e 64 0a 20 20 20 28 28 65 71 20 74 79 70 65 20    27 77 69 6c 64 63 61 72 64 29 0a 20 20 20 20 74  | nd....((eq.type.'wildcard).....t | 
| 6be0 |  29 0a 20 20 20 28 28 65 71 20 74 79 70 65 20 27    74 61 67 29 0a 20 20 20 20 28 65 71 75 61 6c 20  | )....((eq.type.'tag).....(equal. | 
| 6c00 |  28 65 73 78 6d 6c 2d 6e 6f 64 65 2d 74 61 67 20    6e 6f 64 65 29 20 76 61 6c 75 65 29 29 0a 20 20  | (esxml-node-tag.node).value))... | 
| 6c20 |  20 28 28 65 71 20 74 79 70 65 20 27 69 64 29 0a    20 20 20 20 28 65 71 75 61 6c 20 28 65 73 78 6d  | .((eq.type.'id).....(equal.(esxm | 
| 6c40 |  6c 2d 6e 6f 64 65 2d 61 74 74 72 69 62 75 74 65    20 27 69 64 20 6e 6f 64 65 29 20 76 61 6c 75 65  | l-node-attribute.'id.node).value | 
| 6c60 |  29 29 0a 20 20 20 28 28 65 71 20 74 79 70 65 20    27 63 6c 61 73 73 29 0a 20 20 20 20 28 6c 65 74  | ))....((eq.type.'class).....(let | 
| 6c80 |  20 28 28 63 6c 61 73 73 20 28 65 73 78 6d 6c 2d    6e 6f 64 65 2d 61 74 74 72 69 62 75 74 65 20 27  | .((class.(esxml-node-attribute.' | 
| 6ca0 |  63 6c 61 73 73 20 6e 6f 64 65 29 29 29 0a 20 20    20 20 20 20 28 61 6e 64 20 63 6c 61 73 73 20 28  | class.node))).......(and.class.( | 
| 6cc0 |  6d 65 6d 62 65 72 20 76 61 6c 75 65 20 28 73 70    6c 69 74 2d 73 74 72 69 6e 67 20 63 6c 61 73 73  | member.value.(split-string.class | 
| 6ce0 |  20 22 20 22 29 29 29 29 29 0a 20 20 20 28 28 65    71 20 74 79 70 65 20 27 61 74 74 72 69 62 75 74  | .".")))))....((eq.type.'attribut | 
| 6d00 |  65 29 0a 20 20 20 20 28 65 73 78 6d 6c 2d 2d 6e    6f 64 65 2d 6d 61 74 63 68 65 73 2d 61 74 74 72  | e).....(esxml--node-matches-attr | 
| 6d20 |  69 62 75 74 65 2d 70 20 6e 6f 64 65 20 76 61 6c    75 65 29 29 0a 20 20 20 3b 3b 20 54 4f 44 4f 3a  | ibute-p.node.value))....;;.TODO: | 
| 6d40 |  20 73 75 70 70 6f 72 74 20 73 74 72 75 63 74 75    72 61 6c 20 70 73 65 75 64 6f 20 66 75 6e 63 74  | .support.structural.pseudo.funct | 
| 6d60 |  69 6f 6e 73 0a 20 20 20 3b 3b 20 54 4f 44 4f 3a    20 65 72 72 6f 72 20 6f 75 74 20 6f 6e 20 69 6e  | ions....;;.TODO:.error.out.on.in | 
| 6d80 |  76 61 6c 69 64 20 70 73 65 75 64 6f 2d 63 6c 61    73 73 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20  | valid.pseudo-class.arguments.... | 
| 6da0 |  28 74 20 28 65 72 72 6f 72 20 22 55 6e 69 6d 70    6c 65 6d 65 6e 74 65 64 20 61 74 74 72 69 62 75  | (t.(error."Unimplemented.attribu | 
| 6dc0 |  74 65 20 74 79 70 65 3a 20 25 73 22 20 74 79 70    65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73  | te.type:.%s".type))))..(defun.es | 
| 6de0 |  78 6d 6c 2d 2d 66 69 6e 64 2d 6e 6f 64 65 2d 66    6f 72 20 28 61 74 74 72 69 62 75 74 65 73 29 0a  | xml--find-node-for.(attributes). | 
| 6e00 |  20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29    0a 20 20 20 20 28 63 6c 2d 65 76 65 72 79 0a 20  | ..(lambda.(node).....(cl-every.. | 
| 6e20 |  20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 74 74    72 69 62 75 74 65 29 0a 20 20 20 20 20 20 20 28  | ....(lambda.(attribute)........( | 
| 6e40 |  6c 65 74 20 28 28 74 79 70 65 20 28 63 61 72 20    61 74 74 72 69 62 75 74 65 29 29 0a 20 20 20 20  | let.((type.(car.attribute))..... | 
| 6e60 |  20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20    28 63 64 72 20 61 74 74 72 69 62 75 74 65 29 29  | .........(value.(cdr.attribute)) | 
| 6e80 |  29 0a 20 20 20 20 20 20 20 20 20 28 65 73 78 6d    6c 2d 2d 6e 6f 64 65 2d 6d 61 74 63 68 65 73 2d  | )..........(esxml--node-matches- | 
| 6ea0 |  6d 6f 64 69 66 69 65 72 2d 70 20 6e 6f 64 65 20    74 79 70 65 20 76 61 6c 75 65 29 29 29 0a 20 20  | modifier-p.node.type.value)))... | 
| 6ec0 |  20 20 20 61 74 74 72 69 62 75 74 65 73 29 29 29    0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d  | ...attributes)))..(defun.esxml-- | 
| 6ee0 |  66 69 6e 64 2d 6e 6f 64 65 73 20 28 72 6f 6f 74    20 63 6f 6d 62 69 6e 61 74 6f 72 20 61 74 74 72  | find-nodes.(root.combinator.attr | 
| 6f00 |  69 62 75 74 65 73 29 0a 20 20 28 6c 65 74 2a 20    28 28 74 79 70 65 20 28 63 64 72 20 28 61 73 73  | ibutes)...(let*.((type.(cdr.(ass | 
| 6f20 |  71 20 27 63 6f 6d 62 69 6e 61 74 6f 72 20 63 6f    6d 62 69 6e 61 74 6f 72 29 29 29 0a 20 20 20 20  | q.'combinator.combinator)))..... | 
| 6f40 |  20 20 20 20 20 28 77 61 6c 6b 65 72 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....(walker.(cond.............. | 
| 6f60 |  20 20 20 20 28 28 6e 6f 74 20 74 79 70 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....((not.type)................. | 
| 6f80 |  20 20 27 65 73 78 6d 6c 2d 66 69 6e 64 2d 6e 6f    64 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ..'esxml-find-nodes)............ | 
| 6fa0 |  20 20 20 20 20 20 28 28 65 71 20 74 79 70 65 20    27 64 65 73 63 65 6e 64 61 6e 74 29 0a 20 20 20  | ......((eq.type.'descendant).... | 
| 6fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27    65 73 78 6d 6c 2d 66 69 6e 64 2d 64 65 73 63 65  | ...............'esxml-find-desce | 
| 6fe0 |  6e 64 61 6e 74 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 28 65 71 20 74 79  | ndants)..................((eq.ty | 
| 7000 |  70 65 20 27 63 68 69 6c 64 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 73  | pe.'child)...................'es | 
| 7020 |  78 6d 6c 2d 66 69 6e 64 2d 63 68 69 6c 64 72 65    6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | xml-find-children).............. | 
| 7040 |  20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 73 75 70    70 6f 72 74 20 64 69 72 65 63 74 20 73 69 62 6c  | ....;;.TODO:.support.direct.sibl | 
| 7060 |  69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 73 75  | ing..................;;.TODO:.su | 
| 7080 |  70 70 6f 72 74 20 69 6e 64 69 72 65 63 74 20 73    69 62 6c 69 6e 67 0a 20 20 20 20 20 20 20 20 20  | pport.indirect.sibling.......... | 
| 70a0 |  20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f    72 20 22 55 6e 69 6d 70 6c 65 6d 65 6e 74 65 64  | ........(t.(error."Unimplemented | 
| 70c0 |  20 63 6f 6d 62 69 6e 61 74 6f 72 20 25 73 22 20    63 6f 6d 62 69 6e 61 74 6f 72 29 29 29 29 29 0a  | .combinator.%s".combinator))))). | 
| 70e0 |  20 20 20 20 28 66 75 6e 63 61 6c 6c 20 77 61 6c    6b 65 72 20 28 65 73 78 6d 6c 2d 2d 66 69 6e 64  | ....(funcall.walker.(esxml--find | 
| 7100 |  2d 6e 6f 64 65 2d 66 6f 72 20 61 74 74 72 69 62    75 74 65 73 29 20 72 6f 6f 74 29 29 29 0a 0a 28  | -node-for.attributes).root)))..( | 
| 7120 |  64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 71 75 65    72 79 20 28 73 65 6c 65 63 74 6f 72 20 72 6f 6f  | defun.esxml--query.(selector.roo | 
| 7140 |  74 29 0a 20 20 28 6c 65 74 2a 20 28 28 61 74 74    72 69 62 75 74 65 73 20 28 70 6f 70 20 73 65 6c  | t)...(let*.((attributes.(pop.sel | 
| 7160 |  65 63 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20    20 63 6f 6d 62 69 6e 61 74 6f 72 0a 20 20 20 20  | ector))..........combinator..... | 
| 7180 |  20 20 20 20 20 28 72 65 73 75 6c 74 20 28 65 73    78 6d 6c 2d 2d 66 69 6e 64 2d 6e 6f 64 65 73 20  | .....(result.(esxml--find-nodes. | 
| 71a0 |  72 6f 6f 74 20 6e 69 6c 20 61 74 74 72 69 62 75    74 65 73 29 29 29 0a 20 20 20 20 28 77 68 69 6c  | root.nil.attributes))).....(whil | 
| 71c0 |  65 20 28 61 6e 64 20 72 65 73 75 6c 74 20 73 65    6c 65 63 74 6f 72 29 0a 20 20 20 20 20 20 28 73  | e.(and.result.selector).......(s | 
| 71e0 |  65 74 71 20 63 6f 6d 62 69 6e 61 74 6f 72 20 28    70 6f 70 20 73 65 6c 65 63 74 6f 72 29 29 0a 20  | etq.combinator.(pop.selector)).. | 
| 7200 |  20 20 20 20 20 28 73 65 74 71 20 61 74 74 72 69    62 75 74 65 73 20 28 70 6f 70 20 73 65 6c 65 63  | .....(setq.attributes.(pop.selec | 
| 7220 |  74 6f 72 29 29 0a 20 20 20 20 20 20 28 73 65 74    71 20 72 65 73 75 6c 74 20 28 63 6c 2d 6d 61 70  | tor)).......(setq.result.(cl-map | 
| 7240 |  63 61 6e 0a 20 20 20 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  | can.....................(lambda. | 
| 7260 |  28 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 73  | (node).......................(es | 
| 7280 |  78 6d 6c 2d 2d 66 69 6e 64 2d 6e 6f 64 65 73 20    6e 6f 64 65 20 63 6f 6d 62 69 6e 61 74 6f 72 20  | xml--find-nodes.node.combinator. | 
| 72a0 |  61 74 74 72 69 62 75 74 65 73 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | attributes)).................... | 
| 72c0 |  20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20    28 73 65 74 71 20 72 65 73 75 6c 74 20 28 64 65  | .result)).......(setq.result.(de | 
| 72e0 |  6c 71 20 6e 69 6c 20 72 65 73 75 6c 74 29 29 29    0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28  | lq.nil.result))).....result))..( | 
| 7300 |  64 65 66 75 6e 20 65 73 78 6d 6c 2d 2d 64 65 6c    65 74 65 2d 64 75 70 73 20 28 69 74 65 6d 73 20  | defun.esxml--delete-dups.(items. | 
| 7320 |  74 65 73 74 29 0a 20 20 28 6c 65 74 20 28 28 73    65 65 6e 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74  | test)...(let.((seen.(make-hash-t | 
| 7340 |  61 62 6c 65 20 3a 74 65 73 74 20 74 65 73 74 29    29 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74  | able.:test.test)).........result | 
| 7360 |  29 0a 20 20 20 20 28 77 68 69 6c 65 20 69 74 65    6d 73 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28  | ).....(while.items.......(let.(( | 
| 7380 |  69 74 65 6d 20 28 70 6f 70 20 69 74 65 6d 73 29    29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e  | item.(pop.items))).........(when | 
| 73a0 |  20 28 6e 6f 74 20 28 67 65 74 68 61 73 68 20 69    74 65 6d 20 73 65 65 6e 29 29 0a 20 20 20 20 20  | .(not.(gethash.item.seen))...... | 
| 73c0 |  20 20 20 20 20 28 70 75 73 68 20 69 74 65 6d 20    72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20  | .....(push.item.result)......... | 
| 73e0 |  20 20 28 70 75 74 68 61 73 68 20 69 74 65 6d 20    74 20 73 65 65 6e 29 29 29 29 0a 20 20 20 20 28  | ..(puthash.item.t.seen)))).....( | 
| 7400 |  6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29    29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c  | nreverse.result)))..(defun.esxml | 
| 7420 |  2d 71 75 65 72 79 2d 61 6c 6c 20 28 73 65 6c 65    63 74 6f 72 20 72 6f 6f 74 29 0a 20 20 22 4c 6f  | -query-all.(selector.root)..."Lo | 
| 7440 |  63 61 74 65 73 20 61 6c 6c 20 6e 6f 64 65 73 20    73 61 74 69 73 66 79 69 6e 67 20 53 45 4c 45 43  | cates.all.nodes.satisfying.SELEC | 
| 7460 |  54 4f 52 20 73 74 61 72 74 69 6e 67 20 66 72 6f    6d 20 52 4f 4f 54 2e 0a 53 45 4c 45 43 54 4f 52  | TOR.starting.from.ROOT..SELECTOR | 
| 7480 |  20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e    67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 43  | .must.be.a.string.containing.a.C | 
| 74a0 |  53 53 20 73 65 6c 65 63 74 6f 72 20 6f 72 20 61    20 70 61 72 73 65 64 0a 43 53 53 20 73 65 6c 65  | SS.selector.or.a.parsed.CSS.sele | 
| 74c0 |  63 74 6f 72 20 72 65 74 75 72 6e 65 64 20 62 79    20 60 65 73 78 6d 6c 2d 70 61 72 73 65 2d 63 73  | ctor.returned.by.`esxml-parse-cs | 
| 74e0 |  73 2d 73 65 6c 65 63 74 6f 72 27 2e 20 20 52 65    74 75 72 6e 73 20 61 0a 6c 69 73 74 20 6f 66 20  | s-selector'...Returns.a.list.of. | 
| 7500 |  74 68 65 20 6e 6f 64 65 73 20 6f 72 20 6e 69 6c    20 69 66 20 6e 6f 6e 65 20 66 6f 75 6e 64 2e 22  | the.nodes.or.nil.if.none.found." | 
| 7520 |  0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67    70 20 73 65 6c 65 63 74 6f 72 29 0a 20 20 20 20  | ...(when.(stringp.selector)..... | 
| 7540 |  28 73 65 74 71 20 73 65 6c 65 63 74 6f 72 20 28    65 73 78 6d 6c 2d 70 61 72 73 65 2d 63 73 73 2d  | (setq.selector.(esxml-parse-css- | 
| 7560 |  73 65 6c 65 63 74 6f 72 20 73 65 6c 65 63 74 6f    72 29 29 29 0a 20 20 28 69 66 20 28 3d 20 28 6c  | selector.selector)))...(if.(=.(l | 
| 7580 |  65 6e 67 74 68 20 73 65 6c 65 63 74 6f 72 29 20    31 29 0a 20 20 20 20 20 20 3b 3b 20 6e 6f 20 63  | ength.selector).1).......;;.no.c | 
| 75a0 |  6f 6d 6d 61 73 2c 20 77 65 20 63 61 6e 20 6f 6e    6c 79 20 67 65 74 20 74 68 65 20 73 61 6d 65 20  | ommas,.we.can.only.get.the.same. | 
| 75c0 |  6e 6f 64 65 73 20 72 65 70 65 61 74 65 64 6c 79    0a 20 20 20 20 20 20 28 65 73 78 6d 6c 2d 2d 64  | nodes.repeatedly.......(esxml--d | 
| 75e0 |  65 6c 65 74 65 2d 64 75 70 73 20 28 65 73 78 6d    6c 2d 2d 71 75 65 72 79 20 28 63 61 72 20 73 65  | elete-dups.(esxml--query.(car.se | 
| 7600 |  6c 65 63 74 6f 72 29 20 72 6f 6f 74 29 20 27 65    71 29 0a 20 20 20 20 3b 3b 20 63 6f 6d 6d 61 73  | lector).root).'eq).....;;.commas | 
| 7620 |  2c 20 6e 6f 64 65 73 20 6d 69 67 68 74 20 62 65    20 74 68 65 20 73 61 6d 65 20 2a 61 6e 64 2a 20  | ,.nodes.might.be.the.same.*and*. | 
| 7640 |  69 6e 20 74 68 65 20 77 72 6f 6e 67 20 6f 72 64    65 72 0a 20 20 20 20 28 73 65 74 71 20 72 6f 6f  | in.the.wrong.order.....(setq.roo | 
| 7660 |  74 20 28 65 73 78 6d 6c 2d 2d 64 65 63 6f 72 61    74 65 2d 74 72 65 65 20 72 6f 6f 74 29 29 0a 20  | t.(esxml--decorate-tree.root)).. | 
| 7680 |  20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29    0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 73 65  | ...(let.(result).......(while.se | 
| 76a0 |  6c 65 63 74 6f 72 0a 20 20 20 20 20 20 20 20 28    73 65 74 71 20 72 65 73 75 6c 74 20 28 6e 63 6f  | lector.........(setq.result.(nco | 
| 76c0 |  6e 63 20 72 65 73 75 6c 74 20 28 65 73 78 6d 6c    2d 2d 71 75 65 72 79 20 28 70 6f 70 20 73 65 6c  | nc.result.(esxml--query.(pop.sel | 
| 76e0 |  65 63 74 6f 72 29 20 72 6f 6f 74 29 29 29 29 0a    20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75  | ector).root)))).......(setq.resu | 
| 7700 |  6c 74 20 28 63 6c 2d 73 6f 72 74 20 72 65 73 75    6c 74 20 27 3c 20 3a 6b 65 79 20 27 65 73 78 6d  | lt.(cl-sort.result.'<.:key.'esxm | 
| 7720 |  6c 2d 2d 72 65 74 72 69 65 76 65 2d 64 65 63 6f    72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 28  | l--retrieve-decoration)).......( | 
| 7740 |  73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6c 2d    64 65 6c 65 74 65 2d 64 75 70 6c 69 63 61 74 65  | setq.result.(cl-delete-duplicate | 
| 7760 |  73 20 72 65 73 75 6c 74 20 3a 74 65 73 74 20 27    3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.result.:test.'=............... | 
| 7780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20  | ...........................:key. | 
| 77a0 |  27 65 73 78 6d 6c 2d 2d 72 65 74 72 69 65 76 65    2d 64 65 63 6f 72 61 74 69 6f 6e 29 29 0a 20 20  | 'esxml--retrieve-decoration))... | 
| 77c0 |  20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d    62 64 61 20 28 6e 6f 64 65 29 20 28 65 73 78 6d  | ....(mapcar.(lambda.(node).(esxm | 
| 77e0 |  6c 2d 2d 75 6e 64 65 63 6f 72 61 74 65 2d 6e 6f    64 65 20 6e 6f 64 65 29 29 20 72 65 73 75 6c 74  | l--undecorate-node.node)).result | 
| 7800 |  29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78    6d 6c 2d 71 75 65 72 79 20 28 73 65 6c 65 63 74  | ))))..(defun.esxml-query.(select | 
| 7820 |  6f 72 20 72 6f 6f 74 29 0a 20 20 22 4c 6f 63 61    74 65 73 20 61 20 6e 6f 64 65 20 73 61 74 69 73  | or.root)..."Locates.a.node.satis | 
| 7840 |  66 79 69 6e 67 20 53 45 4c 45 43 54 4f 52 20 73    74 61 72 74 69 6e 67 20 66 72 6f 6d 20 52 4f 4f  | fying.SELECTOR.starting.from.ROO | 
| 7860 |  54 2e 0a 53 45 4c 45 43 54 4f 52 20 6d 75 73 74    20 62 65 20 61 20 73 74 72 69 6e 67 20 63 6f 6e  | T..SELECTOR.must.be.a.string.con | 
| 7880 |  74 61 69 6e 69 6e 67 20 61 20 43 53 53 20 73 65    6c 65 63 74 6f 72 20 6f 72 20 61 20 70 61 72 73  | taining.a.CSS.selector.or.a.pars | 
| 78a0 |  65 64 0a 43 53 53 20 73 65 6c 65 63 74 6f 72 20    72 65 74 75 72 6e 65 64 20 62 79 20 60 65 73 78  | ed.CSS.selector.returned.by.`esx | 
| 78c0 |  6d 6c 2d 70 61 72 73 65 2d 63 73 73 2d 73 65 6c    65 63 74 6f 72 27 2e 20 20 52 65 74 75 72 6e 73  | ml-parse-css-selector'...Returns | 
| 78e0 |  20 74 68 65 0a 6e 6f 64 65 20 6f 72 20 6e 69 6c    20 69 66 20 6e 6f 6e 65 20 66 6f 75 6e 64 2e 22  | .the.node.or.nil.if.none.found." | 
| 7900 |  0a 20 20 3b 3b 20 4e 4f 54 45 3a 20 79 6f 75 20    63 61 6e 20 64 6f 20 61 20 62 69 74 20 6c 65 73  | ...;;.NOTE:.you.can.do.a.bit.les | 
| 7920 |  73 20 77 6f 72 6b 20 28 74 68 65 20 73 61 76 69    6e 67 73 20 64 65 63 72 65 61 73 65 20 74 68 65  | s.work.(the.savings.decrease.the | 
| 7940 |  20 6d 6f 72 65 0a 20 20 3b 3b 20 62 72 61 6e 63    68 65 73 20 74 68 65 20 71 75 65 72 79 20 64 69  | .more...;;.branches.the.query.di | 
| 7960 |  73 63 61 72 64 73 29 2c 20 62 75 74 20 69 74 27    73 20 73 69 6d 70 6c 65 72 20 61 6e 64 20 73 61  | scards),.but.it's.simpler.and.sa | 
| 7980 |  66 65 72 20 74 6f 20 6a 75 73 74 0a 20 20 3b 3b    20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 61  | fer.to.just...;;.have.the.same.a | 
| 79a0 |  6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 62 6f 74    68 20 65 6e 74 72 79 20 70 6f 69 6e 74 73 0a 20  | lgorithm.for.both.entry.points.. | 
| 79c0 |  20 28 63 61 72 20 28 65 73 78 6d 6c 2d 71 75 65    72 79 2d 61 6c 6c 20 73 65 6c 65 63 74 6f 72 20  | .(car.(esxml-query-all.selector. | 
| 79e0 |  72 6f 6f 74 29 29 29 0a 0a 28 70 72 6f 76 69 64    65 20 27 65 73 78 6d 6c 2d 71 75 65 72 79 29 0a  | root)))..(provide.'esxml-query). | 
| 7a00 |  3b 3b 3b 20 65 73 78 6d 6c 2d 71 75 65 72 79 2e    65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00  | ;;;.esxml-query.el.ends.here.... | 
| 7a20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7a60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7a80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7b00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7b20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7c00 |  65 73 78 6d 6c 2d 32 30 32 35 30 34 32 31 2e 31    36 33 32 2f 65 73 78 6d 6c 2e 65 6c 00 00 00 00  | esxml-20250421.1632/esxml.el.... | 
| 7c20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7c40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7c60 |  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 | 
| 7c80 |  30 30 32 34 32 37 35 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 36 32 30 00 20 30 00 00 00  | 0024275.00000000000.013620..0... | 
| 7ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7d00 |  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................... | 
| 7d20 |  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................... | 
| 7d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7e00 |  3b 3b 3b 20 65 73 78 6d 6c 2e 65 6c 20 2d 2d 2d    20 4c 69 62 72 61 72 79 20 66 6f 72 20 77 6f 72  | ;;;.esxml.el.---.Library.for.wor | 
| 7e20 |  6b 69 6e 67 20 77 69 74 68 20 78 6d 6c 20 76 69    61 20 65 73 78 6d 6c 20 61 6e 64 20 73 78 6d 6c  | king.with.xml.via.esxml.and.sxml | 
| 7e40 |  0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43    29 20 32 30 31 32 0a 0a 3b 3b 20 41 75 74 68 6f  | .;;.Copyright.(C).2012..;;.Autho | 
| 7e60 |  72 3a 20 56 61 6e 79 61 20 49 7a 61 6b 73 6f 6e    61 73 2d 53 6d 69 74 68 20 3c 69 7a 61 6b 30 30  | r:.Vanya.Izaksonas-Smith.<izak00 | 
| 7e80 |  30 32 20 61 74 20 75 6d 6e 20 64 6f 74 20 65 64    75 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72  | 02.at.umn.dot.edu>.;;.Maintainer | 
| 7ea0 |  3a 20 56 61 6e 79 61 20 49 7a 61 6b 73 6f 6e 61    73 2d 53 6d 69 74 68 0a 3b 3b 20 55 52 4c 3a 20  | :.Vanya.Izaksonas-Smith.;;.URL:. | 
| 7ec0 |  68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63    6f 6d 2f 74 61 6c 69 37 31 33 2f 65 73 78 6d 6c  | https://github.com/tali713/esxml | 
| 7ee0 |  0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 31 35 74    68 20 41 75 67 75 73 74 20 32 30 31 32 0a 3b 3b  | .;;.Created:.15th.August.2012.;; | 
| 7f00 |  20 50 61 63 6b 61 67 65 2d 56 65 72 73 69 6f 6e    3a 20 32 30 32 35 30 34 32 31 2e 31 36 33 32 0a  | .Package-Version:.20250421.1632. | 
| 7f20 |  3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 69 73    69 6f 6e 3a 20 61 66 66 61 64 61 31 34 33 66 65  | ;;.Package-Revision:.affada143fe | 
| 7f40 |  64 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71    75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22  | d.;;.Package-Requires:.((emacs." | 
| 7f60 |  32 34 2e 31 22 29 20 28 63 6c 2d 6c 69 62 20 22    30 2e 35 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72  | 24.1").(cl-lib."0.5")).;;.Keywor | 
| 7f80 |  64 73 3a 20 74 6f 6f 6c 73 2c 20 6c 69 73 70 2c    20 63 6f 6d 6d 0a 3b 3b 20 44 65 73 63 72 69 70  | ds:.tools,.lisp,.comm.;;.Descrip | 
| 7fa0 |  74 69 6f 6e 3a 20 41 20 6c 69 62 72 61 72 79 20    66 6f 72 20 65 61 73 69 6c 79 20 67 65 6e 65 72  | tion:.A.library.for.easily.gener | 
| 7fc0 |  61 74 69 6e 67 20 58 4d 4c 2f 58 48 54 4d 4c 20    69 6e 20 65 6c 69 73 70 0a 3b 3b 0a 3b 3b 20 54  | ating.XML/XHTML.in.elisp.;;.;;.T | 
| 7fe0 |  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 61 72 65 3b 20 79 6f  | his.program.is.free.software;.yo | 
| 8000 |  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 2f 6f 72 20 6d 6f 64  | u.can.redistribute.it.and/or.mod | 
| 8020 |  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 20 6f 66 20 74 68 65  | ify.;;.it.under.the.terms.of.the | 
| 8040 |  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 20 61 73 20 70  | .GNU.General.Public.License.as.p | 
| 8060 |  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 6f 66 74 77 61 72 65  | ublished.by.;;.the.Free.Software | 
| 8080 |  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 6f 6e 20 33 20 6f 66  | .Foundation,.either.version.3.of | 
| 80a0 |  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 6f 75 72 20 6f 70 74  | .the.License,.or.;;.(at.your.opt | 
| 80c0 |  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 3b 3b 20 54 68 69 73  | ion).any.later.version...;;.This | 
| 80e0 |  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 6e 20 74 68 65 20 68  | .program.is.distributed.in.the.h | 
| 8100 |  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 6c 2c 0a 3b 3b 20 62  | ope.that.it.will.be.useful,.;;.b | 
| 8120 |  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 77 69 74 68 6f 75 74  | ut.WITHOUT.ANY.WARRANTY;.without | 
| 8140 |  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 79 20 6f 66 0a 3b 3b  | .even.the.implied.warranty.of.;; | 
| 8160 |  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 53 53 20 46 4f 52 20  | .MERCHANTABILITY.or.FITNESS.FOR. | 
| 8180 |  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 65 20 74 68 65 0a 3b  | A.PARTICULAR.PURPOSE...See.the.; | 
| 81a0 |  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 6e 73 65 20 66 6f 72  | ;.GNU.General.Public.License.for | 
| 81c0 |  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 6f 75 6c 64 20 68 61  | .more.details...;;.You.should.ha | 
| 81e0 |  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 20 47 4e 55 20 47 65  | ve.received.a.copy.of.the.GNU.Ge | 
| 8200 |  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 6c 6f 6e 67 20 77 69  | neral.Public.License.;;.along.wi | 
| 8220 |  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 20 73 65 65 20 3c 68  | th.this.program...If.not,.see.<h | 
| 8240 |  74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72    67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b  | ttp://www.gnu.org/licenses/>...; | 
| 8260 |  3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a    3b 3b 20 54 68 69 73 20 69 73 20 58 4d 4c 2f 58  | ;;.Commentary:..;;.This.is.XML/X | 
| 8280 |  48 54 4d 4c 20 64 6f 6e 65 20 77 69 74 68 20 53    2d 45 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20  | HTML.done.with.S-Expressions.in. | 
| 82a0 |  45 6d 61 63 73 4c 69 73 70 2e 20 20 53 69 6d 70    6c 79 2c 0a 3b 3b 20 74 68 69 73 20 69 73 20 74  | EmacsLisp...Simply,.;;.this.is.t | 
| 82c0 |  68 65 20 65 61 73 69 65 73 74 20 77 61 79 20 74    6f 20 77 72 69 74 65 20 48 54 4d 4c 20 6f 72 20  | he.easiest.way.to.write.HTML.or. | 
| 82e0 |  58 4d 4c 20 69 6e 20 4c 69 73 70 2e 0a 3b 3b 0a    3b 3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 20  | XML.in.Lisp..;;.;;.This.library. | 
| 8300 |  75 73 65 73 20 74 68 65 20 6e 61 74 69 76 65 20    66 6f 72 6d 20 6f 66 20 58 4d 4c 20 72 65 70 72  | uses.the.native.form.of.XML.repr | 
| 8320 |  65 73 65 6e 74 61 74 69 6f 6e 20 61 73 20 75 73    65 64 20 62 79 0a 3b 3b 20 6d 61 6e 79 20 6c 69  | esentation.as.used.by.;;.many.li | 
| 8340 |  62 72 61 72 69 65 73 20 61 6c 72 65 61 64 79 20    69 6e 63 6c 75 64 65 64 20 77 69 74 68 69 6e 20  | braries.already.included.within. | 
| 8360 |  65 6d 61 63 73 2e 20 20 54 68 69 73 20 72 65 70    72 65 73 65 6e 74 61 74 69 6f 6e 0a 3b 3b 20 77  | emacs...This.representation.;;.w | 
| 8380 |  69 6c 6c 20 62 65 20 72 65 66 65 72 72 65 64 20    74 6f 20 61 73 20 22 65 73 78 6d 6c 22 20 74 68  | ill.be.referred.to.as."esxml".th | 
| 83a0 |  72 6f 75 67 68 6f 75 74 20 74 68 69 73 20 6c 69    62 72 61 72 79 2e 20 20 53 65 65 0a 3b 3b 20 60  | roughout.this.library...See.;;.` | 
| 83c0 |  65 73 78 6d 6c 2d 74 6f 2d 78 6d 6c 27 20 66 6f    72 20 61 20 63 6f 6e 63 69 73 65 20 64 65 73 63  | esxml-to-xml'.for.a.concise.desc | 
| 83e0 |  72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 66    6f 72 6d 61 74 2e 0a 3b 3b 0a 3b 3b 20 54 68 69  | ription.of.the.format..;;.;;.Thi | 
| 8400 |  73 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 74    20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20  | s.library.is.not.intended.to.be. | 
| 8420 |  75 73 65 64 20 64 69 72 65 63 74 6c 79 20 62 79    20 61 20 75 73 65 72 2c 20 74 68 6f 75 67 68 0a  | used.directly.by.a.user,.though. | 
| 8440 |  3b 3b 20 69 74 20 63 65 72 74 61 69 6e 6c 79 20    63 6f 75 6c 64 20 62 65 2e 20 20 49 74 20 63 6f  | ;;.it.certainly.could.be...It.co | 
| 8460 |  75 6c 64 20 62 65 20 75 73 65 64 20 74 6f 20 67    65 6e 65 72 61 74 65 20 73 74 61 74 69 63 20 68  | uld.be.used.to.generate.static.h | 
| 8480 |  74 6d 6c 2c 0a 3b 3b 20 6f 72 20 75 73 65 20 61    20 6c 69 62 72 61 72 79 20 6c 69 6b 65 20 60 65  | tml,.;;.or.use.a.library.like.`e | 
| 84a0 |  6c 6e 6f 64 65 27 20 74 6f 20 73 65 72 76 65 20    64 79 6e 61 6d 69 63 20 70 61 67 65 73 2e 20 20  | lnode'.to.serve.dynamic.pages... | 
| 84c0 |  4f 72 20 65 76 65 6e 20 74 6f 0a 3b 3b 20 65 78    74 72 61 63 74 20 61 20 66 6f 72 6d 20 66 72 6f  | Or.even.to.;;.extract.a.form.fro | 
| 84e0 |  6d 20 61 20 73 69 74 65 20 74 6f 20 70 72 6f 64    75 63 65 20 61 6e 20 41 50 49 2e 0a 3b 3b 0a 3b  | m.a.site.to.produce.an.API..;;.; | 
| 8500 |  3b 20 54 4f 44 4f 3a 20 42 65 74 74 65 72 20 64    6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2c 20 6d 6f  | ;.TODO:.Better.documentation,.mo | 
| 8520 |  72 65 20 63 6f 6e 76 65 6e 69 65 6e 63 65 2e 0a    3b 3b 0a 3b 3b 20 4e 4f 54 49 43 45 3a 20 43 6f  | re.convenience..;;.;;.NOTICE:.Co | 
| 8540 |  64 65 20 62 61 73 65 20 77 69 6c 6c 20 62 65 20    74 72 61 6e 73 69 74 69 6f 6e 69 6e 67 20 74 6f  | de.base.will.be.transitioning.to | 
| 8560 |  20 75 73 69 6e 67 20 70 63 61 73 65 20 69 6e 73    74 65 61 64 20 6f 66 0a 3b 3b 20 64 65 73 74 72  | .using.pcase.instead.of.;;.destr | 
| 8580 |  75 63 74 75 72 69 6e 67 20 62 69 6e 64 20 77 68    65 72 65 76 65 72 20 70 6f 73 73 69 62 6c 65 2e  | ucturing.bind.wherever.possible. | 
| 85a0 |  20 20 49 66 20 74 68 69 73 20 6c 65 61 64 73 20    74 6f 20 68 61 72 64 20 74 6f 0a 3b 3b 20 64 65  | ..If.this.leads.to.hard.to.;;.de | 
| 85c0 |  62 75 67 20 63 6f 64 65 2c 20 70 6c 65 61 73 65    20 6c 65 74 20 6d 65 20 6b 6e 6f 77 2c 20 61 6e  | bug.code,.please.let.me.know,.an | 
| 85e0 |  64 20 49 20 77 69 6c 6c 20 64 6f 20 77 68 61 74    65 76 65 72 20 49 20 63 61 6e 20 74 6f 0a 3b 3b  | d.I.will.do.whatever.I.can.to.;; | 
| 8600 |  20 72 65 73 6f 6c 76 65 20 74 68 65 73 65 20 69    73 73 75 65 73 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f  | .resolve.these.issues..;;.;;;.Co | 
| 8620 |  64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c    2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27  | de:.(require.'cl-lib).(require.' | 
| 8640 |  78 6d 6c 29 0a 28 72 65 71 75 69 72 65 20 27 70    63 61 73 65 29 0a 0a 28 64 65 66 75 6e 20 73 74  | xml).(require.'pcase)..(defun.st | 
| 8660 |  72 69 6e 67 2d 74 72 69 6d 2d 77 68 69 74 65 73    70 61 63 65 20 28 73 74 72 69 6e 67 29 0a 20 20  | ring-trim-whitespace.(string)... | 
| 8680 |  22 41 20 73 69 6d 70 6c 65 20 66 75 6e 63 74 69    6f 6e 2c 20 73 74 72 69 70 73 20 74 68 65 20 77  | "A.simple.function,.strips.the.w | 
| 86a0 |  68 69 74 65 73 70 61 63 65 20 66 72 6f 6d 20 62    65 67 69 6e 6e 69 6e 67 20 61 6e 64 0a 65 6e 64  | hitespace.from.beginning.and.end | 
| 86c0 |  20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 2e 20    20 4c 65 61 76 65 73 20 61 6c 6c 20 6f 74 68 65  | .of.the.string...Leaves.all.othe | 
| 86e0 |  72 20 77 68 69 74 65 73 70 61 63 65 20 75 6e 74    6f 75 63 68 65 64 2e 22 0a 20 20 28 72 65 70 6c  | r.whitespace.untouched."...(repl | 
| 8700 |  61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74    72 69 6e 67 0a 20 20 20 28 72 78 20 73 74 72 69  | ace-regexp-in-string....(rx.stri | 
| 8720 |  6e 67 2d 73 74 61 72 74 20 28 2a 20 77 68 69 74    65 73 70 61 63 65 29 0a 20 20 20 20 20 20 20 28  | ng-start.(*.whitespace)........( | 
| 8740 |  67 72 6f 75 70 20 28 2b 3f 20 61 6e 79 74 68 69    6e 67 29 29 0a 20 20 20 20 20 20 20 28 2a 20 77  | group.(+?.anything))........(*.w | 
| 8760 |  68 69 74 65 73 70 61 63 65 29 20 73 74 72 69 6e    67 2d 65 6e 64 29 0a 20 20 20 22 5c 5c 31 22 0a  | hitespace).string-end)...."\\1". | 
| 8780 |  20 20 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65    66 75 6e 20 65 73 78 6d 6c 2d 74 72 69 6d 2d 77  | ...string))..(defun.esxml-trim-w | 
| 87a0 |  73 20 28 65 73 78 6d 6c 29 0a 20 20 22 54 68 69    73 20 6d 61 79 20 63 61 75 73 65 20 70 72 6f 62  | s.(esxml)..."This.may.cause.prob | 
| 87c0 |  6c 65 6d 73 2c 20 69 73 20 69 6e 74 65 6e 64 65    64 20 66 6f 72 20 70 61 72 73 69 6e 67 20 78 6d  | lems,.is.intended.for.parsing.xm | 
| 87e0 |  6c 20 69 6e 74 6f 20 73 78 6d 6c 0a 62 75 74 20    6d 61 79 20 65 72 6f 6e 65 6f 75 73 6c 79 20 64  | l.into.sxml.but.may.eroneously.d | 
| 8800 |  65 6c 65 74 65 20 64 65 73 69 72 61 62 6c 65 20    77 68 69 74 65 20 73 70 61 63 65 2e 22 0a 20 20  | elete.desirable.white.space."... | 
| 8820 |  28 69 66 20 28 73 74 72 69 6e 67 70 20 65 73 78    6d 6c 29 20 28 73 74 72 69 6e 67 2d 74 72 69 6d  | (if.(stringp.esxml).(string-trim | 
| 8840 |  2d 77 68 69 74 65 73 70 61 63 65 20 65 73 78 6d    6c 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65  | -whitespace.esxml).....(pcase-le | 
| 8860 |  74 20 28 28 60 28 2c 74 61 67 20 2c 61 74 74 72    73 20 2e 20 2c 62 6f 64 79 29 20 65 73 78 6d 6c  | t.((`(,tag.,attrs...,body).esxml | 
| 8880 |  29 29 0a 20 20 20 20 20 20 60 28 2c 74 61 67 20    2c 61 74 74 72 73 0a 20 20 20 20 20 20 20 20 20  | )).......`(,tag.,attrs.......... | 
| 88a0 |  20 20 20 20 2c 40 28 6d 61 70 63 61 72 20 27 65    73 78 6d 6c 2d 74 72 69 6d 2d 77 73 20 62 6f 64  | ....,@(mapcar.'esxml-trim-ws.bod | 
| 88c0 |  79 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61    74 74 72 70 20 28 61 74 74 72 29 0a 20 20 22 52  | y)))))..(defun.attrp.(attr)..."R | 
| 88e0 |  65 74 75 72 6e 73 20 74 20 69 66 20 61 74 74 72    20 69 73 20 61 20 61 6e 20 65 73 78 6d 6c 20 61  | eturns.t.if.attr.is.a.an.esxml.a | 
| 8900 |  74 74 72 69 62 75 74 65 2e 0a 41 6e 20 65 73 78    6d 6c 20 61 74 74 72 69 62 75 74 65 20 69 73 20  | ttribute..An.esxml.attribute.is. | 
| 8920 |  61 20 63 6f 6e 73 20 6f 66 20 74 68 65 20 66 6f    72 6d 20 28 73 79 6d 62 6f 6c 20 2e 20 73 74 72  | a.cons.of.the.form.(symbol...str | 
| 8940 |  69 6e 67 29 22 0a 20 28 61 6e 64 20 28 63 6f 6e    73 70 20 61 74 74 72 29 0a 20 20 20 20 20 20 20  | ing)"..(and.(consp.attr)........ | 
| 8960 |  28 73 79 6d 62 6f 6c 70 20 28 63 61 72 20 61 74    74 72 29 29 0a 20 20 20 20 20 20 20 28 73 74 72  | (symbolp.(car.attr))........(str | 
| 8980 |  69 6e 67 70 20 28 63 64 72 20 61 74 74 72 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c  | ingp.(cdr.attr))))..(defun.esxml | 
| 89a0 |  2d 2d 63 6f 6e 76 65 72 74 2d 70 61 69 72 20 28    61 74 74 72 29 0a 20 20 22 43 6f 6e 76 65 72 74  | --convert-pair.(attr)..."Convert | 
| 89c0 |  73 20 66 72 6f 6d 20 63 6f 6e 73 20 63 65 6c 6c    20 74 6f 20 61 74 74 72 69 62 75 74 65 20 70 61  | s.from.cons.cell.to.attribute.pa | 
| 89e0 |  69 72 2e 20 20 4e 6f 74 20 69 6e 74 65 6e 64 65    64 20 66 6f 72 0a 67 65 6e 65 72 61 6c 20 75 73  | ir...Not.intended.for.general.us | 
| 8a00 |  65 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74    20 28 28 60 28 2c 63 61 72 20 2e 20 2c 63 64 72  | e."...(pcase-let.((`(,car...,cdr | 
| 8a20 |  29 20 61 74 74 72 29 29 0a 20 20 20 20 28 63 6c    2d 63 68 65 63 6b 2d 74 79 70 65 20 63 64 72 20  | ).attr)).....(cl-check-type.cdr. | 
| 8a40 |  73 74 72 69 6e 67 29 0a 20 20 20 20 28 63 6f 6e    63 61 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65  | string).....(concat.(symbol-name | 
| 8a60 |  20 63 61 72 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 22 3d 22 0a 20 20 20 20 20 20 20 20 20 20  | .car)............."="........... | 
| 8a80 |  20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69    6e 67 20 28 78 6d 6c 2d 65 73 63 61 70 65 2d 73  | ..(prin1-to-string.(xml-escape-s | 
| 8aa0 |  74 72 69 6e 67 20 63 64 72 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 61 74 74 72 73 70 20 28 61  | tring.cdr)))))..(defun.attrsp.(a | 
| 8ac0 |  74 74 72 73 29 0a 20 20 20 20 22 52 65 74 75 72    6e 73 20 74 20 69 66 20 61 74 74 72 73 20 69 73  | ttrs)....."Returns.t.if.attrs.is | 
| 8ae0 |  20 61 20 6c 69 73 74 20 6f 66 20 65 73 78 6d 6c    20 61 74 74 72 69 62 75 74 65 73 2e 0a 0a 53 65  | .a.list.of.esxml.attributes...Se | 
| 8b00 |  65 3a 20 60 61 74 74 72 70 27 22 0a 20 20 28 61    6e 64 20 28 6c 69 73 74 70 20 61 74 74 72 73 29  | e:.`attrp'"...(and.(listp.attrs) | 
| 8b20 |  0a 20 20 20 20 20 20 20 28 63 6c 2d 65 76 65 72    79 20 28 6c 61 6d 62 64 61 20 28 61 74 74 72 29  | ........(cl-every.(lambda.(attr) | 
| 8b40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20  | ....................(and.(consp. | 
| 8b60 |  61 74 74 72 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 73  | attr).........................(s | 
| 8b80 |  79 6d 62 6f 6c 70 20 28 63 61 72 20 61 74 74 72    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ymbolp.(car.attr)).............. | 
| 8ba0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69    6e 67 70 20 28 63 64 72 20 61 74 74 72 29 29 29  | ...........(stringp.(cdr.attr))) | 
| 8bc0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 61 74 74 72 73 29 29 29 0a 0a 28 64 65  | )..................attrs)))..(de | 
| 8be0 |  66 75 6e 20 65 73 78 6d 6c 2d 76 61 6c 69 64 61    74 65 2d 66 6f 72 6d 20 28 65 73 78 6d 6c 29 0a  | fun.esxml-validate-form.(esxml). | 
| 8c00 |  20 20 22 41 20 66 61 73 74 20 65 73 78 6d 6c 20    76 61 6c 69 64 61 74 6f 72 2e 20 20 57 69 6c 6c  | .."A.fast.esxml.validator...Will | 
| 8c20 |  20 65 72 72 6f 72 20 6f 6e 20 69 6e 76 61 6c 69    64 20 73 75 62 70 61 72 74 73 20 6d 61 6b 69 6e  | .error.on.invalid.subparts.makin | 
| 8c40 |  67 0a 69 74 20 73 75 69 74 61 62 6c 65 20 66 6f    72 20 68 69 6e 64 73 69 67 68 74 20 74 65 73 74  | g.it.suitable.for.hindsight.test | 
| 8c60 |  69 6e 67 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28    73 74 72 69 6e 67 70 20 65 73 78 6d 6c 29 20 6e  | ing."...(cond.((stringp.esxml).n | 
| 8c80 |  69 6c 29 0a 20 20 20 20 20 20 20 20 28 28 3c 20    28 6c 65 6e 67 74 68 20 65 73 78 6d 6c 29 20 32  | il).........((<.(length.esxml).2 | 
| 8ca0 |  29 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f    72 20 22 25 73 20 69 73 20 74 6f 6f 20 73 68 6f  | )..........(error."%s.is.too.sho | 
| 8cc0 |  72 74 20 74 6f 20 62 65 20 61 20 76 61 6c 69 64    20 65 73 78 6d 6c 20 65 78 70 72 65 73 73 69 6f  | rt.to.be.a.valid.esxml.expressio | 
| 8ce0 |  6e 22 20 65 73 78 6d 6c 29 29 0a 20 20 20 20 20    20 20 20 28 74 20 28 70 63 61 73 65 2d 6c 65 74  | n".esxml)).........(t.(pcase-let | 
| 8d00 |  20 28 28 60 28 2c 74 61 67 20 2c 61 74 74 72 73    20 2e 20 2c 62 6f 64 79 29 20 65 73 78 6d 6c 29  | .((`(,tag.,attrs...,body).esxml) | 
| 8d20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6c 2d 63 68 65 63 6b 2d 74 79 70 65 20 74 61  | )..............(cl-check-type.ta | 
| 8d40 |  67 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 63 6c 2d 63 68 65 63 6b  | g.symbol)..............(cl-check | 
| 8d60 |  2d 74 79 70 65 20 61 74 74 72 73 20 61 74 74 72    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | -type.attrs.attrs).............. | 
| 8d80 |  28 6d 61 70 63 61 72 20 27 65 73 78 6d 6c 2d 76    61 6c 69 64 61 74 65 2d 66 6f 72 6d 20 62 6f 64  | (mapcar.'esxml-validate-form.bod | 
| 8da0 |  79 29 29 29 29 29 0a 0a 3b 3b 20 57 68 69 6c 65    20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63  | y)))))..;;.While.the.following.c | 
| 8dc0 |  6f 75 6c 64 20 63 65 72 74 61 69 6e 6c 79 20 68    61 76 65 20 62 65 65 6e 20 77 72 69 74 74 65 6e  | ould.certainly.have.been.written | 
| 8de0 |  20 75 73 69 6e 67 20 66 6f 72 6d 61 74 2c 0a 3b    3b 20 63 6f 6e 63 61 74 20 6d 61 6b 65 73 20 74  | .using.format,.;;.concat.makes.t | 
| 8e00 |  68 65 6d 20 65 61 73 69 65 72 20 74 6f 20 72 65    61 64 2e 20 20 55 70 64 61 74 65 20 6c 61 74 65  | hem.easier.to.read...Update.late | 
| 8e20 |  72 20 69 66 20 6e 65 63 63 65 73 61 72 79 20 66    6f 72 0a 3b 3b 20 65 66 66 69 63 69 65 6e 63 79  | r.if.neccesary.for.;;.efficiency | 
| 8e40 |  2e 0a 0a 3b 3b 20 54 68 6f 75 67 68 20 61 74 20    66 69 72 73 74 20 67 6c 61 6e 63 65 20 74 68 65  | ...;;.Though.at.first.glance.the | 
| 8e60 |  20 72 65 63 75 72 73 69 76 65 20 6e 61 74 75 72    65 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69  | .recursive.nature.of.this.functi | 
| 8e80 |  6f 6e 20 6d 69 67 68 74 0a 3b 3b 20 67 69 76 65    20 6f 6e 65 20 70 61 75 73 65 2c 20 73 69 6e 63  | on.might.;;.give.one.pause,.sinc | 
| 8ea0 |  65 20 78 6d 6c 20 69 73 20 61 20 72 65 63 75 72    73 69 76 65 20 64 61 74 61 20 74 79 70 65 2c 20  | e.xml.is.a.recursive.data.type,. | 
| 8ec0 |  61 20 72 65 63 75 72 73 69 76 65 0a 3b 3b 20 70    61 72 73 65 72 20 69 73 20 61 6e 20 6f 70 74 69  | a.recursive.;;.parser.is.an.opti | 
| 8ee0 |  6d 61 6c 20 73 74 72 61 74 65 67 79 2e 20 20 65    61 63 68 20 6e 6f 64 65 20 77 69 6c 6c 20 62 65  | mal.strategy...each.node.will.be | 
| 8f00 |  20 76 69 73 69 74 65 64 20 65 78 61 63 74 6c 79    0a 3b 3b 20 6f 6e 63 65 20 64 75 72 69 6e 67 20  | .visited.exactly.;;.once.during. | 
| 8f20 |  74 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69    6f 6e 2e 0a 3b 3b 0a 3b 3b 20 46 75 72 74 68 65  | the.transformation..;;.;;.Furthe | 
| 8f40 |  72 2c 20 73 69 6e 63 65 20 61 20 73 74 72 69 6e    67 20 69 73 20 61 20 74 65 72 6d 69 6e 61 6c 20  | r,.since.a.string.is.a.terminal. | 
| 8f60 |  6e 6f 64 65 20 61 6e 64 20 73 69 6e 63 65 20 78    6d 6c 20 63 61 6e 20 62 65 0a 3b 3b 20 72 65 70  | node.and.since.xml.can.be.;;.rep | 
| 8f80 |  72 65 73 65 6e 74 65 64 20 61 73 20 61 20 73 74    72 69 6e 67 2c 20 6e 6f 6e 20 64 79 6e 61 6d 69  | resented.as.a.string,.non.dynami | 
| 8fa0 |  63 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68    65 20 70 61 67 65 20 6d 61 79 20 62 65 0a 3b 3b  | c.portions.of.the.page.may.be.;; | 
| 8fc0 |  20 70 72 65 63 61 63 68 65 64 20 71 75 69 74 65    20 65 61 73 69 6c 79 2e 0a 28 64 65 66 75 6e 20  | .precached.quite.easily..(defun. | 
| 8fe0 |  65 73 78 6d 6c 2d 2d 74 6f 2d 78 6d 6c 2d 72 65    63 75 72 73 69 76 65 20 28 65 73 78 6d 6c 29 0a  | esxml--to-xml-recursive.(esxml). | 
| 9000 |  20 20 28 70 63 61 73 65 20 65 73 78 6d 6c 0a 20    20 20 20 28 28 70 72 65 64 20 73 74 72 69 6e 67  | ..(pcase.esxml.....((pred.string | 
| 9020 |  70 29 0a 20 20 20 20 20 28 78 6d 6c 2d 65 73 63    61 70 65 2d 73 74 72 69 6e 67 20 65 73 78 6d 6c  | p)......(xml-escape-string.esxml | 
| 9040 |  29 29 0a 20 20 20 20 28 60 28 72 61 77 2d 73 74    72 69 6e 67 20 2c 73 74 72 69 6e 67 29 0a 20 20  | )).....(`(raw-string.,string)... | 
| 9060 |  20 20 20 28 63 6c 2d 63 68 65 63 6b 2d 74 79 70    65 20 73 74 72 69 6e 67 20 73 74 72 69 6e 67 70  | ...(cl-check-type.string.stringp | 
| 9080 |  29 0a 20 20 20 20 20 73 74 72 69 6e 67 29 0a 20    20 20 20 28 60 28 63 6f 6d 6d 65 6e 74 20 6e 69  | )......string).....(`(comment.ni | 
| 90a0 |  6c 20 2c 62 6f 64 79 29 0a 20 20 20 20 20 28 63    6f 6e 63 61 74 20 22 3c 21 2d 2d 20 22 20 62 6f  | l.,body)......(concat."<!--.".bo | 
| 90c0 |  64 79 20 22 20 2d 2d 3e 22 29 29 0a 20 20 20 20    28 60 28 2c 74 61 67 20 2c 61 74 74 72 73 20 2e  | dy.".-->")).....(`(,tag.,attrs.. | 
| 90e0 |  20 2c 62 6f 64 79 29 0a 20 20 20 20 20 3b 3b 20    63 6f 64 65 20 67 6f 65 73 20 68 65 72 65 20 74  | .,body)......;;.code.goes.here.t | 
| 9100 |  6f 20 63 61 74 63 68 20 69 6e 76 61 6c 69 64 20    64 61 74 61 2e 0a 20 20 20 20 20 28 63 6f 6e 63  | o.catch.invalid.data.......(conc | 
| 9120 |  61 74 20 22 3c 22 20 28 73 79 6d 62 6f 6c 2d 6e    61 6d 65 20 74 61 67 29 0a 20 20 20 20 20 20 20  | at."<".(symbol-name.tag)........ | 
| 9140 |  20 20 20 20 20 20 28 77 68 65 6e 20 61 74 74 72    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......(when.attrs............... | 
| 9160 |  20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d 61    70 63 6f 6e 63 61 74 20 27 65 73 78 6d 6c 2d 2d  | .(concat.".".(mapconcat.'esxml-- | 
| 9180 |  63 6f 6e 76 65 72 74 2d 70 61 69 72 20 61 74 74    72 73 20 22 20 22 29 29 29 0a 20 20 20 20 20 20  | convert-pair.attrs.".")))....... | 
| 91a0 |  20 20 20 20 20 20 20 28 69 66 20 62 6f 64 79 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......(if.body................. | 
| 91c0 |  20 28 63 6f 6e 63 61 74 20 22 3e 22 20 28 6d 61    70 63 6f 6e 63 61 74 20 27 65 73 78 6d 6c 2d 2d  | .(concat.">".(mapconcat.'esxml-- | 
| 91e0 |  74 6f 2d 78 6d 6c 2d 72 65 63 75 72 73 69 76 65    20 62 6f 64 79 20 22 22 29 0a 20 20 20 20 20 20  | to-xml-recursive.body."")....... | 
| 9200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 22 3c 2f 22 20 28 73 79 6d 62 6f 6c 2d  | ..................."</".(symbol- | 
| 9220 |  6e 61 6d 65 20 74 61 67 29 20 22 3e 22 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2f  | name.tag).">")................"/ | 
| 9240 |  3e 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    65 73 78 6d 6c 2d 74 6f 2d 78 6d 6c 20 28 65 73  | >")))))..(defun.esxml-to-xml.(es | 
| 9260 |  78 6d 6c 29 0a 20 20 22 54 68 69 73 20 74 72 61    6e 73 6c 61 74 65 73 20 61 6e 20 65 73 78 6d 6c  | xml)..."This.translates.an.esxml | 
| 9280 |  20 65 78 70 72 65 73 73 69 6f 6e 2c 20 69 2e 65    2e 20 74 68 61 74 20 77 68 69 63 68 20 69 73 20  | .expression,.i.e..that.which.is. | 
| 92a0 |  72 65 74 75 72 6e 65 64 0a 62 79 20 78 6d 6c 2d    70 61 72 73 65 2d 72 65 67 69 6f 6e 2e 20 54 68  | returned.by.xml-parse-region..Th | 
| 92c0 |  65 20 73 74 72 75 63 74 75 72 65 20 69 73 20 64    65 66 69 6e 65 64 20 61 73 20 61 6e 79 20 6f 66  | e.structure.is.defined.as.any.of | 
| 92e0 |  20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 66    6f 72 6d 73 3a 0a 0a 2d 20 41 20 73 74 72 69 6e  | .the.following.forms:..-.A.strin | 
| 9300 |  67 2e 0a 0a 20 53 54 52 49 4e 47 0a 0a 53 54 52    49 4e 47 3a 20 74 68 65 20 73 74 72 69 6e 67 20  | g....STRING..STRING:.the.string. | 
| 9320 |  69 74 20 69 73 20 72 65 74 75 72 6e 65 64 20 77    69 74 68 20 65 6e 74 69 74 69 65 73 20 65 73 63  | it.is.returned.with.entities.esc | 
| 9340 |  61 70 65 64 0a 0a 2d 20 41 20 6c 69 73 74 20 77    68 65 72 65 20 74 68 65 20 66 69 72 73 74 20 65  | aped..-.A.list.where.the.first.e | 
| 9360 |  6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 72 61    77 2d 73 74 72 69 6e 67 20 73 79 6d 62 6f 6c 20  | lement.is.the.raw-string.symbol. | 
| 9380 |  61 6e 64 20 74 68 65 0a 20 20 73 65 63 6f 6e 64    20 69 73 20 61 20 73 74 72 69 6e 67 2e 0a 0a 20  | and.the...second.is.a.string.... | 
| 93a0 |  28 72 61 77 2d 73 74 72 69 6e 67 20 53 54 52 49    4e 47 29 0a 0a 53 54 52 49 4e 47 3a 20 74 68 65  | (raw-string.STRING)..STRING:.the | 
| 93c0 |  20 73 74 72 69 6e 67 20 69 73 20 72 65 74 75 72    6e 65 64 20 75 6e 63 68 61 6e 67 65 64 2e 20 54  | .string.is.returned.unchanged..T | 
| 93e0 |  68 69 73 20 61 6c 6c 6f 77 73 20 66 6f 72 20 63    61 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 6f  | his.allows.for.caching.........o | 
| 9400 |  66 20 61 6e 79 20 63 6f 6e 73 74 61 6e 74 20 70    61 72 74 73 2c 20 73 75 63 68 20 61 73 20 68 65  | f.any.constant.parts,.such.as.he | 
| 9420 |  61 64 65 72 73 20 61 6e 64 20 66 6f 6f 74 65 72    73 2e 0a 0a 2d 20 41 20 6c 69 73 74 20 77 68 65  | aders.and.footers...-.A.list.whe | 
| 9440 |  72 65 20 74 68 65 20 66 69 72 73 74 20 65 6c 65    6d 65 6e 74 20 69 73 20 74 68 65 20 63 6f 6d 6d  | re.the.first.element.is.the.comm | 
| 9460 |  65 6e 74 20 73 79 6d 62 6f 6c 20 61 6e 64 20 74    68 65 0a 20 20 73 65 63 6f 6e 64 20 69 73 20 61  | ent.symbol.and.the...second.is.a | 
| 9480 |  20 73 74 72 69 6e 67 2e 0a 0a 20 28 63 6f 6d 6d    65 6e 74 20 53 54 52 49 4e 47 29 0a 0a 53 54 52  | .string....(comment.STRING)..STR | 
| 94a0 |  49 4e 47 3a 20 74 68 65 20 73 74 72 69 6e 67 20    69 73 20 65 6d 62 65 64 64 65 64 20 69 6e 20 61  | ING:.the.string.is.embedded.in.a | 
| 94c0 |  20 48 54 4d 4c 20 63 6f 6d 6d 65 6e 74 2e 0a 0a    2d 20 41 20 6c 69 73 74 20 77 68 65 72 65 20 74  | .HTML.comment...-.A.list.where.t | 
| 94e0 |  68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74    20 69 73 20 74 68 65 20 74 61 67 2c 20 74 68 65  | he.first.element.is.the.tag,.the | 
| 9500 |  20 73 65 63 6f 6e 64 20 69 73 0a 61 6e 20 61 6c    69 73 74 20 6f 66 20 61 74 74 72 69 62 75 74 65  | .second.is.an.alist.of.attribute | 
| 9520 |  20 76 61 6c 75 65 20 70 61 69 72 73 20 61 6e 64    20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f  | .value.pairs.and.the.remainder.o | 
| 9540 |  66 20 74 68 65 20 6c 69 73 74 0a 69 73 20 30 20    6f 72 20 6d 6f 72 65 20 65 73 78 6d 6c 20 65 6c  | f.the.list.is.0.or.more.esxml.el | 
| 9560 |  65 6d 65 6e 74 73 2e 0a 0a 20 28 54 41 47 20 41    54 54 52 53 20 26 72 65 73 74 20 42 4f 44 59 29  | ements....(TAG.ATTRS.&rest.BODY) | 
| 9580 |  0a 0a 54 41 47 3a 20 69 73 20 74 68 65 20 74 61    67 20 61 6e 64 20 6d 75 73 74 20 62 65 20 61 20  | ..TAG:.is.the.tag.and.must.be.a. | 
| 95a0 |  73 79 6d 62 6f 6c 2e 0a 0a 41 54 54 52 53 3a 20    69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 61  | symbol...ATTRS:.is.an.alist.of.a | 
| 95c0 |  74 74 72 69 62 75 74 65 20 70 61 69 72 73 20 65    61 63 68 20 70 61 69 72 20 6d 75 73 74 20 62 65  | ttribute.pairs.each.pair.must.be | 
| 95e0 |  20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 66    6f 72 6d 20 28 4b 45 59 20 2e 20 56 41 4c 55 45  | .of.the........form.(KEY...VALUE | 
| 9600 |  29 2e 0a 0a 4b 45 59 3a 20 69 73 20 74 68 65 20    6e 61 6d 65 20 6f 66 20 74 68 65 20 61 74 74 72  | )...KEY:.is.the.name.of.the.attr | 
| 9620 |  69 62 75 74 65 20 61 6e 64 20 6d 75 73 74 20 62    65 20 61 20 73 79 6d 62 6f 6c 2e 0a 0a 56 41 4c  | ibute.and.must.be.a.symbol...VAL | 
| 9640 |  55 45 3a 20 69 73 20 74 68 65 20 76 61 6c 75 65    20 6f 66 20 74 68 65 20 61 74 74 72 69 62 75 74  | UE:.is.the.value.of.the.attribut | 
| 9660 |  65 20 61 6e 64 20 6d 75 73 74 20 62 65 20 61 20    73 74 72 69 6e 67 2e 0a 0a 42 4f 44 59 3a 20 69  | e.and.must.be.a.string...BODY:.i | 
| 9680 |  73 20 7a 65 72 6f 20 6f 72 20 6d 6f 72 65 20 65    73 78 6d 6c 20 65 78 70 72 65 73 73 69 6f 6e 73  | s.zero.or.more.esxml.expressions | 
| 96a0 |  2e 20 20 48 61 76 69 6e 67 20 6e 6f 20 62 6f 64    79 20 66 6f 72 6d 73 0a 20 20 20 20 20 20 69 6d  | ...Having.no.body.forms.......im | 
| 96c0 |  70 6c 69 65 73 20 74 68 61 74 20 74 68 65 20 74    61 67 20 73 68 6f 75 6c 64 20 62 65 20 73 65 6c  | plies.that.the.tag.should.be.sel | 
| 96e0 |  66 20 63 6c 6f 73 65 64 2e 20 20 49 66 20 74 68    65 72 65 20 69 73 0a 20 20 20 20 20 20 6f 6e 65  | f.closed...If.there.is.......one | 
| 9700 |  20 6f 72 20 6d 6f 72 65 20 62 6f 64 79 20 66 6f    72 6d 73 20 74 68 65 20 74 61 67 20 77 69 6c 6c  | .or.more.body.forms.the.tag.will | 
| 9720 |  20 61 6c 77 61 79 73 20 62 65 20 65 78 70 6c 69    63 69 74 6c 79 0a 20 20 20 20 20 20 63 6c 6f 73  | .always.be.explicitly.......clos | 
| 9740 |  65 64 2c 20 65 76 65 6e 20 69 66 20 74 68 65 79    20 61 72 65 20 74 68 65 20 65 6d 70 74 79 20 73  | ed,.even.if.they.are.the.empty.s | 
| 9760 |  74 72 69 6e 67 2e 22 0a 20 20 28 63 6f 6e 64 69    74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20  | tring."...(condition-case.nil... | 
| 9780 |  20 20 20 20 28 65 73 78 6d 6c 2d 2d 74 6f 2d 78    6d 6c 2d 72 65 63 75 72 73 69 76 65 20 65 73 78  | ....(esxml--to-xml-recursive.esx | 
| 97a0 |  6d 6c 29 0a 20 20 20 20 28 65 72 72 6f 72 20 28    65 73 78 6d 6c 2d 76 61 6c 69 64 61 74 65 2d 66  | ml).....(error.(esxml-validate-f | 
| 97c0 |  6f 72 6d 20 65 73 78 6d 6c 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 70 70 2d 65 73 78 6d 6c 2d 74  | orm.esxml))))..(defun.pp-esxml-t | 
| 97e0 |  6f 2d 78 6d 6c 20 28 65 73 78 6d 6c 29 0a 20 20    22 54 68 69 73 20 74 72 61 6e 73 6c 61 74 65 73  | o-xml.(esxml)..."This.translates | 
| 9800 |  20 61 6e 20 65 73 78 6d 6c 20 65 78 70 72 65 73    69 6f 6e 20 61 73 20 60 65 73 78 6d 6c 2d 74 6f  | .an.esxml.expresion.as.`esxml-to | 
| 9820 |  2d 78 6d 6c 27 20 62 75 74 0a 69 6e 64 65 6e 74    73 20 69 74 20 66 6f 72 20 65 61 73 65 20 6f 66  | -xml'.but.indents.it.for.ease.of | 
| 9840 |  20 68 75 6d 61 6e 20 72 65 61 64 61 62 69 6c 69    74 79 2c 20 69 74 20 69 73 20 6e 65 63 65 73 73  | .human.readability,.it.is.necess | 
| 9860 |  61 72 69 6c 79 0a 73 6c 6f 77 65 72 20 61 6e 64    20 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 6c 6f  | arily.slower.and.will.produce.lo | 
| 9880 |  6e 67 65 72 20 6f 75 74 70 75 74 2e 22 0a 20 20    28 70 63 61 73 65 20 65 73 78 6d 6c 0a 20 20 20  | nger.output."...(pcase.esxml.... | 
| 98a0 |  20 28 28 70 72 65 64 20 73 74 72 69 6e 67 70 29    0a 20 20 20 20 20 28 78 6d 6c 2d 65 73 63 61 70  | .((pred.stringp)......(xml-escap | 
| 98c0 |  65 2d 73 74 72 69 6e 67 20 65 73 78 6d 6c 29 29    0a 20 20 20 20 28 60 28 72 61 77 2d 73 74 72 69  | e-string.esxml)).....(`(raw-stri | 
| 98e0 |  6e 67 20 2c 73 74 72 69 6e 67 29 0a 20 20 20 20    20 28 63 6c 2d 63 68 65 63 6b 2d 74 79 70 65 20  | ng.,string)......(cl-check-type. | 
| 9900 |  73 74 72 69 6e 67 20 73 74 72 69 6e 67 70 29 0a    20 20 20 20 20 73 74 72 69 6e 67 29 0a 20 20 20  | string.stringp)......string).... | 
| 9920 |  20 28 60 28 63 6f 6d 6d 65 6e 74 20 6e 69 6c 20    2c 62 6f 64 79 29 0a 20 20 20 20 20 28 63 6f 6e  | .(`(comment.nil.,body)......(con | 
| 9940 |  63 61 74 20 22 3c 21 2d 2d 20 22 20 62 6f 64 79    20 22 20 2d 2d 3e 22 29 29 0a 20 20 20 20 28 60  | cat."<!--.".body.".-->")).....(` | 
| 9960 |  28 2c 74 61 67 20 2c 61 74 74 72 73 20 2e 20 2c    62 6f 64 79 29 0a 20 20 20 20 20 28 63 6c 2d 63  | (,tag.,attrs...,body)......(cl-c | 
| 9980 |  68 65 63 6b 2d 74 79 70 65 20 74 61 67 20 73 79    6d 62 6f 6c 29 0a 20 20 20 20 20 28 63 6c 2d 63  | heck-type.tag.symbol)......(cl-c | 
| 99a0 |  68 65 63 6b 2d 74 79 70 65 20 61 74 74 72 73 20    61 74 74 72 73 29 0a 20 20 20 20 20 28 63 6f 6e  | heck-type.attrs.attrs)......(con | 
| 99c0 |  63 61 74 20 22 3c 22 20 28 73 79 6d 62 6f 6c 2d    6e 61 6d 65 20 74 61 67 29 0a 20 20 20 20 20 20  | cat."<".(symbol-name.tag)....... | 
| 99e0 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 61 74 74    72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......(when.attrs.............. | 
| 9a00 |  20 20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d    61 70 63 6f 6e 63 61 74 20 27 65 73 78 6d 6c 2d  | ..(concat.".".(mapconcat.'esxml- | 
| 9a20 |  2d 63 6f 6e 76 65 72 74 2d 70 61 69 72 20 61 74    74 72 73 20 22 20 22 29 29 29 0a 20 20 20 20 20  | -convert-pair.attrs.".")))...... | 
| 9a40 |  20 20 20 20 20 20 20 20 28 69 66 20 62 6f 64 79    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........(if.body................ | 
| 9a60 |  20 20 28 63 6f 6e 63 61 74 20 22 3e 22 20 28 69    66 20 28 63 6c 2d 65 76 65 72 79 20 27 73 74 72  | ..(concat.">".(if.(cl-every.'str | 
| 9a80 |  69 6e 67 70 20 62 6f 64 79 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ingp.body)...................... | 
| 9aa0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70    63 6f 6e 63 61 74 20 27 69 64 65 6e 74 69 74 79  | ............(mapconcat.'identity | 
| 9ac0 |  20 62 6f 64 79 20 22 20 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .body.".")...................... | 
| 9ae0 |  20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61    74 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20  | ..........(concat."\n".......... | 
| 9b00 |  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 72  | ..............................(r | 
| 9b20 |  65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e    2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20  | eplace-regexp-in-string......... | 
| 9b40 |  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  | ................................ | 
| 9b60 |  22 5e 22 20 22 20 20 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | "^".".."........................ | 
| 9b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6d 61 70 63 6f 6e 63 61 74 20 27 70 70 2d  | .................(mapconcat.'pp- | 
| 9ba0 |  65 73 78 6d 6c 2d 74 6f 2d 78 6d 6c 20 62 6f 64    79 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20  | esxml-to-xml.body."\n"))........ | 
| 9bc0 |  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  | ................................ | 
| 9be0 |  22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | "\n")).......................... | 
| 9c00 |  22 3c 2f 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d    65 20 74 61 67 29 20 22 3e 22 29 0a 20 20 20 20  | "</".(symbol-name.tag).">")..... | 
| 9c20 |  20 20 20 20 20 20 20 20 20 20 20 22 2f 3e 22 29    29 29 0a 20 20 20 20 28 5f 0a 20 20 20 20 20 28  | ..........."/>"))).....(_......( | 
| 9c40 |  65 72 72 6f 72 20 22 25 73 20 69 73 20 6e 6f 74    20 61 20 76 61 6c 69 64 20 65 73 78 6d 6c 20 65  | error."%s.is.not.a.valid.esxml.e | 
| 9c60 |  78 70 72 65 73 73 69 6f 6e 22 20 65 73 78 6d 6c    29 29 29 29 0a 0a 28 64 65 66 75 6e 20 73 78 6d  | xpression".esxml))))..(defun.sxm | 
| 9c80 |  6c 2d 74 6f 2d 65 73 78 6d 6c 20 28 73 78 6d 6c    29 0a 20 20 22 54 72 61 6e 73 6c 61 74 65 73 20  | l-to-esxml.(sxml)..."Translates. | 
| 9ca0 |  73 78 6d 6c 20 74 6f 20 65 73 78 6d 6c 20 73 6f    20 74 68 65 20 63 6f 6d 6d 6f 6e 20 73 74 61 6e  | sxml.to.esxml.so.the.common.stan | 
| 9cc0 |  64 61 72 64 20 63 61 6e 20 62 65 20 75 73 65 64    2e 0a 53 65 65 3a 20 68 74 74 70 3a 2f 2f 6f 6b  | dard.can.be.used..See:.http://ok | 
| 9ce0 |  6d 69 6a 2e 6f 72 67 2f 66 74 70 2f 53 63 68 65    6d 65 2f 53 58 4d 4c 2e 68 74 6d 6c 2e 20 41 64  | mij.org/ftp/Scheme/SXML.html..Ad | 
| 9d00 |  64 69 74 69 6f 6e 61 6c 6c 79 2c 0a 28 2a 52 41    57 2d 53 54 52 49 4e 47 2a 20 5c 22 73 74 72 69  | ditionally,.(*RAW-STRING*.\"stri | 
| 9d20 |  6e 67 5c 22 29 20 69 73 20 74 72 61 6e 73 6c 61    74 65 64 20 74 6f 20 28 72 61 77 2d 73 74 72 69  | ng\").is.translated.to.(raw-stri | 
| 9d40 |  6e 67 0a 5c 22 73 74 72 69 6e 67 5c 22 29 2e 22    0a 20 20 28 70 63 61 73 65 20 73 78 6d 6c 0a 20  | ng.\"string\")."...(pcase.sxml.. | 
| 9d60 |  20 20 20 28 60 28 2a 52 41 57 2d 53 54 52 49 4e    47 2a 20 2c 62 6f 64 79 29 0a 20 20 20 20 20 60  | ...(`(*RAW-STRING*.,body)......` | 
| 9d80 |  28 72 61 77 2d 73 74 72 69 6e 67 20 2c 62 6f 64    79 29 29 0a 20 20 20 20 28 60 28 2a 43 4f 4d 4d  | (raw-string.,body)).....(`(*COMM | 
| 9da0 |  45 4e 54 2a 20 2c 62 6f 64 79 29 0a 20 20 20 20    20 60 28 63 6f 6d 6d 65 6e 74 20 6e 69 6c 20 2c  | ENT*.,body)......`(comment.nil., | 
| 9dc0 |  62 6f 64 79 29 29 0a 20 20 20 20 28 60 28 2c 74    61 67 20 28 40 20 2e 20 2c 61 74 74 72 73 29 20  | body)).....(`(,tag.(@...,attrs). | 
| 9de0 |  2e 20 2c 62 6f 64 79 29 0a 20 20 20 20 20 60 28    2c 74 61 67 20 2c 28 6d 61 70 63 61 72 20 28 6c  | ..,body)......`(,tag.,(mapcar.(l | 
| 9e00 |  61 6d 62 64 61 20 28 61 74 74 72 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ambda.(attr).................... | 
| 9e20 |  20 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 61    74 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ....(cons.(car.attr)............ | 
| 9e40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6f 72 20 28 63 61 64 72 20 61 74 74 72  | ..................(or.(cadr.attr | 
| 9e60 |  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 20  | )............................... | 
| 9e80 |  20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72    69 6e 67 20 28 63 61 72 20 61 74 74 72 29 29 29  | ...(prin1-to-string.(car.attr))) | 
| 9ea0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 61 74 74 72 73 29 0a 20  | ))......................attrs).. | 
| 9ec0 |  20 20 20 20 20 20 20 20 20 20 20 2c 40 28 6d 61    70 63 61 72 20 27 73 78 6d 6c 2d 74 6f 2d 65 73  | ...........,@(mapcar.'sxml-to-es | 
| 9ee0 |  78 6d 6c 20 62 6f 64 79 29 29 29 0a 20 20 20 20    28 60 28 2c 74 61 67 20 2e 20 2c 62 6f 64 79 29  | xml.body))).....(`(,tag...,body) | 
| 9f00 |  0a 20 20 20 20 20 60 28 2c 74 61 67 20 6e 69 6c    0a 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28  | ......`(,tag.nil.............,@( | 
| 9f20 |  6d 61 70 63 61 72 20 27 73 78 6d 6c 2d 74 6f 2d    65 73 78 6d 6c 20 62 6f 64 79 29 29 29 0a 20 20  | mapcar.'sxml-to-esxml.body)))... | 
| 9f40 |  20 20 28 28 61 6e 64 20 73 78 6d 6c 20 28 70 72    65 64 20 73 74 72 69 6e 67 70 29 29 20 73 78 6d  | ..((and.sxml.(pred.stringp)).sxm | 
| 9f60 |  6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 73 78 6d    6c 2d 74 6f 2d 78 6d 6c 20 28 73 78 6d 6c 29 0a  | l)))..(defun.sxml-to-xml.(sxml). | 
| 9f80 |  20 20 22 54 72 61 6e 73 6c 61 74 65 73 20 73 78    6d 6c 20 74 6f 20 78 6d 6c 2c 20 76 69 61 20 65  | .."Translates.sxml.to.xml,.via.e | 
| 9fa0 |  73 78 6d 6c 2c 20 68 65 79 20 69 74 27 73 20 6f    6e 6c 79 20 61 20 63 6f 6e 73 74 61 6e 74 0a 66  | sxml,.hey.it's.only.a.constant.f | 
| 9fc0 |  61 63 74 6f 72 2e 20 3a 29 22 0a 20 20 28 65 73    78 6d 6c 2d 74 6f 2d 78 6d 6c 20 28 73 78 6d 6c  | actor..:)"...(esxml-to-xml.(sxml | 
| 9fe0 |  2d 74 6f 2d 65 73 78 6d 6c 20 73 78 6d 6c 29 29    29 0a 0a 0c 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 6d  | -to-esxml.sxml))).....;;.TODO:.m | 
| a000 |  61 6b 65 20 61 67 6e 6f 73 74 69 63 20 77 69 74    68 20 72 65 73 70 65 63 74 20 74 6f 20 6c 69 62  | ake.agnostic.with.respect.to.lib | 
| a020 |  78 6d 6c 20 76 73 20 78 6d 6c 2e 65 6c 0a 28 64    65 66 75 6e 20 78 6d 6c 2d 74 6f 2d 65 73 78 6d  | xml.vs.xml.el.(defun.xml-to-esxm | 
| a040 |  6c 20 28 73 74 72 69 6e 67 20 26 6f 70 74 69 6f    6e 61 6c 20 74 72 69 6d 29 0a 20 20 28 77 69 74  | l.(string.&optional.trim)...(wit | 
| a060 |  68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20    20 20 28 69 6e 73 65 72 74 20 73 74 72 69 6e 67  | h-temp-buffer.....(insert.string | 
| a080 |  29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 61 72    73 65 2d 74 72 65 65 20 28 6c 69 62 78 6d 6c 2d  | ).....(let.((parse-tree.(libxml- | 
| a0a0 |  70 61 72 73 65 2d 78 6d 6c 2d 72 65 67 69 6f 6e    20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 20  | parse-xml-region.(point-min).... | 
| a0c0 |  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  | ................................ | 
| a0e0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69    6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20  | ............(point-max))))...... | 
| a100 |  20 28 69 66 20 74 72 69 6d 0a 20 20 20 20 20 20    20 20 20 20 28 65 73 78 6d 6c 2d 74 72 69 6d 2d  | .(if.trim...........(esxml-trim- | 
| a120 |  77 73 20 70 61 72 73 65 2d 74 72 65 65 29 0a 20    20 20 20 20 20 20 20 70 61 72 73 65 2d 74 72 65  | ws.parse-tree).........parse-tre | 
| a140 |  65 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 2c 20    6d 6f 76 65 20 74 6f 20 65 73 78 70 61 74 68 20  | e))))..;;.TODO,.move.to.esxpath. | 
| a160 |  77 68 65 6e 20 6d 61 74 75 72 65 0a 28 64 65 66    75 6e 20 65 73 78 6d 6c 2d 67 65 74 2d 62 79 2d  | when.mature.(defun.esxml-get-by- | 
| a180 |  6b 65 79 20 28 65 73 78 6d 6c 20 6b 65 79 20 76    61 6c 75 65 29 0a 20 20 22 52 65 74 75 72 6e 73  | key.(esxml.key.value)..."Returns | 
| a1a0 |  20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 65    6c 65 6d 65 6e 74 73 20 77 68 6f 73 65 20 77 74  | .a.list.of.all.elements.whose.wt | 
| a1c0 |  74 72 69 62 75 74 65 20 4b 45 59 20 6d 61 74 63    68 0a 56 41 4c 55 45 2e 20 20 4b 45 59 20 73 68  | tribute.KEY.match.VALUE...KEY.sh | 
| a1e0 |  6f 75 6c 64 20 62 65 20 61 20 73 79 6d 62 6f 6c    2c 20 61 6e 64 20 56 41 4c 55 45 20 73 68 6f 75  | ould.be.a.symbol,.and.VALUE.shou | 
| a200 |  6c 64 20 62 65 20 61 20 73 74 72 69 6e 67 2e 0a    57 69 6c 6c 20 6e 6f 74 20 72 65 63 75 72 73 65  | ld.be.a.string..Will.not.recurse | 
| a220 |  20 62 65 6c 6f 77 20 61 20 6d 61 74 63 68 2e 22    0a 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69  | .below.a.match."...(unless.(stri | 
| a240 |  6e 67 70 20 65 73 78 6d 6c 29 0a 20 20 20 20 28    70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 74  | ngp.esxml).....(pcase-let.((`(,t | 
| a260 |  61 67 20 2c 61 74 74 72 73 20 2e 20 2c 62 6f 64    79 29 20 65 73 78 6d 6c 29 29 0a 20 20 20 20 20  | ag.,attrs...,body).esxml))...... | 
| a280 |  20 28 69 66 20 28 65 71 75 61 6c 20 76 61 6c 75    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(if.(equal.value............... | 
| a2a0 |  20 20 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c    74 20 6b 65 79 20 61 74 74 72 73 29 29 0a 20 20  | ...(assoc-default.key.attrs))... | 
| a2c0 |  20 20 20 20 20 20 20 20 28 6c 69 73 74 20 65 73    78 6d 6c 29 0a 20 20 20 20 20 20 20 20 28 61 70  | ........(list.esxml).........(ap | 
| a2e0 |  70 6c 79 20 27 61 70 70 65 6e 64 20 28 6d 61 70    63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 65 78  | ply.'append.(mapcar.(lambda.(sex | 
| a300 |  70 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  | p).............................. | 
| a320 |  20 20 20 20 28 65 73 78 6d 6c 2d 67 65 74 2d 62    79 2d 6b 65 79 20 73 65 78 70 20 6b 65 79 20 76  | ....(esxml-get-by-key.sexp.key.v | 
| a340 |  61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | alue)).......................... | 
| a360 |  20 20 20 20 20 20 62 6f 64 79 29 29 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 65 73 78 6d 6c 2d 67  | ......body))))))..(defun.esxml-g | 
| a380 |  65 74 2d 74 61 67 73 20 28 65 73 78 6d 6c 20 74    61 67 73 29 0a 20 20 22 52 65 74 75 72 6e 73 20  | et-tags.(esxml.tags)..."Returns. | 
| a3a0 |  61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 65 6c    65 6d 65 6e 74 73 20 77 68 6f 73 65 20 74 61 67  | a.list.of.all.elements.whose.tag | 
| a3c0 |  20 69 73 20 61 20 6d 65 6d 62 65 72 20 6f 66 20    54 41 47 53 2e 0a 54 41 47 53 20 73 68 6f 75 6c  | .is.a.member.of.TAGS..TAGS.shoul | 
| a3e0 |  64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 74    61 67 73 20 74 6f 20 62 65 20 6d 61 74 63 68 65  | d.be.a.list.of.tags.to.be.matche | 
| a400 |  64 20 61 67 61 69 6e 73 74 2e 20 57 69 6c 6c 20    6e 6f 74 0a 72 65 63 75 72 73 65 20 62 65 6c 6f  | d.against..Will.not.recurse.belo | 
| a420 |  77 20 61 20 6d 61 74 63 68 2e 22 0a 20 20 28 75    6e 6c 65 73 73 20 28 73 74 72 69 6e 67 70 20 65  | w.a.match."...(unless.(stringp.e | 
| a440 |  73 78 6d 6c 29 0a 20 20 20 20 28 70 63 61 73 65    2d 6c 65 74 20 28 28 60 28 2c 74 61 67 20 2c 61  | sxml).....(pcase-let.((`(,tag.,a | 
| a460 |  74 74 72 73 20 2e 20 2c 62 6f 64 79 29 20 65 73    78 6d 6c 29 29 0a 20 20 20 20 20 20 28 69 66 20  | ttrs...,body).esxml)).......(if. | 
| a480 |  28 6d 65 6d 62 65 72 20 74 61 67 20 74 61 67 73    29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 73  | (member.tag.tags)...........(lis | 
| a4a0 |  74 20 65 73 78 6d 6c 29 0a 20 20 20 20 20 20 20    20 28 61 70 70 6c 79 20 27 61 70 70 65 6e 64 20  | t.esxml).........(apply.'append. | 
| a4c0 |  28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20    28 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20  | (mapcar.(lambda.(sexp).......... | 
| a4e0 |  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 65 73 78 6d 6c 2d 67  | ........................(esxml-g | 
| a500 |  65 74 2d 74 61 67 73 20 73 65 78 70 20 74 61 67    73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | et-tags.sexp.tags))............. | 
| a520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 62 6f 64 79 29 29 29 29 29 29 0a 0a 28  | ...................body))))))..( | 
| a540 |  64 65 66 75 6e 20 65 73 78 6d 6c 2d 67 65 74 2d    66 6f 72 6d 73 20 28 65 73 78 6d 6c 29 0a 20 20  | defun.esxml-get-forms.(esxml)... | 
| a560 |  22 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20    6f 66 20 61 6c 6c 20 66 6f 72 6d 73 2e 22 0a 20  | "Returns.a.list.of.all.forms.".. | 
| a580 |  20 28 65 73 78 6d 6c 2d 67 65 74 2d 74 61 67 73    20 65 73 78 6d 6c 20 27 28 66 6f 72 6d 29 29 29  | .(esxml-get-tags.esxml.'(form))) | 
| a5a0 |  0a 0a 3b 3b 20 74 61 6b 65 6e 20 66 72 6f 6d 20    6b 76 0a 28 64 65 66 6d 61 63 72 6f 20 65 73 78  | ..;;.taken.from.kv.(defmacro.esx | 
| a5c0 |  6d 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67    2d 6d 61 70 63 61 72 20 28 61 72 67 73 20 73 65  | ml-destructuring-mapcar.(args.se | 
| a5e0 |  78 70 20 73 65 71 29 0a 20 20 28 64 65 63 6c 61    72 65 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20  | xp.seq)...(declare.(indent.2)).. | 
| a600 |  20 28 6c 65 74 20 28 28 65 6e 74 72 79 20 28 6d    61 6b 65 2d 73 79 6d 62 6f 6c 20 22 65 6e 74 72  | .(let.((entry.(make-symbol."entr | 
| a620 |  79 22 29 29 29 0a 20 20 20 20 60 28 6d 61 70 63    61 72 20 28 6c 61 6d 62 64 61 20 28 2c 65 6e 74  | y"))).....`(mapcar.(lambda.(,ent | 
| a640 |  72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75  | ry)................(cl-destructu | 
| a660 |  72 69 6e 67 2d 62 69 6e 64 20 2c 61 72 67 73 20    2c 65 6e 74 72 79 20 2c 73 65 78 70 29 29 0a 20  | ring-bind.,args.,entry.,sexp)).. | 
| a680 |  20 20 20 20 20 20 20 20 20 20 20 20 2c 73 65 71    29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65  | ............,seq)))..(provide.'e | 
| a6a0 |  73 78 6d 6c 29 0a 3b 3b 3b 20 65 73 78 6d 6c 2e    65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00  | sxml).;;;.esxml.el.ends.here.... | 
| 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  | ................................ |