From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stuart D. Herring" Newsgroups: gmane.emacs.devel Subject: Re: A few questions about desktop.el Date: Thu, 27 Apr 2006 16:05:53 -0700 (PDT) Message-ID: <58643.128.165.123.132.1146179153.squirrel@webmail.lanl.gov> References: Reply-To: herring@lanl.gov NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20060427160553_30790" X-Trace: sea.gmane.org 1146179185 30367 80.91.229.2 (27 Apr 2006 23:06:25 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 27 Apr 2006 23:06:25 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Apr 28 01:06:21 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1FZFYv-0006Iq-Oo for ged-emacs-devel@m.gmane.org; Fri, 28 Apr 2006 01:06:21 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FZFYu-0008HQ-6S for ged-emacs-devel@m.gmane.org; Thu, 27 Apr 2006 19:06:16 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FZFYg-0008HC-7E for emacs-devel@gnu.org; Thu, 27 Apr 2006 19:06:02 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FZFYe-0008Fu-Gr for emacs-devel@gnu.org; Thu, 27 Apr 2006 19:06:01 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FZFYe-0008Fj-E5 for emacs-devel@gnu.org; Thu, 27 Apr 2006 19:06:00 -0400 Original-Received: from [192.65.95.54] (helo=mailwasher-b.lanl.gov) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1FZFbe-0007cp-Ej for emacs-devel@gnu.org; Thu, 27 Apr 2006 19:09:07 -0400 Original-Received: from mailrelay3.lanl.gov (mailrelay3.lanl.gov [128.165.4.104]) by mailwasher-b.lanl.gov (8.12.11.20060308/8.12.11/(ccn-5)) with ESMTP id k3RN5uDg028144 for ; Thu, 27 Apr 2006 17:05:56 -0600 Original-Received: from webmail1.lanl.gov (webmail1.lanl.gov [128.165.4.106]) by mailrelay3.lanl.gov (8.12.11.20060308/8.12.11/(ccn-5)) with ESMTP id k3RN5rGd030367; Thu, 27 Apr 2006 17:05:53 -0600 Original-Received: from webmail1.lanl.gov (localhost.localdomain [127.0.0.1]) by webmail1.lanl.gov (8.12.11.20060308/8.12.11) with ESMTP id k3RN5rSo013506; Thu, 27 Apr 2006 17:05:53 -0600 Original-Received: (from apache@localhost) by webmail1.lanl.gov (8.12.11.20060308/8.12.11/Submit) id k3RN5rZ9013504; Thu, 27 Apr 2006 16:05:53 -0700 X-Authentication-Warning: webmail1.lanl.gov: apache set sender to herring@lanl.gov using -f Original-Received: from 128.165.123.132 (SquirrelMail authenticated user 196434); by webmail.lanl.gov with HTTP; Thu, 27 Apr 2006 16:05:53 -0700 (PDT) In-Reply-To: Original-To: "Juanma Barranquero" User-Agent: SquirrelMail/1.4.3a-11.EL3 X-Mailer: SquirrelMail/1.4.3a-11.EL3 X-Priority: 3 (Normal) Importance: Normal X-PMX-Version: 4.7.1.128075 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:53530 Archived-At: ------=_20060427160553_30790 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Way back in July 2005, this was part of a discussion about improving desktop.el: > Not-totally-unrelated: running two or more Emacs instances that use > the same desktop file is a classical race condition; the last one to > exit overwrites the desktop file (quite funny when the desktop was > very elaborate and the last instance to exit uses almost no buffers). > > It'd be very useful to try to detect it and at least stop the second > instance from loading and using the desktop file if it's already in > use. There's no way to do that from Emacs, is there? Richard later suggested using the file-locking primitives along with file timestamps to implement this. Here's a stab at implementing the collision detection, but without file locking because I wasn't sure how to mix that with `load' competently. (I suspect this matters little since Emacs sessions are quite unlikely to be actually _accessing_ the desktop file at the same time.) Two things are done: first, a desktop file is modified when it is read (without incident) to include a "in use" tag; further Emacses will complain about this if they see it, and will leave the desktop file unloaded unless the user accepts the collision risk. Second, when a desktop file is read or written, its modification time (which is typically "now", since with this patch even loading the file modifies it) is remembered; if it's different when the desktop is to be saved, appropriate queries are posed. (In particular, if no desktop file is loaded, perhaps because the user decided not to re-load a file, any attempt to save the new desktop over an existing desktop file will be complained about.) I'm certainly not proposing this for installation right now; it needs lots more testing than I've given it (possibly by people who actually use desktop), and my papers-issues aren't yet resolved. But I encourage people (in particular Juanma, who raised the issue) to try it and let me know if it's any good; if the testing and the papers go okay, it'll just need a ChangeLog entry to be good. Enjoy, Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ------=_20060427160553_30790 Content-Type: application/octet-stream; name="desktop-conflict.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="desktop-conflict.patch" SW5kZXg6IGRlc2t0b3AuZWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvZW1hY3MvZW1h Y3MvbGlzcC9kZXNrdG9wLmVsLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjk5CmRpZmYgLWMgLXIx Ljk5IGRlc2t0b3AuZWwKKioqIGRlc2t0b3AuZWwJMTAgRmViIDIwMDYgMTE6MDU6MzAgLTAwMDAJ MS45OQotLS0gZGVza3RvcC5lbAkyNyBBcHIgMjAwNiAyMzowMDowMyAtMDAwMAoqKioqKioqKioq KioqKioKKioqIDQ3NSw0ODAgKioqKgotLS0gNDc1LDQ4NCAtLS0tCiAgKGRlZnZhciBkZXNrdG9w LWRpcm5hbWUgbmlsCiAgICAiVGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgZGVza3RvcCBmaWxl IHNob3VsZCBiZSBzYXZlZC4iKQogIAorIChkZWZ1biBkZXNrdG9wLWZ1bGwtZmlsZS1uYW1lICgm b3B0aW9uYWwgZGlybmFtZSkKKyAgICJSZXR1cm4gdGhlIGZ1bGwgbmFtZSBvZiB0aGUgY3VycmVu dCBkZXNrdG9wIGZpbGUuIgorICAgKGV4cGFuZC1maWxlLW5hbWUgZGVza3RvcC1iYXNlLWZpbGUt bmFtZSAob3IgZGlybmFtZSBkZXNrdG9wLWRpcm5hbWUpKSkKKyAKICAoZGVmY29uc3QgZGVza3Rv cC1oZWFkZXIKICAiOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICA7OyBEZXNrdG9wIEZpbGUgZm9yIEVt YWNzCioqKioqKioqKioqKioqKgoqKiogNDg0LDQ4OSAqKioqCi0tLSA0ODgsNTAzIC0tLS0KICAo ZGVmdmFyIGRlc2t0b3AtZGVsYXktaG9vayBuaWwKICAgICJIb29rcyBydW4gYWZ0ZXIgYWxsIGJ1 ZmZlcnMgYXJlIGxvYWRlZDsgaW50ZW5kZWQgZm9yIGludGVybmFsIHVzZS4iKQogIAorIChkZWZ2 YXIgZGVza3RvcC1maWxlLW1vZHRpbWUgbmlsCisgICAiV2hlbiB0aGUgZGVza3RvcCBmaWxlIHdh cyBsYXN0IG1vZGlmaWVkIHRvIHRoZSBrbm93bGVkZ2Ugb2YgdGhpcyBFbWFjcy4KKyBVc2VkIHRv IGRldGVjdCBkZXNrdG9wIGZpbGUgY29uZmxpY3RzLiIpCisgCisgKGRlZnVuIGRlc2t0b3AtY29u ZmxpY3QtdGV4dCAoKQorICAgIlJldHVybiBhIHN0cmluZyBmb3IgaW5jbHVzaW9uIGluIHRoZSBk ZXNrdG9wIGZpbGUgdG8gZGV0ZWN0IGNvbmZsaWN0cy4KKyBUaGUgc3RyaW5nIGNvbnRhaW5zIGEg Y29tbWVudCBmb3IgaHVtYW5zIGFuZCBhIGBzZXRxJyBmb3IgRW1hY3MuIgorICAgKGZvcm1hdCAi XG47OyBUaGlzIGRlc2t0b3AgZmlsZSB3YXMgaW4gdXNlIGFzIG9mICVzXG4oc2V0cSBkZXNrdG9w LW93bmVyICVzKVxuIgorIAkgIChmb3JtYXQtdGltZS1zdHJpbmcgIiV4ICVYICVaIikgKGVtYWNz LXBpZCkpKQorIAogIDs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAoZGVmdW4gZGVza3RvcC10cnVu Y2F0ZSAobGlzdCBuKQogICAgIlRydW5jYXRlIExJU1QgdG8gYXQgbW9zdCBOIGVsZW1lbnRzIGRl c3RydWN0aXZlbHkuIgoqKioqKioqKioqKioqKioKKioqIDUzMSw1MzcgKioqKgogICAgKHdoZW4K ICAgICAgKGFuZAogICAgICAgIGRlc2t0b3Atc2F2ZS1tb2RlCiEgICAgICAgKGxldCAoKGV4aXN0 cyAoZmlsZS1leGlzdHMtcCAoZXhwYW5kLWZpbGUtbmFtZSBkZXNrdG9wLWJhc2UtZmlsZS1uYW1l IGRlc2t0b3AtZGlybmFtZSkpKSkKICAgICAgICAgIChvcgogICAgICAgICAgICAoZXEgZGVza3Rv cC1zYXZlIHQpCiAgICAgICAgICAgIChhbmQgZXhpc3RzIChtZW1xIGRlc2t0b3Atc2F2ZSAnKGFz ay1pZi1uZXcgaWYtZXhpc3RzKSkpCi0tLSA1NDUsNTUxIC0tLS0KICAgICh3aGVuCiAgICAgIChh bmQKICAgICAgICBkZXNrdG9wLXNhdmUtbW9kZQohICAgICAgIChsZXQgKChleGlzdHMgKGZpbGUt ZXhpc3RzLXAgKGRlc2t0b3AtZnVsbC1maWxlLW5hbWUpKSkpCiAgICAgICAgICAob3IKICAgICAg ICAgICAgKGVxIGRlc2t0b3Atc2F2ZSB0KQogICAgICAgICAgICAoYW5kIGV4aXN0cyAobWVtcSBk ZXNrdG9wLXNhdmUgJyhhc2staWYtbmV3IGlmLWV4aXN0cykpKQoqKioqKioqKioqKioqKioKKioq IDU0Nyw1NTMgKioqKgogICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkKICAgICAgICAg ICAgICAgIChsYW1iZGEgKGRpcikgKGludGVyYWN0aXZlICJERGlyZWN0b3J5IGZvciBkZXNrdG9w IGZpbGU6ICIpIGRpcikpKSkpKQogICAgICAoY29uZGl0aW9uLWNhc2UgZXJyCiEgICAgICAgKGRl c2t0b3Atc2F2ZSBkZXNrdG9wLWRpcm5hbWUpCiAgICAgICAgKGZpbGUtZXJyb3IKICAgICAgICAg ICh1bmxlc3MgKHllcy1vci1uby1wICJFcnJvciB3aGlsZSBzYXZpbmcgdGhlIGRlc2t0b3AuICBJ Z25vcmU/ICIpCiAgICAgICAgICAgIChzaWduYWwgKGNhciBlcnIpIChjZHIgZXJyKSkpKSkpKQot LS0gNTYxLDU2NyAtLS0tCiAgICAgICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseQogICAgICAg ICAgICAgICAgKGxhbWJkYSAoZGlyKSAoaW50ZXJhY3RpdmUgIkREaXJlY3RvcnkgZm9yIGRlc2t0 b3AgZmlsZTogIikgZGlyKSkpKSkpCiAgICAgIChjb25kaXRpb24tY2FzZSBlcnIKISAgICAgICAo ZGVza3RvcC1zYXZlIGRlc2t0b3AtZGlybmFtZSB0KQogICAgICAgIChmaWxlLWVycm9yCiAgICAg ICAgICAodW5sZXNzICh5ZXMtb3Itbm8tcCAiRXJyb3Igd2hpbGUgc2F2aW5nIHRoZSBkZXNrdG9w LiAgSWdub3JlPyAiKQogICAgICAgICAgICAoc2lnbmFsIChjYXIgZXJyKSAoY2RyIGVycikpKSkp KSkKKioqKioqKioqKioqKioqCioqKiA3MTUsNzMwICoqKioKICAgICAgKHQgKGV4cGFuZC1maWxl LW5hbWUgZmlsZW5hbWUpKSkpCiAgCiAgOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQohIChkZWZ1biBk ZXNrdG9wLXNhdmUgKGRpcm5hbWUpCiAgICAiU2F2ZSB0aGUgZGVza3RvcCBpbiBhIGRlc2t0b3Ag ZmlsZS4KICBQYXJhbWV0ZXIgRElSTkFNRSBzcGVjaWZpZXMgd2hlcmUgdG8gc2F2ZSB0aGUgZGVz a3RvcCBmaWxlLgogIFNlZSBhbHNvIGBkZXNrdG9wLWJhc2UtZmlsZS1uYW1lJy4iCiAgICAoaW50 ZXJhY3RpdmUgIkREaXJlY3RvcnkgdG8gc2F2ZSBkZXNrdG9wIGZpbGUgaW46ICIpCiAgICAocnVu LWhvb2tzICdkZXNrdG9wLXNhdmUtaG9vaykKISAgIChzZXRxIGRpcm5hbWUgKGZpbGUtbmFtZS1h cy1kaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgZGlybmFtZSkpKQogICAgKHNhdmUtZXhjdXJz aW9uCiEgICAgIChsZXQgKChmaWxlbmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBkZXNrdG9wLWJhc2Ut ZmlsZS1uYW1lIGRpcm5hbWUpKQohICAgICAgICAgICAoaW5mbwogICAgICAgICAgICAgIChtYXBj YXIKICAgICAgICAgICAgICAgICMnKGxhbWJkYSAoYikKICAgICAgICAgICAgICAgICAgICAoc2V0 LWJ1ZmZlciBiKQotLS0gNzI5LDc0NCAtLS0tCiAgICAgICh0IChleHBhbmQtZmlsZS1uYW1lIGZp bGVuYW1lKSkpKQogIAogIDs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KISAoZGVmdW4gZGVza3RvcC1z YXZlIChkaXJuYW1lICZvcHRpb25hbCByZWxlYXNlKQogICAgIlNhdmUgdGhlIGRlc2t0b3AgaW4g YSBkZXNrdG9wIGZpbGUuCiAgUGFyYW1ldGVyIERJUk5BTUUgc3BlY2lmaWVzIHdoZXJlIHRvIHNh dmUgdGhlIGRlc2t0b3AgZmlsZS4KKyBPcHRpb25hbCBwYXJhbWV0ZXIgUkVMRUFTRSBzYXlzIHdo ZXRoZXIgd2UncmUgZG9uZSB3aXRoIHRoaXMgZGVza3RvcC4KICBTZWUgYWxzbyBgZGVza3RvcC1i YXNlLWZpbGUtbmFtZScuIgogICAgKGludGVyYWN0aXZlICJERGlyZWN0b3J5IHRvIHNhdmUgZGVz a3RvcCBmaWxlIGluOiAiKQogICAgKHJ1bi1ob29rcyAnZGVza3RvcC1zYXZlLWhvb2spCiEgICAo c2V0cSBkZXNrdG9wLWRpcm5hbWUgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgKGV4cGFuZC1maWxl LW5hbWUgZGlybmFtZSkpKQogICAgKHNhdmUtZXhjdXJzaW9uCiEgICAgIChsZXQgKChpbmZvCiAg ICAgICAgICAgICAgKG1hcGNhcgogICAgICAgICAgICAgICAgIycobGFtYmRhIChiKQogICAgICAg ICAgICAgICAgICAgIChzZXQtYnVmZmVyIGIpCioqKioqKioqKioqKioqKgoqKiogNzY1LDgwOCAq KioqCiAgICAgICAgICAgICAgICAoYnVmZmVyLWxpc3QpKSkKICAgICAgICAgICAgKGVhZ2VyIGRl c2t0b3AtcmVzdG9yZS1lYWdlcikKICAgICAgICAgICAgKGJ1ZiAoZ2V0LWJ1ZmZlci1jcmVhdGUg IipkZXNrdG9wKiIpKSkKISAgICAgICAoc2V0LWJ1ZmZlciBidWYpCiEgICAgICAgKGVyYXNlLWJ1 ZmZlcikKISAKISAgICAgICAoaW5zZXJ0CiEgICAgICAgICAiOzsgLSotIG1vZGU6IGVtYWNzLWxp c3A7IGNvZGluZzogZW1hY3MtbXVsZTsgLSotXG4iCiEgICAgICAgICBkZXNrdG9wLWhlYWRlcgoh ICAgICAgICAgIjs7IENyZWF0ZWQgIiAoY3VycmVudC10aW1lLXN0cmluZykgIlxuIgohICAgICAg ICAgIjs7IERlc2t0b3AgZmlsZSBmb3JtYXQgdmVyc2lvbiAiIGRlc2t0b3AtZmlsZS12ZXJzaW9u ICJcbiIKISAgICAgICAgICI7OyBFbWFjcyB2ZXJzaW9uICIgZW1hY3MtdmVyc2lvbiAiXG5cbiIK ISAgICAgICAgICI7OyBHbG9iYWwgc2VjdGlvbjpcbiIpCiEgICAgICAgKG1hcGMgKGZ1bmN0aW9u IGRlc2t0b3Atb3V0dmFyKSBkZXNrdG9wLWdsb2JhbHMtdG8tc2F2ZSkKISAgICAgICAoaWYgKG1l bXEgJ2tpbGwtcmluZyBkZXNrdG9wLWdsb2JhbHMtdG8tc2F2ZSkKISAgICAgICAgIChpbnNlcnQK ISAgICAgICAgICAgIihzZXRxIGtpbGwtcmluZy15YW5rLXBvaW50ZXIgKG50aGNkciAiCiEgICAg ICAgICAgIChpbnQtdG8tc3RyaW5nICgtIChsZW5ndGgga2lsbC1yaW5nKSAobGVuZ3RoIGtpbGwt cmluZy15YW5rLXBvaW50ZXIpKSkKISAgICAgICAgICAgIiBraWxsLXJpbmcpKVxuIikpCiEgCiEg ICAgICAgKGluc2VydCAiXG47OyBCdWZmZXIgc2VjdGlvbiAtLSBidWZmZXJzIGxpc3RlZCBpbiBz YW1lIG9yZGVyIGFzIGluIGJ1ZmZlciBsaXN0OlxuIikKISAgICAgICAobWFwYyAjJyhsYW1iZGEg KGwpCiEgICAgICAgICAgICAgICAgICh3aGVuIChhcHBseSAnZGVza3RvcC1zYXZlLWJ1ZmZlci1w IGwpCiEgICAgICAgICAgICAgICAgICAgKGluc2VydCAiKCIKISAgICAgICAgICAgICAgICAgICAg ICAgICAgIChpZiAob3IgKG5vdCAoaW50ZWdlcnAgZWFnZXIpKQohICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAodW5sZXNzICh6ZXJvcCBlYWdlcikKISAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2V0cSBlYWdlciAoMS0gZWFnZXIpKQohICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHQpKQohICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJkZXNrdG9wLWNyZWF0ZS1idWZmZXIiCiEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJkZXNrdG9wLWFwcGVuZC1idWZmZXItYXJncyIpCiEgICAgICAgICAgICAgICAgICAgICAgICAg ICAiICIKISAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2t0b3AtZmlsZS12ZXJzaW9uKQoh ICAgICAgICAgICAgICAgICAgIChtYXBjICMnKGxhbWJkYSAoZSkKISAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGluc2VydCAiXG4gICIgKGRlc2t0b3AtdmFsdWUtdG8tc3RyaW5nIGUpKSkK ISAgICAgICAgICAgICAgICAgICAgICAgICBsKQohICAgICAgICAgICAgICAgICAgIChpbnNlcnQg IilcblxuIikpKQohICAgICAgICAgICAgIGluZm8pCiEgICAgICAgKHNldHEgZGVmYXVsdC1kaXJl Y3RvcnkgZGlybmFtZSkKISAgICAgICAobGV0ICgoY29kaW5nLXN5c3RlbS1mb3Itd3JpdGUgJ2Vt YWNzLW11bGUpKQohICAgICAgICAgKHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4 KSBmaWxlbmFtZSBuaWwgJ25vbWVzc2FnZSkpKSkKISAgIChzZXRxIGRlc2t0b3AtZGlybmFtZSBk aXJuYW1lKSkKICAKICA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKGRlZnVuIGRlc2t0b3AtcmVt b3ZlICgpCi0tLSA3NzksODM2IC0tLS0KICAgICAgICAgICAgICAgIChidWZmZXItbGlzdCkpKQog ICAgICAgICAgICAoZWFnZXIgZGVza3RvcC1yZXN0b3JlLWVhZ2VyKQogICAgICAgICAgICAoYnVm IChnZXQtYnVmZmVyLWNyZWF0ZSAiKmRlc2t0b3AqIikpKQohICAgICAgIChsZXQgKChuZXctbW9k dGltZSAobnRoIDUgKGZpbGUtYXR0cmlidXRlcyAoZGVza3RvcC1mdWxsLWZpbGUtbmFtZSkpKSkp CiEgCSh3aGVuIAohIAkgICAgKG9yIChub3QgbmV3LW1vZHRpbWUpCTsgbm90aGluZyB0byBvdmVy d3JpdGUKISAJCShlcXVhbCBkZXNrdG9wLWZpbGUtbW9kdGltZSBuZXctbW9kdGltZSkKISAJCSh5 ZXMtb3Itbm8tcCAoaWYgZGVza3RvcC1maWxlLW1vZHRpbWUKISAJCQkJIChpZiAoPiAoZmxvYXQt dGltZSBuZXctbW9kdGltZSkgKGZsb2F0LXRpbWUgZGVza3RvcC1maWxlLW1vZHRpbWUpKQohIAkJ CQkgICAgICJEZXNrdG9wIGZpbGUgaXMgbW9yZSByZWNlbnQgdGhhbiB0aGUgb25lIGxvYWRlZC4g IFNhdmUgYW55d2F5PyAiCiEgCQkJCSAgICJEZXNrdG9wIGZpbGUgaXNuJ3QgdGhlIG9uZSBsb2Fk ZWQuICBPdmVyd3JpdGUgaXQ/ICIpCiEgCQkJICAgICAgICJDdXJyZW50IGRlc2t0b3Agd2FzIG5v dCBsb2FkZWQgZnJvbSBhIGZpbGUuICBPdmVyd3JpdGUgdGhpcyBkZXNrdG9wIGZpbGU/ICIpKQoh IAkJKHVubGVzcyByZWxlYXNlIChlcnJvciAiRGVza3RvcCBmaWxlIGNvbmZsaWN0IikpKQohIAoh IAkgIChzZXQtYnVmZmVyIGJ1ZikKISAJICAoZXJhc2UtYnVmZmVyKQohIAohIAkgIChpbnNlcnQK ISAJICAgIjs7IC0qLSBtb2RlOiBlbWFjcy1saXNwOyBjb2Rpbmc6IGVtYWNzLW11bGU7IC0qLVxu IgohIAkgICBkZXNrdG9wLWhlYWRlcgohIAkgICAiOzsgQ3JlYXRlZCAiIChjdXJyZW50LXRpbWUt c3RyaW5nKSAiXG4iCiEgCSAgICI7OyBEZXNrdG9wIGZpbGUgZm9ybWF0IHZlcnNpb24gIiBkZXNr dG9wLWZpbGUtdmVyc2lvbiAiXG4iCiEgCSAgICI7OyBFbWFjcyB2ZXJzaW9uICIgZW1hY3MtdmVy c2lvbiAiXG4iCiEgCSAgIChpZiByZWxlYXNlICIiIChkZXNrdG9wLWNvbmZsaWN0LXRleHQpKQoh IAkgICAiXG47OyBHbG9iYWwgc2VjdGlvbjpcbiIpCiEgCSAgKG1hcGMgKGZ1bmN0aW9uIGRlc2t0 b3Atb3V0dmFyKSBkZXNrdG9wLWdsb2JhbHMtdG8tc2F2ZSkKISAJICAoaWYgKG1lbXEgJ2tpbGwt cmluZyBkZXNrdG9wLWdsb2JhbHMtdG8tc2F2ZSkKISAJICAgICAgKGluc2VydAohIAkgICAgICAg IihzZXRxIGtpbGwtcmluZy15YW5rLXBvaW50ZXIgKG50aGNkciAiCiEgCSAgICAgICAoaW50LXRv LXN0cmluZyAoLSAobGVuZ3RoIGtpbGwtcmluZykgKGxlbmd0aCBraWxsLXJpbmcteWFuay1wb2lu dGVyKSkpCiEgCSAgICAgICAiIGtpbGwtcmluZykpXG4iKSkKISAKISAJICAoaW5zZXJ0ICJcbjs7 IEJ1ZmZlciBzZWN0aW9uIC0tIGJ1ZmZlcnMgbGlzdGVkIGluIHNhbWUgb3JkZXIgYXMgaW4gYnVm ZmVyIGxpc3Q6XG4iKQohIAkgIChtYXBjICMnKGxhbWJkYSAobCkKISAJCSAgICAod2hlbiAoYXBw bHkgJ2Rlc2t0b3Atc2F2ZS1idWZmZXItcCBsKQohIAkJICAgICAgKGluc2VydCAiKCIKISAJCQkg ICAgICAoaWYgKG9yIChub3QgKGludGVnZXJwIGVhZ2VyKSkKISAJCQkJICAgICAgKHVubGVzcyAo emVyb3AgZWFnZXIpCiEgCQkJCQkoc2V0cSBlYWdlciAoMS0gZWFnZXIpKQohIAkJCQkJdCkpCiEg CQkJCSAgImRlc2t0b3AtY3JlYXRlLWJ1ZmZlciIKISAJCQkJImRlc2t0b3AtYXBwZW5kLWJ1ZmZl ci1hcmdzIikKISAJCQkgICAgICAiICIKISAJCQkgICAgICBkZXNrdG9wLWZpbGUtdmVyc2lvbikK ISAJCSAgICAgIChtYXBjICMnKGxhbWJkYSAoZSkKISAJCQkJKGluc2VydCAiXG4gICIgKGRlc2t0 b3AtdmFsdWUtdG8tc3RyaW5nIGUpKSkKISAJCQkgICAgbCkKISAJCSAgICAgIChpbnNlcnQgIilc blxuIikpKQohIAkJaW5mbykKISAKISAJICAoc2V0cSBkZWZhdWx0LWRpcmVjdG9yeSBkaXJuYW1l KQohIAkgIChsZXQgKChjb2Rpbmctc3lzdGVtLWZvci13cml0ZSAnZW1hY3MtbXVsZSkpCiEgCSAg ICAod3JpdGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpIChkZXNrdG9wLWZ1bGwtZmls ZS1uYW1lKSBuaWwgJ25vbWVzc2FnZSkpCiEgCSAgOzsgV2UgcmVtZW1iZXIgd2hlbiBpdCB3YXMg bW9kaWZpZWQgKHdoaWNoIGlzIHByZXN1bWFibHkganVzdCBub3cpLgohIAkgIChzZXRxIGRlc2t0 b3AtZmlsZS1tb2R0aW1lIChudGggNSAoZmlsZS1hdHRyaWJ1dGVzIChkZXNrdG9wLWZ1bGwtZmls ZS1uYW1lKSkpKSkpKSkpCiAgCiAgOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIChkZWZ1biBkZXNr dG9wLXJlbW92ZSAoKQoqKioqKioqKioqKioqKioKKioqIDgxMCw4MTYgKioqKgogIFRoaXMgZnVu Y3Rpb24gYWxzbyBzZXRzIGBkZXNrdG9wLWRpcm5hbWUnIHRvIG5pbC4iCiAgICAoaW50ZXJhY3Rp dmUpCiAgICAod2hlbiBkZXNrdG9wLWRpcm5hbWUKISAgICAgKGxldCAoKGZpbGVuYW1lIChleHBh bmQtZmlsZS1uYW1lIGRlc2t0b3AtYmFzZS1maWxlLW5hbWUgZGVza3RvcC1kaXJuYW1lKSkpCiAg ICAgICAgKHNldHEgZGVza3RvcC1kaXJuYW1lIG5pbCkKICAgICAgICAod2hlbiAoZmlsZS1leGlz dHMtcCBmaWxlbmFtZSkKICAgICAgICAgIChkZWxldGUtZmlsZSBmaWxlbmFtZSkpKSkpCi0tLSA4 MzgsODQ0IC0tLS0KICBUaGlzIGZ1bmN0aW9uIGFsc28gc2V0cyBgZGVza3RvcC1kaXJuYW1lJyB0 byBuaWwuIgogICAgKGludGVyYWN0aXZlKQogICAgKHdoZW4gZGVza3RvcC1kaXJuYW1lCiEgICAg IChsZXQgKChmaWxlbmFtZSAoZGVza3RvcC1mdWxsLWZpbGUtbmFtZSkpKQogICAgICAgIChzZXRx IGRlc2t0b3AtZGlybmFtZSBuaWwpCiAgICAgICAgKHdoZW4gKGZpbGUtZXhpc3RzLXAgZmlsZW5h bWUpCiAgICAgICAgICAoZGVsZXRlLWZpbGUgZmlsZW5hbWUpKSkpKQoqKioqKioqKioqKioqKioK KioqIDgzMyw4ODQgKioqKgogICAgKGludGVyYWN0aXZlKQogICAgKHVubGVzcyBub25pbnRlcmFj dGl2ZQogICAgICAoc2V0cSBkZXNrdG9wLWRpcm5hbWUKISAgICAgICAoZmlsZS1uYW1lLWFzLWRp cmVjdG9yeQohICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUKISAgICAgICAgICAgKG9yCiEgICAg ICAgICAgICAgOzsgSWYgRElSTkFNRSBpcyBzcGVjaWZpZWQsIHVzZSBpdC4KISAgICAgICAgICAg ICAoYW5kICg8IDAgKGxlbmd0aCBkaXJuYW1lKSkgZGlybmFtZSkKISAgICAgICAgICAgICA7OyBP dGhlcndpc2Ugc2VhcmNoIGRlc2t0b3AgZmlsZSBpbiBkZXNrdG9wLXBhdGguCiEgICAgICAgICAg ICAgKGxldCAoKGRpcnMgZGVza3RvcC1wYXRoKSkKISAgICAgICAgICAgICAgICh3aGlsZQohICAg ICAgICAgICAgICAgICAoYW5kCiEgICAgICAgICAgICAgICAgICAgZGlycwohICAgICAgICAgICAg ICAgICAgIChub3QKISAgICAgICAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wIChleHBhbmQt ZmlsZS1uYW1lIGRlc2t0b3AtYmFzZS1maWxlLW5hbWUgKGNhciBkaXJzKSkpKSkKISAgICAgICAg ICAgICAgICAgKHNldHEgZGlycyAoY2RyIGRpcnMpKSkKISAgICAgICAgICAgICAgIChhbmQgZGly cyAoY2FyIGRpcnMpKSkKISAgICAgICAgICAgICA7OyBJZiBub3QgZm91bmQgYW5kIGBkZXNrdG9w LXBhdGgnIGlzIG5vbi1uaWwsIHVzZSBpdHMgZmlyc3QgZWxlbWVudC4KISAgICAgICAgICAgICAo YW5kIGRlc2t0b3AtcGF0aCAoY2FyIGRlc2t0b3AtcGF0aCkpCiEgICAgICAgICAgICAgOzsgRGVm YXVsdDogSG9tZSBkaXJlY3RvcnkuCiEgICAgICAgICAgICAgIn4iKSkpKQohICAgICAoaWYgKGZp bGUtZXhpc3RzLXAgKGV4cGFuZC1maWxlLW5hbWUgZGVza3RvcC1iYXNlLWZpbGUtbmFtZSBkZXNr dG9wLWRpcm5hbWUpKQohICAgICAgIDs7IERlc2t0b3AgZmlsZSBmb3VuZCwgcHJvY2VzcyBpdC4K ISAgICAgICAobGV0ICgoZGVza3RvcC1maXJzdC1idWZmZXIgbmlsKQohICAgICAgICAgICAgIChk ZXNrdG9wLWJ1ZmZlci1vay1jb3VudCAwKQohICAgICAgICAgICAgIChkZXNrdG9wLWJ1ZmZlci1m YWlsLWNvdW50IDApKQohICAgICAgICAgKHNldHEgZGVza3RvcC1sYXp5LXRpbWVyIG5pbCkKISAg ICAgICAgIDs7IEV2YWx1YXRlIGRlc2t0b3AgYnVmZmVyLgohICAgICAgICAgKGxvYWQgKGV4cGFu ZC1maWxlLW5hbWUgZGVza3RvcC1iYXNlLWZpbGUtbmFtZSBkZXNrdG9wLWRpcm5hbWUpIHQgdCB0 KQohICAgICAgICAgOzsgYGRlc2t0b3AtY3JlYXRlLWJ1ZmZlcicgcHV0cyBidWZmZXJzIGF0IGVu ZCBvZiB0aGUgYnVmZmVyIGxpc3QuCiEgICAgICAgICA7OyBXZSB3YW50IGJ1ZmZlcnMgZXhpc3Rp bmcgcHJpb3IgdG8gZXZhbHVhdGluZyB0aGUgZGVza3RvcCAoYW5kIG5vdCByZXVzZWQpCiEgICAg ICAgICA7OyB0byBiZSBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGxpc3QsIHNvIHdl IG1vdmUgdGhlbSBoZXJlLgohICAgICAgICAgKG1hcGMgJ2J1cnktYnVmZmVyCiEgICAgICAgICAg ICAgICAobnJldmVyc2UgKGNkciAobWVtcSBkZXNrdG9wLWZpcnN0LWJ1ZmZlciAobnJldmVyc2Ug KGJ1ZmZlci1saXN0KSkpKSkpCiEgICAgICAgICAoc3dpdGNoLXRvLWJ1ZmZlciAoY2FyIChidWZm ZXItbGlzdCkpKQohICAgICAgICAgKHJ1bi1ob29rcyAnZGVza3RvcC1kZWxheS1ob29rKQohICAg ICAgICAgKHNldHEgZGVza3RvcC1kZWxheS1ob29rIG5pbCkKISAgICAgICAgIChydW4taG9va3Mg J2Rlc2t0b3AtYWZ0ZXItcmVhZC1ob29rKQohICAgICAgICAgKG1lc3NhZ2UgIkRlc2t0b3A6ICVk IGJ1ZmZlciVzIHJlc3RvcmVkJXMlcy4iCiEgICAgICAgICAgICAgICAgICBkZXNrdG9wLWJ1ZmZl ci1vay1jb3VudAohICAgICAgICAgICAgICAgICAgKGlmICg9IDEgZGVza3RvcC1idWZmZXItb2st Y291bnQpICIiICJzIikKISAgICAgICAgICAgICAgICAgIChpZiAoPCAwIGRlc2t0b3AtYnVmZmVy LWZhaWwtY291bnQpCiEgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiLCAlZCBmYWlsZWQg dG8gcmVzdG9yZSIgZGVza3RvcC1idWZmZXItZmFpbC1jb3VudCkKISAgICAgICAgICAgICAgICAg ICAgIiIpCiEgICAgICAgICAgICAgICAgICAoaWYgZGVza3RvcC1idWZmZXItYXJncy1saXN0CiEg ICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiLCAlZCB0byByZXN0b3JlIGxhemlseSIKISAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggZGVza3RvcC1idWZmZXItYXJncy1s aXN0KSkKISAgICAgICAgICAgICAgICAgICAgIiIpKQohICAgICAgICAgdCkKICAgICAgICA7OyBO byBkZXNrdG9wIGZpbGUgZm91bmQuCiAgICAgICAgKGRlc2t0b3AtY2xlYXIpCiAgICAgICAgKGxl dCAoKGRlZmF1bHQtZGlyZWN0b3J5IGRlc2t0b3AtZGlybmFtZSkpCi0tLSA4NjEsOTMwIC0tLS0K ICAgIChpbnRlcmFjdGl2ZSkKICAgICh1bmxlc3Mgbm9uaW50ZXJhY3RpdmUKICAgICAgKHNldHEg ZGVza3RvcC1kaXJuYW1lCiEgCSAgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkKISAJICAgKGV4cGFu ZC1maWxlLW5hbWUKISAJICAgIChvcgohIAkgICAgIDs7IElmIERJUk5BTUUgaXMgc3BlY2lmaWVk LCB1c2UgaXQuCiEgCSAgICAgKGFuZCAoPCAwIChsZW5ndGggZGlybmFtZSkpIGRpcm5hbWUpCiEg CSAgICAgOzsgT3RoZXJ3aXNlIHNlYXJjaCBkZXNrdG9wIGZpbGUgaW4gZGVza3RvcC1wYXRoLgoh IAkgICAgIChsZXQgKChkaXJzIGRlc2t0b3AtcGF0aCkpCiEgCSAgICAgICAod2hpbGUKISAJCSAg IChhbmQKISAJCSAgICBkaXJzCiEgCQkgICAgKG5vdAohIAkJICAgICAoZmlsZS1leGlzdHMtcCAo ZGVza3RvcC1mdWxsLWZpbGUtbmFtZSAoY2FyIGRpcnMpKSkpKQohIAkJIChzZXRxIGRpcnMgKGNk ciBkaXJzKSkpCiEgCSAgICAgICAoYW5kIGRpcnMgKGNhciBkaXJzKSkpCiEgCSAgICAgOzsgSWYg bm90IGZvdW5kIGFuZCBgZGVza3RvcC1wYXRoJyBpcyBub24tbmlsLCB1c2UgaXRzIGZpcnN0IGVs ZW1lbnQuCiEgCSAgICAgKGFuZCBkZXNrdG9wLXBhdGggKGNhciBkZXNrdG9wLXBhdGgpKQohIAkg ICAgIDs7IERlZmF1bHQ6IEhvbWUgZGlyZWN0b3J5LgohIAkgICAgICJ+IikpKSkKISAgICAgKGlm IChmaWxlLWV4aXN0cy1wIChkZXNrdG9wLWZ1bGwtZmlsZS1uYW1lKSkKISAJOzsgRGVza3RvcCBm aWxlIGZvdW5kLCBwcm9jZXNzIGl0LgohIAkobGV0ICgoZGVza3RvcC1maXJzdC1idWZmZXIgbmls KQohIAkgICAgICAoZGVza3RvcC1idWZmZXItb2stY291bnQgMCkKISAJICAgICAgKGRlc2t0b3At YnVmZmVyLWZhaWwtY291bnQgMCkKISAJICAgICAgZGVza3RvcC1vd25lcikKISAJICAoc2V0cSBk ZXNrdG9wLWxhenktdGltZXIgbmlsKQohIAkgIDs7IEV2YWx1YXRlIGRlc2t0b3AgYnVmZmVyLgoh IAkgIChsb2FkIChkZXNrdG9wLWZ1bGwtZmlsZS1uYW1lKSB0IHQgdCkKISAJICAoaWYgKGFuZCBk ZXNrdG9wLW93bmVyCiEgCQkgICAobm90ICh5LW9yLW4tcCAoZm9ybWF0ICJXYXJuaW5nOiBkZXNr dG9wIGZpbGUgYXBwZWFycyB0byBiZSBpbiB1c2UgYnkgUElEICVzLlxuVXNpbmcgaXQgbWF5IGNh dXNlIGNvbmZsaWN0cy4gIFVzZSBpdCBhbnl3YXk/ICIgZGVza3RvcC1vd25lcikpKSkKISAJICAg ICAgKHByb2duIChkZXNrdG9wLWNsZWFyKQohIAkJICAgICAoc2V0cSBkZXNrdG9wLWRpcm5hbWUg bmlsKQohIAkJICAgICAobWVzc2FnZSAiRGVza3RvcCBmaWxlIGluIHVzZTsgbm90IGxvYWRlZC4i KQohIAkJICAgICBuaWwpCiEgCSAgICA7OyBJZiBpdCB3YXNuJ3QgYWxyZWFkeSwgbWFyayBpdCBh cyBpbi11c2UsIHRvIGJvdGhlciBvdGhlcgohIAkgICAgOzsgZGVza3RvcCBpbnN0YW5jZXMuCiEg CSAgICAodW5sZXNzIGRlc2t0b3Atb3duZXIKISAJICAgICAgKGNvbmRpdGlvbi1jYXNlIG5pbAoh IAkJICAod3JpdGUtcmVnaW9uIChkZXNrdG9wLWNvbmZsaWN0LXRleHQpIG5pbAohIAkJCQkoZGVz a3RvcC1mdWxsLWZpbGUtbmFtZSkgdCAnbm9tZXNzYWdlKQohIAkJKGZpbGUtZXJyb3IgKG1lc3Nh Z2UgIkNvdWxkbid0IG1hcmsgZGVza3RvcCBmaWxlIGFzIGFjdGl2ZSIpCiEgCQkJICAgIChzaXQt Zm9yIDEpKSkpCiEgCSAgICA7OyBXZSByZW1lbWJlciB3aGVuIGl0IHdhcyBtb2RpZmllZCAod2hp Y2ggaXMgcHJlc3VtYWJseSBqdXN0IG5vdykuCiEgCSAgICAoc2V0cSBkZXNrdG9wLWZpbGUtbW9k dGltZSAobnRoIDUgKGZpbGUtYXR0cmlidXRlcyAoZGVza3RvcC1mdWxsLWZpbGUtbmFtZSkpKSkK ISAJICAgIDs7IGBkZXNrdG9wLWNyZWF0ZS1idWZmZXInIHB1dHMgYnVmZmVycyBhdCBlbmQgb2Yg dGhlIGJ1ZmZlciBsaXN0LgohIAkgICAgOzsgV2Ugd2FudCBidWZmZXJzIGV4aXN0aW5nIHByaW9y IHRvIGV2YWx1YXRpbmcgdGhlIGRlc2t0b3AgKGFuZAohIAkgICAgOzsgbm90IHJldXNlZCkgdG8g YmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBsaXN0LCBzbyB3ZQohIAkgICAgOzsg bW92ZSB0aGVtIGhlcmUuCiEgCSAgICAobWFwYyAnYnVyeS1idWZmZXIKISAJCSAgKG5yZXZlcnNl IChjZHIgKG1lbXEgZGVza3RvcC1maXJzdC1idWZmZXIgKG5yZXZlcnNlIChidWZmZXItbGlzdCkp KSkpKQohIAkgICAgKHN3aXRjaC10by1idWZmZXIgKGNhciAoYnVmZmVyLWxpc3QpKSkKISAJICAg IChydW4taG9va3MgJ2Rlc2t0b3AtZGVsYXktaG9vaykKISAJICAgIChzZXRxIGRlc2t0b3AtZGVs YXktaG9vayBuaWwpCiEgCSAgICAocnVuLWhvb2tzICdkZXNrdG9wLWFmdGVyLXJlYWQtaG9vaykK ISAJICAgIChtZXNzYWdlICJEZXNrdG9wOiAlZCBidWZmZXIlcyByZXN0b3JlZCVzJXMuIgohIAkJ ICAgICBkZXNrdG9wLWJ1ZmZlci1vay1jb3VudAohIAkJICAgICAoaWYgKD0gMSBkZXNrdG9wLWJ1 ZmZlci1vay1jb3VudCkgIiIgInMiKQohIAkJICAgICAoaWYgKDwgMCBkZXNrdG9wLWJ1ZmZlci1m YWlsLWNvdW50KQohIAkJCSAoZm9ybWF0ICIsICVkIGZhaWxlZCB0byByZXN0b3JlIiBkZXNrdG9w LWJ1ZmZlci1mYWlsLWNvdW50KQohIAkJICAgICAgICIiKQohIAkJICAgICAoaWYgZGVza3RvcC1i dWZmZXItYXJncy1saXN0CiEgCQkJIChmb3JtYXQgIiwgJWQgdG8gcmVzdG9yZSBsYXppbHkiCiEg CQkJCSAobGVuZ3RoIGRlc2t0b3AtYnVmZmVyLWFyZ3MtbGlzdCkpCiEgCQkgICAgICAgIiIpKQoh IAkgICAgdCkpCiAgICAgICAgOzsgTm8gZGVza3RvcCBmaWxlIGZvdW5kLgogICAgICAgIChkZXNr dG9wLWNsZWFyKQogICAgICAgIChsZXQgKChkZWZhdWx0LWRpcmVjdG9yeSBkZXNrdG9wLWRpcm5h bWUpKQo= ------=_20060427160553_30790 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ------=_20060427160553_30790--