From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: A Soare Newsgroups: gmane.emacs.devel Subject: Re: An automaton for indenting the lisp code in linear time Date: Fri, 4 Jul 2008 23:14:05 +0200 (CEST) Message-ID: <16264210.137801215206045879.JavaMail.www@wwinf4610> Reply-To: alinsoar@voila.fr NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1615_21746363.1215206045878" X-Trace: ger.gmane.org 1215206075 23306 80.91.229.12 (4 Jul 2008 21:14:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 4 Jul 2008 21:14:35 +0000 (UTC) To: "Emacs Dev [emacs-devel]" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 04 23:15:20 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KEscX-00052q-8J for ged-emacs-devel@m.gmane.org; Fri, 04 Jul 2008 23:15:09 +0200 Original-Received: from localhost ([127.0.0.1]:38809 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KEsbg-0000MY-9b for ged-emacs-devel@m.gmane.org; Fri, 04 Jul 2008 17:14:16 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KEsba-0000LL-JR for emacs-devel@gnu.org; Fri, 04 Jul 2008 17:14:10 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KEsba-0000KM-0H for emacs-devel@gnu.org; Fri, 04 Jul 2008 17:14:10 -0400 Original-Received: from [199.232.76.173] (port=53613 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KEsbZ-0000KC-Lc for emacs-devel@gnu.org; Fri, 04 Jul 2008 17:14:09 -0400 Original-Received: from smtp3.voila.fr ([193.252.22.173]:3246) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KEsbZ-0006aT-A4 for emacs-devel@gnu.org; Fri, 04 Jul 2008 17:14:09 -0400 Original-Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf4212.voila.fr (SMTP Server) with ESMTP id EF2EA700008B for ; Fri, 4 Jul 2008 23:14:05 +0200 (CEST) Original-Received: from wwinf4610 (wwinf4610 [10.232.13.53]) by mwinf4212.voila.fr (SMTP Server) with ESMTP id E02C67000081 for ; Fri, 4 Jul 2008 23:14:05 +0200 (CEST) X-ME-UUID: 20080704211405918.E02C67000081@mwinf4212.voila.fr X-Originating-IP: [93.112.90.5] X-Wum-Nature: EMAIL-NATURE X-WUM-FROM: |~| X-WUM-TO: |~| X-WUM-REPLYTO: |~| X-me-spamlevel: not-spam X-me-spamrating: 40.000000 X-me-spamcause: OK, (-100)(0000)secvtfgvtghiphhivghnthhsucdlqddutddtmd X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 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:100359 Archived-At: ------=_Part_1615_21746363.1215206045878 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Here I send a more simplified version of the indentation of lisp code... Th= is might be useful for more developpers... Alin Soare. ____________________________________________________ Sur le mail Voila, vous pouvez personnaliser l=E2=80=99anti-spam ! http://m= ail.voila.fr ------=_Part_1615_21746363.1215206045878 Content-Type: application/octet-stream; name=indent.el content-transfer-encoding: base64 Content-Disposition: attachment; filename=indent.el CihkZWZ1biBsaXNwLWluZGVudC12YWx1ZSAoKQogICIKICBWRVJTSU9OIDogTkVXCiAgIgogIChj b25kICgoZWx0IHN0YXRlIDMpCiAgICAgICAgIDs7IEluc2lkZSBhIHN0cmluZywgZG9uJ3QgY2hh bmdlIGluZGVudGF0aW9uLgogICAgICAgICBuaWwKICAgICAgICAgKQogICAgICAgICgobnVsbCAo Y2FkciBzdGF0ZSkpCiAgICAgICAgIDs7IG91dHNpZGUgYW4gZXhwcmVzc2lvbiBhbGlnbiB0byB0 aGUgbGVmdCBjb2x1bW4KICAgICAgICAgMAogICAgICAgICApCiAgICAgICAgKChudWxsIGluZGVu dCkKICAgICAgICAgOzsgYW4gZW1wdHkgcGFyZXRoZXNpcwogICAgICAgICAoMSsgc3RhcnQtY29s KSkKICAgICAgICAoKGFuZCAoaW50ZWdlcnAgbGlzcC1pbmRlbnQtb2Zmc2V0KQogICAgICAgICAg ICAgIChpbnRlZ2VycCAoY2FkciBpbmRlbnQpKSkKICAgICAgICAgOzsgaW5kZW50IGJ5IGNvbnN0 YW50IG9mZnNldAogICAgICAgICAoKyAoY2FkciBpbmRlbnQpIGxpc3AtaW5kZW50LW9mZnNldCkK ICAgICAgICAgKQogICAgICAgICgobG9va2luZy1hdCAiXFxzPFxcczxcXHM8IikKICAgICAgICAg OzsgQ29tbWVudHMgdGhhdCBzdGFydCB3aXRoIHRocmVlIHNlbWljb2xvbnMgb3IgbW9yZSwgc2hv dWxkCiAgICAgICAgIDs7IHN0YXJ0IGF0IHRoZSBsZWZ0IG1hcmdpbgogICAgICAgICAwCiAgICAg ICAgICkKICAgICAgICAoKGVxIChjYXIgaW5kZW50KSA6bCkKICAgICAgICAgOzsgaW5kZW50IGJl bmVhdGggYSBsaXN0CiAgICAgICAgIChjYWRkciBpbmRlbnQpCiAgICAgICAgICkKICAgICAgICAg KChhbmQgKGVxIChjYXIgaW5kZW50KSA6dykKICAgICAgICAgICAgICAoc3RyaW5ncCAoY2FkciBp bmRlbnQpKQogICAgICAgICAgICAgICg+PSAobGVuZ3RoIChjYWRyIGluZGVudCkpIDMpCiAgICAg ICAgICAgICAgKHN0cmluZy1lcXVhbCAiZGVmIiAoc3Vic3RyaW5nIChjYWRyIGluZGVudCkgMCAz KSkpCiAgICAgICAgIDs7IGluZGVudCBhIGRlZi1mb3JtCiAgICAgICAgICgrIGxpc3AtYm9keS1p bmRlbnQgc3RhcnQtY29sKQogICAgICAgICApCiAgICAgICAgKChhbmQgKGVxIChjYXIgaW5kZW50 KSA6dykKICAgICAgICAgICAgICAod2hvbGVudW1wIChnZXQgKGludGVybi1zb2Z0IChjYWRyIGlu ZGVudCkpICdsaXNwLWluZGVudC1mdW5jdGlvbikpKQogICAgICAgICA7OyBoZXJlIHRoZXJlIGlz IGEgc3BlY2lhbCBmb3JtCiAgICAgICAgIChzZXRxIG9vIChvciAoZ2V0IChpbnRlcm4tc29mdCAo Y2FkciBpbmRlbnQpKSAnbGlzcC1pbmRlbnQtZnVuY3Rpb24pCiAgICAgICAgICAgICAgICAgICAg ICAoZ2V0IChpbnRlcm4tc29mdCAoY2FkciBpbmRlbnQpKSAnbGlzcC1pbmRlbnQtaG9vaykpKQog ICAgICAgICAoaWYgKD4gKGxlbmd0aCBpbmRlbnQpICgqIDMgb28pKQogICAgICAgICAgICAgKCsg bGlzcC1ib2R5LWluZGVudCBzdGFydC1jb2wpCiAgICAgICAgICAgKCsgKCogMiBsaXNwLWJvZHkt aW5kZW50KSBzdGFydC1jb2wpKQogICAgICAgICApCiAgICAgICAgKChhbmQgKGVxIChjYXIgaW5k ZW50KSA6dykKICAgICAgICAgICAgICAoZ2V0IChpbnRlcm4tc29mdCAoY2FkciBpbmRlbnQpKSAn bGlzcC1pbmRlbnQtaG9vaykKICAgICAgICAgICAgICBuaWwpCiAgICAgICAgIDs7IGluZGVudCBk ZWZpbmVkIGJ5IGFub3RoZXIgZnVuY3Rpb24KICAgICAgICAgOzsgbm90IGRlZmluZWQgeWV0CiAg ICAgICAgIChmdW5jYWxsIChnZXQgKGludGVybi1zb2Z0IChjYWRyIGluZGVudCkpICdsaXNwLWlu ZGVudC1ob29rKSkKICAgICAgICAgKQogICAgICAgICgoYW5kIChlcXVhbCAoZm9sbG93aW5nLWNo YXIpID86KQogICAgICAgICAgICAgIG5pbCkKICAgICAgICAgOzsgaW5kZW50IG9mIGEgY29uc3Rh bnQgc3ltYm9sCiAgICAgICAgIDs7IG5vdCB5ZWQgZGVmaW5lZAogICAgICAgICAoY2FkZHIgaW5k ZW50KQogICAgICAgICApCiAgICAgICAgKChhbmQgKGVxIChjYXIgaW5kZW50KSA6dykKICAgICAg ICAgICAgICAoPiAobGVuZ3RoIGluZGVudCkgMykpCiAgICAgICAgIDs7IGluZGVudCBiZW5lYXRo IHRoZSBgaW5kZW50LXdoYXQtYXJndW1lbnQnIHBhcmFtZXRlcgogICAgICAgICAoZWx0IGluZGVu dCAoKyAzICgxLSAoKiAzIGluZGVudC13aGF0LWFyZ3VtZW50KSkpKQogICAgICAgICApCiAgICAg ICAgKHQKICAgICAgICAgOzsgIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgYSBmdW5jdGlvbiBjYWxs CiAgICAgICAgIChjYWRkciBpbmRlbnQpKQogICAgICAgICApKQoKKGRlZnVuIGxpc3AtaW5kZW50 LXdoYXQtYXJndW1lbnQgbmlsCiAgKGNvbmQgKChhbmQgKGVxIChjYXIgaW5kZW50KSA6dykKICAg ICAgICAgICAgICAoc3RyaW5ncCAoY2FkciBpbmRlbnQpKQogICAgICAgICAgICAgICg+PSAobGVu Z3RoIChjYWRyIGluZGVudCkpIDMpCiAgICAgICAgICAgICAgKHN0cmluZy1lcXVhbCAiZGVmIiAo c3Vic3RyaW5nIChjYWRyIGluZGVudCkgMCAzKSkKICAgICAgICAgICAgICAoPSAobGVuZ3RoIGlu ZGVudCkgOSkpCiAgICAgICAgIDs7IGlmIHRoZSBzZWNvbmQgcGFyYW1ldGVyIG9mIGRlZnVuIGlz IGEgbGlzdCwgdGhlbiB0aGlzIGxpc3QKICAgICAgICAgOzsgaXMgbm90IGEgZnVuY3Rpb24gY2Fs bAogICAgICAgICAwKQogICAgICAgICgob3IKICAgICAgICAgIChhbmQgKD49IChsZW5ndGggaW5k ZW50KSA2KQogICAgICAgICAgICAgICAoZXEgKGVsdCBpbmRlbnQgKC0gKGxlbmd0aCBpbmRlbnQg KSA2KSkgOnEpKQogICAgICAgICAgKGFuZCAoZXEgKGNhciBpbmRlbnQpIDp3KQogICAgICAgICAg ICAgICAoc3RyaW5ncCAoY2FkciBpbmRlbnQpKQogICAgICAgICAgICAgICAoc3RyaW5nLWVxdWFs ICJxdW90ZSIgKGNhZHIgaW5kZW50KSkpKQogICAgICAgICA7OyBhIHF1b3RlZCBsaXN0IGlzIG5v dCBhIGZ1bmN0aW9uIGNhbGwKICAgICAgICAgMAogICAgICAgICApCiAgICAgICAgKHQKICAgICAg ICAgOzsgZm9yIHRoZSByZXN0LCBhbHdheXMgaW5kZW50IGJlbmVhdGggdGhlIGZpcnN0IHBhcmFt ZXRlciBvZgogICAgICAgICA7OyB0aGUgZnVuY3Rpb24uLi4KICAgICAgICAgMSkpKQoKKGRlZnVu IGxpc3AtaW5kZW50LW5leHQtc3RhdGUgKCZvcHRpb25hbCBuKQogIChzZXRxIHN0YXRlIChwYXJz ZS1wYXJ0aWFsLXNleHAgKHBvaW50KSAoKyAob3IgbiAxKSAocG9pbnQpKSAoKSAoKSBzdGF0ZSkK ICAgICAgICBjb2x1bW4gKCsgKG9yIG4gMSkgY29sdW1uKSkpCgooZGVmdW4gbGlzcC1pbmRlbnQt YXV0b21hdG9uICgmb3B0aW9uYWwgZW5kIGluZGVudC13aGF0LWFyZ3VtZW50IHN0YXJ0LWNvbCBp bmRlbnQpCiAgIgogICBhbiBhdXRvbWF0b24gdG8gaW5kZW50IHRoZSBsaXNwIGNvZGUKICAgVkVS U0lPTjogTkVXCiAgIgogIChvciBlbmQgKGJlZ2lubmluZy1vZi1saW5lKSAoc2V0cSBlbmQgKHBv aW50KSkpCiAgKG9yIGluZGVudC13aGF0LWFyZ3VtZW50CiAgICAgIChzZXRxIGluZGVudC13aGF0 LWFyZ3VtZW50IDApKQogIChvciBzdGF0ZSAoYW5kIChiZWdpbm5pbmctb2YtZGVmdW4pCiAgICAg ICAgICAgICAgICAgKHNldHEgY29sdW1uIChjdXJyZW50LWNvbHVtbikpKSkKICAoYW5kIChudWxs IHN0YXJ0LWNvbCkgKHNldHEgc3RhcnQtY29sIDApKQogIChjYXRjaCAnU1RPUAogICAgKHdoaWxl ICg8IChwb2ludCkgZW5kKQogICAgICAoY29uZCAoKGFuZCAoZWx0IHN0YXRlIDgpCiAgICAgICAg ICAgICAgICAgIChub3QgKGVsdCBzdGF0ZSA0KSkpCiAgICAgICAgICAgICA7OyBpbnNpZGUgYSBz dHJpbmcKICAgICAgICAgICAgIChhbmQgKGxvb2tpbmctYXQgIlxccz4iKQogICAgICAgICAgICAg ICAgICAoc2V0cSBpbmRlbnQtbGluZXMgKGNvbnMgKGxpc3AtaW5kZW50LXZhbHVlKSBpbmRlbnQt bGluZXMpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbiAwKSkKICAgICAgICAgICAgIChs aXNwLWluZGVudC1uZXh0LXN0YXRlKQogICAgICAgICAgICAgKQogICAgICAgICAgICAoKGxvb2tp bmctYXQgIlxcc1wiIikKICAgICAgICAgICAgIDs7IHRoZSBzdGFydCBvZiBhIHN0cmluZwogICAg ICAgICAgICAgKHNldHEgaW5kZW50IChhcHBlbmQgaW5kZW50IChsaXN0IDpzICgpIGNvbHVtbikp KQogICAgICAgICAgICAgKGxpc3AtaW5kZW50LW5leHQtc3RhdGUpCiAgICAgICAgICAgICApCiAg ICAgICAgICAgICgobG9va2luZy1hdCAiXFxzXCgiKQogICAgICAgICAgICAgOzsgb3BlbiBhIHBh cmVudGhlc2lzCiAgICAgICAgICAgICAobGV0ICgoY29sIChpZiBpbmRlbnQtbGluZXMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgrIGNvbHVtbiAoLSAoY2FhciBpbmRlbnQtbGluZXMpIChj ZGFyIGluZGVudC1saW5lcykpKQogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbikpKQog ICAgICAgICAgICAgICAoc2V0cSBpbmRlbnQgKGFwcGVuZCBpbmRlbnQgKGxpc3QgOmwgKCkgY29s KSkpCiAgICAgICAgICAgICAgIChsaXNwLWluZGVudC1uZXh0LXN0YXRlKQogICAgICAgICAgICAg ICAobGlzcC1pbmRlbnQtYXV0b21hdG9uIGVuZCAobGlzcC1pbmRlbnQtd2hhdC1hcmd1bWVudCkg Y29sKSkKICAgICAgICAgICAgICkKICAgICAgICAgICAgKChsb29raW5nLWF0ICJcXHNcKSIpCiAg ICAgICAgICAgICA7OyBjbG9zZSBhIHBhcmVudGhlc2lzCiAgICAgICAgICAgICAobGlzcC1pbmRl bnQtbmV4dC1zdGF0ZSkKICAgICAgICAgICAgICh0aHJvdyAnU1RPUCBuaWwpCiAgICAgICAgICAg ICApCiAgICAgICAgICAgICgobG9va2luZy1hdCAiXFxzICIpCiAgICAgICAgICAgICA7OyBzcGFj ZXMgYXJlIGlnbm9yZWQKICAgICAgICAgICAgICh3aGlsZSAobG9va2luZy1hdCAiW1s6Ymxhbms6 XV0iKQogICAgICAgICAgICAgICAobGlzcC1pbmRlbnQtbmV4dC1zdGF0ZSkpCiAgICAgICAgICAg ICApCiAgICAgICAgICAgICgobG9va2luZy1hdCAiXFxzd1xcfFxcc18iKQogICAgICAgICAgICAg OzsgYSBmdW5jdGlvbiBvciBhIHBhcmFtZXRlcgogICAgICAgICAgICAgKGxldCogKChjb2wgKGlm IGluZGVudC1saW5lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCsgY29sdW1uICgtIChj YWFyIGluZGVudC1saW5lcykgKGNkYXIgaW5kZW50LWxpbmVzKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgY29sdW1uKSkKICAgICAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgICAg ICAgKHcgKGNhdGNoICdXT1JECiAgICAgICAgICAgICAgICAgICAgICAgICAod2hpbGUgdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSByIChjb25jYXQgciAoc3RyaW5nIChmb2xsb3dp bmctY2hhcikpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3AtaW5kZW50LW5leHQt c3RhdGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG5vdCAobG9va2luZy1hdCAi XFx3XFx8XFxzXyIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aHJvdyAnV09S RCByKSkpKSkpCiAgICAgICAgICAgICAgIChzZXRxIGluZGVudCAoYXBwZW5kIGluZGVudCAobGlz dCA6dyB3IGNvbCkpKSkKICAgICAgICAgICAgICkKICAgICAgICAgICAgKChsb29raW5nLWF0ICJc XHM8IikKICAgICAgICAgICAgIDs7IHN0YXJ0IG9mIGEgY29tbWVudAogICAgICAgICAgICAgKHdo aWxlIChub3QgKGxvb2tpbmctYXQgIlxccz4iKSkKICAgICAgICAgICAgICAgKGxpc3AtaW5kZW50 LW5leHQtc3RhdGUpKQogICAgICAgICAgICAgKQogICAgICAgICAgICAoKGxvb2tpbmctYXQgIlxc c1wnIikKICAgICAgICAgICAgIDs7IHF1b3RlCiAgICAgICAgICAgICAoc2V0cSBpbmRlbnQgKGFw cGVuZCBpbmRlbnQgKGxpc3QgOnEgKCkgY29sdW1uKSkpCiAgICAgICAgICAgICAobGlzcC1pbmRl bnQtbmV4dC1zdGF0ZSkKICAgICAgICAgICAgICkKICAgICAgICAgICAgKChsb29raW5nLWF0ICJc XHNcXCIpCiAgICAgICAgICAgICA7OyBhIHNwZWNpYWwgY2hhcmFjdGVyCiAgICAgICAgICAgICAo bGlzcC1pbmRlbnQtbmV4dC1zdGF0ZSAyKQogICAgICAgICAgICAgKQogICAgICAgICAgICAoKGxv b2tpbmctYXQgIlxccz4iKQogICAgICAgICAgICAgOzsgZW5kIG9mIGxpbmUKICAgICAgICAgICAg IChsaXNwLWluZGVudC1uZXh0LXN0YXRlKQogICAgICAgICAgICAgKHNldHEgY29sdW1uIDApCiAg ICAgICAgICAgICAod2hpbGUgKGxvb2tpbmctYXQgIlxccyAiKQogICAgICAgICAgICAgICAobGlz cC1pbmRlbnQtbmV4dC1zdGF0ZSkpCiAgICAgICAgICAgICAoc2V0cSBpbmRlbnQtbGluZXMgKGNv bnMgKGNvbnMgKGxpc3AtaW5kZW50LXZhbHVlKSBjb2x1bW4pIGluZGVudC1saW5lcykpCiAgICAg ICAgICAgICApCiAgICAgICAgICAgICh0CiAgICAgICAgICAgICAoZXJyb3IgIm9vcHMhIHVua25v d24gY2xhc3Mgb2Ygc3ludGF4ICEgKGluZGVudCBmYWlsZWQgYXQgcG9zaXRpb24gJWQpIiAocG9p bnQpKSkpKSkpCgooZGVmdW4gaW5kZW50LWRlZnVuLWV4YW1wbGUgbmlsCiAgIgogIEFuIGV4YW1w bGUgaG93IHRvIHVzZSB0aGUgYXV0b21hdG9uaW4gZm9yIGluZGVudGlnIGEgd2hvbGUgcmVnaW9u CiAgb2YgbGlzcCBjb2RlIGluIGxpbmVhciB0aW1lIChhIGZ1bmN0aW9uIGZyb20gdGhlIGJlZ2lu bmluZyB0byB0aGUgcG9pbnQpLgogICIKICAobGV0KiAoaW5kZW50LWxpbmVzCiAgICAgICAgIHN0 YXRlIAogICAgICAgICBsKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChsaXNwLWluZGVudC1h dXRvbWF0b24pCiAgICAgIChkb2xpc3QgKGkgaW5kZW50LWxpbmVzKQogICAgICAgICh3aGVuIChj b25zcCBpKQogICAgICAgICAgKHNldHEgbCAocHJvZzIgKGJlZ2lubmluZy1vZi1saW5lKSAocG9p bnQpKSkKICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIltbOmJsYW5rOl1dIikKICAgICAg ICAgICh3aGVuIChub3QgKHplcm9wICgtICAoLSBsIChwb2ludCkpICgtIChjZHIgaSkgKGNhciBp KSkpKSkKICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gbCAocG9pbnQpKQogICAgICAgICAgICAo aW5kZW50LXRvIChjYXIgaSkpKSkKICAgICAgICAocHJldmlvdXMtbGluZSkpKSkpCgooZGVmdW4g aW5kZW50LWxpbmUtZXhhbXBsZSBuaWwKICAiCiAgQW4gZXhhbXBsZSBob3cgdG8gaW5kZW50IGEg bGluZSBvZiBjb2RlIHVzaW5nIHRoZSBhdXRvbWF0b24KICAiCiAgKGxldCogKGluZGVudC1saW5l cwogICAgICAgICBzdGF0ZSAKICAgICAgICAgZGlmCiAgICAgICAgIChwb3MgKHBvaW50LW1hcmtl cikpCiAgICAgICAgIChsIChwcm9nMiAoYmVnaW5uaW5nLW9mLWxpbmUpIChwb2ludCkpKSkKICAg IChzYXZlLWV4Y3Vyc2lvbiAobGlzcC1pbmRlbnQtYXV0b21hdG9uKSkKICAgIChpZiAobm90IChj b25zcCAoY2FyIGluZGVudC1saW5lcykpKQogICAgICAgIG5pbAogICAgICAoc2V0cSBkaWYKICAg ICAgICAgICAgKGNhdGNoICdESUYKICAgICAgICAgICAgICAoZG9saXN0IChpIChjZHIgaW5kZW50 LWxpbmVzKSkKICAgICAgICAgICAgICAgIChhbmQgKGNvbnNwIGkpCiAgICAgICAgICAgICAgICAg ICAgICh0aHJvdyAnRElGICgtIChjZHIgaSkgKGNhciBpKSkpKSkpKQogICAgICAoc2tpcC1jaGFy cy1mb3J3YXJkICJbWzpibGFuazpdXSIpCiAgICAgICh3aGVuIChub3QgKHplcm9wICgtICgrIChj YWFyIGluZGVudC1saW5lcykgZGlmKSAoLSAocG9pbnQpIGwpKSkpCiAgICAgICAgKGRlbGV0ZS1y ZWdpb24gbCAocG9pbnQpKQogICAgICAgIChpbmRlbnQtdG8gKCsgKGNhYXIgaW5kZW50LWxpbmVz KSBkaWYpKQogICAgICAgIChnb3RvLWNoYXIgKG1heCBwb3MgKHBvaW50KSkpKSkpKQoKIDs7dGhp cyBjb2RlIHNob3dzIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgcHJlY2VkZWVuZyBmdW5jdGlvbiAo aW5kZW50LWxpbmUtZXhhbXBsZSkKIChsZXQqIChpbmRlbnQtbGluZXMKICAgICAgICBzdGF0ZQog ICAgICAgIGNvbHVtbikKICAgKGxpc3AtaW5kZW50LWF1dG9tYXRvbikKICAgaW5kZW50LWxpbmVz KQoKCgo= ------=_Part_1615_21746363.1215206045878--