From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ken Manheimer Newsgroups: gmane.emacs.devel Subject: Re: pgg symmetric encryption patch Date: Wed, 12 Oct 2005 19:47:33 -0400 Message-ID: <2cd46e7f0510121647x3c51fb65pc883ed61f4e864ab@mail.gmail.com> References: <2cd46e7f0510031250u66ea1349yb437d539ce4027ef@mail.gmail.com> <20051006090152.GB4494@kenny.sha-bang.local> <2cd46e7f0510061541w73bb6a92wb6d22829b6e804ae@mail.gmail.com> <20051007100014.GB4850@kenny.sha-bang.local> <2cd46e7f0510071106k3d4d3e6agc36f16a37d8b6bc6@mail.gmail.com> <20051007214952.GA30235@kenny.sha-bang.local> <20051008103627.GA1218@kenny.sha-bang.local> <2cd46e7f0510081131h14e2bbeaga7f1a33ebd6347c8@mail.gmail.com> <2cd46e7f0510101415t76825ea7u9749fe23da54ce@mail.gmail.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_31267_12335773.1129160853993" X-Trace: sea.gmane.org 1129161476 14424 80.91.229.2 (12 Oct 2005 23:57:56 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 12 Oct 2005 23:57:56 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 13 01:57:54 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1EPqRf-0007mv-IW for ged-emacs-devel@m.gmane.org; Thu, 13 Oct 2005 01:55:43 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EPqRc-00069T-TE for ged-emacs-devel@m.gmane.org; Wed, 12 Oct 2005 19:55:36 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1EPqJu-0003ie-Mh for emacs-devel@gnu.org; Wed, 12 Oct 2005 19:47:39 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1EPqJt-0003iE-OX for emacs-devel@gnu.org; Wed, 12 Oct 2005 19:47:38 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EPqJs-0003i2-NS for emacs-devel@gnu.org; Wed, 12 Oct 2005 19:47:37 -0400 Original-Received: from [64.233.162.202] (helo=zproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1EPqJs-0006Pd-DQ for emacs-devel@gnu.org; Wed, 12 Oct 2005 19:47:37 -0400 Original-Received: by zproxy.gmail.com with SMTP id k1so235492nzf for ; Wed, 12 Oct 2005 16:47:34 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=BkAAUc/Gs0SdBmS9/K2uMK/OWRQsCapAA7fBrLJyy7JodA5/CAnm6sBdFUNiG3PfmGOSUjBuHFifyCJ4FYrQXG7Cway6VHDbZlFQMbsLjMSbodzC3TCAyR/kLh8c+rKnj1AI3q2QY8Xa+0Gqu3N0WciETByxqEnSHoxYWhy+RPc= Original-Received: by 10.36.82.13 with SMTP id f13mr1437719nzb; Wed, 12 Oct 2005 16:47:34 -0700 (PDT) Original-Received: by 10.36.36.11 with HTTP; Wed, 12 Oct 2005 16:47:33 -0700 (PDT) Original-To: Simon Josefsson , "sascha schwab (symmetric encryption patches)" , "Daiki Ueno (pgg author)" , "Richard M. Stallman" , emacs-devel@gnu.org In-Reply-To: <2cd46e7f0510101415t76825ea7u9749fe23da54ce@mail.gmail.com> 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:43955 Archived-At: ------=_Part_31267_12335773.1129160853993 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline as threatened, here is a complete patch against the current gnu.org lisp/gnus repository. i've migrated all the allout encryption functionality to pgg and exercised this stuff pretty substantially, and am very comfortable with the way it works. there are a bunch of fixes, as well as extensions so the passphrases can be managed by the calling functions, as well as refinement of the passphrase caching mechanism (so multiple timeouts don't pileup for a single passphrase - the last one replaces the prior ones). lotsa goodies. the patch includes sascha wilde's symmetric-encryption additions - basically, the whole deal. what it does not include is revision of the pgg-pgp.el and pgg-pgp5.el modules, to track changes to the pgg api. i started in on that, only to discover that they were already broken by the addition of a 'sign' parameter to some of the encryption functions. there's no way to repair that short of implementing the feature for the other packages, and i'm not in a position to do that. (plus, i'm not sure i am comfortable with the way it was done for pgg-gpg.) so it looks like pgg-pgp.el and pgg-pgp5.el are disfunctional already, without my changes. i'm hoping that's not going to prevent the introduction of my changes. i'm going to be heading offline for five days, starting tomorrow, so it'll be a bit before i can respond to questions. i hope the patch i'm sending (which includes detaild ChangeLog entries) will be helpful to anyone that wishes to navigate them. and once again, i'm not sure the attachment will be delivered this time. (it wasn't on a recent try, but then was on a subsequent message. this is the first awkward gmail bug i've hit...) ken ken.manheimer@gmail.com On 10/10/05, Ken Manheimer wrote: > for those of you following the developments at home (:-), here's an > incremental patch on top of what i sent out a few days ago. i fixed a > small stack of bugs in pgg-gpg.el that settles my complaint about > prompting with the secret key identity, and also filled in a small > oversight in the changes i sent out a few days ago. > > while this could be the last pgg patch, i'm still developing, hence > the incremental. i plan to send out a full patch when i've finished > transitioning allout to pgg, at which point i expect my mucking with > pgg to be settled. so, repository maintainers may want to wait for > that, while i'm hoping those actively involved (eg, sascha) will > scrutinize and, ideally, exercise these patches. > > we'll see if the attached patch makes it through this time. (i > haven't re-attached it, which i think was the problem last time.) if > not, look forward to a followup... ------=_Part_31267_12335773.1129160853993 Content-Type: application/octet-stream; name="emacs-pgg-omnnibus.patch-06" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="emacs-pgg-omnnibus.patch-06" SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9lbWFjcy9lbWFj cy9saXNwL2dudXMvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM5MwpkaWZmIC11 IC1yMS4zOTMgQ2hhbmdlTG9nCi0tLSBDaGFuZ2VMb2cJOSBPY3QgMjAwNSAxNTozOTowOSAtMDAw MAkxLjM5MworKysgQ2hhbmdlTG9nCTEyIE9jdCAyMDA1IDIzOjMxOjM5IC0wMDAwCkBAIC0xLDMg KzEsNzggQEAKKzIwMDUtMTAtMTIgIEtlbiBNYW5oZWltZXIgIDxrZW4ubWFuaGVpbWVyQGdtYWls LmNvbT4KKworCSogcGdnLWdwZy5lbAorCShwZ2ctZ3BnLXNlbGVjdC1tYXRjaGluZy1rZXkpOiBm aXhlZDogbG9vayBhdCB0aGUgcmlnaHQgcGFydCBvZiB0aGUKKwlkZWNvZGVkIGFybW9yIHRvIGZp bmQgdGhlIGtleS1pZGVudGlmaWVyCisJKHBnZy1ncGctbG9va3VwLWtleS1vd25lcik6IG5ldyBm dW5jdGlvbiB0byByZXR1cm4gdGhlCisJaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllciBvZiBhIGtl eSBvd25lci4KKwkocGdnLWdwZy1sb29rdXAtaWQtZnJvbS1rZXktb3duZXIpOiBtYWtlIGl0IGVh c3kgdG8gaWRlbnRpZnkgdGhlCisJa2V5IGl0c2VsZi4KKwkocGdnLWdwZy1kZWNyeXB0LXJlZ2lv bik6IHByb21wdCB3aXRoIHRoZSBrZXkgb3duZXIgKHJhdGhlcgorCXRoYW4gdGhlIGtleSB2YWx1 ZSkgaWYgd2UgaGF2ZSBhIGtleSBhbmQgY2FuIG1hdGNoIGl0IGFnYWluc3QgYQorCXNlY3JldCBr ZXkuICBhbHNvLCBhZGRlZCBhbiBYWFggbm90ZSBwb2ludGluZyBvdXQgZmFjdCB0aGF0IHRoZQor CXByb21wdCBvbmx5IGluZGljYXRlcyB0aGUgZmlyc3QgbWF0Y2hpbmcga2V5LgorCShwZ2ctYWRk LXBhc3NwaHJhc2UtdG8tY2FjaGUpOiA8PSBwZ2ctYWRkLXBhc3NwaHJhc2UtY2FjaGUKKwkocGdn LXJlbW92ZS1wYXNzcGhyYXNlLWZyb20tY2FjaGUpIDw9IHBnZy1yZW1vdmUtcGFzc3BocmFzZS1j YWNoZQorCisJKiBwZ2cuZWwgKHBnZy1kZWNyeXB0KTogcGFzc2luZyBhbG9uZyAncGFzc3BocmFz ZScgaW4gY2FsbCB0bworCXBnZy1kZWNyeXB0LXJlZ2lvbjsgaSBvdmVybG9va2VkIHRoaXMgb25l IGluIG15IHByZXZpb3VzIHBhdGNoLgorCShwZ2ctcGVuZGluZy10aW1lcnMpOiBhIG5ldyBoYXNo IGZvciB0cmFja2luZyB0aGUgcGFzc3BocmFzZSBjYWNoZQorCXRpbWVycywgc28gdGhhdCBuZXcg b25lcyBzdXBlcmNlZGUgb2xkIG9uZXMuCisJKHBnZy1hZGQtcGFzc3BocmFzZS10by1jYWNoZSk6 IHJlbmFtZWQgZnJvbQorCWBwZ2ctYWRkLXBhc3NwaHJhc2UtY2FjaGUnIHRvIHJlZHVjZSBjb25m dXNpb24uICBhbmQgbW9kaWZpZWQgdG8KKwljYW5jZWwgb2xkIHRpbWVycyB3aGVuIG5ldyBvbmVz IGFyZSBhZGRlZC4KKwkocGdnLXJlbW92ZS1wYXNzcGhyYXNlLWZyb20tY2FjaGUpOiByZW5hbWVk IGZyb20KKwlgcGdnLXJlbW92ZS1wYXNzcGhyYXNlLWNhY2hlJyB0byByZWR1Y2UgY29uZnVzaW9u LiAgYW5kIG1vZGlmaWVkCisJdG8gY2FuY2VsIG9sZCB0aW1lcnMgd2hlbiB0aGVpciBrZXlzIGFy ZSByZW1vdmVkIGZyb20gdGhlIGNhY2hlLgorCShwZ2ctY2FuY2VsLXRpbWVyKTogaW4gbWFpbmxp bmUgZ251IGVtYWNzLCBhbiBhbGlhcyBmb3IKKwljYW5jZWwtdGltZXI7IGluIHhlbWFjcywgYW4g aW5kaXJlY3Rpb24gdG8gZGVsZXRlLWl0aW1lci4KKwkocGdnLXJlYWQtcGFzc3BocmFzZS1mcm9t LWNhY2hlLCBwZ2ctcmVhZC1wYXNzcGhyYXNlKTogZXh0cmFjdGVkIAorCXBnZy1yZWFkLXBhc3Nw aHJhc2UtZnJvbS1jYWNoZSBmcm9tIHBnZy1yZWFkLXBhc3NwaHJhc2Ugc28gdXNlcnMKKwljYW4g b25seSBjaGVjayBjYWNoZSB3aXRob3V0IHJpc2sgb2YgcHJvbXB0aW5nLiAgY29ycmVjdGVkIGJ1 ZyBpbgorCW5vdHJ1bmNhdGUgIGJlaGF2aW9yLgorCShwZ2ctcmVhZC1wYXNzcGhyYXNlLWZyb20t Y2FjaGUsIHBnZy1yZWFkLXBhc3NwaHJhc2UsCisJcGdnLWFkZC1wYXNzcGhyYXNlLWNhY2hlLCBw Z2ctcmVtb3ZlLXBhc3NwaHJhc2UtY2FjaGUpOiBhZGRlZAorCWluZm9ybWF0aXZlIGRvY3N0cmlu Z3MuCisJKHBnZy1kZWNyeXB0KTogY29udmV5IHByb3ZpZGVkIHBhc3NwaHJhc2UgaW4gc3Vib3Jk aW5hdGUgY2FsbCB0bworCXBnZy1kZWNyeXB0LXJlZ2lvbiAobWlzc2VkIHRoYXQgaW4gYSBwcmlv ciBwYXRjaCkKKworMjAwNS0xMC0wOCAgS2VuIE1hbmhlaW1lciA8a2VuLm1hbmhlaW1lcitlbWFj c0BnbWFpbC5jb20+CisKKwkqIHBnZy5lbCAocGdnLWVuY3J5cHQtcmVnaW9uLCBwZ2ctZW5jcnlw dC1zeW1tZXRyaWMtcmVnaW9uLAorCXBnZy1lbmNyeXB0LXN5bW1ldHJpYywgcGdnLWVuY3J5cHQs IHBnZy1kZWNyeXB0LXJlZ2lvbiwKKwlwZ2ctZGVjcnlwdCwgcGdnLXNpZ24tcmVnaW9uLCBwZ2ct c2lnbik6CisJYWRkIG9wdGlvbmFsICdwYXNzcGhyYXNlJyBhcmd1bWVudCB0byBhbGwgdGhlc2Ug cm91dGluZXMsIHNvIHRoZQorCXBhc3NwaHJhc2UgY2FuIGJlIG1hbmFnZWQgZXh0ZXJuYWxseSBh bmQgdGhlbiBwYXNzZWQgaW4gdG8gdGhlCisJc3lzdGVtLgorCisJKiBwZ2cuZWwgKHBnZy1yZWFk LXBhc3NwaHJhc2UsIHBnZy1hZGQtcGFzc3BocmFzZS1jYWNoZSwKKwlwZ2ctcmVtb3ZlLXBhc3Nw aHJhc2UtY2FjaGUpOiBhZGQgb3B0aW9uYWwgJ25vdHJ1bmNhdGUnIGFyZ3VtZW50LAorCXNvIHRo ZSBwYXNzcGhyYXNlIGNhY2hlIGNhbiBiZSB1c2VkIHJlbGlhYmx5IHdpdGggaWRlbnRpZmllcnMK KwliZXNpZGVzIGEgcGdwIHBhY2tldCdzIGtleSBpZC4KKworCSogcGdnLWdwZy5lbCAocGdnLXBn cC1lbmNyeXB0LXJlZ2lvbiwKKwlwZ2ctcGdwLWVuY3J5cHQtc3ltbWV0cmljLXJlZ2lvbiwgcGdn LXBncC1lbmNyeXB0LXN5bW1ldHJpYywKKwlwZ2ctcGdwLWVuY3J5cHQsIHBnZy1wZ3AtZGVjcnlw dC1yZWdpb24sIHBnZy1wZ3AtZGVjcnlwdCwKKwlwZ2ctcGdwLXNpZ24tcmVnaW9uLCBwZ2ctcGdw LXNpZ24pOiBhZGQgb3B0aW9uYWwgJ3Bhc3NwaHJhc2UnCisJYXJndW1lbnQgdG8gYWxsIHRoZXNl IHJvdXRpbmVzLCBzbyB0aGUgcGFzc3BocmFzZSBjYW4gYmUgbWFuYWdlZAorCWV4dGVybmFsbHkg YW5kIHBhc3NlZCBpbiB0byB0aGUgc3lzdGVtLgorCisJKiBwZ2ctZ3BnLmVsIChwZ2ctZ3BnLXBv c3NpYmx5LWNhY2hlLXBhc3NwaHJhc2UpOiBhZGQgb3B0aW9uYWwKKwknbm90cnVuY2F0ZScgYXJn dW1lbnQsIHNvIHRoZSBwYXNzcGhyYXNlIGNhY2hlIGNhbiBiZSB1c2VkCisJcmVsaWFibHkgd2l0 aCBpZGVudGlmaWVycyBiZXNpZGVzIGEgcGdwIHBhY2tldCdzIGtleSBpZC4KKworMjAwNS0xMC0w NiAgU2FzY2hhIFdpbGRlICA8c3dpbGRlQHNoYS1iYW5nLmRlPgorCisJKiBwZ2ctZ3BnLmVsIChw Z2ctZ3BnLWVuY3J5cHQtc3ltbWV0cmljLXJlZ2lvbik6IE5ldyBmdW5jdGlvbiBmb3IKKwlzeW1t ZXRyaWMgZW5jcnlwdGlvbi4KKwkocGdnLWdwZy1zeW1tZXRyaWMta2V5LXApOiBOZXcgZnVuY3Rp b24gdG8gY2hlY2sgZm9yIGFuIHN5bW1ldHJpYworCWVuY3J5cHRlZCBzZXNzaW9uIGtleS4KKwko cGdnLWdwZy1kZWNyeXB0LXJlZ2lvbik6IFdoZW4gZGVjcnlwdGluZyBhIHN5bW1ldHJpYyBlbmNy eXB0ZWQKKwltZXNzYWdlIGFzayBmb3IgdGhlIHBhc3NwaHJhc2UgaW4gYSBwcm9wZXIgd2F5Lgor CisJKiBwZ2cuZWwgKHBnZy1lbmNyeXB0LXN5bW1ldHJpYyxwZ2ctZW5jcnlwdC1zeW1tZXRyaWMt cmVnaW9uKToKKwlOZXcgdXNlciBjb21tYW5kcyBmb3Igc3ltbWV0cmljIGVuY3J5cHRpb24uCisK IDIwMDUtMTAtMDkgIERhbmllbCBCcm9ja21hbiA8ZGFuaWVsQGJyb2NrbWFuLnNlPgogCiAJKiBm b3JtYXQtc3BlYy5lbCAoZm9ybWF0LXNwZWMpOiBQcm9wYWdhdGUgdGV4dCBwcm9wZXJ0aWVzIG9m ICUgc3BlYy4KSW5kZXg6IHBnZy5lbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9lbWFj cy9lbWFjcy9saXNwL2dudXMvcGdnLmVsLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgKZGlmZiAt dSAtcjEuOCBwZ2cuZWwKLS0tIHBnZy5lbAkyNiBBdWcgMjAwNSAwMDowMjowNSAtMDAwMAkxLjgK KysrIHBnZy5lbAkxMiBPY3QgMjAwNSAyMzozMTozOSAtMDAwMApAQCAtNCw2ICs0LDcgQEAKIDs7 ICAgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogOzsgQXV0aG9yOiBEYWlr aSBVZW5vIDx1ZW5vQHVuaXh1c2VyLm9yZz4KKzs7IFN5bW1ldHJpYyBlbmNyeXB0aW9uIGFkZGVk IGJ5OiBTYXNjaGEgV2lsZGUgPHdpbGRlQHNoYS1iYW5nLmRlPgogOzsgQ3JlYXRlZDogMTk5OS8x MC8yOAogOzsgS2V5d29yZHM6IFBHUAogCkBAIC02NywyNiArNjgsMTEwIEBACiAgICAgKHNldC13 aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpCiAgICAgKHNocmluay13aW5kb3ctaWYtbGFyZ2Vy LXRoYW4tYnVmZmVyIHdpbmRvdykpKQogCis7OyBYWFggYHBnZy1kaXNwbGF5LW91dHB1dC1idWZm ZXInIGlzIGEgaG9ycmlibGUgbmFtZSBmb3IgdGhpcyBmdW5jdGlvbi4KKzs7ICAgICBJdCBzaG91 bGQgYmUgc29tZXRoaW5nIGxpa2UgYHBnZy1zaXR1YXRlLW91dHB1dC1vci1kaXNwbGF5LWVycm9y Jy4KIChkZWZ1biBwZ2ctZGlzcGxheS1vdXRwdXQtYnVmZmVyIChzdGFydCBlbmQgc3RhdHVzKQor ICAiU2l0dWF0ZSBlbi9kZWNyeXB0aW9uIHJlc3VsdHMgb3IgcG9wIHVwIGFuIGVycm9yIGJ1ZmZl ci4KKworVGV4dCBmcm9tIFNUQVJUIHRvIEVORCBpcyByZXBsYWNlZCBieSBjb250ZW50cyBvZiBv dXRwdXQgYnVmZmVyIGlmIFNUQVRVUworaXMgdHJ1ZSwgb3IgZWxzZSB0aGUgb3V0cHV0IGJ1ZmZl ciBpcyBkaXNwbGF5ZWQuIgogICAoaWYgc3RhdHVzCi0gICAgICAocHJvZ24KLQkoZGVsZXRlLXJl Z2lvbiBzdGFydCBlbmQpCi0JKGluc2VydC1idWZmZXItc3Vic3RyaW5nIHBnZy1vdXRwdXQtYnVm ZmVyKQotCShkZWNvZGUtY29kaW5nLXJlZ2lvbiBzdGFydCAocG9pbnQpIGJ1ZmZlci1maWxlLWNv ZGluZy1zeXN0ZW0pKQotICAgIChsZXQgKCh0ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uCi0JICAg KGZ1bmN0aW9uIHBnZy10ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uKSkpCi0gICAgICAod2l0aC1v dXRwdXQtdG8tdGVtcC1idWZmZXIgcGdnLWVjaG8tYnVmZmVyCi0JKHNldC1idWZmZXIgc3RhbmRh cmQtb3V0cHV0KQotCShpbnNlcnQtYnVmZmVyLXN1YnN0cmluZyBwZ2ctZXJyb3JzLWJ1ZmZlcikp KSkpCisgICAgICAocGdnLXNpdHVhdGUtb3V0cHV0IHN0YXJ0IGVuZCkKKyAgICAocGdnLWRpc3Bs YXktZXJyb3ItYnVmZmVyKSkpCisKKyhkZWZ1biBwZ2ctc2l0dWF0ZS1vdXRwdXQgKHN0YXJ0IGVu ZCkKKyAgIlBsYWNlIGVuL2RlY3J5cHRpb24gcmVzdWx0IGluIHBsYWNlIG9mIGN1cnJlbnQgdGV4 dCBmcm9tIFNUQVJUIHRvIEVORC4iCisgIChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgKGlu c2VydC1idWZmZXItc3Vic3RyaW5nIHBnZy1vdXRwdXQtYnVmZmVyKQorICAoZGVjb2RlLWNvZGlu Zy1yZWdpb24gc3RhcnQgKHBvaW50KSBidWZmZXItZmlsZS1jb2Rpbmctc3lzdGVtKSkKKworKGRl ZnVuIHBnZy1kaXNwbGF5LWVycm9yLWJ1ZmZlciAoKQorICAiUG9wIHVwIGFuIGVycm9yIGJ1ZmZl ciBpbmRpY2F0aW5nIHRoZSByZWFzb24gZm9yIGFuIGVuL2RlY3J5cHRpb24gZmFpbHVyZS4iCisg IChsZXQgKCh0ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uCisgICAgICAgICAoZnVuY3Rpb24gcGdn LXRlbXAtYnVmZmVyLXNob3ctZnVuY3Rpb24pKSkKKyAgICAod2l0aC1vdXRwdXQtdG8tdGVtcC1i dWZmZXIgcGdnLWVjaG8tYnVmZmVyCisgICAgICAoc2V0LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQp CisgICAgICAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgcGdnLWVycm9ycy1idWZmZXIpKSkpCiAK IChkZWZ2YXIgcGdnLXBhc3NwaHJhc2UtY2FjaGUgKG1ha2UtdmVjdG9yIDcgMCkpCiAKLShkZWZ1 biBwZ2ctcmVhZC1wYXNzcGhyYXNlIChwcm9tcHQgJm9wdGlvbmFsIGtleSkKLSAgKG9yIChhbmQg cGdnLWNhY2hlLXBhc3NwaHJhc2UKLQkgICBrZXkgKHNldHEga2V5IChwZ2ctdHJ1bmNhdGUta2V5 LWlkZW50aWZpZXIga2V5KSkKLQkgICAoc3ltYm9sLXZhbHVlIChpbnRlcm4tc29mdCBrZXkgcGdn LXBhc3NwaHJhc2UtY2FjaGUpKSkKKyhkZWZ2YXIgcGdnLXBlbmRpbmctdGltZXJzIChtYWtlLXZl Y3RvciA3IDApCisgICJIYXNoIHRhYmxlIGZvciBtYW5hZ2luZyBzY2hlZHVsZWQgcGdnIGNhY2hl IG1hbmFnZW1lbnQgdGltZXJzLgorCitXZSBhc3NvY2lhdGUga2V5IGFuZCB0aW1lciwgc28gdGhl IHRpbWVyIGNhbiBiZSBjYW5jZWxsZWQgaWYgYSBuZXcKK3RpbWVvdXQgZm9yIHRoZSBrZXkgaXMg c2V0IHdoaWxlIGFuIG9sZCBvbmUgaXMgc3RpbGwgcGVuZGluZy4iKQorCisoZGVmdW4gcGdnLXJl YWQtcGFzc3BocmFzZSAocHJvbXB0ICZvcHRpb25hbCBrZXkgbm90cnVuY2F0ZSkKKyAgIlVzaW5n IFBST01QVCwgb2J0YWluIHBhc3NwaHJhc2UgZm9yIEtFWSBmcm9tIGNhY2hlIG9yIHVzZXIuCisK K1RydW5jYXRlIHRoZSBrZXkgdG8gOCB0cmFpbGluZyBjaGFyYWN0ZXJzIHVubGVzcyBOT1RSVU5D QVRFIGlzIHRydWUKK1woZGVmYXVsdCBmYWxzZSkuCisKK0N1c3RvbSB2YXJpYWJsZXMgYHBnZy1j YWNoZS1wYXNzcGhyYXNlJyBhbmQgYHBnZy1wYXNzcGhyYXNlLWNhY2hlLWV4cGlyeScKK3JlZ3Vs YXRlIGNhY2hlIGJlaGF2aW9yLiIKKyAgKG9yIChwZ2ctcmVhZC1wYXNzcGhyYXNlLWZyb20tY2Fj aGUga2V5IG5vdHJ1bmNhdGUpCiAgICAgICAocmVhZC1wYXNzd2QgcHJvbXB0KSkpCiAKKyhkZWZ1 biBwZ2ctcmVhZC1wYXNzcGhyYXNlLWZyb20tY2FjaGUgKGtleSAmb3B0aW9uYWwgbm90cnVuY2F0 ZSkKKyAgIk9idGFpbiBwYXNzcGhyYXNlIGZvciBLRVkgZnJvbSB0aW1lLWxpbWl0ZWQgcGFzc3Bo cmFzZSBjYWNoZS4KKworVHJ1bmNhdGUgdGhlIGtleSB0byA4IHRyYWlsaW5nIGNoYXJhY3RlcnMg dW5sZXNzIE5PVFJVTkNBVEUgaXMgdHJ1ZQorXChkZWZhdWx0IGZhbHNlKS4KKworQ3VzdG9tIHZh cmlhYmxlcyBgcGdnLWNhY2hlLXBhc3NwaHJhc2UnIGFuZCBgcGdnLXBhc3NwaHJhc2UtY2FjaGUt ZXhwaXJ5JworcmVndWxhdGUgY2FjaGUgYmVoYXZpb3IuIgorICAoYW5kIHBnZy1jYWNoZS1wYXNz cGhyYXNlCisgICAgICAga2V5IChvciBub3RydW5jYXRlCisgICAgICAgICAgICAgICAgKHNldHEg a2V5IChwZ2ctdHJ1bmNhdGUta2V5LWlkZW50aWZpZXIga2V5KSkpCisgICAgICAgKHN5bWJvbC12 YWx1ZSAoaW50ZXJuLXNvZnQga2V5IHBnZy1wYXNzcGhyYXNlLWNhY2hlKSkpKQorCisoZGVmdW4g cGdnLWFkZC1wYXNzcGhyYXNlLXRvLWNhY2hlIChrZXkgcGFzc3BocmFzZSAmb3B0aW9uYWwgbm90 cnVuY2F0ZSkKKyAgIkFzc29jaWF0ZSBLRVkgd2l0aCBQQVNTUEhSQVNFIGluIHRpbWUtbGltaXRl ZCBwYXNzcGhyYXNlIGNhY2hlLgorCitUcnVuY2F0ZSB0aGUga2V5IHRvIDggdHJhaWxpbmcgY2hh cmFjdGVycyB1bmxlc3MgTk9UUlVOQ0FURSBpcyB0cnVlCitcKGRlZmF1bHQgZmFsc2UpLgorCitD dXN0b20gdmFyaWFibGVzIGBwZ2ctY2FjaGUtcGFzc3BocmFzZScgYW5kIGBwZ2ctcGFzc3BocmFz ZS1jYWNoZS1leHBpcnknCityZWd1bGF0ZSBjYWNoZSBiZWhhdmlvci4iCisKKyAgKGxldCogKChr ZXkgKGlmIG5vdHJ1bmNhdGUga2V5IChwZ2ctdHJ1bmNhdGUta2V5LWlkZW50aWZpZXIga2V5KSkp CisgICAgICAgICAoaW50ZXJuZWQtdGltZXIta2V5IChpbnRlcm4tc29mdCBrZXkgcGdnLXBlbmRp bmctdGltZXJzKSkKKyAgICAgICAgIChvbGQtdGltZXIgKHN5bWJvbC12YWx1ZSBpbnRlcm5lZC10 aW1lci1rZXkpKQorICAgICAgICAgbmV3LXRpbWVyKQorICAgICh3aGVuIG9sZC10aW1lcgorICAg ICAgICAoY2FuY2VsLXRpbWVyIG9sZC10aW1lcikKKyAgICAgICAgKHVuaW50ZXJuIGludGVybmVk LXRpbWVyLWtleSBwZ2ctcGVuZGluZy10aW1lcnMpKQorICAgIChzZXQgKGludGVybiBrZXkgcGdn LXBhc3NwaHJhc2UtY2FjaGUpCisgICAgICAgICBwYXNzcGhyYXNlKQorICAgIChzZXQgKGludGVy biBrZXkgcGdnLXBlbmRpbmctdGltZXJzKQorICAgICAgICAgKHBnZy1ydW4tYXQtdGltZSBwZ2ct cGFzc3BocmFzZS1jYWNoZS1leHBpcnkgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAj J3BnZy1yZW1vdmUtcGFzc3BocmFzZS1mcm9tLWNhY2hlCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBrZXkgbm90cnVuY2F0ZSkpKSkKKworKGRlZnVuIHBnZy1yZW1vdmUtcGFzc3BocmFzZS1m cm9tLWNhY2hlIChrZXkgJm9wdGlvbmFsIG5vdHJ1bmNhdGUpCisgICJPbWl0IHBhc3NwaHJhc2Ug YXNzb2NpYXRlZCB3aXRoIEtFWSBpbiB0aW1lLWxpbWl0ZWQgcGFzc3BocmFzZSBjYWNoZS4KKwor VHJ1bmNhdGUgdGhlIGtleSB0byA4IHRyYWlsaW5nIGNoYXJhY3RlcnMgdW5sZXNzIE5PVFJVTkNB VEUgaXMgdHJ1ZQorXChkZWZhdWx0IGZhbHNlKS4KKworVGhpcyBpcyBhIG5vLW9wIGlmIHRoZXJl IGlzIG5vdCBlbnRyeSBmb3IgS0VZIChlZywgaXQncyBhbHJlYWR5IGV4cGlyZWQuCisKK1RoZSBt ZW1vcnkgZm9yIHRoZSBwYXNzcGhyYXNlIGlzIGZpbGxlZCB3aXRoIHVuZGVyc2NvcmVzIHRvIGNs ZWFyIGFueQorcmVmZXJlbmNlcyB0byBpdC4KKworQ3VzdG9tIHZhcmlhYmxlcyBgcGdnLWNhY2hl LXBhc3NwaHJhc2UnIGFuZCBgcGdnLXBhc3NwaHJhc2UtY2FjaGUtZXhwaXJ5JworcmVndWxhdGUg Y2FjaGUgYmVoYXZpb3IuIgorICAobGV0KiAoKHBhc3NwaHJhc2UgKHBnZy1yZWFkLXBhc3NwaHJh c2UtZnJvbS1jYWNoZSBrZXkgbm90cnVuY2F0ZSkpCisgICAgICAgICAoa2V5IChpZiBub3RydW5j YXRlIGtleSAocGdnLXRydW5jYXRlLWtleS1pZGVudGlmaWVyIGtleSkpKQorICAgICAgICAgKGlu dGVybmVkLXRpbWVyLWtleSAoaW50ZXJuLXNvZnQga2V5IHBnZy1wZW5kaW5nLXRpbWVycykpCisg ICAgICAgICAob2xkLXRpbWVyIChzeW1ib2wtdmFsdWUgaW50ZXJuZWQtdGltZXIta2V5KSkpCisg ICAgKHdoZW4gcGFzc3BocmFzZQorICAgICAgKGZpbGxhcnJheSBwYXNzcGhyYXNlID9fKQorICAg ICAgKHVuaW50ZXJuIGtleSBwZ2ctcGFzc3BocmFzZS1jYWNoZSkpCisgICAgKHdoZW4gb2xkLXRp bWVyCisgICAgICAocGdnLWNhbmNlbC10aW1lciBvbGQtdGltZXIpCisgICAgICAodW5pbnRlcm4g aW50ZXJuZWQtdGltZXIta2V5IHBnZy1wZW5kaW5nLXRpbWVycykpKSkKKwogKGV2YWwtd2hlbi1j b21waWxlCiAgIChkZWZtYWNybyBwZ2ctcnVuLWF0LXRpbWUtMSAodGltZSByZXBlYXQgZnVuY3Rp b24gYXJncykKICAgICAod2hlbiAoZmVhdHVyZXAgJ3hlbWFjcykKQEAgLTE1MSwyNyArMjM2LDE5 IEBACiAKIChldmFsLWFuZC1jb21waWxlCiAgIChpZiAoZmVhdHVyZXAgJ3hlbWFjcykKLSAgICAg IChkZWZ1biBwZ2ctcnVuLWF0LXRpbWUgKHRpbWUgcmVwZWF0IGZ1bmN0aW9uICZyZXN0IGFyZ3Mp Ci0JIkVtdWxhdGluZyBmdW5jdGlvbiBydW4gYXMgYHJ1bi1hdC10aW1lJy4KKyAgICAgIChwcm9n bgorICAgICAgICAoZGVmdW4gcGdnLXJ1bi1hdC10aW1lICh0aW1lIHJlcGVhdCBmdW5jdGlvbiAm cmVzdCBhcmdzKQorICAgICAgICAgICJFbXVsYXRpbmcgZnVuY3Rpb24gcnVuIGFzIGBydW4tYXQt dGltZScuCiBUSU1FIHNob3VsZCBiZSBuaWwgbWVhbmluZyBub3csIG9yIGEgbnVtYmVyIG9mIHNl Y29uZHMgZnJvbSBub3cuCiBSZXR1cm4gYW4gaXRpbWVyIG9iamVjdCB3aGljaCBjYW4gYmUgdXNl ZCBpbiBlaXRoZXIgYGRlbGV0ZS1pdGltZXInCiBvciBgY2FuY2VsLXRpbWVyJy4iCi0JKHBnZy1y dW4tYXQtdGltZS0xIHRpbWUgcmVwZWF0IGZ1bmN0aW9uIGFyZ3MpKQotICAgIChkZWZhbGlhcyAn cGdnLXJ1bi1hdC10aW1lICdydW4tYXQtdGltZSkpKQotCi0oZGVmdW4gcGdnLWFkZC1wYXNzcGhy YXNlLWNhY2hlIChrZXkgcGFzc3BocmFzZSkKLSAgKHNldHEga2V5IChwZ2ctdHJ1bmNhdGUta2V5 LWlkZW50aWZpZXIga2V5KSkKLSAgKHNldCAoaW50ZXJuIGtleSBwZ2ctcGFzc3BocmFzZS1jYWNo ZSkKLSAgICAgICBwYXNzcGhyYXNlKQotICAocGdnLXJ1bi1hdC10aW1lIHBnZy1wYXNzcGhyYXNl LWNhY2hlLWV4cGlyeSBuaWwKLQkJICAgIydwZ2ctcmVtb3ZlLXBhc3NwaHJhc2UtY2FjaGUKLQkJ ICAga2V5KSkKLQotKGRlZnVuIHBnZy1yZW1vdmUtcGFzc3BocmFzZS1jYWNoZSAoa2V5KQotICAo bGV0ICgocGFzc3BocmFzZSAoc3ltYm9sLXZhbHVlIChpbnRlcm4tc29mdCBrZXkgcGdnLXBhc3Nw aHJhc2UtY2FjaGUpKSkpCi0gICAgKHdoZW4gcGFzc3BocmFzZQotICAgICAgKGZpbGxhcnJheSBw YXNzcGhyYXNlID9fKQotICAgICAgKHVuaW50ZXJuIGtleSBwZ2ctcGFzc3BocmFzZS1jYWNoZSkp KSkKKyAgICAgICAgICAocGdnLXJ1bi1hdC10aW1lLTEgdGltZSByZXBlYXQgZnVuY3Rpb24gYXJn cykpCisgICAgICAgIChkZWZ1biBwZ2ctY2FuY2VsLXRpbWVyICh0aW1lcikKKyAgICAgICAgICAi RW11bGF0ZSBjYW5jZWwtdGltZXIgZm9yIHhlbWFjcy4iCisgICAgICAgICAgKGRlbGV0ZS1pdGlt ZXIgdGltZXIpKQorICAgICAgICApCisgICAgKGRlZmFsaWFzICdwZ2ctcnVuLWF0LXRpbWUgJ3J1 bi1hdC10aW1lKQorICAgIChkZWZhbGlhcyAncGdnLWNhbmNlbC10aW1lciAnY2FuY2VsLXRpbWVy KSkpCiAKIChkZWZtYWNybyBwZ2ctY29udmVydC1sYnQtcmVnaW9uIChzdGFydCBlbmQgbGJ0KQog ICBgKGxldCAoKHBnZy1jb252ZXJzaW9uLWVuZCAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpICxl bmQpKSkKQEAgLTIyMiw5MyArMjk5LDE1NiBAQAogOzs7CiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVm dW4gcGdnLWVuY3J5cHQtcmVnaW9uIChzdGFydCBlbmQgcmNwdHMgJm9wdGlvbmFsIHNpZ24pCiso ZGVmdW4gcGdnLWVuY3J5cHQtcmVnaW9uIChzdGFydCBlbmQgcmNwdHMgJm9wdGlvbmFsIHNpZ24g cGFzc3BocmFzZSkKICAgIkVuY3J5cHQgdGhlIGN1cnJlbnQgcmVnaW9uIGJldHdlZW4gU1RBUlQg YW5kIEVORCBmb3IgUkNQVFMuCi1JZiBvcHRpb25hbCBhcmd1bWVudCBTSUdOIGlzIG5vbi1uaWws IGRvIGEgY29tYmluZWQgc2lnbiBhbmQgZW5jcnlwdC4iCisKK0lmIG9wdGlvbmFsIGFyZ3VtZW50 IFNJR04gaXMgbm9uLW5pbCwgZG8gYSBjb21iaW5lZCBzaWduIGFuZCBlbmNyeXB0LgorCitJZiBv cHRpb25hbCBQQVNTUEhSQVNFIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgb2J0YWluZWQg ZnJvbSB0aGUKK3Bhc3NwaHJhc2UgY2FjaGUgb3IgdXNlci4iCiAgIChpbnRlcmFjdGl2ZQogICAg KGxpc3QgKHJlZ2lvbi1iZWdpbm5pbmcpKHJlZ2lvbi1lbmQpCiAJIChzcGxpdC1zdHJpbmcgKHJl YWQtc3RyaW5nICJSZWNpcGllbnRzOiAiKSAiWyBcdCxdKyIpKSkKICAgKGxldCAoKHN0YXR1cwog CSAocGdnLXNhdmUtY29kaW5nLXN5c3RlbSBzdGFydCBlbmQKIAkgICAocGdnLWludm9rZSAiZW5j cnlwdC1yZWdpb24iIChvciBwZ2ctc2NoZW1lIHBnZy1kZWZhdWx0LXNjaGVtZSkKLQkJICAgICAg IChwb2ludC1taW4pIChwb2ludC1tYXgpIHJjcHRzIHNpZ24pKSkpCisJCSAgICAgICAocG9pbnQt bWluKSAocG9pbnQtbWF4KSByY3B0cyBzaWduIHBhc3NwaHJhc2UpKSkpCiAgICAgKHdoZW4gKGlu dGVyYWN0aXZlLXApCiAgICAgICAocGdnLWRpc3BsYXktb3V0cHV0LWJ1ZmZlciBzdGFydCBlbmQg c3RhdHVzKSkKICAgICBzdGF0dXMpKQogCiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIHBnZy1lbmNy eXB0IChyY3B0cyAmb3B0aW9uYWwgc2lnbiBzdGFydCBlbmQpCisoZGVmdW4gcGdnLWVuY3J5cHQt c3ltbWV0cmljLXJlZ2lvbiAoc3RhcnQgZW5kICZvcHRpb25hbCBwYXNzcGhyYXNlKQorICAiRW5j cnlwdCB0aGUgY3VycmVudCByZWdpb24gYmV0d2VlbiBTVEFSVCBhbmQgRU5EIHN5bW1ldHJpYyB3 aXRoIHBhc3NwaHJhc2UuCisKK0lmIG9wdGlvbmFsIFBBU1NQSFJBU0UgaXMgbm90IHNwZWNpZmll ZCwgaXQgd2lsbCBiZSBvYnRhaW5lZCBmcm9tIHRoZQorY2FjaGUgb3IgdXNlci4iCisgIChpbnRl cmFjdGl2ZSAiciIpCisgIChsZXQgKChzdGF0dXMKKwkgKHBnZy1zYXZlLWNvZGluZy1zeXN0ZW0g c3RhcnQgZW5kCisJICAgKHBnZy1pbnZva2UgImVuY3J5cHQtc3ltbWV0cmljLXJlZ2lvbiIgCisJ CSAgICAgICAob3IgcGdnLXNjaGVtZSBwZ2ctZGVmYXVsdC1zY2hlbWUpCisJCSAgICAgICAocG9p bnQtbWluKSAocG9pbnQtbWF4KSBwYXNzcGhyYXNlKSkpKQorICAgICh3aGVuIChpbnRlcmFjdGl2 ZS1wKQorICAgICAgKHBnZy1kaXNwbGF5LW91dHB1dC1idWZmZXIgc3RhcnQgZW5kIHN0YXR1cykp CisgICAgc3RhdHVzKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBwZ2ctZW5jcnlwdC1zeW1t ZXRyaWMgKCZvcHRpb25hbCBzdGFydCBlbmQgcGFzc3BocmFzZSkKKyAgIkVuY3J5cHQgdGhlIGN1 cnJlbnQgYnVmZmVyIHVzaW5nIGEgc3ltbWV0cmljLCByYXRoZXIgdGhhbiBrZXktcGFpciwgY2lw aGVyLgorCitJZiBvcHRpb25hbCBhcmd1bWVudHMgU1RBUlQgYW5kIEVORCBhcmUgc3BlY2lmaWVk LCBvbmx5IGVuY3J5cHQgd2l0aGluCit0aGUgcmVnaW9uLgorCitJZiBvcHRpb25hbCBQQVNTUEhS QVNFIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgb2J0YWluZWQgZnJvbSB0aGUKK3Bhc3Nw aHJhc2UgY2FjaGUgb3IgdXNlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChzdGFydCAo b3Igc3RhcnQgKHBvaW50LW1pbikpKQorCSAoZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQorCSAo c3RhdHVzIChwZ2ctZW5jcnlwdC1zeW1tZXRyaWMtcmVnaW9uIHN0YXJ0IGVuZCBwYXNzcGhyYXNl KSkpCisgICAgKHdoZW4gKGludGVyYWN0aXZlLXApCisgICAgICAocGdnLWRpc3BsYXktb3V0cHV0 LWJ1ZmZlciBzdGFydCBlbmQgc3RhdHVzKSkKKyAgICBzdGF0dXMpKQorCis7OzsjIyNhdXRvbG9h ZAorKGRlZnVuIHBnZy1lbmNyeXB0IChyY3B0cyAmb3B0aW9uYWwgc2lnbiBzdGFydCBlbmQgcGFz c3BocmFzZSkKICAgIkVuY3J5cHQgdGhlIGN1cnJlbnQgYnVmZmVyIGZvciBSQ1BUUy4KKwogSWYg b3B0aW9uYWwgYXJndW1lbnQgU0lHTiBpcyBub24tbmlsLCBkbyBhIGNvbWJpbmVkIHNpZ24gYW5k IGVuY3J5cHQuCisKIElmIG9wdGlvbmFsIGFyZ3VtZW50cyBTVEFSVCBhbmQgRU5EIGFyZSBzcGVj aWZpZWQsIG9ubHkgZW5jcnlwdCB3aXRoaW4KLXRoZSByZWdpb24uIgordGhlIHJlZ2lvbi4KKwor SWYgb3B0aW9uYWwgUEFTU1BIUkFTRSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIG9idGFp bmVkIGZyb20gdGhlCitwYXNzcGhyYXNlIGNhY2hlIG9yIHVzZXIuIgogICAoaW50ZXJhY3RpdmUg KGxpc3QgKHNwbGl0LXN0cmluZyAocmVhZC1zdHJpbmcgIlJlY2lwaWVudHM6ICIpICJbIFx0LF0r IikpKQogICAobGV0KiAoKHN0YXJ0IChvciBzdGFydCAocG9pbnQtbWluKSkpCiAJIChlbmQgKG9y IGVuZCAocG9pbnQtbWF4KSkpCi0JIChzdGF0dXMgKHBnZy1lbmNyeXB0LXJlZ2lvbiBzdGFydCBl bmQgcmNwdHMgc2lnbikpKQorCSAoc3RhdHVzIChwZ2ctZW5jcnlwdC1yZWdpb24gc3RhcnQgZW5k IHJjcHRzIHNpZ24gcGFzc3BocmFzZSkpKQogICAgICh3aGVuIChpbnRlcmFjdGl2ZS1wKQogICAg ICAgKHBnZy1kaXNwbGF5LW91dHB1dC1idWZmZXIgc3RhcnQgZW5kIHN0YXR1cykpCiAgICAgc3Rh dHVzKSkKIAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBwZ2ctZGVjcnlwdC1yZWdpb24gKHN0YXJ0 IGVuZCkKLSAgIkRlY3J5cHQgdGhlIGN1cnJlbnQgcmVnaW9uIGJldHdlZW4gU1RBUlQgYW5kIEVO RC4iCisoZGVmdW4gcGdnLWRlY3J5cHQtcmVnaW9uIChzdGFydCBlbmQgJm9wdGlvbmFsIHBhc3Nw aHJhc2UpCisgICJEZWNyeXB0IHRoZSBjdXJyZW50IHJlZ2lvbiBiZXR3ZWVuIFNUQVJUIGFuZCBF TkQuCisKK0lmIG9wdGlvbmFsIFBBU1NQSFJBU0UgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBi ZSBvYnRhaW5lZCBmcm9tIHRoZQorcGFzc3BocmFzZSBjYWNoZSBvciB1c2VyLiIKICAgKGludGVy YWN0aXZlICJyIikKICAgKGxldCogKChidWYgKGN1cnJlbnQtYnVmZmVyKSkKIAkgKHN0YXR1cwog CSAgKHBnZy1zYXZlLWNvZGluZy1zeXN0ZW0gc3RhcnQgZW5kCiAJICAgIChwZ2ctaW52b2tlICJk ZWNyeXB0LXJlZ2lvbiIgKG9yIHBnZy1zY2hlbWUgcGdnLWRlZmF1bHQtc2NoZW1lKQotCQkJKHBv aW50LW1pbikgKHBvaW50LW1heCkpKSkpCisJCQkocG9pbnQtbWluKSAocG9pbnQtbWF4KSBwYXNz cGhyYXNlKSkpKQogICAgICh3aGVuIChpbnRlcmFjdGl2ZS1wKQogICAgICAgKHBnZy1kaXNwbGF5 LW91dHB1dC1idWZmZXIgc3RhcnQgZW5kIHN0YXR1cykpCiAgICAgc3RhdHVzKSkKIAogOzs7IyMj YXV0b2xvYWQKLShkZWZ1biBwZ2ctZGVjcnlwdCAoJm9wdGlvbmFsIHN0YXJ0IGVuZCkKKyhkZWZ1 biBwZ2ctZGVjcnlwdCAoJm9wdGlvbmFsIHN0YXJ0IGVuZCBwYXNzcGhyYXNlKQogICAiRGVjcnlw dCB0aGUgY3VycmVudCBidWZmZXIuCisKIElmIG9wdGlvbmFsIGFyZ3VtZW50cyBTVEFSVCBhbmQg RU5EIGFyZSBzcGVjaWZpZWQsIG9ubHkgZGVjcnlwdCB3aXRoaW4KLXRoZSByZWdpb24uIgordGhl IHJlZ2lvbi4KKworSWYgb3B0aW9uYWwgUEFTU1BIUkFTRSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3 aWxsIGJlIG9idGFpbmVkIGZyb20gdGhlCitwYXNzcGhyYXNlIGNhY2hlIG9yIHVzZXIuIgogICAo aW50ZXJhY3RpdmUgIiIpCiAgIChsZXQqICgoc3RhcnQgKG9yIHN0YXJ0IChwb2ludC1taW4pKSkK IAkgKGVuZCAob3IgZW5kIChwb2ludC1tYXgpKSkKLQkgKHN0YXR1cyAocGdnLWRlY3J5cHQtcmVn aW9uIHN0YXJ0IGVuZCkpKQorCSAoc3RhdHVzIChwZ2ctZGVjcnlwdC1yZWdpb24gc3RhcnQgZW5k IHBhc3NwaHJhc2UpKSkKICAgICAod2hlbiAoaW50ZXJhY3RpdmUtcCkKICAgICAgIChwZ2ctZGlz cGxheS1vdXRwdXQtYnVmZmVyIHN0YXJ0IGVuZCBzdGF0dXMpKQogICAgIHN0YXR1cykpCiAKIDs7 OyMjI2F1dG9sb2FkCi0oZGVmdW4gcGdnLXNpZ24tcmVnaW9uIChzdGFydCBlbmQgJm9wdGlvbmFs IGNsZWFydGV4dCkKKyhkZWZ1biBwZ2ctc2lnbi1yZWdpb24gKHN0YXJ0IGVuZCAmb3B0aW9uYWwg Y2xlYXJ0ZXh0IHBhc3NwaHJhc2UpCiAgICJNYWtlIHRoZSBzaWduYXR1cmUgZnJvbSB0ZXh0IGJl dHdlZW4gU1RBUlQgYW5kIEVORC4KKwogSWYgdGhlIG9wdGlvbmFsIDNyZCBhcmd1bWVudCBDTEVB UlRFWFQgaXMgbm9uLW5pbCwgaXQgZG9lcyBub3QgY3JlYXRlCiBhIGRldGFjaGVkIHNpZ25hdHVy ZS4KKwogSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW50ZXJhY3RpdmVseSwgQ0xFQVJURVhU IGlzIGVuYWJsZWQKLWFuZCB0aGUgdGhlIG91dHB1dCBpcyBkaXNwbGF5ZWQuIgorYW5kIHRoZSB0 aGUgb3V0cHV0IGlzIGRpc3BsYXllZC4KKworSWYgb3B0aW9uYWwgUEFTU1BIUkFTRSBpcyBub3Qg c3BlY2lmaWVkLCBpdCB3aWxsIGJlIG9idGFpbmVkIGZyb20gdGhlCitwYXNzcGhyYXNlIGNhY2hl IG9yIHVzZXIuIgogICAoaW50ZXJhY3RpdmUgInIiKQogICAobGV0ICgoc3RhdHVzIChwZ2ctc2F2 ZS1jb2Rpbmctc3lzdGVtIHN0YXJ0IGVuZAogCQkgIChwZ2ctaW52b2tlICJzaWduLXJlZ2lvbiIg KG9yIHBnZy1zY2hlbWUgcGdnLWRlZmF1bHQtc2NoZW1lKQogCQkJICAgICAgKHBvaW50LW1pbikg KHBvaW50LW1heCkKLQkJCSAgICAgIChvciAoaW50ZXJhY3RpdmUtcCkgY2xlYXJ0ZXh0KSkpKSkK KwkJCSAgICAgIChvciAoaW50ZXJhY3RpdmUtcCkgY2xlYXJ0ZXh0KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFzc3BocmFzZSkpKSkKICAgICAod2hlbiAoaW50ZXJhY3RpdmUtcCkK ICAgICAgIChwZ2ctZGlzcGxheS1vdXRwdXQtYnVmZmVyIHN0YXJ0IGVuZCBzdGF0dXMpKQogICAg IHN0YXR1cykpCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gcGdnLXNpZ24gKCZvcHRpb25hbCBj bGVhcnRleHQgc3RhcnQgZW5kKQorKGRlZnVuIHBnZy1zaWduICgmb3B0aW9uYWwgY2xlYXJ0ZXh0 IHN0YXJ0IGVuZCBwYXNzcGhyYXNlKQogICAiU2lnbiB0aGUgY3VycmVudCBidWZmZXIuCisKIElm IHRoZSBvcHRpb25hbCBhcmd1bWVudCBDTEVBUlRFWFQgaXMgbm9uLW5pbCwgaXQgZG9lcyBub3Qg Y3JlYXRlIGEKIGRldGFjaGVkIHNpZ25hdHVyZS4KKwogSWYgb3B0aW9uYWwgYXJndW1lbnRzIFNU QVJUIGFuZCBFTkQgYXJlIHNwZWNpZmllZCwgb25seSBzaWduIGRhdGEKIHdpdGhpbiB0aGUgcmVn aW9uLgorCiBJZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnRlcmFjdGl2ZWx5LCBDTEVBUlRF WFQgaXMgZW5hYmxlZAotYW5kIHRoZSB0aGUgb3V0cHV0IGlzIGRpc3BsYXllZC4iCithbmQgdGhl IHRoZSBvdXRwdXQgaXMgZGlzcGxheWVkLgorCitJZiBvcHRpb25hbCBQQVNTUEhSQVNFIGlzIG5v dCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgb2J0YWluZWQgZnJvbSB0aGUKK3Bhc3NwaHJhc2UgY2Fj aGUgb3IgdXNlci4iCiAgIChpbnRlcmFjdGl2ZSAiIikKICAgKGxldCogKChzdGFydCAob3Igc3Rh cnQgKHBvaW50LW1pbikpKQogCSAoZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQotCSAoc3RhdHVz IChwZ2ctc2lnbi1yZWdpb24gc3RhcnQgZW5kIChvciAoaW50ZXJhY3RpdmUtcCkgY2xlYXJ0ZXh0 KSkpKQorCSAoc3RhdHVzIChwZ2ctc2lnbi1yZWdpb24gc3RhcnQgZW5kCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG9yIChpbnRlcmFjdGl2ZS1wKSBjbGVhcnRleHQpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3BocmFzZSkpKQogICAgICh3aGVuIChp bnRlcmFjdGl2ZS1wKQogICAgICAgKHBnZy1kaXNwbGF5LW91dHB1dC1idWZmZXIgc3RhcnQgZW5k IHN0YXR1cykpCiAgICAgc3RhdHVzKSkKLSAgCisKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gcGdn LXZlcmlmeS1yZWdpb24gKHN0YXJ0IGVuZCAmb3B0aW9uYWwgc2lnbmF0dXJlIGZldGNoKQogICAi VmVyaWZ5IHRoZSBjdXJyZW50IHJlZ2lvbiBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCkluZGV4OiBw Z2ctZ3BnLmVsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2VtYWNzL2VtYWNzL2xpc3Av Z251cy9wZ2ctZ3BnLmVsLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtdSAtcjEuNyBw Z2ctZ3BnLmVsCi0tLSBwZ2ctZ3BnLmVsCTggT2N0IDIwMDUgMDg6NDM6MzMgLTAwMDAJMS43Cisr KyBwZ2ctZ3BnLmVsCTEyIE9jdCAyMDA1IDIzOjMxOjM5IC0wMDAwCkBAIC00LDYgKzQsNyBAQAog OzsgICAyMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiA7OyBBdXRob3I6IERh aWtpIFVlbm8gPHVlbm9AdW5peHVzZXIub3JnPgorOzsgU3ltbWV0cmljIGVuY3J5cHRpb24gYWRk ZWQgYnk6IFNhc2NoYSBXaWxkZSA8d2lsZGVAc2hhLWJhbmcuZGU+CiA7OyBDcmVhdGVkOiAxOTk5 LzEwLzI4CiA7OyBLZXl3b3JkczogUEdQLCBPcGVuUEdQLCBHbnVQRwogCkBAIC05NiwxOSArOTcs MjAgQEAKIAkgIChkZWxldGUtZmlsZSBvdXRwdXQtZmlsZS1uYW1lKSkKICAgICAgIChzZXQtZGVm YXVsdC1maWxlLW1vZGVzIG9yaWctbW9kZSkpKSkKIAotKGRlZnVuIHBnZy1ncGctcG9zc2libHkt Y2FjaGUtcGFzc3BocmFzZSAocGFzc3BocmFzZSAmb3B0aW9uYWwga2V5KQorKGRlZnVuIHBnZy1n cGctcG9zc2libHktY2FjaGUtcGFzc3BocmFzZSAocGFzc3BocmFzZSAmb3B0aW9uYWwga2V5IG5v dHJ1bmNhdGUpCiAgIChpZiAoYW5kIHBnZy1jYWNoZS1wYXNzcGhyYXNlCiAJICAgKHByb2duCiAJ ICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogCSAgICAgKHJlLXNlYXJjaC1mb3J3YXJkICJe XFxbR05VUEc6XSBcXChHT09EX1BBU1NQSFJBU0VcXD5cXClcXHxcXChTSUdfQ1JFQVRFRFxcKSIg bmlsIHQpKSkKLSAgICAgIChwZ2ctYWRkLXBhc3NwaHJhc2UtY2FjaGUKKyAgICAgIChwZ2ctYWRk LXBhc3NwaHJhc2UtdG8tY2FjaGUKICAgICAgICAob3Iga2V5CiAJICAgKHByb2duCiAJICAgICAo Z290by1jaGFyIChwb2ludC1taW4pKQogCSAgICAgKGlmIChyZS1zZWFyY2gtZm9yd2FyZAogCQkg ICJeXFxbR05VUEc6XSBORUVEX1BBU1NQSFJBU0VcXChfUElOXFwpPyBcXHcrID9cXHcqIiBuaWwg dCkKIAkJIChzdWJzdHJpbmcgKG1hdGNoLXN0cmluZyAwKSAtOCkpKSkKLSAgICAgICBwYXNzcGhy YXNlKSkpCisgICAgICAgcGFzc3BocmFzZQorICAgICAgIG5vdHJ1bmNhdGUpKSkKIAogKGRlZnZh ciBwZ2ctZ3BnLWFsbC1zZWNyZXQta2V5cyAndW5rbm93bikKIApAQCAtMTM5LDE4ICsxNDEsNTMg QEAKIAkJCSAgICAgbmlsIHQpCiAJICAoc3Vic3RyaW5nIChtYXRjaC1zdHJpbmcgMikgOCkpKSkp CiAKLShkZWZ1biBwZ2ctZ3BnLWVuY3J5cHQtcmVnaW9uIChzdGFydCBlbmQgcmVjaXBpZW50cyAm b3B0aW9uYWwgc2lnbikKKyhkZWZ1biBwZ2ctZ3BnLWxvb2t1cC1rZXktb3duZXIgKHN0cmluZyAm b3B0aW9uYWwgYWxsKQorICAiU2VhcmNoIGtleXMgYXNzb2NpYXRlZCB3aXRoIFNUUklORyBhbmQg cmV0dXJuIG93bmVyIG9mIGlkZW50aWZpZWQga2V5LgorCitUaGUgdmFsdWUgbWF5IGJlIGp1c3Qg dGhlIGJhcmUga2V5IGlkLCBvciBpdCBtYXkgYmUgYSBjb21iaW5hdGlvbiBvZiB0aGUKK3VzZXIg bmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGtleSBhbmQgdGhlIGtleSBpZCwgd2l0aCB0aGUga2V5 IGlkIGVuY2xvc2VkCitpbiBcIjwuLi4+XCIgYW5nbGUgYnJhY2tldHMuCisKK09wdGlvbmFsIEFM TCBub24tbmlsIG1lYW5zIHNlYXJjaCBhbGwga2V5cywgaW5jbHVkaW5nIHNlY3JldCBrZXlzLiIK KyAgKGxldCAoKGFyZ3MgKGxpc3QgIi0td2l0aC1jb2xvbnMiICItLW5vLWdyZWV0aW5nIiAiLS1i YXRjaCIKKwkJICAgIChpZiBhbGwgIi0tbGlzdC1zZWNyZXQta2V5cyIgIi0tbGlzdC1rZXlzIikK KwkJICAgIHN0cmluZykpCisgICAgICAgIChrZXktcmVnZXhwIChjb25jYXQgIl5cXChzZWNcXHxw dWJcXCkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjpbXjpdKjpbXjpdKjpbXjpdKjpc XChbXjpdKlxcKTpbXjpdKiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOlteOl0qOlte Ol0qOlteOl0qOlxcKFteOl0qXFwpOiIpKQorICAgICAgICApCisgICAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAgIChhcHBseSAjJ2NhbGwtcHJvY2VzcyBwZ2ctZ3BnLXByb2dyYW0gbmlsIHQgbmls IGFyZ3MpCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgKGlmIChyZS1zZWFy Y2gtZm9yd2FyZCBrZXktcmVnZXhwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCB0 KQorICAgICAgICAgIChtYXRjaC1zdHJpbmcgMykpKSkpCisKKyhkZWZ1biBwZ2ctZ3BnLWtleS1p ZC1mcm9tLWtleS1vd25lciAoa2V5LW93bmVyKQorICAoY29uZCAoKG5vdCBrZXktb3duZXIpIG5p bCkKKyAgICAgICAgOzsgRXh0cmFjdCBiYXJlIGtleSBpZCBmcm9tIG91dGVybW9zdCBwYWlyZWQg YW5nbGUgYnJhY2tldHMsIGlmIGFueToKKyAgICAgICAgKChzdHJpbmctbWF0Y2ggIltePF0qPFxc KC4rXFwpPltePl0qIiBrZXktb3duZXIpCisgICAgICAgICAoc3Vic3RyaW5nIGtleS1vd25lciAo bWF0Y2gtYmVnaW5uaW5nIDEpKG1hdGNoLWVuZCAxKSkpCisgICAgICAgIChrZXktb3duZXIpKQor ICApCisKKyhkZWZ1biBwZ2ctZ3BnLWVuY3J5cHQtcmVnaW9uIChzdGFydCBlbmQgcmVjaXBpZW50 cyAmb3B0aW9uYWwgc2lnbiBwYXNzcGhyYXNlKQogICAiRW5jcnlwdCB0aGUgY3VycmVudCByZWdp b24gYmV0d2VlbiBTVEFSVCBhbmQgRU5ELgotSWYgb3B0aW9uYWwgYXJndW1lbnQgU0lHTiBpcyBu b24tbmlsLCBkbyBhIGNvbWJpbmVkIHNpZ24gYW5kIGVuY3J5cHQuIgorCitJZiBvcHRpb25hbCBh cmd1bWVudCBTSUdOIGlzIG5vbi1uaWwsIGRvIGEgY29tYmluZWQgc2lnbiBhbmQgZW5jcnlwdC4K KworSWYgb3B0aW9uYWwgUEFTU1BIUkFTRSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIG9i dGFpbmVkIGZyb20gdGhlCitwYXNzcGhyYXNlIGNhY2hlIG9yIHVzZXIuIgogICAobGV0KiAoKHBn Zy1ncGctdXNlci1pZCAob3IgcGdnLWdwZy11c2VyLWlkIHBnZy1kZWZhdWx0LXVzZXItaWQpKQot CSAocGFzc3BocmFzZQotCSAgKHdoZW4gc2lnbgotCSAgICAocGdnLXJlYWQtcGFzc3BocmFzZQot CSAgICAgKGZvcm1hdCAiR251UEcgcGFzc3BocmFzZSBmb3IgJXM6ICIgcGdnLWdwZy11c2VyLWlk KQotCSAgICAgcGdnLWdwZy11c2VyLWlkKSkpCisJIChwYXNzcGhyYXNlIChvciBwYXNzcGhyYXNl CisgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gc2lnbgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHBnZy1yZWFkLXBhc3NwaHJhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZm9ybWF0ICJHbnVQRyBwYXNzcGhyYXNlIGZvciAlczogIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGdnLWdwZy11c2VyLWlkKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnZy1ncGctdXNlci1pZCkpKSkKIAkgKGFyZ3MKIAkgIChhcHBlbmQKLQkgICAobGlz dCAiLS1iYXRjaCIgIi0tYXJtb3IiICItLWFsd2F5cy10cnVzdCIgIi0tZW5jcnlwdCIpCisJICAg KGxpc3QgIi0tYmF0Y2giICItLXRleHRtb2RlIiAiLS1hcm1vciIgIi0tYWx3YXlzLXRydXN0IiAi LS1lbmNyeXB0IikKIAkgICAoaWYgc2lnbiAobGlzdCAiLS1zaWduIiAiLS1sb2NhbC11c2VyIiBw Z2ctZ3BnLXVzZXItaWQpKQogCSAgIChpZiByZWNpcGllbnRzCiAJICAgICAgIChhcHBseSAjJ25j b25jCkBAIC0xNjksMTkgKzIwNiw0NiBAQAogCShwZ2ctZ3BnLXBvc3NpYmx5LWNhY2hlLXBhc3Nw aHJhc2UgcGFzc3BocmFzZSkpKQogICAgIChwZ2ctcHJvY2Vzcy13aGVuLXN1Y2Nlc3MpKSkKIAot KGRlZnVuIHBnZy1ncGctZGVjcnlwdC1yZWdpb24gKHN0YXJ0IGVuZCkKLSAgIkRlY3J5cHQgdGhl IGN1cnJlbnQgcmVnaW9uIGJldHdlZW4gU1RBUlQgYW5kIEVORC4iCisoZGVmdW4gcGdnLWdwZy1l bmNyeXB0LXN5bW1ldHJpYy1yZWdpb24gKHN0YXJ0IGVuZCAmb3B0aW9uYWwgcGFzc3BocmFzZSkK KyAgIkVuY3J5cHQgdGhlIGN1cnJlbnQgcmVnaW9uIGJldHdlZW4gU1RBUlQgYW5kIEVORCB3aXRo IHN5bW1ldHJpYyBjaXBoZXIuCisKK0lmIG9wdGlvbmFsIFBBU1NQSFJBU0UgaXMgbm90IHNwZWNp ZmllZCwgaXQgd2lsbCBiZSBvYnRhaW5lZCBmcm9tIHRoZQorcGFzc3BocmFzZSBjYWNoZSBvciB1 c2VyLiIKKyAgKGxldCogKChwYXNzcGhyYXNlIChvciBwYXNzcGhyYXNlCisgICAgICAgICAgICAg ICAgICAgICAgICAgKHBnZy1yZWFkLXBhc3NwaHJhc2UKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIkdudVBHIHBhc3NwaHJhc2UgZm9yIHN5bW1ldHJpYyBlbmNyeXB0aW9uOiAiKSkpCisJIChh cmdzCisJICAoYXBwZW5kIChsaXN0ICItLWJhdGNoIiAiLS10ZXh0bW9kZSIgIi0tYXJtb3IiICIt LXN5bW1ldHJpYyIgKSkpKQorICAgIChwZ2ctYXMtbGJ0IHN0YXJ0IGVuZCAnQ1JMRgorICAgICAg KHBnZy1ncGctcHJvY2Vzcy1yZWdpb24gc3RhcnQgZW5kIHBhc3NwaHJhc2UgcGdnLWdwZy1wcm9n cmFtIGFyZ3MpKQorICAgIChwZ2ctcHJvY2Vzcy13aGVuLXN1Y2Nlc3MpKSkKKworKGRlZnVuIHBn Zy1ncGctZGVjcnlwdC1yZWdpb24gKHN0YXJ0IGVuZCAmb3B0aW9uYWwgcGFzc3BocmFzZSkKKyAg IkRlY3J5cHQgdGhlIGN1cnJlbnQgcmVnaW9uIGJldHdlZW4gU1RBUlQgYW5kIEVORC4KKworSWYg b3B0aW9uYWwgUEFTU1BIUkFTRSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIG9idGFpbmVk IGZyb20gdGhlCitwYXNzcGhyYXNlIGNhY2hlIG9yIHVzZXIuIgogICAobGV0KiAoKGN1cnJlbnQt YnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpCiAJIChtZXNzYWdlLWtleXMgKHdpdGgtdGVtcC1idWZm ZXIKIAkJCSAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgY3VycmVudC1idWZmZXIpCiAJCQkgKHBn Zy1kZWNvZGUtYXJtb3ItcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpCiAJIChzZWNy ZXQta2V5cyAocGdnLWdwZy1sb29rdXAtYWxsLXNlY3JldC1rZXlzKSkKKyAgICAgICAgIDs7IFhY WCB0aGUgdXNlciBpcyBzdHVjayBpZiB0aGV5IG5lZWQgdG8gdXNlIHRoZSBwYXNzcGhyYXNlIGZv cgorICAgICAgICAgOzsgICAgIGFueSBidXQgdGhlIGZpcnN0IHNlY3JldCBrZXkgZm9yIHdoaWNo IHRoZSBtZXNzYWdlIGlzCisgICAgICAgICA7OyAgICAgZW5jcnlwdGVkLiAgaWRlYWxseSwgd2Ug d291bGQgaW5jcmVtZW50YWxseSBnaXZlIHRoZW0gYQorICAgICAgICAgOzsgICAgIGNoYW5jZSB3 aXRoIHN1YnNlcXVlbnQga2V5cyBlYWNoIHRpbWUgdGhleSBmYWlsIHdpdGggb25lLgogCSAoa2V5 IChwZ2ctZ3BnLXNlbGVjdC1tYXRjaGluZy1rZXkgbWVzc2FnZS1rZXlzIHNlY3JldC1rZXlzKSkK LQkgKHBnZy1ncGctdXNlci1pZCAob3Iga2V5IHBnZy1ncGctdXNlci1pZCBwZ2ctZGVmYXVsdC11 c2VyLWlkKSkKLQkgKHBhc3NwaHJhc2UKLQkgIChwZ2ctcmVhZC1wYXNzcGhyYXNlCi0JICAgKGZv cm1hdCAiR251UEcgcGFzc3BocmFzZSBmb3IgJXM6ICIgcGdnLWdwZy11c2VyLWlkKQotCSAgIHBn Zy1ncGctdXNlci1pZCkpCisgICAgICAgICAoa2V5LW93bmVyIChhbmQga2V5IChwZ2ctZ3BnLWxv b2t1cC1rZXktb3duZXIga2V5IHQpKSkKKwkgKGtleS1pZCAocGdnLWdwZy1rZXktaWQtZnJvbS1r ZXktb3duZXIga2V5LW93bmVyKSkKKwkgKHBnZy1ncGctdXNlci1pZCAob3Iga2V5LWlkIGtleQor CSAgICAgICAgICAgICAgICAgICAgICBwZ2ctZ3BnLXVzZXItaWQgcGdnLWRlZmF1bHQtdXNlci1p ZCkpCisJIChwYXNzcGhyYXNlIChvciBwYXNzcGhyYXNlCisgICAgICAgICAgICAgICAgICAgICAg ICAgKHBnZy1yZWFkLXBhc3NwaHJhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1h dCAoaWYgKHBnZy1ncGctc3ltbWV0cmljLWtleS1wIG1lc3NhZ2Uta2V5cykKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhc3NwaHJhc2UgZm9yIHN5bW1ldHJpYyBkZWNy eXB0aW9uOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR251UEcgcGFz c3BocmFzZSBmb3IgJXM6ICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9y IGtleS1vd25lciAiPz8iKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGdnLWdwZy11c2Vy LWlkKSkpCiAJIChhcmdzICcoIi0tYmF0Y2giICItLWRlY3J5cHQiKSkpCiAgICAgKHBnZy1ncGct cHJvY2Vzcy1yZWdpb24gc3RhcnQgZW5kIHBhc3NwaHJhc2UgcGdnLWdwZy1wcm9ncmFtIGFyZ3Mp CiAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgcGdnLWVycm9ycy1idWZmZXIKQEAgLTE4OSwxMSAr MjUzLDIwIEBACiAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgICAgKHJlLXNlYXJj aC1mb3J3YXJkICJeXFxbR05VUEc6XSBERUNSWVBUSU9OX09LQVlcXD4iIG5pbCB0KSkpKQogCiso ZGVmdW4gcGdnLWdwZy1zeW1tZXRyaWMta2V5LXAgKG1lc3NhZ2Uta2V5cykKKyAgIlRydWUgaWYg ZGVjb2RlZCBhcm1vciBNRVNTQUdFLUtFWVMgaGFzIHN5bW1ldHJpYyBlbmNyeXB0aW9uIGluZGlj YXRvci4iCisgIChsZXQgKHJlc3VsdCkKKyAgICAoZG9saXN0IChrZXkgbWVzc2FnZS1rZXlzIHJl c3VsdCkKKyAgICAgICh3aGVuIChhbmQgKGVxIChjYXIga2V5KSAzKQorCQkgKG1lbWJlciAnKHN5 bW1ldHJpYy1rZXktYWxnb3JpdGhtKSBrZXkpKQorCShzZXRxIHJlc3VsdCBrZXkpKSkpKQorCiAo ZGVmdW4gcGdnLWdwZy1zZWxlY3QtbWF0Y2hpbmcta2V5IChtZXNzYWdlLWtleXMgc2VjcmV0LWtl eXMpCiAgICJDaG9vc2UgYSBrZXkgZnJvbSBNRVNTQUdFLUtFWVMgdGhhdCBtYXRjaGVzIG9uZSBv ZiB0aGUga2V5cyBpbiBTRUNSRVQtS0VZUy4iCiAgIChsb29wIGZvciBtZXNzYWdlLWtleSBpbiBt ZXNzYWdlLWtleXMKIAlmb3IgbWVzc2FnZS1rZXktaWQgPSAoYW5kIChlcXVhbCAoY2FyIG1lc3Nh Z2Uta2V5KSAxKQotCQkJCSAgKGNkciAoYXNzcSAna2V5LWlkZW50aWZpZXIgbWVzc2FnZS1rZXkp KSkKKwkJCQkgIChjZHIgKGFzc3EgJ2tleS1pZGVudGlmaWVyCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIG1lc3NhZ2Uta2V5KSkpKQogCWZvciBrZXkg PSAoYW5kIG1lc3NhZ2Uta2V5LWlkIChwZ2ctbG9va3VwLWtleSBtZXNzYWdlLWtleS1pZCAnZW5j cnlwdCkpCiAJd2hlbiAoYW5kIGtleSAobWVtYmVyIGtleSBzZWNyZXQta2V5cykpIHJldHVybiBr ZXkpKQogCg== ------=_Part_31267_12335773.1129160853993 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 ------=_Part_31267_12335773.1129160853993--