From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?J=C3=BCrgen?= Hartmann Newsgroups: gmane.emacs.bugs Subject: bug#20870: 24.5; [PATCH] Options presented in ispell *Choices* should be accessible via keyboard Date: Sat, 27 Jun 2015 12:36:13 +0200 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_881061c9-6ce0-4a20-b430-b6f11cd60f04_" X-Trace: ger.gmane.org 1435401444 31542 80.91.229.3 (27 Jun 2015 10:37:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 27 Jun 2015 10:37:24 +0000 (UTC) To: "20870@debbugs.gnu.org" <20870@debbugs.gnu.org> Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jun 27 12:37:13 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Z8nTz-0000xr-To for geb-bug-gnu-emacs@m.gmane.org; Sat, 27 Jun 2015 12:37:12 +0200 Original-Received: from localhost ([::1]:35047 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8nTz-0000ea-9y for geb-bug-gnu-emacs@m.gmane.org; Sat, 27 Jun 2015 06:37:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8nTv-0000aR-Ls for bug-gnu-emacs@gnu.org; Sat, 27 Jun 2015 06:37:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z8nTr-0000be-EF for bug-gnu-emacs@gnu.org; Sat, 27 Jun 2015 06:37:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:57329) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z8nTr-0000au-B3 for bug-gnu-emacs@gnu.org; Sat, 27 Jun 2015 06:37:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Z8nTq-0007nI-Im for bug-gnu-emacs@gnu.org; Sat, 27 Jun 2015 06:37:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?J=C3=BCrgen?= Hartmann Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 27 Jun 2015 10:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20870 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 20870-submit@debbugs.gnu.org id=B20870.143540138329914 (code B ref 20870); Sat, 27 Jun 2015 10:37:02 +0000 Original-Received: (at 20870) by debbugs.gnu.org; 27 Jun 2015 10:36:23 +0000 Original-Received: from localhost ([127.0.0.1]:58775 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z8nTC-0007mM-BM for submit@debbugs.gnu.org; Sat, 27 Jun 2015 06:36:23 -0400 Original-Received: from dub004-omc1s32.hotmail.com ([157.55.0.231]:54515) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z8nT9-0007m8-F4 for 20870@debbugs.gnu.org; Sat, 27 Jun 2015 06:36:20 -0400 Original-Received: from DUB124-W5 ([157.55.0.237]) by DUB004-OMC1S32.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.22751); Sat, 27 Jun 2015 03:36:13 -0700 X-TMN: [HayO25fjsnym4Cio3OLUIMK90BOkigZD] X-Originating-Email: [juergen_hartmann_@hotmail.com] Importance: Normal In-Reply-To: X-OriginalArrivalTime: 27 Jun 2015 10:36:13.0627 (UTC) FILETIME=[171878B0:01D0B0C5] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:104400 Archived-At: --_881061c9-6ce0-4a20-b430-b6f11cd60f04_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable The attached patch tries to offer a workaround for this bug and to provide = a=0A= feature that was asked for by Emanuel Berg in=0A= =0A= =A0=A0 http://lists.gnu.org/archive/html/help-gnu-emacs/2015-06/msg00363.ht= ml=0A= =0A= i.e. that Ispell uses certain keys in a certain order for the offers in its= =0A= *Choices* buffer.=0A= =0A= Therefore=2C the idea is to use a customizable variable to hold a vector of= key=0A= specifications that are used by ispell-command-loop in the given order to= =0A= assemble its options.=0A= =0A= The patch alters ispell-command-loop accordingly introducing=0A= ispell-option-keys as that customizable variable. Its default value is chos= en=0A= such=2C that the first keys in the vector are digits and lowercase letters= =2C=0A= since these are directly accessible on most keyboards without using any=0A= modifiers.=0A= =0A= As a minor detail the patch defines the inline function ispell-insert-choic= es=0A= to hold some code that is used repetitively in ispell-command-loop.=0A= =0A= The patch applies to the version of ispell.el that was shipped with the Ema= cs=0A= 24.4 release. And that is also the Emacs version the patch was tested on.= =0A= =0A= Juergen=0A= =0A= = --_881061c9-6ce0-4a20-b430-b6f11cd60f04_ Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="choices-patch.patch" LS0tIGlzcGVsbC5lbF9vcmlnaW5hbAkyMDE0LTAzLTIxIDA2OjM0OjQwLjAwMDAwMDAwMCArMDEw MAorKysgaXNwZWxsLmVsX2NoYW5nZWQJMjAxNS0wNi0yNyAxMjoxNjo0OS4zMzU3NDAxNTEgKzAy MDAKQEAgLTIxOTYsNiArMjE5Niw2MiBAQAogICAoc2V0cSBpc3BlbGwtcGRpY3QtbW9kaWZpZWQt cCBuaWwpKQogCiAKKyhkZWZjdXN0b20gaXNwZWxsLW9wdGlvbi1rZXlzCisgIFsiMCIgIjEiICIy IiAiMyIgIjQiICI1IiAiNiIgIjciICI4IiAiOSIgImIiICJjIiAiZCIgImUiICJmIiAiZyIgImgi ICJqIgorICAgImsiICJuIiAibyIgInAiICJzIiAidCIgInYiICJ3IiAieSIgInoiICI8IiAiXiIg IkIiICJDIiAiRCIgIkUiICJGIiAiRyIKKyAgICJIIiAiSSIgIkoiICJLIiAiTCIgIk0iICJOIiAi TyIgIlAiICJRIiAiUyIgIlQiICJVIiAiViIgIlciICJZIiAiWiIgIjoiCisgICAiOyIgIj0iICI+ IiAiXyIgImAiICJAIiAiWyIgIlxcIiAiXSIgInsiICJ8IiAifSIgIn4iICJDLTAiICJDLTEiICJD LTIiCisgICAiQy0zIiAiQy00IiAiQy01IiAiQy02IiAiQy03IiAiQy04IiAiQy05IiAiQy1hIiAi Qy1iIiAiQy1jIiAiQy1kIiAiQy1lIgorICAgIkMtZiIgIkMtaSIgIkMtaiIgIkMtayIgIkMtbSIg IkMtbiIgIkMtbyIgIkMtcCIgIkMtcSIgIkMtcyIgIkMtdCIgIkMtdSIKKyAgICJDLXYiICJDLXci ICJDLXgiICJDLXkiICJDLTwiICJDLV4iICJDLUEiICJDLUIiICJDLUMiICJDLUQiICJDLUUiICJD LUYiCisgICAiQy1HIiAiQy1IIiAiQy1JIiAiQy1KIiAiQy1LIiAiQy1MIiAiQy1NIiAiQy1OIiAi Qy1PIiAiQy1QIiAiQy1RIiAiQy1SIgorICAgIkMtUyIgIkMtVCIgIkMtVSIgIkMtViIgIkMtVyIg IkMtWCIgIkMtWSIgIkMtWiIgIkMtOiIgIkMtOyIgIkMtPSIgIkMtPiIKKyAgICJDLV8iICJDLWAi ICJDLUAiICJDLVsiICJDLVxcIiAiQy1dIiAiQy17IiAiQy18IiAiQy19IiAiQy1+Il0KKyAgIkRl ZmluZSB0aGUgaW52ZW50b3J5IG9mIGtleXMgdXNlZCBpbiBJc3BlbGzigJlzICpDaG9pY2VzKiBi dWZmZXIuCisKK1ZhbHVlIGlzIGEgdmVjdG9yIG9mIHN0cmluZ3MgdGhhdCBkZXNjcmliZSBrZXlz IHdoZW4gdXNlZCBhcworYXJndW1lbnRzIGluIGBrYmQnLiAoUmVtZW1iZXIgdG8gZXNjYXBlIGJh Y2tzbGFzaGVzOiBcIlxcXFxcIiBpcworYXMgc3RyaW5nIHdpdGggb25lIGJhY2tzbGFzaC4pIFRo ZXNlIGtleXMgYXJlIHVzZWQgaW4gdGhlIGdpdmVuCitvcmRlciB0byBpZGVudGlmeSB0aGUgb3B0 aW9ucyB0aGF0IElzcGVsbCBvZmZlcnMgaW4gaXRzICpDaG9pY2VzKgorYnVmZmVyLgorCitUaGUg bnVtYmVyIG9mIGtleXMgZGVmaW5lZCBoZXJlIGxpbWl0cyB0aGUgbnVtYmVyIG9mIG9wdGlvbnMg dGhhdAorSXNwZWxsIHdpbGwgb2ZmZXIuCisKK0l0IGlzIGluIHRoZSByZXNwb25zaWJpbGl0eSBv ZiB0aGUgdXNlciwgbm90IHRvIGluY2x1ZGUga2V5cyBpbgordGhpcyB2ZWN0b3IgdGhhdCBJc3Bl bGzigJlzIGNvbW1hbmQgbG9vcCByZWNvZ25pemVzIGFzIGNvbW1hbmRzLgorVGhlc2UgYXJlOgor CisgICA8U1BDPiwgPywgQSwgUiwgWCwgYSwgaSwgbCwgbSwgcSwgciwgdSwgeCwKKyAgIEMtZywg Qy1oLCBDLWwsIEMtciwgQy16CisKK2FuZCB3aGF0ZXZlciBrZXkgaXMgYXNzb2NpYXRlZCB3aXRo IGBoZWxwLWNoYXInLCB3aGljaCBpcyBpbgorZ2VuZXJhbCBlcXVpdmFsZW50IHRvIEMtaC4gVGhl IGRvY3VtZW50YXRpb24gb2YgYGlzcGVsbC1oZWxwJworZXhwbGFpbnMsIHdoYXQgdGhlc2UgY29t bWFuZCBrZXlzIGRvLiIKKyAgOmdyb3VwICdpc3BlbGwpCisKKworKGRlZnN1YnN0IGlzcGVsbC1p bnNlcnQtY2hvaWNlcyAoKQorICAiSGVscGVyIHRoYXQgaW5zZXJ0cyB0aGUgb3B0aW9ucyBpbiBJ c3BlbGwncyAqQ2hvaWNlcyogYnVmZmVyLgorCitUaGUgY29kZSBvZiB0aGlzIGlubGluZSBmdW5j dGlvbiBpcyB1c2VkIGlkZW50aWNhbGx5IGF0IHNldmVyYWwKK3BsYWNlcyBpbiBgaXNwZWxsLWNv bW1hbmQtbG9vcCcuIgorICAod2hpbGUgKGFuZCBjaG9pY2VzCisJICAgICAgKDwgY291bnQgbm9m LW9wdC1rZXlzKQorCSAgICAgICg8IChpZiAoPiAoKyA2IChjdXJyZW50LWNvbHVtbikgKGxlbmd0 aCAoY2FyIGNob2ljZXMpKQorCQkJICAgKGxlbmd0aCAoc2V0cSBrZXkKKwkJCQkJIChlbHQgaXNw ZWxsLW9wdGlvbi1rZXlzIGNvdW50KSkpKQorCQkJKHdpbmRvdy13aWR0aCkpCisJCSAgICAgKHBy b2duCisJCSAgICAgICAoaW5zZXJ0ICJcbiIpCisJCSAgICAgICAoc2V0cSBsaW5lICgxKyBsaW5l KSkpCisJCSAgIGxpbmUpCisJCSBtYXgtbGluZXMpKQorICAgIChpbnNlcnQgIigiIGtleSAiKSAi IChjYXIgY2hvaWNlcykgIiAgIikKKyAgICAoc2V0cSBjaG9pY2VzIChjZHIgY2hvaWNlcykKKwkg IGNvdW50ICgxKyBjb3VudCkpKSkKKworCiAoZGVmdW4gaXNwZWxsLWNvbW1hbmQtbG9vcCAobWlz cyBndWVzcyB3b3JkIHN0YXJ0IGVuZCkKICAgIkRpc3BsYXkgcG9zc2libGUgY29ycmVjdGlvbnMg ZnJvbSBsaXN0IE1JU1MuCiBHVUVTUyBsaXN0cyBwb3NzaWJseSB2YWxpZCBhZmZpeCBjb25zdHJ1 Y3Rpb24gb2YgV09SRC4KQEAgLTIyMTAsMTcgKzIyNjYsMTkgQEAKIGluZGljYXRlcyB3aGV0aGVy IHRoZSBkaWN0aW9uYXJ5IGhhcyBiZWVuIG1vZGlmaWVkIHdoZW4gb3B0aW9uIGBhJwogb3IgYGkn IGlzIHVzZWQuCiBHbG9iYWwgYGlzcGVsbC1xdWl0JyBzZXQgdG8gc3RhcnQgbG9jYXRpb24gdG8g Y29udGludWUgc3BlbGwgc2Vzc2lvbi4iCi0gIChsZXQgKChjb3VudCA/MCkKKyAgKGxldCAoKGNv dW50IDApCisJKG5vZi1vcHQta2V5cyAobGVuZ3RoIGlzcGVsbC1vcHRpb24ta2V5cykpCiAJKGxp bmUgaXNwZWxsLWNob2ljZXMtd2luLWRlZmF1bHQtaGVpZ2h0KQogCTs7IGVuc3VyZSA0IGNvbnRl eHQgbGluZXMuCiAJKG1heC1saW5lcyAoLSAoaXNwZWxsLWFkanVzdGVkLXdpbmRvdy1oZWlnaHQp IDQpKQogCShjaG9pY2VzIG1pc3MpCiAJKHdpbmRvdy1taW4taGVpZ2h0IChtaW4gd2luZG93LW1p bi1oZWlnaHQKIAkJCQlpc3BlbGwtY2hvaWNlcy13aW4tZGVmYXVsdC1oZWlnaHQpKQotCShjb21t YW5kLWNoYXJhY3RlcnMgJyggPyAgP2kgP2EgP0EgP3IgP1IgPz8gP3ggP1ggP3EgP2wgP3UgP20g KSkKKwkoY29tbWFuZC1rZXlzIChsaXN0IGhlbHAtY2hhcgorCQkJICAgID8gID8/ID9BID9SID9Y ID9hID9pID9sID9tID9xID9yID91ID94CisJCQkgICAgP1xDLWcgP1xDLWggP1xDLWwgP1xDLXIg P1xDLXopKQogCShkZWRpY2F0ZWQgKHdpbmRvdy1kZWRpY2F0ZWQtcCkpCi0JKHNraXBwZWQgMCkK LQljaGFyIG51bSByZXN1bHQgdGV4dHdpbiBkZWRpY2F0ZWQtd2luKQorCWtleSBudW0gcmVzdWx0 IHRleHR3aW4gZGVkaWNhdGVkLXdpbikKIAogICAgIDs7IHNldHVwIHRoZSAqQ2hvaWNlcyogYnVm ZmVyIHdpdGggdmFsaWQgZGF0YS4KICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZl ci1jcmVhdGUgaXNwZWxsLWNob2ljZXMtYnVmZmVyKQpAQCAtMjI1MCwyNCArMjMwOCw3IEBACiAJ ICAgICAgKHNldHEgZ3Vlc3MgKGNkciBndWVzcykpKQogCSAgICAoaW5zZXJ0ICJcblVzZSBvcHRp b24gYGknIHRvIGFjY2VwdCB0aGlzIHNwZWxsaW5nIGFuZCBwdXQgaXQgaW4geW91ciBwcml2YXRl IGRpY3Rpb25hcnkuXG4iKQogCSAgICAoc2V0cSBsaW5lICgrIGxpbmUgKGlmIGNob2ljZXMgMyAy KSkpKSkKLSAgICAgICh3aGlsZSAoYW5kIGNob2ljZXMKLQkJICAoPCAoaWYgKD4gKCsgNyAoY3Vy cmVudC1jb2x1bW4pIChsZW5ndGggKGNhciBjaG9pY2VzKSkKLQkJCSAgICAgICAoaWYgKD4gY291 bnQgP34pIDMgMCkpCi0JCQkgICAgKHdpbmRvdy13aWR0aCkpCi0JCQkgKHByb2duCi0JCQkgICAo aW5zZXJ0ICJcbiIpCi0JCQkgICAoc2V0cSBsaW5lICgxKyBsaW5lKSkpCi0JCSAgICAgICBsaW5l KQotCQkgICAgIG1heC1saW5lcykpCi0JOzsgbm90IHNvIGdvb2QgaWYgdGhlcmUgYXJlIG92ZXIg MjAgb3IgMzAgb3B0aW9ucywgYnV0IHRoZW4sIGlmCi0JOzsgdGhlcmUgYXJlIHRoYXQgbWFueSB5 b3UgZG9uJ3Qgd2FudCB0byBzY2FuIHRoZW0gYWxsIGFueXdheS4uLgotCSh3aGlsZSAobWVtcSBj b3VudCBjb21tYW5kLWNoYXJhY3RlcnMpIDsgc2tpcCBjb21tYW5kIGNoYXJhY3RlcnMuCi0JICAo c2V0cSBjb3VudCAoaXNwZWxsLWludC1jaGFyICgxKyBjb3VudCkpCi0JCXNraXBwZWQgKDErIHNr aXBwZWQpKSkKLQkoaW5zZXJ0ICIoIiBjb3VudCAiKSAiIChjYXIgY2hvaWNlcykgIiAgIikKLQko c2V0cSBjaG9pY2VzIChjZHIgY2hvaWNlcykKLQkgICAgICBjb3VudCAoaXNwZWxsLWludC1jaGFy ICgxKyBjb3VudCkpKSkKLSAgICAgIChzZXRxIGNvdW50IChpc3BlbGwtaW50LWNoYXIgKC0gY291 bnQgPzAgc2tpcHBlZCkpKSkKKyAgICAgIChpc3BlbGwtaW5zZXJ0LWNob2ljZXMpKQogCiAgICAg OzsgZW5zdXJlIHdvcmQgaXMgdmlzaWJsZQogICAgIChpZiAobm90IChwb3MtdmlzaWJsZS1pbi13 aW5kb3ctcCBlbmQpKQpAQCAtMjMwMSwzOCArMjM0MiwzNSBAQAogCQkJCSAgICAgInVuY2hhbmdl ZCwgQ2hhcmFjdGVyIHRvIHJlcGxhY2Ugd29yZCIpKSkKIAkJICAobGV0ICgoaW5oaWJpdC1xdWl0 IHQpCiAJCQkoaW5wdXQtdmFsaWQgdCkpCi0JCSAgICAoc2V0cSBjaGFyIG5pbCBza2lwcGVkIDAp CisJCSAgICAoc2V0cSBrZXkgbmlsKQogCQkgICAgOzsgSWYgdGhlIHVzZXIgdHlwZXMgQy1nLCBv ciBnZW5lcmF0ZXMgc29tZSBvdGhlcgotCQkgICAgOzsgbm9uLWNoYXJhY3RlciBldmVudCAoc3Vj aCBhcyBhIGZyYW1lIHN3aXRjaAorCQkgICAgOzsgbm9uLWtleWJvYXJkIGV2ZW50IChzdWNoIGFz IGEgZnJhbWUgc3dpdGNoCiAJCSAgICA7OyBldmVudCksIHN0b3AgaXNwZWxsLiAgQXMgYSBzcGVj aWFsIGV4Y2VwdGlvbiwKIAkJICAgIDs7IGlnbm9yZSBtb3VzZSBldmVudHMgb2NjdXJyaW5nIGlu IHRoZSBzYW1lIGZyYW1lLgotCQkgICAgKHdoaWxlIChhbmQgaW5wdXQtdmFsaWQgKG5vdCAoY2hh cmFjdGVycCBjaGFyKSkpCi0JCSAgICAgIChzZXRxIGNoYXIgKHJlYWQta2V5KSkKKwkJICAgICh3 aGlsZSAoYW5kIGlucHV0LXZhbGlkIChub3QgKG5hdG51bXAga2V5KSkpCisJCSAgICAgIChzZXRx IGtleSAocmVhZC1rZXkpKQogCQkgICAgICAoc2V0cSBpbnB1dC12YWxpZAotCQkJICAgIChvciAo Y2hhcmFjdGVycCBjaGFyKQotCQkJCShhbmQgKG1vdXNlLWV2ZW50LXAgY2hhcikKKwkJCSAgICAo b3IgKG5hdG51bXAga2V5KQorCQkJCShhbmQgKG1vdXNlLWV2ZW50LXAga2V5KQogCQkJCSAgICAg KGVxIChzZWxlY3RlZC1mcmFtZSkKIAkJCQkJICh3aW5kb3ctZnJhbWUKLQkJCQkJICAocG9zbi13 aW5kb3cgKGV2ZW50LXN0YXJ0IGNoYXIpKSkpKSkpKQotCQkgICAgKHdoZW4gKG9yIHF1aXQtZmxh ZyAobm90IGlucHV0LXZhbGlkKSAoPSBjaGFyID9cQy1nKSkKLQkJICAgICAgKHNldHEgY2hhciA/ WCBxdWl0LWZsYWcgbmlsKSkpCi0JCSAgOzsgQWRqdXN0IG51bSB0byBhcnJheSBvZmZzZXQgc2tp cHBpbmcgY29tbWFuZCBjaGFyYWN0ZXJzLgotCQkgIChsZXQgKChjb20tY2hhcnMgY29tbWFuZC1j aGFyYWN0ZXJzKSkKLQkJICAgICh3aGlsZSBjb20tY2hhcnMKLQkJICAgICAgKGlmIChhbmQgKD4g KGNhciBjb20tY2hhcnMpID8wKSAoPCAoY2FyIGNvbS1jaGFycykgY2hhcikpCi0JCQkgIChzZXRx IHNraXBwZWQgKDErIHNraXBwZWQpKSkKLQkJICAgICAgKHNldHEgY29tLWNoYXJzIChjZHIgY29t LWNoYXJzKSkpCi0JCSAgICAoc2V0cSBudW0gKC0gY2hhciA/MCBza2lwcGVkKSkpCisJCQkJCSAg KHBvc24td2luZG93IChldmVudC1zdGFydCBrZXkpKSkpKSkpKQorCQkgICAgKHdoZW4gKG9yIHF1 aXQtZmxhZyAobm90IGlucHV0LXZhbGlkKSAoPSBrZXkgP1xDLWcpKQorCQkgICAgICAoc2V0cSBr ZXkgP1ggcXVpdC1mbGFnIG5pbCkpKQorCQkgIDs7IFdlIGNvdWxkIGxvb2sgdXAga2V5IGluIGlz cGVsbC1vcHRpb24ta2V5cyByaWdodCBub3cuCisJCSAgOzsgQnV0IGZvciBwZXJmb3JtYW5jZSBy ZWFzb25zLCB3ZSBkbyB0aGlzIGluIHRoZSBjb25kIGZvcm0KKwkJICA7OyBiZWxvdyBhbmQgb25s eSBhZnRlciBpdCBoYXMgdHVybmVkIG91dCwgdGhhdCBrZXkgaXMgbm9uZQorCQkgIDs7IG9mIHRo ZSBjb21tYW5kIGtleXMuCiAKIAkJICAoY29uZAotCQkgICAoKD0gY2hhciA/ICkgbmlsKQk7IGFj Y2VwdCB3b3JkIHRoaXMgdGltZSBvbmx5Ci0JCSAgICgoPSBjaGFyID9pKQkJOyBhY2NlcHQgYW5k IGluc2VydCB3b3JkIGludG8gcGVycyBkaWN0CisJCSAgICgoPSBrZXkgPyApIG5pbCkJOyBhY2Nl cHQgd29yZCB0aGlzIHRpbWUgb25seQorCQkgICAoKD0ga2V5ID9pKQkJOyBhY2NlcHQgYW5kIGlu c2VydCB3b3JkIGludG8gcGVycyBkaWN0CiAJCSAgICAoaXNwZWxsLXNlbmQtc3RyaW5nIChjb25j YXQgIioiIHdvcmQgIlxuIikpCiAJCSAgICAoc2V0cSBpc3BlbGwtcGRpY3QtbW9kaWZpZWQtcCAn KHQpKSA7IGRpY3Rpb25hcnkgbW9kaWZpZWQhCiAJCSAgICAoYW5kIChmYm91bmRwICdmbHlzcGVs bC11bmhpZ2hsaWdodC1hdCkKIAkJCSAoZmx5c3BlbGwtdW5oaWdobGlnaHQtYXQgc3RhcnQpKQog CQkgICAgbmlsKQotCQkgICAoKG9yICg9IGNoYXIgP2EpICg9IGNoYXIgP0EpKSA7IGFjY2VwdCB3 b3JkIHdpdGhvdXQgaW5zZXJ0CisJCSAgICgob3IgKD0ga2V5ID9hKSAoPSBrZXkgP0EpKSA7IGFj Y2VwdCB3b3JkIHdpdGhvdXQgaW5zZXJ0CiAJCSAgICAoaXNwZWxsLXNlbmQtc3RyaW5nIChjb25j YXQgIkAiIHdvcmQgIlxuIikpCiAJCSAgICAoYWRkLXRvLWxpc3QgJ2lzcGVsbC1idWZmZXItc2Vz c2lvbi1sb2NhbHdvcmRzIHdvcmQpCiAJCSAgICAoYW5kIChmYm91bmRwICdmbHlzcGVsbC11bmhp Z2hsaWdodC1hdCkKQEAgLTIzNDIsMTIgKzIzODAsMTIgQEAKIAkJICAgIChpZiAobnVsbCBpc3Bl bGwtcGRpY3QtbW9kaWZpZWQtcCkKIAkJCShzZXRxIGlzcGVsbC1wZGljdC1tb2RpZmllZC1wCiAJ CQkgICAgICAobGlzdCBpc3BlbGwtcGRpY3QtbW9kaWZpZWQtcCkpKQotCQkgICAgKGlmICg9IGNo YXIgP0EpIDApKQk7IHJldHVybiAwIGZvciBpc3BlbGwtYWRkIGJ1ZmZlci1sb2NhbAotCQkgICAo KG9yICg9IGNoYXIgP3IpICg9IGNoYXIgP1IpKSA7IHR5cGUgaW4gcmVwbGFjZW1lbnQKKwkJICAg IChpZiAoPSBrZXkgP0EpIDApKQk7IHJldHVybiAwIGZvciBpc3BlbGwtYWRkIGJ1ZmZlci1sb2Nh bAorCQkgICAoKG9yICg9IGtleSA/cikgKD0ga2V5ID9SKSkgOyB0eXBlIGluIHJlcGxhY2VtZW50 CiAJCSAgICAoYW5kIChlcSAnYmxvY2sgaXNwZWxsLWhpZ2hsaWdodC1wKSA7IHJlZnJlc2ggdHR5 J3MKIAkJCSAoaXNwZWxsLWhpZ2hsaWdodC1zcGVsbGluZy1lcnJvciBzdGFydCBlbmQgbmlsIHQp KQogCQkgICAgKGxldCAoKHJlc3VsdAotCQkJICAgKGlmIChvciAoPSBjaGFyID9SKSBpc3BlbGwt cXVlcnktcmVwbGFjZS1jaG9pY2VzKQorCQkJICAgKGlmIChvciAoPSBrZXkgP1IpIGlzcGVsbC1x dWVyeS1yZXBsYWNlLWNob2ljZXMpCiAJCQkgICAgICAgKGxpc3QgKHJlYWQtc3RyaW5nCiAJCQkJ ICAgICAgKGZvcm1hdCAiUXVlcnktcmVwbGFjZW1lbnQgZm9yICVzOiAid29yZCkKIAkJCQkgICAg ICB3b3JkKQpAQCAtMjM1OCw3ICsyMzk2LDcgQEAKIAkJCSAgIChpc3BlbGwtaGlnaGxpZ2h0LXNw ZWxsaW5nLWVycm9yIHN0YXJ0IGVuZCBuaWwKIAkJCQkJCQkgICAgJ2Jsb2NrKSkKIAkJICAgICAg cmVzdWx0KSkKLQkJICAgKChvciAoPSBjaGFyID8/KSAoPSBjaGFyIGhlbHAtY2hhcikgKD0gY2hh ciA/XEMtaCkpCisJCSAgICgob3IgKD0ga2V5ID8/KSAoPSBrZXkgaGVscC1jaGFyKSAoPSBrZXkg P1xDLWgpKQogCQkgICAgKGFuZCAoZXEgJ2Jsb2NrIGlzcGVsbC1oaWdobGlnaHQtcCkKIAkJCSAo aXNwZWxsLWhpZ2hsaWdodC1zcGVsbGluZy1lcnJvciBzdGFydCBlbmQgbmlsIHQpKQogCQkgICAg KGlzcGVsbC1oZWxwKQpAQCAtMjM2NywxMyArMjQwNSwxMyBAQAogCQkJCQkJCSAgJ2Jsb2NrKSkK IAkJICAgIHQpCiAJCSAgIDs7IFF1aXQgYW5kIG1vdmUgcG9pbnQgYmFjay4KLQkJICAgKCg9IGNo YXIgP3gpCisJCSAgICgoPSBrZXkgP3gpCiAJCSAgICAoaXNwZWxsLXBkaWN0LXNhdmUgaXNwZWxs LXNpbGVudGx5LXNhdmVwKQogCQkgICAgKG1lc3NhZ2UgIkV4aXRlZCBzcGVsbC1jaGVja2luZyIp CiAJCSAgICAoc2V0cSBpc3BlbGwtcXVpdCB0KQogCQkgICAgbmlsKQogCQkgICA7OyBRdWl0IGFu ZCBwcmVzZXJ2ZSBwb2ludC4KLQkJICAgKCg9IGNoYXIgP1gpCisJCSAgICgoPSBrZXkgP1gpCiAJ CSAgICAoaXNwZWxsLXBkaWN0LXNhdmUgaXNwZWxsLXNpbGVudGx5LXNhdmVwKQogCQkgICAgKG1l c3NhZ2UgIiVzIgogCQkgICAgIChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cwpAQCAtMjM4MSw3ICsy NDE5LDcgQEAKIAkJCSAgICAgICIgdXNlIEMtdSBcXFtpc3BlbGwtd29yZF0gdG8gcmVzdW1lIikp KQogCQkgICAgKHNldHEgaXNwZWxsLXF1aXQgc3RhcnQpCiAJCSAgICBuaWwpCi0JCSAgICgoPSBj aGFyID9xKQorCQkgICAoKD0ga2V5ID9xKQogCQkgICAgKGlmICh5LW9yLW4tcCAiUmVhbGx5IGtp bGwgSXNwZWxsIHByb2Nlc3M/ICIpCiAJCQkocHJvZ24KIAkJCSAgKGlzcGVsbC1raWxsLWlzcGVs bCB0KSA7IHRlcm1pbmF0ZSBwcm9jZXNzLgpAQCAtMjM4OSw3ICsyNDI3LDcgQEAKIAkJCQkJCShw b2ludCkpCiAJCQkJaXNwZWxsLXBkaWN0LW1vZGlmaWVkLXAgbmlsKSkKIAkJICAgICAgdCkpCQk7 IGNvbnRpbnVlIGlmIHRoZXkgZG9uJ3QgcXVpdC4KLQkJICAgKCg9IGNoYXIgP2wpCisJCSAgICgo PSBrZXkgP2wpCiAJCSAgICAoYW5kIChlcSAnYmxvY2sgaXNwZWxsLWhpZ2hsaWdodC1wKSA7IHJl ZnJlc2ggdHR5IGRpc3BsYXlzCiAJCQkgKGlzcGVsbC1oaWdobGlnaHQtc3BlbGxpbmctZXJyb3Ig c3RhcnQgZW5kIG5pbCB0KSkKIAkJICAgIChsZXQgKChuZXctd29yZCAocmVhZC1zdHJpbmcKQEAg LTI0MDAsOCArMjQzOCw3IEBACiAJCQkgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGdldC1idWZm ZXItY3JlYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzcGVsbC1jaG9pY2VzLWJ1ZmZlcikKIAkJCSAgICAgIChlcmFzZS1idWZmZXIpCi0JCQkg ICAgICAoc2V0cSBjb3VudCA/MAotCQkJCSAgICBza2lwcGVkIDAKKwkJCSAgICAgIChzZXRxIGNv dW50IDAKIAkJCQkgICAgbW9kZS1saW5lLWZvcm1hdCA7OyBzZXR1cCB0aGUgKkNob2ljZXMqIGJ1 ZmZlciB3aXRoIHZhbGlkIGRhdGEuCiAJCQkJICAgIChjb25jYXQgIi0tICAlYiAgLS0gIHdvcmQ6 ICIgbmV3LXdvcmQKIAkJCQkJICAgICIgIC0tICB3b3JkLWxpc3Q6ICIKQEAgLTI0MTAsNDYgKzI0 NDcsMjUgQEAKIAkJCQkgICAgbWlzcyAoaXNwZWxsLWxvb2t1cC13b3JkcyBuZXctd29yZCkKIAkJ CQkgICAgY2hvaWNlcyBtaXNzCiAJCQkJICAgIGxpbmUgaXNwZWxsLWNob2ljZXMtd2luLWRlZmF1 bHQtaGVpZ2h0KQotCQkJICAgICAgKHdoaWxlIChhbmQgY2hvaWNlcyA7IGFkanVzdCBjaG9pY2Vz IHdpbmRvdy4KLQkJCQkJICAoPCAoaWYgKD4gKCsgNyAoY3VycmVudC1jb2x1bW4pCi0JCQkJCQkg ICAgICAgKGxlbmd0aCAoY2FyIGNob2ljZXMpKQotCQkJCQkJICAgICAgIChpZiAoPiBjb3VudCA/ fikgMyAwKSkKLQkJCQkJCSAgICAod2luZG93LXdpZHRoKSkKLQkJCQkJCSAocHJvZ24KLQkJCQkJ CSAgIChpbnNlcnQgIlxuIikKLQkJCQkJCSAgIChzZXRxIGxpbmUgKDErIGxpbmUpKSkKLQkJCQkJ ICAgICAgIGxpbmUpCi0JCQkJCSAgICAgbWF4LWxpbmVzKSkKLQkJCQkod2hpbGUgKG1lbXEgY291 bnQgY29tbWFuZC1jaGFyYWN0ZXJzKQotCQkJCSAgKHNldHEgY291bnQgKGlzcGVsbC1pbnQtY2hh ciAoMSsgY291bnQpKQotCQkJCQlza2lwcGVkICgxKyBza2lwcGVkKSkpCi0JCQkJKGluc2VydCAi KCIgY291bnQgIikgIiAoY2FyIGNob2ljZXMpICIgICIpCi0JCQkJKHNldHEgY2hvaWNlcyAoY2Ry IGNob2ljZXMpCi0JCQkJICAgICAgY291bnQgKGlzcGVsbC1pbnQtY2hhciAoMSsgY291bnQpKSkp Ci0JCQkgICAgICAoc2V0cSBjb3VudCAoaXNwZWxsLWludC1jaGFyCi0JCQkJCSAgICgtIGNvdW50 ID8wIHNraXBwZWQpKSkpCisJCQkgICAgICAoaXNwZWxsLWluc2VydC1jaG9pY2VzKSkKIAkJCSAg ICAoaXNwZWxsLXNob3ctY2hvaWNlcyBsaW5lIGVuZCkKIAkJCSAgICAoc2VsZWN0LXdpbmRvdyAo bmV4dC13aW5kb3cpKSkpKQogCQkgICAgKGFuZCAoZXEgJ2Jsb2NrIGlzcGVsbC1oaWdobGlnaHQt cCkKIAkJCSAoaXNwZWxsLWhpZ2hsaWdodC1zcGVsbGluZy1lcnJvciBzdGFydCBlbmQgbmlsCiAJ CQkJCQkJICAnYmxvY2spKQogCQkgICAgdCkJCQk7IHJlc2VsZWN0IGZyb20gbmV3IGNob2ljZXMK LQkJICAgKCg9IGNoYXIgP3UpCQk7IGluc2VydCBsb3dlcmNhc2UgaW50byBkaWN0aW9uYXJ5CisJ CSAgICgoPSBrZXkgP3UpCQk7IGluc2VydCBsb3dlcmNhc2UgaW50byBkaWN0aW9uYXJ5CiAJCSAg ICAoaXNwZWxsLXNlbmQtc3RyaW5nIChjb25jYXQgIioiIChkb3duY2FzZSB3b3JkKSAiXG4iKSkK IAkJICAgIChzZXRxIGlzcGVsbC1wZGljdC1tb2RpZmllZC1wICcodCkpIDsgZGljdGlvbmFyeSBt b2RpZmllZCEKIAkJICAgIG5pbCkKLQkJICAgKCg9IGNoYXIgP20pCQk7IHR5cGUgaW4gd2hhdCB0 byBpbnNlcnQKKwkJICAgKCg9IGtleSA/bSkJCTsgdHlwZSBpbiB3aGF0IHRvIGluc2VydAogCQkg ICAgKGlzcGVsbC1zZW5kLXN0cmluZwogCQkgICAgIChjb25jYXQgIioiIChyZWFkLXN0cmluZyAi SW5zZXJ0OiAiIHdvcmQpICJcbiIpKQogCQkgICAgKHNldHEgaXNwZWxsLXBkaWN0LW1vZGlmaWVk LXAgJyh0KSkKIAkJICAgIChjb25zIHdvcmQgbmlsKSkKLQkJICAgKChhbmQgKD49IG51bSAwKSAo PCBudW0gY291bnQpKQotCQkgICAgKGlmIGlzcGVsbC1xdWVyeS1yZXBsYWNlLWNob2ljZXMgOyBR dWVyeSByZXBsYWNlIGZsYWcKLQkJCShsaXN0IChudGggbnVtIG1pc3MpICdxdWVyeS1yZXBsYWNl KQotCQkgICAgICAobnRoIG51bSBtaXNzKSkpCi0JCSAgICgoPSBjaGFyID9cQy1sKQorCQkgICAo KD0ga2V5ID9cQy1sKQogCQkgICAgKHJlZHJhdy1kaXNwbGF5KSB0KQotCQkgICAoKD0gY2hhciA/ XEMtcikKKwkJICAgKCg9IGtleSA/XEMtcikKIAkJICAgIDs7IFRoaXMgbWF5IGhhdmUgYWxpZ25t ZW50IGVycm9ycyBpZiBjdXJyZW50IGxpbmUgaXMgZWRpdGVkCiAJCSAgICAoaWYgKG1hcmtlci1w b3NpdGlvbiBpc3BlbGwtcmVjdXJzaXZlLWVkaXQtbWFya2VyKQogCQkJKHByb2duCkBAIC0yNDgw LDEwICsyNDk2LDI3IEBACiAJCQkgICAgICAgIkNhbm5vdCBjb250aW51ZSBpc3BlbGwgZnJvbSB0 aGlzIGJ1ZmZlci4iKSkpCiAJCQkoc2V0LW1hcmtlciBpc3BlbGwtcmVjdXJzaXZlLWVkaXQtbWFy a2VyIG5pbCkpKQogCQkgICAgKGxpc3Qgd29yZCBuaWwpKQk7IHJlY2hlY2sgc3RhcnRpbmcgYXQg dGhpcyB3b3JkLgotCQkgICAoKD0gY2hhciA/XEMteikKKwkJICAgKCg9IGtleSA/XEMteikKIAkJ ICAgIChmdW5jYWxsIChrZXktYmluZGluZyAiXEMteiIpKQogCQkgICAgdCkKLQkJICAgKHQgKGRp bmcpIHQpKSkpKSkKKwkJICAgKHQKKwkJICAgIDs7IGtleSBpcyBub25lIG9mIHRoZSBjb21tYW5k IGtleXMsIGJ1dCBtaWdodCBiZSBvbmUgb2YKKwkJICAgIDs7IHRob3NlIGluIGlzcGVsbC1vcHRp b24ta2V5czogTG9vayB1cC4KKwkJICAgIChzZXRxIG51bSAwKQorCQkgICAgKHdoaWxlIChhbmQg KDwgbnVtIG5vZi1vcHQta2V5cykKKwkJCQkobm90IChlcXVhbAorCQkJCSAgICAgIChlbHQgKGti ZCAoZWx0IGlzcGVsbC1vcHRpb24ta2V5cyBudW0pKQorCQkJCQkgICAwKQorCQkJCSAgICAgIGtl eSkpKQorCQkgICAgICAoc2V0cSBudW0gKDErIG51bSkpKQorCQkgICAgOzsgSWYga2V5IHdhcyBm b3VuZCBpbiBpc3BlbGwtb3B0aW9uLWtleXMsIG51bSBlcXVhbHMgaXRzCisJCSAgICA7OyBpbmRl eCBub3cuIE90aGVyd2lzZSBudW0gZXF1YWxzIG5vZi1vcHQta2V5cyA+PSBjb3VudC4KKwkJICAg IChpZiAoPCBudW0gY291bnQpCisJCQkoaWYgaXNwZWxsLXF1ZXJ5LXJlcGxhY2UtY2hvaWNlcyA7 IFF1ZXJ5IHJlcGxhY2UgZmxhZworCQkJICAgIChsaXN0IChudGggbnVtIG1pc3MpICdxdWVyeS1y ZXBsYWNlKQorCQkJICAobnRoIG51bSBtaXNzKSkKKwkJICAgICAgOzsgZWxzZS0ta2V5IGlzIG5v dCBkZWZpbmVkCisJCSAgICAgIChkaW5nKSB0KSkpKSkpKQogCSAgcmVzdWx0KQogICAgICAgOzsg cHJvdGVjdGVkCiAgICAgICAoYW5kIGlzcGVsbC1oaWdobGlnaHQtcAkJOyB1bmhpZ2hsaWdodAo= --_881061c9-6ce0-4a20-b430-b6f11cd60f04_--