From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.devel Subject: Re: Consistent face for keys in *Help* and `substitute-command-keys' Date: Fri, 5 Mar 2021 13:28:57 -0600 Message-ID: References: <87h7m5iagw.fsf@gnus.org> <83blc9tnvz.fsf@gnu.org> <83y2fcrzkt.fsf@gnu.org> <831rd4romg.fsf@gnu.org> <83zgzsq7xn.fsf@gnu.org> <83v9afriqp.fsf@gnu.org> <83zgzjhvdn.fsf@gnu.org> <83a6rhxwah.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000079caa005bccf18a7" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8234"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Mar 05 20:31:17 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lIGAO-00023G-MD for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Mar 2021 20:31:16 +0100 Original-Received: from localhost ([::1]:37698 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIGAN-0001nN-NZ for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Mar 2021 14:31:15 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIG8H-00014Q-Hm for emacs-devel@gnu.org; Fri, 05 Mar 2021 14:29:05 -0500 Original-Received: from mail-pf1-f179.google.com ([209.85.210.179]:41018) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIG8D-0004aA-Ua; Fri, 05 Mar 2021 14:29:05 -0500 Original-Received: by mail-pf1-f179.google.com with SMTP id q20so2789658pfu.8; Fri, 05 Mar 2021 11:28:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=2Tgs7RaSJjeeK0yjt96EEkmSJWZmKVyERKdHy5n8S6A=; b=al9t5Ghi8+BPK3fuWhKFA80lRShMzInXUV5FfENW4QxEtqU7JCiNE9DPJ/B6nqGDN7 q5afDEleUv3KmmiVXq6Xc2BhT5qViBfAN7cHyAaigaGKMjC8Q2pXCl7knfEjaRxNXFpC kZQN9ohNVyNY30kemTLRjl5FT0hexwQ9lTUp3jIGb+p8JSRA9z1QPdGuMCdJxI/Ze2c/ 0r1SfeegmSo6+ZAuPGm2sd4VKSBqJNeFxEwJIhc5pX2cz3Q3N4i5g68xSRH79r8yEYZp uokLtVT76ugGcUQ+G+NSwz2BsmnD8O9t/OYZ9wKmGsvCenZLPosPBeM3SclnkoVYTqVx kvrg== X-Gm-Message-State: AOAM530kgT+QN+TRPqbBCIw4V4XmDOk/+U9A+mnJtRCh36U6iZGfKPU6 /AB9tk7PxBk04HhUOZKwDxGPl8PlCb4S0DXv8XcfVYbWFDI= X-Google-Smtp-Source: ABdhPJwKyZbQ/mfuC59HfATeQvLhiQAJF429uoCVvG0ztLNatvqNdSLWNT3DnW1SRqER7Eftx59CvZ3NDp6PveALrls= X-Received: by 2002:a63:fd0a:: with SMTP id d10mr9887897pgh.345.1614972538429; Fri, 05 Mar 2021 11:28:58 -0800 (PST) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 5 Mar 2021 13:28:57 -0600 In-Reply-To: <83a6rhxwah.fsf@gnu.org> Received-SPF: pass client-ip=209.85.210.179; envelope-from=stefankangas@gmail.com; helo=mail-pf1-f179.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:266036 Archived-At: --00000000000079caa005bccf18a7 Content-Type: text/plain; charset="UTF-8" Eli Zaretskii writes: > This would take care of the conflicting colors, but that's not the > original problem which caused us to talk about tooltips. The original > problem was that someone could customize the help-key-binding face to > specify size as well. What do you see then? It works as expected also when you specify :height. >> + (add-face-text-property 0 (length text) 'tooltip t text) > > This should have a comment explaining why we use a non-nil APPEND > argument. Fixed in the attached. --00000000000079caa005bccf18a7 Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Add-new-face-help-key-binding-for-keybindings-in-hel.patch" Content-Disposition: attachment; filename="0001-Add-new-face-help-key-binding-for-keybindings-in-hel.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 4c1c32b9f4c2389c_0.1 RnJvbSA3NDc1YzI1YWU1ZmYwYzY2MDQ2ZWRiMjA5ZDE2MGJkYTAzYTcwYjYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogV2VkLCAyNCBGZWIgMjAyMSAwMToxODoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBu ZXcgZmFjZSAnaGVscC1rZXktYmluZGluZycgZm9yIGtleWJpbmRpbmdzIGluIGhlbHAKCiogbGlz cC9mYWNlcy5lbCAoaGVscC1rZXktYmluZGluZyk6IE5ldyBmYWNlLgoqIGxpc3AvaGVscC5lbAoo aGVscC1mb3ItaGVscCk6IFJlbmFtZSBmcm9tICdoZWxwLWZvci1oZWxwLWludGVybmFsJy4gIFVz ZQonc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMnIHN5bnRheC4KKGhlbHApOiBNYWtlIGludG8gYWxp YXMgZm9yICdoZWxwLWZvci1oZWxwJy4KKGhlbHAtZm9yLWhlbHAtaW50ZXJuYWwpOiBNYWtlIGlu dG8gb2Jzb2xldGUgYWxpYXMgZm9yCidoZWxwLWZvci1oZWxwJy4KKGhlbHAtLWtleS1kZXNjcmlw dGlvbi1mb250aWZpZWQpOiBOZXcgZnVuY3Rpb24gdG8gYWRkIHRoZQonaGVscC1rZXktYmluZGlu ZycgZmFjZS4KKGhlbHAta2V5LWRlc2NyaXB0aW9uLCBzdWJzdGl0dXRlLWNvbW1hbmQta2V5cykK KGRlc2NyaWJlLW1hcC10cmVlLCBoZWxwLS1kZXNjcmliZS1jb21tYW5kKQooaGVscC0tZGVzY3Jp YmUtdHJhbnNsYXRpb24sIGRlc2NyaWJlLW1hcCk6CiogbGlzcC9oZWxwLWZucy5lbCAoaGVscC1m bnMtLWtleS1iaW5kaW5ncywgZGVzY3JpYmUtbW9kZSk6ClVzZSBhYm92ZSBuZXcgZnVuY3Rpb24u CiogbGlzcC9pc2VhcmNoLmVsIChpc2VhcmNoLWhlbHAtZm9yLWhlbHAtaW50ZXJuYWwpOiBVc2UK YHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzJyBzeW50YXguCiogbGlzcC9oZWxwLW1hY3JvLmVsICht YWtlLWhlbHAtc2NyZWVuKTogVXNlCidzdWJzdGl0dXRlLWNvbW1hbmQta2V5cycgYW5kICdoZWxw LS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkJy4KU2ltcGxpZnkuCiogc3JjL2tleW1hcC5jIChk ZXNjcmliZV9rZXlfbWF5YmVfZm9udGlmeSk6IE5ldyBmdW5jdGlvbiB0byBhZGQKdGhlICdoZWxw LWtleS1iaW5kaW5nJyBmYWNlIHRvIGtleWJpbmRpbmdzLgooZGVzY3JpYmVfdmVjdG9yKTogVXNl IGFib3ZlIG5ldyBrZXliaW5kaW5nLgooc3ltc19vZl9rZXltYXApIDxRZm9udF9sb2NrX2ZhY2Us IFFoZWxwX2tleV9iaW5kaW5nPjogTmV3CkRFRlNZTXMuCihmb250aWZ5X2tleV9wcm9wZXJ0aWVz KTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KKiBsaXNwL3Rvb2x0aXAuZWwgKHRvb2x0aXAtc2hvdyk6 IEF2b2lkIG92ZXJyaWRpbmcgZmFjZXMgaW4Kc3BlY2lmaWVkIHRvb2x0aXAgdGV4dC4KLS0tCiBl dGMvTkVXUyAgICAgICAgICAgfCAgIDMgKwogbGlzcC9mYWNlcy5lbCAgICAgIHwgICA1ICsKIGxp c3AvaGVscC1mbnMuZWwgICB8ICAyMSArKystLQogbGlzcC9oZWxwLW1hY3JvLmVsIHwgMjIzICsr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGlzcC9oZWxwLmVs ICAgICAgIHwgMTM5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGxpc3AvaXNlYXJjaC5l bCAgICB8ICAgOCArLQogbGlzcC90b29sdGlwLmVsICAgIHwgICA3ICstCiBzcmMva2V5bWFwLmMg ICAgICAgfCAgMjcgKysrKystCiA4IGZpbGVzIGNoYW5nZWQsIDI0MyBpbnNlcnRpb25zKCspLCAx OTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCAz NTIyZmNlMDNhLi45MjcwNWQyYTdiIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVX UwpAQCAtOTExLDYgKzkxMSw5IEBAIHNraXBwZWQuCiAKICoqIEhlbHAKIAorLS0tCisqKiogS2V5 YmluZGluZ3MgaW4gJ2hlbHAtbW9kZScgdXNlIHRoZSBuZXcgYGhlbHAta2V5LWJpbmRpbmcnIGZh Y2UuCisKIC0tLQogKioqICdnJyAoJ3JldmVydC1idWZmZXInKSBpbiAnaGVscC1tb2RlJyBubyBs b25nZXIgcmVxdWlyZXMgY29uZmlybWF0aW9uLgogCmRpZmYgLS1naXQgYS9saXNwL2ZhY2VzLmVs IGIvbGlzcC9mYWNlcy5lbAppbmRleCA5MGYxMWJiZTNiLi5mZmU4ZWNjZGJlIDEwMDY0NAotLS0g YS9saXNwL2ZhY2VzLmVsCisrKyBiL2xpc3AvZmFjZXMuZWwKQEAgLTI4MTUsNiArMjgxNSwxMSBA QCBoZWxwLWFyZ3VtZW50LW5hbWUKICAgIkZhY2UgdG8gaGlnaGxpZ2h0IGFyZ3VtZW50IG5hbWVz IGluICpIZWxwKiBidWZmZXJzLiIKICAgOmdyb3VwICdoZWxwKQogCisoZGVmZmFjZSBoZWxwLWtl eS1iaW5kaW5nICcoKHQgOmZvcmVncm91bmQgIkZvcmVzdEdyZWVuIikpCisgICJGYWNlIGZvciBr ZXliaW5kaW5ncyBpbiAqSGVscCogYnVmZmVycy4iCisgIDp2ZXJzaW9uICIyOC4xIgorICA6Z3Jv dXAgJ2hlbHApCisKIChkZWZmYWNlIGdseXBobGVzcy1jaGFyCiAgICcoKCgodHlwZSB0dHkpKSA6 aW5oZXJpdCB1bmRlcmxpbmUpCiAgICAgKCgodHlwZSBwYykpIDppbmhlcml0IGVzY2FwZS1nbHlw aCkKZGlmZiAtLWdpdCBhL2xpc3AvaGVscC1mbnMuZWwgYi9saXNwL2hlbHAtZm5zLmVsCmluZGV4 IDAxZDM3NTZiZjAuLmMyN2NkYjVhYTQgMTAwNjQ0Ci0tLSBhL2xpc3AvaGVscC1mbnMuZWwKKysr IGIvbGlzcC9oZWxwLWZucy5lbApAQCAtNDY2LDEzICs0NjYsMTYgQEAgaGVscC1mbnMtLWtleS1i aW5kaW5ncwogICAgICAgICAgICAgICA7OyBJZiBsb3RzIG9mIG9yZGluYXJ5IHRleHQgY2hhcmFj dGVycyBydW4gdGhpcyBjb21tYW5kLAogICAgICAgICAgICAgICA7OyBkb24ndCBtZW50aW9uIHRo ZW0gb25lIGJ5IG9uZS4KICAgICAgICAgICAgICAgKGlmICg8IChsZW5ndGggbm9uLW1vZGlmaWVk LWtleXMpIDEwKQotICAgICAgICAgICAgICAgICAgKHByaW5jIChtYXBjb25jYXQgIydrZXktZGVz Y3JpcHRpb24ga2V5cyAiLCAiKSkKKyAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVm ZmVyIHN0YW5kYXJkLW91dHB1dAorICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYXBjb25j YXQgIydoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXlzICIsICIpKSkKICAgICAgICAgICAgICAgICAoZG9saXN0 IChrZXkgbm9uLW1vZGlmaWVkLWtleXMpCiAgICAgICAgICAgICAgICAgICAoc2V0cSBrZXlzIChk ZWxxIGtleSBrZXlzKSkpCiAgICAgICAgICAgICAgICAgKGlmIGtleXMKLSAgICAgICAgICAgICAg ICAgICAgKHByb2duCi0gICAgICAgICAgICAgICAgICAgICAgKHByaW5jIChtYXBjb25jYXQgIydr ZXktZGVzY3JpcHRpb24ga2V5cyAiLCAiKSkKLSAgICAgICAgICAgICAgICAgICAgICAocHJpbmMg IiwgYW5kIG1hbnkgb3JkaW5hcnkgdGV4dCBjaGFyYWN0ZXJzIikpCisgICAgICAgICAgICAgICAg ICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHN0YW5kYXJkLW91dHB1dAorICAgICAgICAgICAgICAg ICAgICAgIChpbnNlcnQgKG1hcGNvbmNhdCAjJ2hlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZp ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzICIsICIpKQor ICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIiwgYW5kIG1hbnkgb3JkaW5hcnkgdGV4dCBj aGFyYWN0ZXJzIikpCiAgICAgICAgICAgICAgICAgICAocHJpbmMgIm1hbnkgb3JkaW5hcnkgdGV4 dCBjaGFyYWN0ZXJzIikpKSkKICAgICAgICAgICAgICh3aGVuIChvciByZW1hcHBlZCBrZXlzIG5v bi1tb2RpZmllZC1rZXlzKQogICAgICAgICAgICAgICAocHJpbmMgIi4iKQpAQCAtMTgyNCwxMCAr MTgyNywxMiBAQCBkZXNjcmliZS1tb2RlCiAJICAgICAgKHNhdmUtZXhjdXJzaW9uCiAJCShyZS1z ZWFyY2gtYmFja3dhcmQgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzICJgXFwoW15gJ10rXFwpJyIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwgdCkKLQkJKGhlbHAteHJl Zi1idXR0b24gMSAnaGVscC1mdW5jdGlvbi1kZWYgbW9kZSBmaWxlLW5hbWUpKSkpKQotCShwcmlu YyAiOlxuIikKLQkocHJpbmMgKGhlbHAtc3BsaXQtZnVuZG9jIChkb2N1bWVudGF0aW9uIG1ham9y LW1vZGUpIG5pbCAnZG9jKSkKLSAgICAgICAgKHByaW5jIChoZWxwLWZucy0tbGlzdC1sb2NhbC1j b21tYW5kcykpKSkpCisgICAgICAgICAgICAgICAgKGhlbHAteHJlZi1idXR0b24gMSAnaGVscC1m dW5jdGlvbi1kZWYgbW9kZSBmaWxlLW5hbWUpKSkpKQorICAgICAgICAobGV0ICgoZnVuZG9jICho ZWxwLXNwbGl0LWZ1bmRvYyAoZG9jdW1lbnRhdGlvbiBtYWpvci1tb2RlKSBuaWwgJ2RvYykpKQor ICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIHN0YW5kYXJkLW91dHB1dAorICAgICAgICAg ICAgKGluc2VydCAiOlxuIikKKyAgICAgICAgICAgIChpbnNlcnQgZnVuZG9jKQorICAgICAgICAg ICAgKGluc2VydCAoaGVscC1mbnMtLWxpc3QtbG9jYWwtY29tbWFuZHMpKSkpKSkpCiAgIDs7IEZv ciB0aGUgc2FrZSBvZiBJRUxNIGFuZCBtYXliZSBvdGhlcnMKICAgbmlsKQogCmRpZmYgLS1naXQg YS9saXNwL2hlbHAtbWFjcm8uZWwgYi9saXNwL2hlbHAtbWFjcm8uZWwKaW5kZXggNzkxYjEwYTg3 OC4uNzQ2ODljYjViNCAxMDA2NDQKLS0tIGEvbGlzcC9oZWxwLW1hY3JvLmVsCisrKyBiL2xpc3Av aGVscC1tYWNyby5lbApAQCAtOTIsMTE5ICs5MiwxMTYgQEAgbWFrZS1oZWxwLXNjcmVlbgogd2l0 aCB0aGUga2V5IHNlcXVlbmNlIHRoYXQgaW52b2tlZCBGTkFNRS4KIFdoZW4gRk5BTUUgZmluYWxs eSBkb2VzIGdldCBhIGNvbW1hbmQsIGl0IGV4ZWN1dGVzIHRoYXQgY29tbWFuZAogYW5kIHRoZW4g cmV0dXJucy4iCi0gIChsZXQgKChkb2MtZm4gKGludGVybiAoY29uY2F0IChzeW1ib2wtbmFtZSBm bmFtZSkgIi1kb2MiKSkpKQotICAgIGAocHJvZ24KLSAgICAgICAoZGVmdW4gLGRvYy1mbiAoKSAs aGVscC10ZXh0IG5pbCkKLSAgICAgICAoZGVmdW4gLGZuYW1lICgpCi0JICJIZWxwIGNvbW1hbmQu IgotCSAoaW50ZXJhY3RpdmUpCi0JIChsZXQgKChsaW5lLXByb21wdAotCQkoc3Vic3RpdHV0ZS1j b21tYW5kLWtleXMgLGhlbHAtbGluZSkpKQotCSAgICh3aGVuIHRocmVlLXN0ZXAtaGVscAotCSAg ICAgKG1lc3NhZ2UgIiVzIiBsaW5lLXByb21wdCkpCi0JICAgKGxldCogKChoZWxwLXNjcmVlbiAo ZG9jdW1lbnRhdGlvbiAocXVvdGUgLGRvYy1mbikpKQotCQkgIDs7IFdlIGJpbmQgb3ZlcnJpZGlu Zy1sb2NhbC1tYXAgZm9yIHZlcnkgc21hbGwKLQkJICA7OyBzZWN0aW9ucywgKmV4Y2x1ZGluZyog d2hlcmUgd2Ugc3dpdGNoIGJ1ZmZlcnMKLQkJICA7OyBhbmQgd2hlcmUgd2UgZXhlY3V0ZSB0aGUg Y2hvc2VuIGhlbHAgY29tbWFuZC4KLQkJICAobG9jYWwtbWFwIChtYWtlLXNwYXJzZS1rZXltYXAp KQotCQkgIChuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QgbWlub3ItbW9kZS1tYXAtYWxpc3QpCi0J CSAgKHByZXYtZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKLQkJICBjb25maWcgbmV3LWZyYW1lIGtl eSBjaGFyKQotCSAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAiJVRISVMtS0VZJSIgaGVscC1zY3Jl ZW4pCi0JICAgICAgIChzZXRxIGhlbHAtc2NyZWVuCi0JCSAgICAgKHJlcGxhY2UtbWF0Y2ggKGtl eS1kZXNjcmlwdGlvbgotCQkJCSAgICAgKHN1YnN0cmluZyAodGhpcy1jb21tYW5kLWtleXMpIDAg LTEpKQotCQkJCSAgICB0IHQgaGVscC1zY3JlZW4pKSkKLQkgICAgICh1bndpbmQtcHJvdGVjdAot CQkgKGxldCAoKG1pbm9yLW1vZGUtbWFwLWFsaXN0IG5pbCkpCi0JCSAgIChzZXRjZHIgbG9jYWwt bWFwICxoZWxwZWQtbWFwKQotCQkgICAoZGVmaW5lLWtleSBsb2NhbC1tYXAgW3RdICd1bmRlZmlu ZWQpCi0JCSAgIDs7IE1ha2UgdGhlIHNjcm9sbCBiYXIga2VlcCB3b3JraW5nIG5vcm1hbGx5Lgot CQkgICAoZGVmaW5lLWtleSBsb2NhbC1tYXAgW3ZlcnRpY2FsLXNjcm9sbC1iYXJdCi0JCSAgICAg KGxvb2t1cC1rZXkgZ2xvYmFsLW1hcCBbdmVydGljYWwtc2Nyb2xsLWJhcl0pKQotCQkgICAoaWYg dGhyZWUtc3RlcC1oZWxwCi0JCSAgICAgICAocHJvZ24KLQkJCSAoc2V0cSBrZXkgKGxldCAoKG92 ZXJyaWRpbmctbG9jYWwtbWFwIGxvY2FsLW1hcCkpCi0JCQkJICAgICAocmVhZC1rZXktc2VxdWVu Y2UgbmlsKSkpCi0JCQkgOzsgTWFrZSB0aGUgSEVMUCBrZXkgdHJhbnNsYXRlIHRvIEMtaC4KLQkJ CSAoaWYgKGxvb2t1cC1rZXkgZnVuY3Rpb24ta2V5LW1hcCBrZXkpCi0JCQkgICAgIChzZXRxIGtl eSAobG9va3VwLWtleSBmdW5jdGlvbi1rZXktbWFwIGtleSkpKQotCQkJIChzZXRxIGNoYXIgKGFy ZWYga2V5IDApKSkKLQkJICAgICAoc2V0cSBjaGFyID8/KSkKLQkJICAgKHdoZW4gKG9yIChlcSBj aGFyID8/KSAoZXEgY2hhciBoZWxwLWNoYXIpCi0JCQkgICAgIChtZW1xIGNoYXIgaGVscC1ldmVu dC1saXN0KSkKLQkJICAgICAoc2V0cSBjb25maWcgKGN1cnJlbnQtd2luZG93LWNvbmZpZ3VyYXRp b24pKQotCQkgICAgIChwb3AtdG8tYnVmZmVyICIgKk1ldGFoZWxwKiIgbmlsIHQpCi0JCSAgICAg KGFuZCAoZmJvdW5kcCAnbWFrZS1mcmFtZSkKLQkJCSAgKG5vdCAoZXEgKHdpbmRvdy1mcmFtZSkK LQkJCQkgICBwcmV2LWZyYW1lKSkKLQkJCSAgKHNldHEgbmV3LWZyYW1lICh3aW5kb3ctZnJhbWUp Ci0JCQkJY29uZmlnIG5pbCkpCi0JCSAgICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCi0J CSAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQotCQkgICAgICAgKGVyYXNlLWJ1ZmZl cikKLQkJICAgICAgIChpbnNlcnQgaGVscC1zY3JlZW4pKQotCQkgICAgIChsZXQgKChtaW5vci1t b2RlLW1hcC1hbGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QpKQotCQkgICAgICAgKGhlbHAt bW9kZSkKLQkJICAgICAgIChzZXRxIG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCBtaW5vci1tb2Rl LW1hcC1hbGlzdCkpCi0JCSAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKLQkJICAgICAod2hp bGUgKG9yIChtZW1xIGNoYXIgKGFwcGVuZCBoZWxwLWV2ZW50LWxpc3QKLQkJCQkJCSAgIChjb25z IGhlbHAtY2hhciAnKD8/ID9cQy12ID9ccyA/XDE3NyBkZWxldGUgYmFja3NwYWNlIHZlcnRpY2Fs LXNjcm9sbC1iYXIgP1xNLXYpKSkpCi0JCQkJKGVxIChjYXItc2FmZSBjaGFyKSAnc3dpdGNoLWZy YW1lKQotCQkJCShlcXVhbCBrZXkgIlxNLXYiKSkKLQkJICAgICAgIChjb25kaXRpb24tY2FzZSBu aWwKLQkJCSAgIChjb25kCi0JCQkgICAgKChlcSAoY2FyLXNhZmUgY2hhcikgJ3N3aXRjaC1mcmFt ZSkKLQkJCSAgICAgKGhhbmRsZS1zd2l0Y2gtZnJhbWUgY2hhcikpCi0JCQkgICAgKChtZW1xIGNo YXIgJyg/XEMtdiA/XHMpKQotCQkJICAgICAoc2Nyb2xsLXVwKSkKLQkJCSAgICAoKG9yIChtZW1x IGNoYXIgJyg/XDE3NyA/XE0tdiBkZWxldGUgYmFja3NwYWNlKSkKLQkJCQkgKGVxdWFsIGtleSAi XE0tdiIpKQotCQkJICAgICAoc2Nyb2xsLWRvd24pKSkKLQkJCSAoZXJyb3IgbmlsKSkKLQkJICAg ICAgIChsZXQgKChjdXJzb3ItaW4tZWNoby1hcmVhIHQpCi0JCQkgICAgIChvdmVycmlkaW5nLWxv Y2FsLW1hcCBsb2NhbC1tYXApKQotCQkJIChzZXRxIGtleSAocmVhZC1rZXktc2VxdWVuY2UKLQkJ CQkgICAgKGZvcm1hdCAiVHlwZSBvbmUgb2YgdGhlIG9wdGlvbnMgbGlzdGVkJXM6ICIKLQkJCQkJ ICAgIChpZiAocG9zLXZpc2libGUtaW4td2luZG93LXAKLQkJCQkJCSAocG9pbnQtbWF4KSkKLQkJ CQkJCSIiICIsIG9yIFNQQUNFIG9yIERFTCB0byBzY3JvbGwiKSkpCi0JCQkgICAgICAgY2hhciAo YXJlZiBrZXkgMCkpKQotCi0JCSAgICAgICA7OyBJZiB0aGlzIGlzIGEgc2Nyb2xsIGJhciBjb21t YW5kLCBqdXN0IHJ1biBpdC4KLQkJICAgICAgICh3aGVuIChlcSBjaGFyICd2ZXJ0aWNhbC1zY3Jv bGwtYmFyKQotCQkJIChjb21tYW5kLWV4ZWN1dGUgKGxvb2t1cC1rZXkgbG9jYWwtbWFwIGtleSkg bmlsIGtleSkpKSkKLQkJICAgOzsgV2UgZG9uJ3QgbmVlZCB0aGUgcHJvbXB0IGFueSBtb3JlLgot CQkgICAobWVzc2FnZSAiIikKLQkJICAgOzsgTW91c2UgY2xpY2tzIGFyZSBub3QgcGFydCBvZiB0 aGUgaGVscCBmZWF0dXJlLAotCQkgICA7OyBzbyByZWV4ZWN1dGUgdGhlbSBpbiB0aGUgc3RhbmRh cmQgZW52aXJvbm1lbnQuCi0JCSAgIChpZiAobGlzdHAgY2hhcikKLQkJICAgICAgIChzZXRxIHVu cmVhZC1jb21tYW5kLWV2ZW50cwotCQkJICAgICAoY29ucyBjaGFyIHVucmVhZC1jb21tYW5kLWV2 ZW50cykKLQkJCSAgICAgY29uZmlnIG5pbCkKLQkJICAgICAobGV0ICgoZGVmbiAobG9va3VwLWtl eSBsb2NhbC1tYXAga2V5KSkpCi0JCSAgICAgICAoaWYgZGVmbgotCQkJICAgKHByb2duCi0JCQkg ICAgICh3aGVuIGNvbmZpZwotCQkJICAgICAgIChzZXQtd2luZG93LWNvbmZpZ3VyYXRpb24gY29u ZmlnKQotCQkJICAgICAgIChzZXRxIGNvbmZpZyBuaWwpKQotCQkJICAgICA7OyBUZW1wb3Jhcmls eSByZWJpbmQgYG1pbm9yLW1vZGUtbWFwLWFsaXN0JwotCQkJICAgICA7OyB0byBgbmV3LW1pbm9y LW1vZGUtbWFwLWFsaXN0JyAoQnVnIzEwNDU0KS4KLQkJCSAgICAgKGxldCAoKG1pbm9yLW1vZGUt bWFwLWFsaXN0IG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCkpCi0JCQkgICAgICAgOzsgYGRlZm4n IG11c3QgbWFrZSBzdXJlIHRoYXQgaXRzIGZyYW1lIGlzCi0JCQkgICAgICAgOzsgc2VsZWN0ZWQs IHNvIHdlIHdvbid0IGljb25pZnkgaXQgYmVsb3cuCi0JCQkgICAgICAgKGNhbGwtaW50ZXJhY3Rp dmVseSBkZWZuKSkKLQkJCSAgICAgKHdoZW4gbmV3LWZyYW1lCi0JCQkgICAgICAgOzsgRG8gbm90 IGljb25pZnkgdGhlIHNlbGVjdGVkIGZyYW1lLgotCQkJICAgICAgICh1bmxlc3MgKGVxIG5ldy1m cmFtZSAoc2VsZWN0ZWQtZnJhbWUpKQotCQkJCSAoaWNvbmlmeS1mcmFtZSBuZXctZnJhbWUpKQot CQkJICAgICAgIChzZXRxIG5ldy1mcmFtZSBuaWwpKSkKLQkJCSAoZGluZykpKSkpCi0JICAgICAg ICh3aGVuIGNvbmZpZwotCQkgKHNldC13aW5kb3ctY29uZmlndXJhdGlvbiBjb25maWcpKQotCSAg ICAgICAod2hlbiBuZXctZnJhbWUKLQkJIChpY29uaWZ5LWZyYW1lIG5ldy1mcmFtZSkpCi0JICAg ICAgIChzZXRxIG1pbm9yLW1vZGUtbWFwLWFsaXN0IG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCkp KSkpKSkpCisgIGAoZGVmdW4gLGZuYW1lICgpCisgICAgICJIZWxwIGNvbW1hbmQuIgorICAgICAo aW50ZXJhY3RpdmUpCisgICAgIChsZXQgKChsaW5lLXByb21wdAorICAgICAgICAgICAgKHN1YnN0 aXR1dGUtY29tbWFuZC1rZXlzICxoZWxwLWxpbmUpKSkKKyAgICAgICAod2hlbiB0aHJlZS1zdGVw LWhlbHAKKyAgICAgICAgIChtZXNzYWdlICIlcyIgbGluZS1wcm9tcHQpKQorICAgICAgIChsZXQq ICgoaGVscC1zY3JlZW4gLGhlbHAtdGV4dCkKKyAgICAgICAgICAgICAgOzsgV2UgYmluZCBvdmVy cmlkaW5nLWxvY2FsLW1hcCBmb3IgdmVyeSBzbWFsbAorICAgICAgICAgICAgICA7OyBzZWN0aW9u cywgKmV4Y2x1ZGluZyogd2hlcmUgd2Ugc3dpdGNoIGJ1ZmZlcnMKKyAgICAgICAgICAgICAgOzsg YW5kIHdoZXJlIHdlIGV4ZWN1dGUgdGhlIGNob3NlbiBoZWxwIGNvbW1hbmQuCisgICAgICAgICAg ICAgIChsb2NhbC1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpCisgICAgICAgICAgICAgIChuZXct bWlub3ItbW9kZS1tYXAtYWxpc3QgbWlub3ItbW9kZS1tYXAtYWxpc3QpCisgICAgICAgICAgICAg IChwcmV2LWZyYW1lIChzZWxlY3RlZC1mcmFtZSkpCisgICAgICAgICAgICAgIGNvbmZpZyBuZXct ZnJhbWUga2V5IGNoYXIpCisgICAgICAgICAod2hlbiAoc3RyaW5nLW1hdGNoICIlVEhJUy1LRVkl IiBoZWxwLXNjcmVlbikKKyAgICAgICAgICAgKHNldHEgaGVscC1zY3JlZW4KKyAgICAgICAgICAg ICAgICAgKHJlcGxhY2UtbWF0Y2ggKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgKHRoaXMtY29tbWFuZC1r ZXlzKSAwIC0xKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCB0IGhlbHAtc2Ny ZWVuKSkpCisgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAobGV0ICgobWlu b3ItbW9kZS1tYXAtYWxpc3QgbmlsKSkKKyAgICAgICAgICAgICAgIChzZXRjZHIgbG9jYWwtbWFw ICxoZWxwZWQtbWFwKQorICAgICAgICAgICAgICAgKGRlZmluZS1rZXkgbG9jYWwtbWFwIFt0XSAn dW5kZWZpbmVkKQorICAgICAgICAgICAgICAgOzsgTWFrZSB0aGUgc2Nyb2xsIGJhciBrZWVwIHdv cmtpbmcgbm9ybWFsbHkuCisgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBsb2NhbC1tYXAgW3Zl cnRpY2FsLXNjcm9sbC1iYXJdCisgICAgICAgICAgICAgICAgIChsb29rdXAta2V5IGdsb2JhbC1t YXAgW3ZlcnRpY2FsLXNjcm9sbC1iYXJdKSkKKyAgICAgICAgICAgICAgIChpZiB0aHJlZS1zdGVw LWhlbHAKKyAgICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAgIChz ZXRxIGtleSAobGV0ICgob3ZlcnJpZGluZy1sb2NhbC1tYXAgbG9jYWwtbWFwKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChyZWFkLWtleS1zZXF1ZW5jZSBuaWwpKSkKKyAgICAg ICAgICAgICAgICAgICAgIDs7IE1ha2UgdGhlIEhFTFAga2V5IHRyYW5zbGF0ZSB0byBDLWguCisg ICAgICAgICAgICAgICAgICAgICAoaWYgKGxvb2t1cC1rZXkgZnVuY3Rpb24ta2V5LW1hcCBrZXkp CisgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEga2V5IChsb29rdXAta2V5IGZ1bmN0aW9u LWtleS1tYXAga2V5KSkpCisgICAgICAgICAgICAgICAgICAgICAoc2V0cSBjaGFyIChhcmVmIGtl eSAwKSkpCisgICAgICAgICAgICAgICAgIChzZXRxIGNoYXIgPz8pKQorICAgICAgICAgICAgICAg KHdoZW4gKG9yIChlcSBjaGFyID8/KSAoZXEgY2hhciBoZWxwLWNoYXIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgKG1lbXEgY2hhciBoZWxwLWV2ZW50LWxpc3QpKQorICAgICAgICAgICAgICAg ICAoc2V0cSBjb25maWcgKGN1cnJlbnQtd2luZG93LWNvbmZpZ3VyYXRpb24pKQorICAgICAgICAg ICAgICAgICAocG9wLXRvLWJ1ZmZlciAiICpNZXRhaGVscCoiIG5pbCB0KQorICAgICAgICAgICAg ICAgICAoYW5kIChmYm91bmRwICdtYWtlLWZyYW1lKQorICAgICAgICAgICAgICAgICAgICAgIChu b3QgKGVxICh3aW5kb3ctZnJhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl di1mcmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbmV3LWZyYW1lICh3aW5kb3ct ZnJhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnIG5pbCkpCisgICAgICAg ICAgICAgICAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQorICAgICAgICAgICAgICAgICAo bGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCisgICAgICAgICAgICAgICAgICAgKGVyYXNlLWJ1 ZmZlcikKKyAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChzdWJzdGl0dXRlLWNvbW1hbmQta2V5 cyBoZWxwLXNjcmVlbikpKQorICAgICAgICAgICAgICAgICAobGV0ICgobWlub3ItbW9kZS1tYXAt YWxpc3QgbmV3LW1pbm9yLW1vZGUtbWFwLWFsaXN0KSkKKyAgICAgICAgICAgICAgICAgICAoaGVs cC1tb2RlKQorICAgICAgICAgICAgICAgICAgIChzZXRxIG5ldy1taW5vci1tb2RlLW1hcC1hbGlz dCBtaW5vci1tb2RlLW1hcC1hbGlzdCkpCisgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBv aW50LW1pbikpCisgICAgICAgICAgICAgICAgICh3aGlsZSAob3IgKG1lbXEgY2hhciAoYXBwZW5k IGhlbHAtZXZlbnQtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY29ucyBoZWxwLWNoYXIgJyg/PyA/XEMtdiA/XHMgP1wxNzcgZGVsZXRlIGJhY2tz cGFjZSB2ZXJ0aWNhbC1zY3JvbGwtYmFyID9cTS12KSkpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChlcSAoY2FyLXNhZmUgY2hhcikgJ3N3aXRjaC1mcmFtZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZXF1YWwga2V5ICJcTS12IikpCisgICAgICAgICAgICAgICAgICAgKGNv bmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAg ICAgICAgICAgICAgICAgKChlcSAoY2FyLXNhZmUgY2hhcikgJ3N3aXRjaC1mcmFtZSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoaGFuZGxlLXN3aXRjaC1mcmFtZSBjaGFyKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICgobWVtcSBjaGFyICcoP1xDLXYgP1xzKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAoc2Nyb2xsLXVwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgob3IgKG1l bXEgY2hhciAnKD9cMTc3ID9cTS12IGRlbGV0ZSBiYWNrc3BhY2UpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZXF1YWwga2V5ICJcTS12IikpCisgICAgICAgICAgICAgICAgICAgICAg ICAgKHNjcm9sbC1kb3duKSkpCisgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgbmlsKSkKKyAg ICAgICAgICAgICAgICAgICAobGV0ICgoY3Vyc29yLWluLWVjaG8tYXJlYSB0KQorICAgICAgICAg ICAgICAgICAgICAgICAgIChvdmVycmlkaW5nLWxvY2FsLW1hcCBsb2NhbC1tYXApKQorICAgICAg ICAgICAgICAgICAgICAgKHNldHEga2V5IChyZWFkLWtleS1zZXF1ZW5jZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJUeXBlIG9uZSBvZiB0aGUgb3B0aW9ucyBsaXN0 ZWQlczogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAocG9z LXZpc2libGUtaW4td2luZG93LXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiIiAiLCBvciBTUEFDRSBvciBERUwgdG8gc2Nyb2xsIikpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hhciAoYXJlZiBrZXkgMCkpKQorCisgICAgICAgICAgICAgICAg ICAgOzsgSWYgdGhpcyBpcyBhIHNjcm9sbCBiYXIgY29tbWFuZCwganVzdCBydW4gaXQuCisgICAg ICAgICAgICAgICAgICAgKHdoZW4gKGVxIGNoYXIgJ3ZlcnRpY2FsLXNjcm9sbC1iYXIpCisgICAg ICAgICAgICAgICAgICAgICAoY29tbWFuZC1leGVjdXRlIChsb29rdXAta2V5IGxvY2FsLW1hcCBr ZXkpIG5pbCBrZXkpKSkpCisgICAgICAgICAgICAgICA7OyBXZSBkb24ndCBuZWVkIHRoZSBwcm9t cHQgYW55IG1vcmUuCisgICAgICAgICAgICAgICAobWVzc2FnZSAiIikKKyAgICAgICAgICAgICAg IDs7IE1vdXNlIGNsaWNrcyBhcmUgbm90IHBhcnQgb2YgdGhlIGhlbHAgZmVhdHVyZSwKKyAgICAg ICAgICAgICAgIDs7IHNvIHJlZXhlY3V0ZSB0aGVtIGluIHRoZSBzdGFuZGFyZCBlbnZpcm9ubWVu dC4KKyAgICAgICAgICAgICAgIChpZiAobGlzdHAgY2hhcikKKyAgICAgICAgICAgICAgICAgICAo c2V0cSB1bnJlYWQtY29tbWFuZC1ldmVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29u cyBjaGFyIHVucmVhZC1jb21tYW5kLWV2ZW50cykKKyAgICAgICAgICAgICAgICAgICAgICAgICBj b25maWcgbmlsKQorICAgICAgICAgICAgICAgICAobGV0ICgoZGVmbiAobG9va3VwLWtleSBsb2Nh bC1tYXAga2V5KSkpCisgICAgICAgICAgICAgICAgICAgKGlmIGRlZm4KKyAgICAgICAgICAgICAg ICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gY29uZmlnCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1jb25maWd1cmF0aW9uIGNvbmZp ZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGNvbmZpZyBuaWwpKQorICAgICAg ICAgICAgICAgICAgICAgICAgIDs7IFRlbXBvcmFyaWx5IHJlYmluZCBgbWlub3ItbW9kZS1tYXAt YWxpc3QnCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdG8gYG5ldy1taW5vci1tb2RlLW1h cC1hbGlzdCcgKEJ1ZyMxMDQ1NCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG1p bm9yLW1vZGUtbWFwLWFsaXN0IG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICA7OyBgZGVmbicgbXVzdCBtYWtlIHN1cmUgdGhhdCBpdHMgZnJhbWUg aXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHNlbGVjdGVkLCBzbyB3ZSB3b24ndCBp Y29uaWZ5IGl0IGJlbG93LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtaW50ZXJh Y3RpdmVseSBkZWZuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBuZXctZnJhbWUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IERvIG5vdCBpY29uaWZ5IHRoZSBzZWxlY3Rl ZCBmcmFtZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bmxlc3MgKGVxIG5ldy1mcmFt ZSAoc2VsZWN0ZWQtZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWNvbmlm eS1mcmFtZSBuZXctZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbmV3 LWZyYW1lIG5pbCkpKQorICAgICAgICAgICAgICAgICAgICAgKGRpbmcpKSkpKQorICAgICAgICAg ICAod2hlbiBjb25maWcKKyAgICAgICAgICAgICAoc2V0LXdpbmRvdy1jb25maWd1cmF0aW9uIGNv bmZpZykpCisgICAgICAgICAgICh3aGVuIG5ldy1mcmFtZQorICAgICAgICAgICAgIChpY29uaWZ5 LWZyYW1lIG5ldy1mcmFtZSkpCisgICAgICAgICAgIChzZXRxIG1pbm9yLW1vZGUtbWFwLWFsaXN0 IG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCkpKSkpKQogCiAocHJvdmlkZSAnaGVscC1tYWNybykK IApkaWZmIC0tZ2l0IGEvbGlzcC9oZWxwLmVsIGIvbGlzcC9oZWxwLmVsCmluZGV4IDA4NGU5NDE1 NDkuLjUwYWJiMjhjYjEgMTAwNjQ0Ci0tLSBhL2xpc3AvaGVscC5lbAorKysgYi9saXNwL2hlbHAu ZWwKQEAgLTEwNCw4ICsxMDQsOCBAQCBoZWxwLW1hcAogICAgIChkZWZpbmUta2V5IG1hcCAiUiIg J2luZm8tZGlzcGxheS1tYW51YWwpCiAgICAgKGRlZmluZS1rZXkgbWFwICJzIiAnZGVzY3JpYmUt c3ludGF4KQogICAgIChkZWZpbmUta2V5IG1hcCAidCIgJ2hlbHAtd2l0aC10dXRvcmlhbCkKLSAg ICAoZGVmaW5lLWtleSBtYXAgInciICd3aGVyZS1pcykKICAgICAoZGVmaW5lLWtleSBtYXAgInYi ICdkZXNjcmliZS12YXJpYWJsZSkKKyAgICAoZGVmaW5lLWtleSBtYXAgInciICd3aGVyZS1pcykK ICAgICAoZGVmaW5lLWtleSBtYXAgInEiICdoZWxwLXF1aXQpCiAgICAgbWFwKQogICAiS2V5bWFw IGZvciBjaGFyYWN0ZXJzIGZvbGxvd2luZyB0aGUgSGVscCBrZXkuIikKQEAgLTE4NywxMSArMTg3 LDggQEAgaGVscC1wcmludC1yZXR1cm4tbWVzc2FnZQogOzsgU28ga2V5Ym9hcmQgbWFjcm8gZGVm aW5pdGlvbnMgYXJlIGRvY3VtZW50ZWQgY29ycmVjdGx5CiAoZnNldCAnZGVmaW5pbmcta2JkLW1h Y3JvIChzeW1ib2wtZnVuY3Rpb24gJ3N0YXJ0LWtiZC1tYWNybykpCiAKLShkZWZhbGlhcyAnaGVs cCAnaGVscC1mb3ItaGVscC1pbnRlcm5hbCkKLTs7IGZpbmQtZnVuY3Rpb24gY2FuIGZpbmQgdGhp cy4KLShkZWZhbGlhcyAnaGVscC1mb3ItaGVscCAnaGVscC1mb3ItaGVscC1pbnRlcm5hbCkKLTs7 IEl0IGNhbid0IGZpbmQgdGhpcywgYnV0IG5vYm9keSB3aWxsIGxvb2suCi0obWFrZS1oZWxwLXNj cmVlbiBoZWxwLWZvci1oZWxwLWludGVybmFsCisoZGVmYWxpYXMgJ2hlbHAgJ2hlbHAtZm9yLWhl bHApCisobWFrZS1oZWxwLXNjcmVlbiBoZWxwLWZvci1oZWxwCiAgIChwdXJlY29weSAiVHlwZSBh IGhlbHAgb3B0aW9uOiBbYWJjQ2RlZkZnaUlrS2xMbW5wcnN0dncuXSBDLVtjZGVmbW5vcHR3XSBv ciA/IikKICAgOzsgRG9uJ3QgcHVyZWNvcHkgdGhpcyBvbmUsIGJlY2F1c2UgaXQncyBub3QgZXZh bHVhdGVkIChpdCdzCiAgIDs7IGRpcmVjdGx5IHVzZWQgYXMgYSBkb2NzdHJpbmcgaW4gYSBmdW5j dGlvbiBkZWZpbml0aW9uLCBzbyBpdCdsbApAQCAtMTk5LDUyICsxOTYsNTIgQEAgJ2hlbHAtZm9y LWhlbHAKICAgIllvdSBoYXZlIHR5cGVkICVUSElTLUtFWSUsIHRoZSBoZWxwIGNoYXJhY3Rlci4g IFR5cGUgYSBIZWxwIG9wdGlvbjoKIFwoVXNlIFNQQyBvciBERUwgdG8gc2Nyb2xsIHRocm91Z2gg dGhpcyB0ZXh0LiAgVHlwZSBcXDxoZWxwLW1hcD5cXFtoZWxwLXF1aXRdIHRvIGV4aXQgdGhlIEhl bHAgY29tbWFuZC4pCiAKLWEgUEFUVEVSTiAgIFNob3cgY29tbWFuZHMgd2hvc2UgbmFtZSBtYXRj aGVzIHRoZSBQQVRURVJOIChhIGxpc3Qgb2Ygd29yZHMKK1xcW2Fwcm9wb3MtY29tbWFuZF0gUEFU VEVSTiAgIFNob3cgY29tbWFuZHMgd2hvc2UgbmFtZSBtYXRjaGVzIHRoZSBQQVRURVJOIChhIGxp c3Qgb2Ygd29yZHMKICAgICAgICAgICAgICAgb3IgYSByZWdleHApLiAgU2VlIGFsc28gdGhlIGBh cHJvcG9zJyBjb21tYW5kLgotYiAgICAgICAgICAgRGlzcGxheSBhbGwga2V5IGJpbmRpbmdzLgot YyBLRVlTICAgICAgRGlzcGxheSB0aGUgY29tbWFuZCBuYW1lIHJ1biBieSB0aGUgZ2l2ZW4ga2V5 IHNlcXVlbmNlLgotQyBDT0RJTkcgICAgRGVzY3JpYmUgdGhlIGdpdmVuIGNvZGluZyBzeXN0ZW0s IG9yIFJFVCBmb3IgY3VycmVudCBvbmVzLgotZCBQQVRURVJOICAgU2hvdyBhIGxpc3Qgb2YgZnVu Y3Rpb25zLCB2YXJpYWJsZXMsIGFuZCBvdGhlciBpdGVtcyB3aG9zZQorXFxbZGVzY3JpYmUtYmlu ZGluZ3NdICAgICAgICAgICBEaXNwbGF5IGFsbCBrZXkgYmluZGluZ3MuCitcXFtkZXNjcmliZS1r ZXktYnJpZWZseV0gS0VZUyAgICAgIERpc3BsYXkgdGhlIGNvbW1hbmQgbmFtZSBydW4gYnkgdGhl IGdpdmVuIGtleSBzZXF1ZW5jZS4KK1xcW2Rlc2NyaWJlLWNvZGluZy1zeXN0ZW1dIENPRElORyAg ICBEZXNjcmliZSB0aGUgZ2l2ZW4gY29kaW5nIHN5c3RlbSwgb3IgUkVUIGZvciBjdXJyZW50IG9u ZXMuCitcXFthcHJvcG9zLWRvY3VtZW50YXRpb25dIFBBVFRFUk4gICBTaG93IGEgbGlzdCBvZiBm dW5jdGlvbnMsIHZhcmlhYmxlcywgYW5kIG90aGVyIGl0ZW1zIHdob3NlCiAgICAgICAgICAgICAg IGRvY3VtZW50YXRpb24gbWF0Y2hlcyB0aGUgUEFUVEVSTiAoYSBsaXN0IG9mIHdvcmRzIG9yIGEg cmVnZXhwKS4KLWUgICAgICAgICAgIEdvIHRvIHRoZSAqTWVzc2FnZXMqIGJ1ZmZlciB3aGljaCBs b2dzIGVjaG8tYXJlYSBtZXNzYWdlcy4KLWYgRlVOQ1RJT04gIERpc3BsYXkgZG9jdW1lbnRhdGlv biBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uLgotRiBDT01NQU5EICAgU2hvdyB0aGUgRW1hY3MgbWFu dWFsJ3Mgc2VjdGlvbiB0aGF0IGRlc2NyaWJlcyB0aGUgY29tbWFuZC4KLWcgICAgICAgICAgIERp c3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEdOVSBwcm9qZWN0LgotaCAgICAgICAgICAgRGlz cGxheSB0aGUgSEVMTE8gZmlsZSB3aGljaCBpbGx1c3RyYXRlcyB2YXJpb3VzIHNjcmlwdHMuCi1p ICAgICAgICAgICBTdGFydCB0aGUgSW5mbyBkb2N1bWVudGF0aW9uIHJlYWRlcjogcmVhZCBpbmNs dWRlZCBtYW51YWxzLgotSSBNRVRIT0QgICAgRGVzY3JpYmUgYSBzcGVjaWZpYyBpbnB1dCBtZXRo b2QsIG9yIFJFVCBmb3IgY3VycmVudC4KLWsgS0VZUyAgICAgIERpc3BsYXkgdGhlIGZ1bGwgZG9j dW1lbnRhdGlvbiBmb3IgdGhlIGtleSBzZXF1ZW5jZS4KLUsgS0VZUyAgICAgIFNob3cgdGhlIEVt YWNzIG1hbnVhbCdzIHNlY3Rpb24gZm9yIHRoZSBjb21tYW5kIGJvdW5kIHRvIEtFWVMuCi1sICAg ICAgICAgICBTaG93IGxhc3QgMzAwIGlucHV0IGtleXN0cm9rZXMgKGxvc3NhZ2UpLgotTCBMQU5H LUVOViAgRGVzY3JpYmVzIGEgc3BlY2lmaWMgbGFuZ3VhZ2UgZW52aXJvbm1lbnQsIG9yIFJFVCBm b3IgY3VycmVudC4KLW0gICAgICAgICAgIERpc3BsYXkgZG9jdW1lbnRhdGlvbiBvZiBjdXJyZW50 IG1pbm9yIG1vZGVzIGFuZCBjdXJyZW50IG1ham9yIG1vZGUsCi0gICAgICAgICAgICAgIGluY2x1 ZGluZyB0aGVpciBzcGVjaWFsIGNvbW1hbmRzLgotbiAgICAgICAgICAgRGlzcGxheSBuZXdzIG9m IHJlY2VudCBFbWFjcyBjaGFuZ2VzLgotbyBTWU1CT0wgICAgRGlzcGxheSB0aGUgZ2l2ZW4gZnVu Y3Rpb24gb3IgdmFyaWFibGUncyBkb2N1bWVudGF0aW9uIGFuZCB2YWx1ZS4KLXAgVE9QSUMgICAg IEZpbmQgcGFja2FnZXMgbWF0Y2hpbmcgYSBnaXZlbiB0b3BpYyBrZXl3b3JkLgotUCBQQUNLQUdF ICAgRGVzY3JpYmUgdGhlIGdpdmVuIEVtYWNzIExpc3AgcGFja2FnZS4KLXIgICAgICAgICAgIERp c3BsYXkgdGhlIEVtYWNzIG1hbnVhbCBpbiBJbmZvIG1vZGUuCi1SICAgICAgICAgICBQcm9tcHQg Zm9yIGEgbWFudWFsIGFuZCB0aGVuIGRpc3BsYXkgaXQgaW4gSW5mbyBtb2RlLgotcyAgICAgICAg ICAgRGlzcGxheSBjb250ZW50cyBvZiBjdXJyZW50IHN5bnRheCB0YWJsZSwgcGx1cyBleHBsYW5h dGlvbnMuCi1TIFNZTUJPTCAgICBTaG93IHRoZSBzZWN0aW9uIGZvciB0aGUgZ2l2ZW4gc3ltYm9s IGluIHRoZSBJbmZvIG1hbnVhbAorXFxbdmlldy1lY2hvLWFyZWEtbWVzc2FnZXNdICAgICAgICAg ICBHbyB0byB0aGUgKk1lc3NhZ2VzKiBidWZmZXIgd2hpY2ggbG9ncyBlY2hvLWFyZWEgbWVzc2Fn ZXMuCitcXFtkZXNjcmliZS1mdW5jdGlvbl0gRlVOQ1RJT04gIERpc3BsYXkgZG9jdW1lbnRhdGlv biBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uLgorXFxbSW5mby1nb3RvLWVtYWNzLWNvbW1hbmQtbm9k ZV0gQ09NTUFORCAgIFNob3cgdGhlIEVtYWNzIG1hbnVhbCdzIHNlY3Rpb24gdGhhdCBkZXNjcmli ZXMgdGhlIGNvbW1hbmQuCitcXFtkZXNjcmliZS1nbnUtcHJvamVjdF0gICAgICAgICAgIERpc3Bs YXkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEdOVSBwcm9qZWN0LgorXFxbdmlldy1oZWxsby1maWxl XSAgICAgICAgICAgRGlzcGxheSB0aGUgSEVMTE8gZmlsZSB3aGljaCBpbGx1c3RyYXRlcyB2YXJp b3VzIHNjcmlwdHMuCitcXFtpbmZvXSAgICAgICAgICAgU3RhcnQgdGhlIEluZm8gZG9jdW1lbnRh dGlvbiByZWFkZXI6IHJlYWQgaW5jbHVkZWQgbWFudWFscy4KK1xcW2Rlc2NyaWJlLWlucHV0LW1l dGhvZF0gTUVUSE9EICAgIERlc2NyaWJlIGEgc3BlY2lmaWMgaW5wdXQgbWV0aG9kLCBvciBSRVQg Zm9yIGN1cnJlbnQuCitcXFtkZXNjcmliZS1rZXldIEtFWVMgICAgICBEaXNwbGF5IHRoZSBmdWxs IGRvY3VtZW50YXRpb24gZm9yIHRoZSBrZXkgc2VxdWVuY2UuCitcXFtJbmZvLWdvdG8tZW1hY3Mt a2V5LWNvbW1hbmQtbm9kZV0gS0VZUyAgICAgIFNob3cgdGhlIEVtYWNzIG1hbnVhbCdzIHNlY3Rp b24gZm9yIHRoZSBjb21tYW5kIGJvdW5kIHRvIEtFWVMuCitcXFt2aWV3LWxvc3NhZ2VdICAgICAg ICAgICBTaG93IGxhc3QgMzAwIGlucHV0IGtleXN0cm9rZXMgKGxvc3NhZ2UpLgorXFxbZGVzY3Jp YmUtbGFuZ3VhZ2UtZW52aXJvbm1lbnRdIExBTkctRU5WICBEZXNjcmliZXMgYSBzcGVjaWZpYyBs YW5ndWFnZSBlbnZpcm9ubWVudCwgb3IgUkVUIGZvciBjdXJyZW50LgorXFxbZGVzY3JpYmUtbW9k ZV0gICAgICAgICAgIERpc3BsYXkgZG9jdW1lbnRhdGlvbiBvZiBjdXJyZW50IG1pbm9yIG1vZGVz IGFuZCBjdXJyZW50IG1ham9yIG1vZGUsCisgICAgICAgICAgICAgaW5jbHVkaW5nIHRoZWlyIHNw ZWNpYWwgY29tbWFuZHMuCitcXFt2aWV3LWVtYWNzLW5ld3NdICAgICAgICAgICBEaXNwbGF5IG5l d3Mgb2YgcmVjZW50IEVtYWNzIGNoYW5nZXMuCitcXFtkZXNjcmliZS1zeW1ib2xdIFNZTUJPTCAg ICBEaXNwbGF5IHRoZSBnaXZlbiBmdW5jdGlvbiBvciB2YXJpYWJsZSdzIGRvY3VtZW50YXRpb24g YW5kIHZhbHVlLgorXFxbZmluZGVyLWJ5LWtleXdvcmRdIFRPUElDICAgICBGaW5kIHBhY2thZ2Vz IG1hdGNoaW5nIGEgZ2l2ZW4gdG9waWMga2V5d29yZC4KK1xcW2Rlc2NyaWJlLXBhY2thZ2VdIFBB Q0tBR0UgICBEZXNjcmliZSB0aGUgZ2l2ZW4gRW1hY3MgTGlzcCBwYWNrYWdlLgorXFxbaW5mby1l bWFjcy1tYW51YWxdICAgICAgICAgICBEaXNwbGF5IHRoZSBFbWFjcyBtYW51YWwgaW4gSW5mbyBt b2RlLgorXFxbaW5mby1kaXNwbGF5LW1hbnVhbF0gICAgICAgICAgIFByb21wdCBmb3IgYSBtYW51 YWwgYW5kIHRoZW4gZGlzcGxheSBpdCBpbiBJbmZvIG1vZGUuCitcXFtkZXNjcmliZS1zeW50YXhd ICAgICAgICAgICBEaXNwbGF5IGNvbnRlbnRzIG9mIGN1cnJlbnQgc3ludGF4IHRhYmxlLCBwbHVz IGV4cGxhbmF0aW9ucy4KK1xcW2luZm8tbG9va3VwLXN5bWJvbF0gU1lNQk9MICAgIFNob3cgdGhl IHNlY3Rpb24gZm9yIHRoZSBnaXZlbiBzeW1ib2wgaW4gdGhlIEluZm8gbWFudWFsCiAgICAgICAg ICAgICAgIGZvciB0aGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdXNlZCBpbiB0aGlzIGJ1ZmZlci4K LXQgICAgICAgICAgIFN0YXJ0IHRoZSBFbWFjcyBsZWFybi1ieS1kb2luZyB0dXRvcmlhbC4KLXYg VkFSSUFCTEUgIERpc3BsYXkgdGhlIGdpdmVuIHZhcmlhYmxlJ3MgZG9jdW1lbnRhdGlvbiBhbmQg dmFsdWUuCi13IENPTU1BTkQgICBEaXNwbGF5IHdoaWNoIGtleXN0cm9rZXMgaW52b2tlIHRoZSBn aXZlbiBjb21tYW5kICh3aGVyZS1pcykuCi0uICAgICAgICAgICBEaXNwbGF5IGFueSBhdmFpbGFi bGUgbG9jYWwgaGVscCBhdCBwb2ludCBpbiB0aGUgZWNobyBhcmVhLgotCi1DLWEgICAgICAgICBJ bmZvcm1hdGlvbiBhYm91dCBFbWFjcy4KLUMtYyAgICAgICAgIEVtYWNzIGNvcHlpbmcgcGVybWlz c2lvbiAoR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UpLgotQy1kICAgICAgICAgSW5zdHJ1Y3Rp b25zIGZvciBkZWJ1Z2dpbmcgR05VIEVtYWNzLgotQy1lICAgICAgICAgRXh0ZXJuYWwgcGFja2Fn ZXMgYW5kIGluZm9ybWF0aW9uIGFib3V0IEVtYWNzLgotQy1mICAgICAgICAgRW1hY3MgRkFRLgor XFxbaGVscC13aXRoLXR1dG9yaWFsXSAgICAgICAgICAgU3RhcnQgdGhlIEVtYWNzIGxlYXJuLWJ5 LWRvaW5nIHR1dG9yaWFsLgorXFxbZGVzY3JpYmUtdmFyaWFibGVdIFZBUklBQkxFICBEaXNwbGF5 IHRoZSBnaXZlbiB2YXJpYWJsZSdzIGRvY3VtZW50YXRpb24gYW5kIHZhbHVlLgorXFxbd2hlcmUt aXNdIENPTU1BTkQgICBEaXNwbGF5IHdoaWNoIGtleXN0cm9rZXMgaW52b2tlIHRoZSBnaXZlbiBj b21tYW5kICh3aGVyZS1pcykuCitcXFtkaXNwbGF5LWxvY2FsLWhlbHBdICAgICAgICAgICBEaXNw bGF5IGFueSBhdmFpbGFibGUgbG9jYWwgaGVscCBhdCBwb2ludCBpbiB0aGUgZWNobyBhcmVhLgor CitcXFthYm91dC1lbWFjc10gICAgICAgICBJbmZvcm1hdGlvbiBhYm91dCBFbWFjcy4KK1xcW2Rl c2NyaWJlLWNvcHlpbmddICAgICAgICAgRW1hY3MgY29weWluZyBwZXJtaXNzaW9uIChHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSkuCitcXFt2aWV3LWVtYWNzLWRlYnVnZ2luZ10gICAgICAgICBJ bnN0cnVjdGlvbnMgZm9yIGRlYnVnZ2luZyBHTlUgRW1hY3MuCitcXFt2aWV3LWV4dGVybmFsLXBh Y2thZ2VzXSAgICAgICAgIEV4dGVybmFsIHBhY2thZ2VzIGFuZCBpbmZvcm1hdGlvbiBhYm91dCBF bWFjcy4KK1xcW3ZpZXctZW1hY3MtRkFRXSAgICAgICAgIEVtYWNzIEZBUS4KIEMtbSAgICAgICAg IEhvdyB0byBvcmRlciBwcmludGVkIEVtYWNzIG1hbnVhbHMuCiBDLW4gICAgICAgICBOZXdzIG9m IHJlY2VudCBFbWFjcyBjaGFuZ2VzLgotQy1vICAgICAgICAgRW1hY3Mgb3JkZXJpbmcgYW5kIGRp c3RyaWJ1dGlvbiBpbmZvcm1hdGlvbi4KLUMtcCAgICAgICAgIEluZm8gYWJvdXQga25vd24gRW1h Y3MgcHJvYmxlbXMuCi1DLXMgICAgICAgICBTZWFyY2ggZm9yd2FyZCBcImhlbHAgd2luZG93XCIu Ci1DLXQgICAgICAgICBFbWFjcyBUT0RPIGxpc3QuCi1DLXcgICAgICAgICBJbmZvcm1hdGlvbiBv biBhYnNlbmNlIG9mIHdhcnJhbnR5IGZvciBHTlUgRW1hY3MuIgorXFxbZGVzY3JpYmUtZGlzdHJp YnV0aW9uXSAgICAgICAgIEVtYWNzIG9yZGVyaW5nIGFuZCBkaXN0cmlidXRpb24gaW5mb3JtYXRp b24uCitcXFt2aWV3LWVtYWNzLXByb2JsZW1zXSAgICAgICAgIEluZm8gYWJvdXQga25vd24gRW1h Y3MgcHJvYmxlbXMuCitcXFtzZWFyY2gtZm9yd2FyZC1oZWxwLWZvci1oZWxwXSAgICAgICAgIFNl YXJjaCBmb3J3YXJkIFwiaGVscCB3aW5kb3dcIi4KK1xcW3ZpZXctZW1hY3MtdG9kb10gICAgICAg ICBFbWFjcyBUT0RPIGxpc3QuCitcXFtkZXNjcmliZS1uby13YXJyYW50eV0gICAgICAgICBJbmZv cm1hdGlvbiBvbiBhYnNlbmNlIG9mIHdhcnJhbnR5IGZvciBHTlUgRW1hY3MuIgogICBoZWxwLW1h cCkKIAogDApAQCAtNDkyLDYgKzQ4OSwxNSBAQCB2aWV3LWxvc3NhZ2UKIAwKIDs7IEtleSBiaW5k aW5ncwogCisoZGVmdW4gaGVscC0ta2V5LWRlc2NyaXB0aW9uLWZvbnRpZmllZCAoa2V5cyAmb3B0 aW9uYWwgcHJlZml4KQorICAiTGlrZSBga2V5LWRlc2NyaXB0aW9uJyBidXQgYWRkIGZhY2UgZm9y IFwiKkhlbHAqXCIgYnVmZmVycy4iCisgIDs7IFdlIGFkZCBib3RoIHRoZSBgZm9udC1sb2NrLWZh Y2UnIGFuZCBgZmFjZScgcHJvcGVydGllcyBoZXJlLCBhcyB0aGlzCisgIDs7IHNlZW1zIHRvIGJl IHRoZSBvbmx5IHdheSB0byBnZXQgdGhpcyB0byB3b3JrIHJlbGlhYmx5IGluIGFueQorICA7OyBi dWZmZXIuCisgIChwcm9wZXJ0aXplIChrZXktZGVzY3JpcHRpb24ga2V5cyBwcmVmaXgpCisgICAg ICAgICAgICAgICdmb250LWxvY2stZmFjZSAnaGVscC1rZXktYmluZGluZworICAgICAgICAgICAg ICAnZmFjZSAnaGVscC1rZXktYmluZGluZykpCisKIChkZWZ1biBkZXNjcmliZS1iaW5kaW5ncyAo Jm9wdGlvbmFsIHByZWZpeCBidWZmZXIpCiAgICJEaXNwbGF5IGEgYnVmZmVyIHNob3dpbmcgYSBs aXN0IG9mIGFsbCBkZWZpbmVkIGtleXMsIGFuZCB0aGVpciBkZWZpbml0aW9ucy4KIFRoZSBrZXlz IGFyZSBkaXNwbGF5ZWQgaW4gb3JkZXIgb2YgcHJlY2VkZW5jZS4KQEAgLTUxMSw3ICs1MTcsNiBA QCBkZXNjcmliZS1iaW5kaW5ncwogICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChoZWxwLWJ1ZmZl cikKICAgICAgIChkZXNjcmliZS1idWZmZXItYmluZGluZ3MgYnVmZmVyIHByZWZpeCkpKSkKIAot OzsgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGJlIGluIGtleW1hcC5jLgogKGRlZnVuIGRlc2NyaWJl LWJpbmRpbmdzLWludGVybmFsICgmb3B0aW9uYWwgbWVudXMgcHJlZml4KQogICAiU2hvdyBhIGxp c3Qgb2YgYWxsIGRlZmluZWQga2V5cywgYW5kIHRoZWlyIGRlZmluaXRpb25zLgogV2UgcHV0IHRo YXQgbGlzdCBpbiBhIGJ1ZmZlciwgYW5kIGRpc3BsYXkgdGhlIGJ1ZmZlci4KQEAgLTU1OSw3ICs1 NjQsOCBAQCB3aGVyZS1pcwogICAgICAgKGxldCogKChyZW1hcHBlZCAoY29tbWFuZC1yZW1hcHBp bmcgc3ltYm9sKSkKIAkgICAgIChrZXlzICh3aGVyZS1pcy1pbnRlcm5hbAogCQkgICAgc3ltYm9s IG92ZXJyaWRpbmctbG9jYWwtbWFwIG5pbCBuaWwgcmVtYXBwZWQpKQotCSAgICAgKGtleXMgKG1h cGNvbmNhdCAna2V5LWRlc2NyaXB0aW9uIGtleXMgIiwgIikpCisgICAgICAgICAgICAgKGtleXMg KG1hcGNvbmNhdCAjJ2hlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGtleXMgIiwgIikpCiAJICAgICBzdHJpbmcpCiAJKHNldHEgc3Ry aW5nCiAJICAgICAgKGlmIGluc2VydApAQCAtNTg3LDExICs1OTMsMTEgQEAgd2hlcmUtaXMKICAg bmlsKQogCiAoZGVmdW4gaGVscC1rZXktZGVzY3JpcHRpb24gKGtleSB1bnRyYW5zbGF0ZWQpCi0g IChsZXQgKChzdHJpbmcgKGtleS1kZXNjcmlwdGlvbiBrZXkpKSkKKyAgKGxldCAoKHN0cmluZyAo aGVscC0ta2V5LWRlc2NyaXB0aW9uLWZvbnRpZmllZCBrZXkpKSkKICAgICAoaWYgKG9yIChub3Qg dW50cmFuc2xhdGVkKQogCSAgICAoYW5kIChlcSAoYXJlZiB1bnRyYW5zbGF0ZWQgMCkgP1xlKSAo bm90IChlcSAoYXJlZiBrZXkgMCkgP1xlKSkpKQogCXN0cmluZwotICAgICAgKGxldCAoKG90aGVy c3RyaW5nIChrZXktZGVzY3JpcHRpb24gdW50cmFuc2xhdGVkKSkpCisgICAgICAobGV0ICgob3Ro ZXJzdHJpbmcgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQgdW50cmFuc2xhdGVkKSkp CiAJKGlmIChlcXVhbCBzdHJpbmcgb3RoZXJzdHJpbmcpCiAJICAgIHN0cmluZwogCSAgKGZvcm1h dCAiJXMgKHRyYW5zbGF0ZWQgZnJvbSAlcykiIHN0cmluZyBvdGhlcnN0cmluZykpKSkpKQpAQCAt OTc5LDcgKzk4NSw3IEBAIHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzCiAgICJTdWJzdGl0dXRlIGtl eSBkZXNjcmlwdGlvbnMgZm9yIGNvbW1hbmQgbmFtZXMgaW4gU1RSSU5HLgogRWFjaCBzdWJzdHJp bmcgb2YgdGhlIGZvcm0gXFxcXD1bQ09NTUFORF0gaXMgcmVwbGFjZWQgYnkgZWl0aGVyIGEKIGtl eXN0cm9rZSBzZXF1ZW5jZSB0aGF0IGludm9rZXMgQ09NTUFORCwgb3IgXCJNLXggQ09NTUFORFwi IGlmIENPTU1BTkQKLWlzIG5vdCBvbiBhbnkga2V5cy4KK2lzIG5vdCBvbiBhbnkga2V5cy4gIEtl eWJpbmRpbmdzIHdpbGwgdXNlIHRoZSBmYWNlIGBoZWxwLWtleS1iaW5kaW5nJy4KIAogRWFjaCBz dWJzdHJpbmcgb2YgdGhlIGZvcm0gXFxcXD17TUFQVkFSfSBpcyByZXBsYWNlZCBieSBhIHN1bW1h cnkgb2YKIHRoZSB2YWx1ZSBvZiBNQVBWQVIgYXMgYSBrZXltYXAuICBUaGlzIHN1bW1hcnkgaXMg c2ltaWxhciB0byB0aGUgb25lCkBAIC05OTksNyArMTAwNSw3IEBAIHN1YnN0aXR1dGUtY29tbWFu ZC1rZXlzCiBvdXRwdXQuCiAKIFJldHVybiB0aGUgb3JpZ2luYWwgU1RSSU5HIGlmIG5vIHN1YnN0 aXR1dGlvbnMgYXJlIG1hZGUuCi1PdGhlcndpc2UsIHJldHVybiBhIG5ldyBzdHJpbmcgKHdpdGhv dXQgYW55IHRleHQgcHJvcGVydGllcykuIgorT3RoZXJ3aXNlLCByZXR1cm4gYSBuZXcgc3RyaW5n LiIKICAgKHdoZW4gKG5vdCAobnVsbCBzdHJpbmcpKQogICAgIDs7IEtFWU1BUCBpcyBlaXRoZXIg bmlsICh3aGljaCBtZWFucyBzZWFyY2ggYWxsIHRoZSBhY3RpdmUKICAgICA7OyBrZXltYXBzKSBv ciBhIHNwZWNpZmllZCBsb2NhbCBtYXAgKHdoaWNoIG1lYW5zIHNlYXJjaCBqdXN0IHRoYXQKQEAg LTEwNTMsMTIgKzEwNTksMTUgQEAgc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHdoZXJlLWlzLWludGVybmFsIGZ1biBrZXltYXAgdCkpKSkK ICAgICAgICAgICAgICAgICAgIChpZiAobm90IGtleSkKICAgICAgICAgICAgICAgICAgICAgICA7 OyBGdW5jdGlvbiBpcyBub3Qgb24gYW55IGtleS4KLSAgICAgICAgICAgICAgICAgICAgICAocHJv Z24gKGluc2VydCAiTS14ICIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNo YXIgKCsgZW5kLXBvaW50IDMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRl LWNoYXIgMSkpCisgICAgICAgICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAg ICAgICAgICAoaW5zZXJ0IChwcm9wZXJ0aXplICJNLXggIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAnaGVscC1rZXktYmluZGluZworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1sb2NrLWZhY2UgJ2hlbHAt a2V5LWJpbmRpbmcpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAoKyBlbmQt cG9pbnQgMykpCisgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLWNoYXIgMSkpCiAgICAg ICAgICAgICAgICAgICAgIDs7IEZ1bmN0aW9uIGlzIG9uIGEga2V5LgogICAgICAgICAgICAgICAg ICAgICAoZGVsZXRlLWNoYXIgKC0gZW5kLXBvaW50IChwb2ludCkpKQotICAgICAgICAgICAgICAg ICAgICAoaW5zZXJ0IChrZXktZGVzY3JpcHRpb24ga2V5KSkpKSkKKyAgICAgICAgICAgICAgICAg ICAgKGluc2VydCAoaGVscC0ta2V5LWRlc2NyaXB0aW9uLWZvbnRpZmllZCBrZXkpKSkpKQogICAg ICAgICAgICAgICAgOzsgMUQuIFx7Zm9vfSBpcyByZXBsYWNlZCB3aXRoIGEgc3VtbWFyeSBvZiB0 aGUga2V5bWFwCiAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgIChzeW1ib2wtdmFsdWUgZm9v KS4KICAgICAgICAgICAgICAgIDs7ICAgICBcPGZvbz4ganVzdCBzZXRzIHRoZSBrZXltYXAgdXNl ZCBmb3IgXFtjbWRdLgpAQCAtMTE3Miw3ICsxMTgxLDcgQEAgZGVzY3JpYmUtbWFwLXRyZWUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCB0aXRsZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpZiBwcmVmaXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbmNhdCAiIFN0YXJ0aW5nIFdpdGggIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChrZXktZGVzY3JpcHRpb24gcHJlZml4KSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhlbHAtLWtleS1kZXNj cmlwdGlvbi1mb250aWZpZWQgcHJlZml4KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIjpcbiIpKQogICAgICAgICAgICAgICAgICAgICAgICJrZXkgICAgICAgICAgICAgYmlu ZGluZ1xuIgogICAgICAgICAgICAgICAgICAgICAgICItLS0gICAgICAgICAgICAgLS0tLS0tLVxu IikpKQpAQCAtMTIyOCw2ICsxMjM3LDggQEAgaGVscC0tZGVzY3JpYmUtY29tbWFuZAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKD0gaGVscC0tcHJldmlvdXMt ZGVzY3JpcHRpb24tY29sdW1uIDMyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAzMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQgMTYpKSkpCisg ICAgOzsgSW5zZXJ0IHRhYiB3aXRob3V0IGZhY2UgdG8gYXZvaWQgdXNpbmcgdGhlIGBoZWxwLWtl eW1hcCcgZmFjZS4KKyAgICAoaW5zZXJ0IChwcm9wZXJ0aXplICJcdCIgJ2ZhY2UgbmlsICdmb250 LWxvY2stZmFjZSBuaWwpKQogICAgIChpbmRlbnQtdG8gZGVzY3JpcHRpb24tY29sdW1uIDEpCiAg ICAgKHNldHEgaGVscC0tcHJldmlvdXMtZGVzY3JpcHRpb24tY29sdW1uIGRlc2NyaXB0aW9uLWNv bHVtbikKICAgICAoY29uZCAoKHN5bWJvbHAgZGVmaW5pdGlvbikKQEAgLTEyNDAsNiArMTI1MSw4 IEBAIGhlbHAtLWRlc2NyaWJlLWNvbW1hbmQKIAogKGRlZnVuIGhlbHAtLWRlc2NyaWJlLXRyYW5z bGF0aW9uIChkZWZpbml0aW9uKQogICA7OyBDb252ZXJ0ZWQgZnJvbSBkZXNjcmliZV90cmFuc2xh dGlvbiBpbiBrZXltYXAuYy4KKyAgOzsgSW5zZXJ0IHRhYiB3aXRob3V0IGZhY2UgdG8gYXZvaWQg dXNpbmcgdGhlIGBoZWxwLWtleW1hcCcgZmFjZS4KKyAgKGluc2VydCAocHJvcGVydGl6ZSAiXHQi ICdmYWNlIG5pbCAnZm9udC1sb2NrLWZhY2UgbmlsKSkKICAgKGluZGVudC10byAxNiAxKQogICAo Y29uZCAoKHN5bWJvbHAgZGVmaW5pdGlvbikKICAgICAgICAgIChpbnNlcnQgKHN5bWJvbC1uYW1l IGRlZmluaXRpb24pICJcbiIpKQpAQCAtMTM1MSw5ICsxMzY0LDkgQEAgZGVzY3JpYmUtbWFwCiAg ICAgICAgICAgICAgIChzZXRxIGVuZCAoY2FhciB2ZWN0KSkpKQogICAgICAgICAgIDs7IE5vdyBT VEFSVCAuLiBFTkQgaXMgdGhlIHJhbmdlIHRvIGRlc2NyaWJlIG5leHQuCiAgICAgICAgICAgOzsg SW5zZXJ0IHRoZSBzdHJpbmcgdG8gZGVzY3JpYmUgdGhlIGV2ZW50IFNUQVJULgotICAgICAgICAg IChpbnNlcnQgKGtleS1kZXNjcmlwdGlvbiAodmVjdG9yIHN0YXJ0KSBwcmVmaXgpKQorICAgICAg ICAgIChpbnNlcnQgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQgKHZlY3RvciBzdGFy dCkgcHJlZml4KSkKICAgICAgICAgICAod2hlbiAobm90IChlcSBzdGFydCBlbmQpKQotICAgICAg ICAgICAgKGluc2VydCAiIC4uICIgKGtleS1kZXNjcmlwdGlvbiAodmVjdG9yIGVuZCkgcHJlZml4 KSkpCisgICAgICAgICAgICAoaW5zZXJ0ICIgLi4gIiAoaGVscC0ta2V5LWRlc2NyaXB0aW9uLWZv bnRpZmllZCAodmVjdG9yIGVuZCkgcHJlZml4KSkpCiAgICAgICAgICAgOzsgUHJpbnQgYSBkZXNj cmlwdGlvbiBvZiB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIGNoYXJhY3Rlci4KICAgICAgICAgICA7 OyBDYWxsZWQgZnVuY3Rpb24gd2lsbCB0YWtlIGNhcmUgb2Ygc3BhY2luZyBvdXQgZmFyIGVub3Vn aAogICAgICAgICAgIDs7IGZvciBhbGlnbm1lbnQgcHVycG9zZXMuCkBAIC0xNDIwLDcgKzE0MzMs NyBAQCBkZXNjcmliZS1tYXAKIDs7ICAgICAgICAgICAgIChzZXRxIGZpcnN0IG5pbCkpCiA7OyAg ICAgICAgICAgKHdoZW4gKGFuZCBwcmVmaXggKD4gKGxlbmd0aCBwcmVmaXgpIDApKQogOzsgICAg ICAgICAgICAgKGluc2VydCAoZm9ybWF0ICIlcyIgcHJlZml4KSkpCi07OyAgICAgICAgICAgKGlu c2VydCAoa2V5LWRlc2NyaXB0aW9uICh2ZWN0b3Igc3RhcnQtaWR4KSBwcmVmaXgpKQorOzsgICAg ICAgICAgIChpbnNlcnQgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQgKHZlY3RvciBz dGFydC1pZHgpIHByZWZpeCkpCiA7OyAgICAgICAgICAgOzsgRmluZCBhbGwgY29uc2VjdXRpdmUg Y2hhcmFjdGVycyBvciByb3dzIHRoYXQgaGF2ZSB0aGUKIDs7ICAgICAgICAgICA7OyBzYW1lIGRl ZmluaXRpb24uCiA7OyAgICAgICAgICAgKHdoaWxlIChlcXVhbCAoa2V5bWFwLS1nZXQta2V5ZWx0 IChhcmVmIHZlY3RvciAoMSsgaWR4KSkgbmlsKQpAQCAtMTQzMyw3ICsxNDQ2LDcgQEAgZGVzY3Jp YmUtbWFwCiA7OyAgICAgICAgICAgICAoaW5zZXJ0ICIgLi4gIikKIDs7ICAgICAgICAgICAgICh3 aGVuIChhbmQgcHJlZml4ICg+IChsZW5ndGggcHJlZml4KSAwKSkKIDs7ICAgICAgICAgICAgICAg KGluc2VydCAoZm9ybWF0ICIlcyIgcHJlZml4KSkpCi07OyAgICAgICAgICAgICAoaW5zZXJ0IChr ZXktZGVzY3JpcHRpb24gKHZlY3RvciBpZHgpIHByZWZpeCkpKQorOzsgICAgICAgICAgICAgKGlu c2VydCAoaGVscC0ta2V5LWRlc2NyaXB0aW9uLWZvbnRpZmllZCAodmVjdG9yIGlkeCkgcHJlZml4 KSkpCiA7OyAgICAgICAgICAgKGlmIHRyYW5zbAogOzsgICAgICAgICAgICAgICAoaGVscC0tZGVz Y3JpYmUtdHJhbnNsYXRpb24gZGVmaW5pdGlvbikKIDs7ICAgICAgICAgICAgIChoZWxwLS1kZXNj cmliZS1jb21tYW5kIGRlZmluaXRpb24pKQpAQCAtMTkyNCw2ICsxOTM3LDggQEAgaGVscC1jb21t YW5kLWVycm9yLWNvbmZ1c2FibGUtc3VnZ2VzdGlvbnMKIChhZGQtZnVuY3Rpb24gOmFmdGVyIGNv bW1hbmQtZXJyb3ItZnVuY3Rpb24KICAgICAgICAgICAgICAgIydoZWxwLWNvbW1hbmQtZXJyb3It Y29uZnVzYWJsZS1zdWdnZXN0aW9ucykKIAorKGRlZmluZS1vYnNvbGV0ZS1mdW5jdGlvbi1hbGlh cyAnaGVscC1mb3ItaGVscC1pbnRlcm5hbCAjJ2hlbHAtZm9yLWhlbHAgIjI4LjEiKQorCiAMCiAo cHJvdmlkZSAnaGVscCkKIApkaWZmIC0tZ2l0IGEvbGlzcC9pc2VhcmNoLmVsIGIvbGlzcC9pc2Vh cmNoLmVsCmluZGV4IGU3OTI2YWMwOGMuLjk0M2UyNGFhNTYgMTAwNjQ0Ci0tLSBhL2xpc3AvaXNl YXJjaC5lbAorKysgYi9saXNwL2lzZWFyY2guZWwKQEAgLTQ2MCwxMSArNDYwLDExIEBAIGlzZWFy Y2gtaGVscC1tYXAKIChtYWtlLWhlbHAtc2NyZWVuIGlzZWFyY2gtaGVscC1mb3ItaGVscC1pbnRl cm5hbAogICAocHVyZWNvcHkgIlR5cGUgYSBoZWxwIG9wdGlvbjogW2JrbV0gb3IgPyIpCiAgICJZ b3UgaGF2ZSB0eXBlZCAlVEhJUy1LRVklLCB0aGUgaGVscCBjaGFyYWN0ZXIuICBUeXBlIGEgSGVs cCBvcHRpb246Ci1cKFR5cGUgXFw8aGVscC1tYXA+XFxbaGVscC1xdWl0XSB0byBleGl0IHRoZSBI ZWxwIGNvbW1hbmQuKQorXChUeXBlIFxcPGlzZWFyY2gtaGVscC1tYXA+XFxbaGVscC1xdWl0XSB0 byBleGl0IHRoZSBIZWxwIGNvbW1hbmQuKQogCi1iICAgICAgICAgICBEaXNwbGF5IGFsbCBJc2Vh cmNoIGtleSBiaW5kaW5ncy4KLWsgS0VZUyAgICAgIERpc3BsYXkgZnVsbCBkb2N1bWVudGF0aW9u IG9mIElzZWFyY2gga2V5IHNlcXVlbmNlLgotbSAgICAgICAgICAgRGlzcGxheSBkb2N1bWVudGF0 aW9uIG9mIElzZWFyY2ggbW9kZS4KK1xcW2lzZWFyY2gtZGVzY3JpYmUtYmluZGluZ3NdICAgICAg ICAgICBEaXNwbGF5IGFsbCBJc2VhcmNoIGtleSBiaW5kaW5ncy4KK1xcW2lzZWFyY2gtZGVzY3Jp YmUta2V5XSBLRVlTICAgICAgRGlzcGxheSBmdWxsIGRvY3VtZW50YXRpb24gb2YgSXNlYXJjaCBr ZXkgc2VxdWVuY2UuCitcXFtpc2VhcmNoLWRlc2NyaWJlLW1vZGVdICAgICAgICAgICBEaXNwbGF5 IGRvY3VtZW50YXRpb24gb2YgSXNlYXJjaCBtb2RlLgogCiBZb3UgY2FuJ3QgdHlwZSBoZXJlIG90 aGVyIGhlbHAga2V5cyBhdmFpbGFibGUgaW4gdGhlIGdsb2JhbCBoZWxwIG1hcCwKIGJ1dCBvdXRz aWRlIG9mIHRoaXMgaGVscCB3aW5kb3cgd2hlbiB5b3UgdHlwZSB0aGVtIGluIElzZWFyY2ggbW9k ZSwKZGlmZiAtLWdpdCBhL2xpc3AvdG9vbHRpcC5lbCBiL2xpc3AvdG9vbHRpcC5lbAppbmRleCA4 ZTAwYWE1YzJhLi5hZjNiODZiYmE3IDEwMDY0NAotLS0gYS9saXNwL3Rvb2x0aXAuZWwKKysrIGIv bGlzcC90b29sdGlwLmVsCkBAIC0yNDgsNyArMjQ4LDEyIEBAIHRvb2x0aXAtc2hvdwogCSAgICAo c2V0ZiAoYWxpc3QtZ2V0ICdib3JkZXItY29sb3IgcGFyYW1zKSBmZykpCiAJICAod2hlbiAoc3Ry aW5ncCBiZykKIAkgICAgKHNldGYgKGFsaXN0LWdldCAnYmFja2dyb3VuZC1jb2xvciBwYXJhbXMp IGJnKSkKLQkgICh4LXNob3ctdGlwIChwcm9wZXJ0aXplIHRleHQgJ2ZhY2UgJ3Rvb2x0aXApCisg ICAgICAgICAgOzsgVXNlIG5vbi1uaWwgQVBQRU5EIGFyZ3VtZW50IGJlbG93IHRvIGF2b2lkIG92 ZXJyaWRpbmcgYW55CisgICAgICAgICAgOzsgZmFjZXMgdXNlZCBpbiBvdXIgVEVYVC4gIEFtb25n IG90aGVyIHRoaW5ncywgdGhpcyBhbGxvd3MKKyAgICAgICAgICA7OyB0b29sdGlwcyB0byB1c2Ug dGhlIGBoZWxwLWtleS1iaW5kaW5nJyBmYWNlIHVzZWQgaW4KKyAgICAgICAgICA7OyBgc3Vic3Rp dHV0ZS1jb21tYW5kLWtleXMnIHN1YnN0aXR1dGlvbnMuCisgICAgICAgICAgKGFkZC1mYWNlLXRl eHQtcHJvcGVydHkgMCAobGVuZ3RoIHRleHQpICd0b29sdGlwIHQgdGV4dCkKKyAgICAgICAgICAo eC1zaG93LXRpcCB0ZXh0CiAJCSAgICAgIChzZWxlY3RlZC1mcmFtZSkKIAkJICAgICAgcGFyYW1z CiAJCSAgICAgIHRvb2x0aXAtaGlkZS1kZWxheQpkaWZmIC0tZ2l0IGEvc3JjL2tleW1hcC5jIGIv c3JjL2tleW1hcC5jCmluZGV4IDc4MjkzMWZhZGYuLmUzOGM5YjkwOGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9rZXltYXAuYworKysgYi9zcmMva2V5bWFwLmMKQEAgLTI4NDYsNiArMjg0NiwyMyBAQCBERUZV TiAoImRlc2NyaWJlLXZlY3RvciIsIEZkZXNjcmliZV92ZWN0b3IsIFNkZXNjcmliZV92ZWN0b3Is IDEsIDIsIDAsCiAgIHJldHVybiB1bmJpbmRfdG8gKGNvdW50LCBRbmlsKTsKIH0KIAorc3RhdGlj IExpc3BfT2JqZWN0IGZvbnRpZnlfa2V5X3Byb3BlcnRpZXM7CisKK3N0YXRpYyBMaXNwX09iamVj dAorZGVzY3JpYmVfa2V5X21heWJlX2ZvbnRpZnkgKExpc3BfT2JqZWN0IHN0ciwgTGlzcF9PYmpl Y3QgcHJlZml4LAorCQkJCSAgIGJvb2wga2V5bWFwX3ApCit7CisgIExpc3BfT2JqZWN0IGtleV9k ZXNjID0gRmtleV9kZXNjcmlwdGlvbiAoc3RyLCBwcmVmaXgpOworCisgIGlmIChrZXltYXBfcCkK KyAgICByZXR1cm4gRmFkZF90ZXh0X3Byb3BlcnRpZXMgKG1ha2VfZml4bnVtICgwKSwKKwkJCQkg bWFrZV9maXhudW0gKFNDSEFSUyAoa2V5X2Rlc2MpKSwKKwkJCQkgZm9udGlmeV9rZXlfcHJvcGVy dGllcywKKwkJCQkga2V5X2Rlc2MpOworICBlbHNlCisgICAgcmV0dXJuIGtleV9kZXNjOworfQor CiBERUZVTiAoImhlbHAtLWRlc2NyaWJlLXZlY3RvciIsIEZoZWxwX19kZXNjcmliZV92ZWN0b3Is IFNoZWxwX19kZXNjcmliZV92ZWN0b3IsIDcsIDcsIDAsCiAgICAgICAgZG9jOiAvKiBJbnNlcnQg aW4gdGhlIGN1cnJlbnQgYnVmZmVyIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnRzIG9mIFZF Q1RPUi4KIENhbGwgREVTQ1JJQkVSIHRvIGluc2VydCB0aGUgZGVzY3JpcHRpb24gb2Ygb25lIHZh bHVlIGZvdW5kIGluIFZFQ1RPUi4KQEAgLTMwMjEsNyArMzAzOCw3IEBAIGRlc2NyaWJlX3ZlY3Rv ciAoTGlzcF9PYmplY3QgdmVjdG9yLCBMaXNwX09iamVjdCBwcmVmaXgsIExpc3BfT2JqZWN0IGFy Z3MsCiAgICAgICBpZiAoIU5JTFAgKGVsdF9wcmVmaXgpKQogCWluc2VydDEgKGVsdF9wcmVmaXgp OwogCi0gICAgICBpbnNlcnQxIChGa2V5X2Rlc2NyaXB0aW9uIChrbHVkZ2UsIHByZWZpeCkpOwor ICAgICAgaW5zZXJ0MSAoZGVzY3JpYmVfa2V5X21heWJlX2ZvbnRpZnkgKGtsdWRnZSwgcHJlZml4 LCBrZXltYXBfcCkpOwogCiAgICAgICAvKiBGaW5kIGFsbCBjb25zZWN1dGl2ZSBjaGFyYWN0ZXJz IG9yIHJvd3MgdGhhdCBoYXZlIHRoZSBzYW1lCiAJIGRlZmluaXRpb24uICBCdXQsIGlmIFZFQ1RP UiBpcyBhIGNoYXItdGFibGUsIHdlIGhhZCBiZXR0ZXIKQEAgLTMwNzEsNyArMzA4OCw3IEBAIGRl c2NyaWJlX3ZlY3RvciAoTGlzcF9PYmplY3QgdmVjdG9yLCBMaXNwX09iamVjdCBwcmVmaXgsIExp c3BfT2JqZWN0IGFyZ3MsCiAJICBpZiAoIU5JTFAgKGVsdF9wcmVmaXgpKQogCSAgICBpbnNlcnQx IChlbHRfcHJlZml4KTsKIAotCSAgaW5zZXJ0MSAoRmtleV9kZXNjcmlwdGlvbiAoa2x1ZGdlLCBw cmVmaXgpKTsKKwkgIGluc2VydDEgKGRlc2NyaWJlX2tleV9tYXliZV9mb250aWZ5IChrbHVkZ2Us IHByZWZpeCwga2V5bWFwX3ApKTsKIAl9CiAKICAgICAgIC8qIFByaW50IGEgZGVzY3JpcHRpb24g b2YgdGhlIGRlZmluaXRpb24gb2YgdGhpcyBjaGFyYWN0ZXIuCkBAIC0zMjAwLDYgKzMyMTcsMTIg QEAgc3ltc19vZl9rZXltYXAgKHZvaWQpCiAgIHN0YXRpY3BybyAoJndoZXJlX2lzX2NhY2hlKTsK ICAgc3RhdGljcHJvICgmd2hlcmVfaXNfY2FjaGVfa2V5bWFwcyk7CiAKKyAgREVGU1lNIChRZm9u dF9sb2NrX2ZhY2UsICJmb250LWxvY2stZmFjZSIpOworICBERUZTWU0gKFFoZWxwX2tleV9iaW5k aW5nLCAiaGVscC1rZXktYmluZGluZyIpOworICBzdGF0aWNwcm8gKCZmb250aWZ5X2tleV9wcm9w ZXJ0aWVzKTsKKyAgZm9udGlmeV9rZXlfcHJvcGVydGllcyA9IEZjb25zIChRZm9udF9sb2NrX2Zh Y2UsCisJCQkJICBGY29ucyAoUWhlbHBfa2V5X2JpbmRpbmcsIFFuaWwpKTsKKwogICBkZWZzdWJy ICgmU2tleW1hcHApOwogICBkZWZzdWJyICgmU2tleW1hcF9wYXJlbnQpOwogICBkZWZzdWJyICgm U2tleW1hcF9wcm9tcHQpOwotLSAKMi4zMC4xCgo= --00000000000079caa005bccf18a7--