From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Newsgroups: gmane.emacs.devel Subject: Re: Concerning the new `ido-use-virtual-buffers' feature Date: Fri, 28 May 2010 02:21:32 +0100 Message-ID: References: <201005271257.02056.tassilo@member.fsf.org> <201005272105.45102.tassilo@member.fsf.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e6d7ea70d2cb9504879d535b X-Trace: dough.gmane.org 1275009709 28547 80.91.229.12 (28 May 2010 01:21:49 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 28 May 2010 01:21:49 +0000 (UTC) Cc: John Wiegley , "Kim F. Storm" , emacs-devel@gnu.org To: Tassilo Horn Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri May 28 03:21:47 2010 connect(): No such file or directory 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.69) (envelope-from ) id 1OHoGg-0000Dx-Si for ged-emacs-devel@m.gmane.org; Fri, 28 May 2010 03:21:47 +0200 Original-Received: from localhost ([127.0.0.1]:34496 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OHoGg-0003W2-4z for ged-emacs-devel@m.gmane.org; Thu, 27 May 2010 21:21:46 -0400 Original-Received: from [140.186.70.92] (port=54850 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OHoGa-0003UX-9q for emacs-devel@gnu.org; Thu, 27 May 2010 21:21:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OHoGZ-00062o-4C for emacs-devel@gnu.org; Thu, 27 May 2010 21:21:40 -0400 Original-Received: from mail-ww0-f41.google.com ([74.125.82.41]:52181) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OHoGY-00062h-Rn for emacs-devel@gnu.org; Thu, 27 May 2010 21:21:39 -0400 Original-Received: by wwi17 with SMTP id 17so261385wwi.0 for ; Thu, 27 May 2010 18:21:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=Gv2j8Kgo5E6gVY1D5KwE5XboyXucpnHrvWMlvE/Qyxc=; b=Ss3q6A4mk2BDAWEkWRlzmxr8ZgYWFrus7DnTLOob1a5lljMD7bF3I+HAb5zqbJUrz6 lAlW7FSDZxZTu+r60gJ5GYTiXdlQxyugBWndwmX2NNcU0R4YTVkBp/9YZxlby0bf0i7G L1yUtkMhLvbw8XAD/A1i2vitwwsjU/mDOJFWE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=pC/S9/JN/ALzKHPR81vOz8U3O8Di4lyewHMigfPtOUo+2sP5HY82kw6riyyZYDCJeL qbgWWRfOdbD65+ses4ef0MA1EeAU5fHW7eHnJ1dhwRdbAJ+wdRCHMgyURNdwa+/AE/6m 8DuAVseSWUrYV8Hv6XSkg3n9+w8NnXZFYXswI= Original-Received: by 10.216.87.200 with SMTP id y50mr1175583wee.0.1275009692781; Thu, 27 May 2010 18:21:32 -0700 (PDT) Original-Received: by 10.216.188.139 with HTTP; Thu, 27 May 2010 18:21:32 -0700 (PDT) In-Reply-To: <201005272105.45102.tassilo@member.fsf.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) 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:125318 Archived-At: --0016e6d7ea70d2cb9504879d535b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable >> I think it is in the added code in ido-exhibit which is run in >> post-command-hook if I remember correctly. >> >> When your input doesn't match any (including virtual ones), the code >> in ido-exhibit tells ido (the big LOOP in ido-read-internal) to >> rebuild the buffer list and there isn't any match so it rebuild again >> and again. Go into a infinite loop. >> >> You could try creating a new let-bound variable to detect such a >> situation and avoid the infinite loop. > > Thanks for that. =A0Here's a new patch which uses a new dynamic variable. > It seems to work as far as I can tell, but it would be great if you > could give it a test drive. > > One other wishlist item would be to remove virtual buffers from the > completion list as soon as the input string matches a normal buffer > again, because the user deleted some chars from the input... > > Bye, > Tassilo I slightly modified the patch and implemented the wishlist item. For buffers, if a let-bound variable can be added in ido-buffers-internal I usually avoid adding it in ido-read-internal. To remove virtual buffers as soon as input matches existing ones, the idea is to build a list of existing buffers (ignored buffers are not included) and then match the input against it in ido-exhibit. My testing is very brief though it seems working fine. Could you test it more thoroughly? Also remember to try the toggle virtual buffers key C-o too. Thanks. Leo --0016e6d7ea70d2cb9504879d535b Content-Type: application/octet-stream; name="ido-vbuffers-modified-by-leo.patch" Content-Disposition: attachment; filename="ido-vbuffers-modified-by-leo.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9qbs3w91 ZGlmZiAtLWdpdCBhL2xpc3AvaWRvLmVsIGIvbGlzcC9pZG8uZWwKaW5kZXggY2JjY2E2Mi4uMWU0 NzBjOCAxMDA2NDQKLS0tIGEvbGlzcC9pZG8uZWwKKysrIGIvbGlzcC9pZG8uZWwKQEAgLTc3NSw4 ICs3NzUsMTAgQEAgY2FuIGJlIGNvbXBsZXRlZCB1c2luZyBUQUIsCiAgIDp0eXBlICcocmVwZWF0 IHN0cmluZykKICAgOmdyb3VwICdpZG8pCiAKLShkZWZjdXN0b20gaWRvLXVzZS12aXJ0dWFsLWJ1 ZmZlcnMgbmlsCi0gICJJZiBub24tbmlsLCByZWZlciB0byBwYXN0IGJ1ZmZlcnMgYXMgd2VsbCBh cyBleGlzdGluZyBvbmVzLgorKGRlZmN1c3RvbSBpZG8tdXNlLXZpcnR1YWwtYnVmZmVycyAnbmV2 ZXIKKyAgIklmIGBhbHdheXMnLCByZWZlciB0byBwYXN0IGJ1ZmZlcnMgYXMgd2VsbCBhcyBleGlz dGluZyBvbmVzLgorSWYgYGF1dG8nLCByZWZlciB0byBwYXN0IGJ1ZmZlcnMgb25seSB3aGVuIHRo ZSBjdXJyZW50IGlucHV0Citkb2Vzbid0IG1hdGNoIGFuIGV4aXN0aW5nIGJ1ZmZlci4KIEVzc2Vu dGlhbGx5IGl0IHdvcmtzIGFzIGZvbGxvd3M6IFNheSB5b3UgYXJlIHZpc2l0aW5nIGEgZmlsZSBh bmQKIHRoZSBidWZmZXIgZ2V0cyBjbGVhbmVkIHVwIGJ5IG1pZ25pZ2h0LmVsLiAgTGF0ZXIsIHlv dSB3YW50IHRvCiBzd2l0Y2ggdG8gdGhhdCBidWZmZXIsIGJ1dCBmaW5kIGl0J3Mgbm8gbG9uZ2Vy IG9wZW4uICBXaXRoCkBAIC03ODYsMTEgKzc4OCwxMiBAQCB5b3Ugc2VsZWN0IGl0LCBpdCBvcGVu cyB0aGUgZmlsZSBiYWNrIHVwIGFnYWluLiAgVGhpcyBhbGxvd3MgeW91CiB0byB0aGluayBsZXNz IGFib3V0IHdoZXRoZXIgcmVjZW50bHkgb3BlbmVkIGZpbGVzIGFyZSBzdGlsbCBvcGVuCiBvciBu b3QuICBNb3N0IG9mIHRoZSB0aW1lIHlvdSBjYW4gcXVpdCBFbWFjcywgcmVzdGFydCwgYW5kIHRo ZW4KIHN3aXRjaCB0byBhIGZpbGUgYnVmZmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgb3BlbiBhcyBp ZiBpdCBzdGlsbAotd2VyZS4KLSAgICBUaGlzIGZlYXR1cmUgcmVsaWVzIHVwb24gdGhlIGByZWNl bnRmJyBwYWNrYWdlLCB3aGljaCB3aWxsIGJlCi1lbmFibGVkIGlmIHRoaXMgdmFyaWFibGUgaXMg Y29uZmlndXJlZCB0byBhIG5vbi1uaWwgdmFsdWUuIgord2VyZS4gIFRoaXMgZmVhdHVyZSByZWxp ZXMgdXBvbiB0aGUgYHJlY2VudGYnIHBhY2thZ2UsIHdoaWNoIHdpbGwKK2JlIGVuYWJsZWQgaWYg dGhpcyB2YXJpYWJsZSBpcyBjb25maWd1cmVkIHRvIGEgbm9uLW5pbCB2YWx1ZS4iCiAgIDp2ZXJz aW9uICIyNC4xIgotICA6dHlwZSAnYm9vbGVhbgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgYWx3 YXlzKQorCQkgKGNvbnN0IGF1dG8pCisJCSAoY29uc3QgbmV2ZXIpKQogICA6Z3JvdXAgJ2lkbykK IAogKGRlZmN1c3RvbSBpZG8taGFuZGxlLWR1cGxpY2F0ZS12aXJ0dWFsLWJ1ZmZlcnMgMQpAQCAt Nzk5LDE0ICs4MDIsNiBAQCBlbmFibGVkIGlmIHRoaXMgdmFyaWFibGUgaXMgY29uZmlndXJlZCB0 byBhIG5vbi1uaWwgdmFsdWUuIgogICA6dHlwZSAnaW50ZWdlcgogICA6Z3JvdXAgJ2lkbykKIAot KGRlZmN1c3RvbSBpZG8tdXNlLXZpcnR1YWwtYnVmZmVycy1hdXRvbWF0aWNhbGx5IG5pbAotICAi VXNlIHZpcnR1YWwgYnVmZmVycyBhdXRvbWF0aWNhbGx5LgotSWYgbm9uLW5pbCwgdmlydHVhbCBi dWZmZXJzIGFyZSBhdXRvbWF0aWNhbGx5IGVuYWJsZWQgd2hlbiB1c2VyCi1pbnB1dCBkb2VzIG5v dCBtYXRjaCBhbnkgZXhpc3RpbmcgYnVmZmVycy4iCi0gIDp2ZXJzaW9uICIyNC4xIgotICA6dHlw ZSAnYm9vbGVhbgotICA6Z3JvdXAgJ2lkbykKLQogKGRlZmN1c3RvbSBpZG8tdXNlLWZhY2VzIHQK ICAgIk5vbi1uaWwgbWVhbnMgdXNlIGlkbyBmYWNlcyB0byBoaWdobGlnaHRpbmcgZmlyc3QgbWF0 Y2gsIG9ubHkgbWF0Y2ggYW5kCiBzdWJkaXJzIGluIHRoZSBhbHRlcm5hdGl2ZXMuIgpAQCAtMTA3 MSw3ICsxMDY2LDcgQEAgVmFsdWUgaXMgYW4gaW50ZWdlciB3aGljaCBpcyBudW1iZXIgb2YgY2hh cnMgdG8gcmlnaHQgb2YgcHJvbXB0LiIpCiAoZGVmdmFyIGlkby12aXJ0dWFsLWJ1ZmZlcnMgbmls CiAgICJMaXN0IG9mIHZpcnR1YWwgYnVmZmVycywgdGhhdCBpcywgcGFzdCB2aXNpdGVkIGZpbGVz LgogVGhpcyBpcyBhIGNvcHkgb2YgYHJlY2VudGYtbGlzdCcsIHBhcmVkIGRvd24gYW5kIHdpdGgg ZmFjZXMgYXBwbGllZC4KLU9ubHkgdXNlZCBpZiBgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMnIGlz IG5vbi1uaWwuIikKK09ubHkgdXNlZCBpZiBgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMnIGlzIG5v dCBgbmV2ZXInLiIpCiAKIDs7OyBWYXJpYWJsZXMgd2l0aCBkeW5hbWljIGJpbmRpbmdzLgogOzs7 IERlY2xhcmVkIGhlcmUgdG8ga2VlcCB0aGUgYnl0ZSBjb21waWxlciBxdWlldC4KQEAgLTE4NjEs NiArMTg1Niw3IEBAIElmIElOSVRJQUwgaXMgbm9uLW5pbCwgaXQgc3BlY2lmaWVzIHRoZSBpbml0 aWFsIGlucHV0IHN0cmluZy4iCiAgICAgICAgKGljb21wbGV0ZS1tb2RlIG5pbCkgOzsgcHJldmVu dCBpY29tcGxldGUgc3RhcnRpbmcgdXAKICAgICAgICA7OyBFeHBvcnRlZCBkeW5hbWljIHZhcmlh YmxlczoKICAgICAgICBpZG8tY3VyLWxpc3QKKyAgICAgICBpZG8tZXhpc3RpbmctYnVmZmVycwog ICAgICAgIGlkby1pZ25vcmVkLWxpc3QKICAgICAgICAoaWRvLXJvdGF0ZS10ZW1wIG5pbCkKICAg ICAgICAoaWRvLWtlZXAtaXRlbS1saXN0IG5pbCkKQEAgLTE4NzksNiArMTg3NSwxMSBAQCBJZiBJ TklUSUFMIGlzIG5vbi1uaWwsIGl0IHNwZWNpZmllcyB0aGUgaW5pdGlhbCBpbnB1dCBzdHJpbmcu IgogCiAgICAgKHJ1bi1ob29rcyAnaWRvLXNldHVwLWhvb2spCiAKKyAgICAod2hlbiAoZXEgaWRv LWN1ci1pdGVtICdidWZmZXIpCisgICAgICAoc2V0cSBpZG8tZXhpc3RpbmctYnVmZmVycworCSAg ICAobGV0IChpZG8tdmlydHVhbC1idWZmZXJzLWVuYWJsZWQpCisJICAgICAgKGlkby1tYWtlLWJ1 ZmZlci1saXN0IG5pbCkpKSkKKwogICAgICh3aGlsZSAobm90IGRvbmUpCiAgICAgICAoaWRvLXRy YWNlICJcbl9MT09QXyIgaWRvLXRleHQtaW5pdCkKICAgICAgIChzZXRxIGlkby1leGl0IG5pbCkK QEAgLTIyMDEsNyArMjIwMiw4IEBAIElmIGN1cnNvciBpcyBub3QgYXQgdGhlIGVuZCBvZiB0aGUg dXNlciBpbnB1dCwgbW92ZSB0byBlbmQgb2YgaW5wdXQuIgogCSAgIChpZG8tY3VycmVudC1kaXJl Y3RvcnkgbmlsKQogCSAgIChpZG8tZGlyZWN0b3J5LW5vbnJlYWRhYmxlIG5pbCkKIAkgICAoaWRv LWRpcmVjdG9yeS10b28tYmlnIG5pbCkKLQkgICAoaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMgaWRv LXVzZS12aXJ0dWFsLWJ1ZmZlcnMpCisJICAgKGlkby12aXJ0dWFsLWJ1ZmZlcnMtZW5hYmxlZCAo ZXEgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMgJ2Fsd2F5cykpCisJICAgKGlkby12aXJ0dWFsLWJ1 ZmZlcnMtaW5oaWJpdCAobm90IGlkby12aXJ0dWFsLWJ1ZmZlcnMtZW5hYmxlZCkpCiAJICAgKHJl cXVpcmUtbWF0Y2ggKGNvbmZpcm0tbm9uZXhpc3RlbnQtZmlsZS1vci1idWZmZXIpKQogCSAgIChi dWYgKGlkby1yZWFkLWludGVybmFsICdidWZmZXIgKG9yIHByb21wdCAiQnVmZmVyOiAiKSAnaWRv LWJ1ZmZlci1oaXN0b3J5IGRlZmF1bHQKIAkJCQkgICByZXF1aXJlLW1hdGNoIGluaXRpYWwpKQpA QCAtMjI0Miw3ICsyMjQ0LDkgQEAgSWYgY3Vyc29yIGlzIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSB1 c2VyIGlucHV0LCBtb3ZlIHRvIGVuZCBvZiBpbnB1dC4iCiAJICAoaWRvLXZpc2l0LWJ1ZmZlciBi dWYgbWV0aG9kIHQpKSkKIAogICAgICAgIDs7IGNoZWNrIGZvciBhIHZpcnR1YWwgYnVmZmVyIHJl ZmVyZW5jZQotICAgICAgICgoYW5kIGlkby11c2UtdmlydHVhbC1idWZmZXJzIGlkby12aXJ0dWFs LWJ1ZmZlcnMKKyAgICAgICAoKGFuZCAob3IgKGVxIGlkby11c2UtdmlydHVhbC1idWZmZXJzICdh bHdheXMpCisJCSAoZXEgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMgJ2F1dG8pKQorCSAgICAgaWRv LXZpcnR1YWwtYnVmZmVycwogCSAgICAgKHNldHEgZmlsZW5hbWUgKGFzc29jIGJ1ZiBpZG8tdmly dHVhbC1idWZmZXJzKSkpCiAJKGlkby12aXNpdC1idWZmZXIgKGZpbmQtZmlsZS1ub3NlbGVjdCAo Y2RyIGZpbGVuYW1lKSkgbWV0aG9kIHQpKQogCkBAIC0yNzM2LDcgKzI3NDAsOCBAQCBDLXggQy1m IC4uLiBDLWQgIGVudGVyIGBkaXJlZCcgb24gY3VycmVudCBkaXJlY3RvcnkuIgogU2VlIGBpZG8t dXNlLXZpcnR1YWwtYnVmZmVycycgZm9yIGV4cGxhbmF0aW9uIG9mIHZpcnR1YWwgYnVmZmVyLiIK ICAgKGludGVyYWN0aXZlKQogICAod2hlbiAoYW5kIGlkby1tb2RlIChlcSBpZG8tY3VyLWl0ZW0g J2J1ZmZlcikpCi0gICAgKHNldHEgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMgKG5vdCBpZG8tdXNl LXZpcnR1YWwtYnVmZmVycykpCisgICAgKHNldHEgaWRvLXZpcnR1YWwtYnVmZmVycy1lbmFibGVk CisJICAobm90IGlkby12aXJ0dWFsLWJ1ZmZlcnMtZW5hYmxlZCkpCiAgICAgKHNldHEgaWRvLXRl eHQtaW5pdCBpZG8tdGV4dCkKICAgICAoc2V0cSBpZG8tZXhpdCAncmVmcmVzaCkKICAgICAoZXhp dC1taW5pYnVmZmVyKSkpCkBAIC0zNDI3LDcgKzM0MzIsOSBAQCBmb3IgZmlyc3QgbWF0Y2hpbmcg ZmlsZS4iCiAgICAgKGlmIGRlZmF1bHQKICAgICAgICAgKHNldHEgaWRvLXRlbXAtbGlzdAogICAg ICAgICAgICAgICAoY29ucyBkZWZhdWx0IChkZWxldGUgZGVmYXVsdCBpZG8tdGVtcC1saXN0KSkp KQotICAgIChpZiBpZG8tdXNlLXZpcnR1YWwtYnVmZmVycworICAgIChpZiAob3IgKGVxIGlkby11 c2UtdmlydHVhbC1idWZmZXJzICdhbHdheXMpCisJICAgIChhbmQgKGJvdW5kcCBpZG8tdmlydHVh bC1idWZmZXJzLWVuYWJsZWQpCisJCSBpZG8tdmlydHVhbC1idWZmZXJzLWVuYWJsZWQpKQogCShp ZG8tYWRkLXZpcnR1YWwtYnVmZmVycy10by1saXN0KSkKICAgICAocnVuLWhvb2tzICdpZG8tbWFr ZS1idWZmZXItbGlzdC1ob29rKQogICAgIGlkby10ZW1wLWxpc3QpKQpAQCAtNDUxMCwxNCArNDUx NywzMiBAQCBGb3IgZGV0YWlscyBvZiBrZXliaW5kaW5ncywgc2VlIGBpZG8tZmluZC1maWxlJy4i CiAJICAgIChzZXRxIGlkby1leGl0ICdyZWZyZXNoKQogCSAgICAoZXhpdC1taW5pYnVmZmVyKSkp CiAKLSAgICAgICAgKHdoZW4gKGFuZCBpZG8tdXNlLXZpcnR1YWwtYnVmZmVycy1hdXRvbWF0aWNh bGx5CisJKHdoZW4gKGFuZCAoZXEgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMgJ2F1dG8pCiAgICAg ICAgICAgICAgICAgICAgKGVxIGlkby1jdXItaXRlbSAnYnVmZmVyKQogICAgICAgICAgICAgICAg ICAgIChub3QgaWRvLW1hdGNoZXMpCi0gICAgICAgICAgICAgICAgICAgKG5vdCBpZG8tdXNlLXZp cnR1YWwtYnVmZmVycykpCisJCSAgIGlkby12aXJ0dWFsLWJ1ZmZlcnMtaW5oaWJpdCkKICAgICAg ICAgICAoc2V0cSBpZG8tdGV4dC1pbml0IGlkby10ZXh0KQotICAgICAgICAgIChzZXRxIGlkby11 c2UtdmlydHVhbC1idWZmZXJzIHQpCi0gICAgICAgICAgKHNldHEgaWRvLWV4aXQgJ3JlZnJlc2gp Ci0gICAgICAgICAgKGV4aXQtbWluaWJ1ZmZlcikpCisJICAoc2V0cSBpZG8tdmlydHVhbC1idWZm ZXJzLWVuYWJsZWQgdCkKKwkgIChzZXRxIGlkby12aXJ0dWFsLWJ1ZmZlcnMtaW5oaWJpdCBuaWwp CisJICAoc2V0cSBpZG8tZXhpdCAncmVmcmVzaCkKKwkgIChleGl0LW1pbmlidWZmZXIpKQorCisJ KHdoZW4gKGFuZCAoZXEgaWRvLXVzZS12aXJ0dWFsLWJ1ZmZlcnMgJ2F1dG8pCisgICAgICAgICAg ICAgICAgICAgKGVxIGlkby1jdXItaXRlbSAnYnVmZmVyKQorCQkgICBpZG8tbWF0Y2hlcworCQkg ICBpZG8tdmlydHVhbC1idWZmZXJzLWVuYWJsZWQKKwkJICAgKG5vdCBpZG8tdmlydHVhbC1idWZm ZXJzLWluaGliaXQpKQorCSAgOzsgcHJvdGVjdCBpZG8tbWF0Y2hlcyBmcm9tIGJlaW5nIG1vZGlm aWVkIGJ5IGlkby1zZXQtbWF0Y2hlcworCSAgKGxldCAoKGlkby1tYXRjaGVzIGlkby1tYXRjaGVz KSkKKwkgICAgKGxldCAoKGlkby1jdXItbGlzdCBpZG8tZXhpc3RpbmctYnVmZmVycykKKwkJICAo aWRvLXJvdGF0ZSBpZG8tcm90YXRlKSkKKwkgICAgICAoaWRvLXNldC1tYXRjaGVzKSkKKwkgICAg KHdoZW4gaWRvLW1hdGNoZXMKKwkgICAgICAoc2V0cSBpZG8tdmlydHVhbC1idWZmZXJzLWVuYWJs ZWQgbmlsKQorCSAgICAgIChzZXRxIGlkby12aXJ0dWFsLWJ1ZmZlcnMtaW5oaWJpdCB0KQorCSAg ICAgIChzZXRxIGlkby10ZXh0LWluaXQgaWRvLXRleHQpCisJICAgICAgKHNldHEgaWRvLWV4aXQg J3JlZnJlc2gpCisJICAgICAgKGV4aXQtbWluaWJ1ZmZlcikpKSkKIAogCSh3aGVuIChhbmQKIAkg ICAgICAgaWRvLXJlc2Nhbgo= --0016e6d7ea70d2cb9504879d535b--