From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jashank Jeremy Newsgroups: gmane.emacs.bugs Subject: bug#41200: Displaying a tooltip with x-show-tip gets very slow as more faces are defined Date: Thu, 13 May 2021 15:56:25 +1200 Message-ID: <871rab8exi.wl-jashank@rulingia.com.au> References: <8fd8896a-cd5c-66f4-4792-f65cac4dc4f5@gmail.com> <87tuojhqdr.wl-jashank@rulingia.com.au> <878s4ju24k.fsf@gnus.org> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/signed; boundary="pgp-sign-Multipart_Thu_May_13_15:56:24_2021-1"; micalg=pgp-sha256; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5130"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?Q?Goj=C5=8D?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Cc: Emacs bug41200 <41200@debbugs.gnu.org>, =?UTF-8?Q?Cl=C3=A9ment?= Pit-Claudel To: Lars Ingebrigtsen , Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu May 13 08:53:16 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1lh5Dd-00016O-Io for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 13 May 2021 08:53:15 +0200 Original-Received: from localhost ([::1]:56652 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lh5Dc-0004rR-Ka for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 13 May 2021 02:53:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45936) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lh5DS-0004r1-5U for bug-gnu-emacs@gnu.org; Thu, 13 May 2021 02:53:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:57895) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lh5DR-0006ps-Qs for bug-gnu-emacs@gnu.org; Thu, 13 May 2021 02:53:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lh5DR-0002kN-Pc for bug-gnu-emacs@gnu.org; Thu, 13 May 2021 02:53:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jashank Jeremy Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 May 2021 06:53:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch moreinfo Original-Received: via spool by 41200-submit@debbugs.gnu.org id=B41200.162088874510511 (code B ref 41200); Thu, 13 May 2021 06:53:01 +0000 Original-Received: (at 41200) by debbugs.gnu.org; 13 May 2021 06:52:25 +0000 Original-Received: from localhost ([127.0.0.1]:41208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lh5Cp-0002jO-4P for submit@debbugs.gnu.org; Thu, 13 May 2021 02:52:25 -0400 Original-Received: from emeralfel.rulingia.com.au ([52.64.96.81]:42791 helo=fort.rulingia.com.au) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lh2Sg-0006jR-8o for 41200@debbugs.gnu.org; Wed, 12 May 2021 23:56:38 -0400 Original-Received: from alyzon.rulingia.com.au (ppp59-167-172-93.static.internode.on.net [59.167.172.93]) by fort.rulingia.com.au (Postfix) with ESMTPSA id 612502110C3; Thu, 13 May 2021 13:56:31 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rulingia.com.au; s=mail; t=1620878191; bh=lktLTPPmSCobV88jRUlJVRHCRTAX8ilZI+8doBUVZ04=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=fY3wR9irsF3t3SJhaCgLdadozi2+ddRzWJqBzS83wP36dzlUctZTvMYpa3xQAmMHI frQAEFzVPYSBspP3aSY3dEJaKdAWgs5bdTgkKtH2ImlVoDryLUE+VItdoaxXuzGqFL jGamtudKJ9/Ef5zzrrjU59YRl1fP1/srLpZEeCHk= Original-Received: from lisbon.rulingia.com.au. (unknown [192.168.234.6]) by alyzon.rulingia.com.au (Postfix) with ESMTPA id D52AF185684; Thu, 13 May 2021 13:56:30 +1000 (AEST) In-Reply-To: <878s4ju24k.fsf@gnus.org> X-Mailman-Approved-At: Thu, 13 May 2021 02:52:22 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:206402 Archived-At: --pgp-sign-Multipart_Thu_May_13_15:56:24_2021-1 Content-Type: multipart/mixed; boundary="Multipart_Thu_May_13_15:56:24_2021-1" --Multipart_Thu_May_13_15:56:24_2021-1 Content-Type: text/plain; charset=US-ASCII At 2021-04-22 23:56:20 -0400, Stefan Monnier wrote: > [...] most faces that don't use colors: the *scratch* buffer's > comments are displayed in black+bold+italic, the mode-line has a black > background. A call of the form `(error "foo")` has foo display in > black+italic and the `error symbol is displayed in reverse video > (black background). At 2021-05-12 22:29:47 +0200, Lars Ingebrigtsen wrote: > I tried the patch, too, and I'm seeing the same -- most faces are > different than they used to be, which is surely not what's supposed to > happen. But another experiment you could try: create a new frame. And another. OK, I'll spoil the surprise --- this misbehaviour occurs *only* on the initial frame. I don't precisely know _why_ that happens, but I do know how it broke: I tried (and thought I had succeeded) fixing a bug that occurred only when reverse video was enabled, which would stop creation of new frames entirely. > Jashank, have to continued working on this patch? Yes --- I have a patched patch which fixes that behaviour. The 10th revision of that patch is attached: I have been running it for a few weeks atop 7c901d90e620b4d3651b86c13faf1e81eeb3db10 (master at the time), so I can tell you it also works with native-compile. I have rebased onto ec574a72f7198d9793b466f33382fff397ac4ce1 (master as of now) and will test that. Cheers, ~jashank --Multipart_Thu_May_13_15:56:24_2021-1 Content-Type: text/x-patch; type=patch; name="0001-Store-frame-faces-in-hash-tables-instead-of-alists-V10.patch"; charset=UTF-8 Content-Disposition: attachment; filename="0001-Store-frame-faces-in-hash-tables-instead-of-alists-V10.patch" Content-Transfer-Encoding: base64 RnJvbSAwNGI4ZjJkMTMxODI0ZmE5ZGMyYmVjZTE5ZjRhNzE5Zjk3N2U0ZjRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2w9QzM9QTltZW50PTIwUGl0LUNsYXVkZWw/ PSA8Y2xlbWVudC5waXRjbGF1ZGVsQGxpdmUuY29tPgpEYXRlOiBUdWUsIDEyIE1heSAyMDIwIDIx OjQ4OjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gU3RvcmUgZnJhbWUgZmFjZXMgaW4gaGFzaCB0 YWJsZXMgaW5zdGVhZCBvZiBhbGlzdHMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK Ciogc3JjL2ZyYW1lLmggKHN0cnVjdCBmcmFtZSk6IEFkZCBmYWNlX2hhc2hfdGFibGUsIHJlbW92 ZSBmYWNlX2FsaXN0LgooZnNldF9mYWNlX2hhc2hfdGFibGUpOiBOZXcgZnVuY3Rpb24uCihmc2V0 X2ZhY2VfYWxpc3QpOiBSZW1vdmUuCiogc3JjL2ZyYW1lLmMgKG1ha2VfZnJhbWUpOiBJbml0aWFs aXplIGYtPmZhY2VfaGFzaF90YWJsZS4KKEZtYWtlX3Rlcm1pbmFsX2ZyYW1lKTogVXBkYXRlIHRv IHdvcmsgd2l0aCBoYXNoIHRhYmxlcyBpbnN0ZWFkIG9mCmFsaXN0cy4KKiBzcmMveGZhY2VzLmMg KGxmYWNlX2Zyb21fZmFjZV9uYW1lX25vX3Jlc29sdmUpOgooRmludGVybmFsX21ha2VfbGlzcF9m YWNlKToKKHVwZGF0ZV9mYWNlX2Zyb21fZnJhbWVfcGFyYW1ldGVyKTogVXBkYXRlIHRvIHdvcmsg d2l0aCBoYXNoIHRhYmxlcwppbnN0ZWFkIG9mIGFsaXN0cy4KKEZmcmFtZV9mYWNlX2hhc2hfdGFi bGUpOiBOZXcgZnVuY3Rpb24uCihGZnJhbWVfZmFjZV9hbGlzdCk6IE1vdmUgdG8gZmFjZXMuZWwg YXMgZnJhbWUtZmFjZS1hbGlzdC4KKHN5bXNfb2ZfeGZhY2VzKTogQWRkIGZyYW1lX2ZhY2VfaGFz aF90YWJsZS4KCiogbGlzcC9wcm9nbW9kZXMvZWxpc3AtbW9kZS5lbCAoZWxpc3AtLWV2YWwtZGVm dW4tMSk6CiogbGlzcC9mcmFtZS5lbCAoZnJhbWUtc2V0LWJhY2tncm91bmQtbW9kZSk6IFVwZGF0 ZSB0byB3b3JrIHdpdGggaGFzaAp0YWJsZXMgaW5zdGVhZCBvZiBhbGlzdHMuCiogbGlzcC9mYWNl cy5lbCAoZmFjZS1uZXctZnJhbWUtZGVmYXVsdHMpOiBNYXJrIG9ic29sZXRlLgooZmFjZS1saXN0 KTogVXBkYXRlIHRvIHVzZSBmYWNlLS1uZXctZnJhbWUtZGVmYXVsdHMuCihmcmFtZS1mYWNlLWFs aXN0KTogTW92ZWQgaGVyZSBmcm9tIHNyYy94ZmFjZXMuYy4KKHgtY3JlYXRlLWZyYW1lLXdpdGgt ZmFjZXMpOiBVcGRhdGUgdG8gaGFuZGxlIHN1YnRsZSBzZW1hbnRpYyBjaGFuZ2UKdG8gaG93IGZy YW1lIGZhY2VzIHByb3BhZ2F0ZSwgd2hpY2ggb3RoZXJ3aXNlIGJyZWFrcyBmcmFtZSBjcmVhdGlv bgp3aXRoIHJldmVyc2UgdmlkZW8gZW5hYmxlZC4KCjs7IFBhdGNoIGhpc3Rvcnk6Cjs7Cjs7IFYx ICgyMDIwLTA1LTEyIDIyOjQxOjI0IC0wNDAwKSwgKEJ1ZyM0MTIwMCkgbWVzc2FnZSAyOS4KOzsg ICBBdXRob3JlZC1ieTogQ2zDqW1lbnQgUGl0LUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbCA8 YXQ+IGxpdmUuY29tPgo7Owo7OyBWMiAoMjAyMC0wNS0xMyAxMToxMzoyNyAtMDQwMCksIChCdWcj NDEyMDApIG1lc3NhZ2UgMzguCjs7ICAgRml4ZXMgY29tcGlsYXRpb24gZXJyb3IuCjs7ICAgUmVw b3J0ZWQtYnk6IG1hcnRpbiBydWRhbGljcyA8cnVkYWxpY3MgPGF0PiBnbXguYXQ+Cjs7ICAgQXV0 aG9yZWQtYnk6IENsw6ltZW50IFBpdC1DbGF1ZGVsIDxjbGVtZW50LnBpdGNsYXVkZWwgPGF0PiBs aXZlLmNvbT4KOzsKOzsgVjMgKDIwMjAtMDUtMTUgMTA6NTk6MzYgLTA0MDApLCAoQnVnIzQxMjAw KSBtZXNzYWdlIDU1Lgo7OyAgIEFtZW5kbWVudHMgdG8gcmVzb2x2ZSBpc3N1ZXMgcmFpc2VkIG9y IHJlc29sdmVkIGJ5IEVsaVouCjs7ICAgKiBDb2RlLXN0eWxlIGNsZWFudXAuCjs7ICAgKiBSZW5h bWUgYGZhY2VfaGFzaCcgdG8gYGZhY2VfbWFwJy4KOzsgICBTdWdnZXN0ZWQtYnk6IEVsaSBaYXJl dHNraWkgPGVsaXogPGF0PiBnbnUub3JnPgo7OyAgIEF1dGhvcmVkLWJ5OiBDbMOpbWVudCBQaXQt Q2xhdWRlbCA8Y2xlbWVudC5waXRjbGF1ZGVsIDxhdD4gbGl2ZS5jb20+Cjs7Cjs7IFY0ICgyMDIw LTA1LTE1IDE0OjUwOjE3IC0wNDAwKSwgKEJ1ZyM0MTIwMCkgbWVzc2FnZSA3MC4KOzsgICAqIFNl dHRsZSBvbiBuYW1lIGBmYWNlX2hhc2hfdGFibGUnLgo7OyAgICogUmVuYW1lIGBmYWNlLW5ldy1m cmFtZS1kZWZhdWx0cycgdG8gYGZhY2UtLW5ldy1mcmFtZS1kZWZhdWx0cycuCjs7ICAgKiBBbGxv dyBtdWx0aXBsZSB2YXJpYW50cyBvZiBhIGZhY2UgdG8gZXhpc3QuCjs7ICAgU3VnZ2VzdGVkLWJ5 OiBFbGkgWmFyZXRza2lpIDxlbGl6IDxhdD4gZ251Lm9yZz4KOzsgICBBdXRob3JlZC1ieTogQ2zD qW1lbnQgUGl0LUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbCA8YXQ+IGxpdmUuY29tPgo7Owo7 OyBWNSAoMjAyMC0wNS0xNSAxNDo1MDoxNyAtMDQwMCksIChCdWcjNDEyMDApIG1lc3NhZ2UgODUu Cjs7ICAgTG93ZXIgdGhlIHNpemUgb2YgYGZhY2UtLW5ldy1mcmFtZS1kZWZhdWx0cycuCjs7ICAg U3VnZ2VzdGVkLWJ5OiBFbGkgWmFyZXRza2lpIDxlbGl6IDxhdD4gZ251Lm9yZz4KOzsgICBBdXRo b3JlZC1ieTogQ2zDqW1lbnQgUGl0LUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbCA8YXQ+IGxp dmUuY29tPgo7Owo7OyBWNiAoMjAyMS0wNC0wNSAxNzoxMDo1NSArMTAwMCkuCjs7ICAgUmViYXNl IG9udG8gbWFzdGVyOyBtb3ZlIGh1bmtzIGFyb3VuZC4KOzsgICAqIENoYW5nZXMgdG8gYGVkZWJ1 Zy5lbCcgZHJvcHBlZC4KOzsgICBBdXRob3JlZC1ieTogSmFzaGFuayBKZXJlbXkgPGphc2hhbmsg PGF0PiBydWxpbmdpYS5jb20uYXU+Cjs7Cjs7IFY3ICgyMDIxLTA0LTA2IDEyOjMxOjU1ICsxMDAw KS4KOzsgICBGaXggYGZyYW1lLWZhY2UtYWxpc3QnIHRvIGNvcGUgd2l0aCBjaGFuZ2VzIGZyb20g VjQuCjs7ICAgQXV0aG9yZWQtYnk6IEphc2hhbmsgSmVyZW15IDxqYXNoYW5rIDxhdD4gcnVsaW5n aWEuY29tLmF1Pgo7Owo7OyBWOCAoMjAyMS0wNC0wNiAxMzoxMzozMyArMTAwMCkuCjs7ICAgVGhl cmUgaXMgYSBzdWJ0bGUgY2hhbmdlIHRvIGZhY2UgcHJvcGFnYXRpb24gc2VtYW50aWNzIGF0IGZh Y2UKOzsgICBjcmVhdGlvbiB0aW1lLCB3aGljaCBzdG9wcyBmYWNlIGZyYW1lIGNyZWF0aW9uIHdv cmtpbmcgYXQgYWxsCjs7ICAgb25seSBpZiByZXZlcnNlIHZpZGVvIGlzIGVuYWJsZWQuCjs7ICAg QXV0aG9yZWQtYnk6IEphc2hhbmsgSmVyZW15IDxqYXNoYW5rIDxhdD4gcnVsaW5naWEuY29tLmF1 Pgo7Owo7OyBWOSAoMjAyMS0wNC0wNiAxNjoxNzo1MyArMTAwMCkuCjs7ICAgQ29ycmVjdCBhcmd1 bWVudCBvcmRlciBvZiBgcmVtaGFzaCcgaW4gYGVsaXNwLW1vZGUuZWwnLgo7OyAgIFJlcG9ydGVk LWJ5OiBCZW5zb24gQ2h1IDxiZW5zb25jaHU0NTcgPGF0PiBnbWFpbC5jb20+Cjs7ICAgQXV0aG9y ZWQtYnk6IEphc2hhbmsgSmVyZW15IDxqYXNoYW5rIDxhdD4gcnVsaW5naWEuY29tLmF1Pgo7Owo7 OyBWMTAgKDIwMjEtMDQtMzAgMTI6MTE6MTkgKzEyMDApLgo7OyAgIEZpeCBicm9rZW4gZmFjZXMg b24gaW5pdGlhbCBmcmFtZSAoZnJvbSBwcmlvciByZXZlcnNlIHZpZGVvIGZpeCkuCjs7ICAgUmVw b3J0ZWQtYnk6IFN0ZWZhbiBNb25uaWVyIDxtb25uaWVyIDxhdD4gaXJvLnVtb250cmVhbC5jYT4K OzsgICBBdXRob3JlZC1ieTogSmFzaGFuayBKZXJlbXkgPGphc2hhbmsgPGF0PiBydWxpbmdpYS5j b20uYXU+Ci0tLQogbGlzcC9jdXN0b20uZWwgICAgICAgICAgICAgICB8ICAyICstCiBsaXNwL2Zh Y2VzLmVsICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKysrKy0tCiBsaXNwL2ZyYW1lLmVsICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGxpc3AvcHJvZ21vZGVzL2VsaXNwLW1vZGUuZWwgfCAgMyAr LQogc3JjL2ZyYW1lLmMgICAgICAgICAgICAgICAgICB8IDIwICsrKysrKy0tLQogc3JjL2ZyYW1l LmggICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIHNyYy94ZmFjZXMuYyAgICAgICAgICAgICAg ICAgfCA4MyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDcgZmlsZXMgY2hh bmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlz cC9jdXN0b20uZWwgYi9saXNwL2N1c3RvbS5lbAppbmRleCAwNzhlM2E4Y2Y4Li5mZWFjOTlkMTFi IDEwMDY0NAotLS0gYS9saXNwL2N1c3RvbS5lbAorKysgYi9saXNwL2N1c3RvbS5lbApAQCAtOTI2 LDcgKzkyNiw3IEBAIGN1c3RvbS1wdXNoLXRoZW1lCiAJICA7OyB0aGUgdmFsdWUgdG8gYSBmYWtl IHRoZW1lLCBgY2hhbmdlZCcuICBJZiB0aGUgdGhlbWUgaXMKIAkgIDs7IGxhdGVyIGRpc2FibGVk LCB3ZSB1c2UgdGhpcyB0byBicmluZyBiYWNrIHRoZSBvbGQgdmFsdWUuCiAJICA7OwotCSAgOzsg Rm9yIGZhY2VzLCB3ZSBqdXN0IHVzZSBgZmFjZS1uZXctZnJhbWUtZGVmYXVsdHMnIHRvCisJICA7 OyBGb3IgZmFjZXMsIHdlIGp1c3QgdXNlIGBmYWNlLS1uZXctZnJhbWUtZGVmYXVsdHMnIHRvCiAJ ICA7OyByZWNvbXB1dGUgd2hlbiB0aGUgdGhlbWUgaXMgZGlzYWJsZWQuCiAJICAod2hlbiAoYW5k IChlcSBwcm9wICd0aGVtZS12YWx1ZSkKIAkJICAgICAoYm91bmRwIHN5bWJvbCkpCmRpZmYgLS1n aXQgYS9saXNwL2ZhY2VzLmVsIGIvbGlzcC9mYWNlcy5lbAppbmRleCA5OTY5MTQwZjBjLi5iZjI0 YTFkN2RhIDEwMDY0NAotLS0gYS9saXNwL2ZhY2VzLmVsCisrKyBiL2xpc3AvZmFjZXMuZWwKQEAg LTE3NiwxMCArMTc2LDI5IEBAIGZhY2UtZm9udC1yZWdpc3RyeS1hbHRlcm5hdGl2ZXMKIDs7OyBD cmVhdGlvbiwgY29weWluZy4KIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwogCisobWFrZS1vYnNvbGV0ZS12YXJp YWJsZQorICdmYWNlLW5ldy1mcmFtZS1kZWZhdWx0cworICJ1c2UgYGZhY2UtLW5ldy1mcmFtZS1k ZWZhdWx0cycgb3IgYGZhY2UtYWxpc3QnIGluc3RlYWQuIgorICIyOC4xIikKKworKGRlZnVuIGZy YW1lLWZhY2UtYWxpc3QgKCZvcHRpb25hbCBmcmFtZSkKKyAgIlJldHVybiBhbiBhbGlzdCBvZiBm cmFtZS1sb2NhbCBmYWNlcyBkZWZpbmVkIG9uIEZSQU1FLgorVGhpcyBhbGlzdCBpcyBhIGNvcHkg b2YgdGhlIGNvbnRlbnRzIG9mIGBmcmFtZS0tZmFjZS1oYXNoLXRhYmxlJy4KK0ZvciBpbnRlcm5h bCB1c2Ugb25seS4iCisgIChkZWNsYXJlIChvYnNvbGV0ZSBmcmFtZS0tZmFjZS1oYXNoLXRhYmxl ICIyOC4xIikpCisgIChsZXQgKChmYWNlcykpCisgICAgKG1hcGhhc2ggKGxhbWJkYSAoZmFjZSBz cGVjKQorICAgICAgICAgICAgICAgKGxldCAoKGZhY2UtaWQgIChjYXIgKGdldGhhc2ggZmFjZSBm YWNlLS1uZXctZnJhbWUtZGVmYXVsdHMpKSkpCisgICAgICAgICAgICAgICAgIChwdXNoIGAoLGZh Y2UtaWQgLGZhY2UgLiAsc3BlYykgZmFjZXMpKSkKKyAgICAgICAgICAgICAoZnJhbWUtLWZhY2Ut aGFzaC10YWJsZSBmcmFtZSkpCisgICAgKG1hcGNhciAjJ2NkciAoc29ydCBmYWNlcyAobGFtYmRh IChmMSBmMikgKDwgKGNhciBmMSkgKGNhciBmMikpKSkpKSkKIAogKGRlZnVuIGZhY2UtbGlzdCAo KQogICAiUmV0dXJuIGEgbGlzdCBvZiBhbGwgZGVmaW5lZCBmYWNlcy4iCi0gIChtYXBjYXIgIydj YXIgZmFjZS1uZXctZnJhbWUtZGVmYXVsdHMpKQorICAobGV0ICgoZmFjZXMpKQorICAgIChtYXBo YXNoIChsYW1iZGEgKGZhY2Ugc3BlYykgKHB1c2ggYCgsKGNhciBzcGVjKSAuICxmYWNlKSBmYWNl cykpCisgICAgICAgICAgICAgZmFjZS0tbmV3LWZyYW1lLWRlZmF1bHRzKQorICAgIChtYXBjYXIg IydjZHIgKHNvcnQgZmFjZXMgKGxhbWJkYSAoZjEgZjIpICg8IChjYXIgZjEpIChjYXIgZjIpKSkp KSkpCiAKIChkZWZ1biBtYWtlLWZhY2UgKGZhY2UpCiAgICJEZWZpbmUgYSBuZXcgZmFjZSB3aXRo IG5hbWUgRkFDRSwgYSBzeW1ib2wuCkBAIC0yMTE1LDYgKzIxMzQsOCBAQCB4LWNyZWF0ZS1mcmFt ZS13aXRoLWZhY2VzCiAgICAgKHVud2luZC1wcm90ZWN0CiAJKHByb2duCiAJICAoeC1zZXR1cC1m dW5jdGlvbi1rZXlzIGZyYW1lKQorCSAgKGRvbGlzdCAoZmFjZSAobnJldmVyc2UgKGZhY2UtbGlz dCkpKQorCSAgICAoZmFjZS1zcGVjLXJlY2FsYyBmYWNlIGZyYW1lKSkKIAkgICh4LWhhbmRsZS1y ZXZlcnNlLXZpZGVvIGZyYW1lIHBhcmFtZXRlcnMpCiAJICAoZnJhbWUtc2V0LWJhY2tncm91bmQt bW9kZSBmcmFtZSB0KQogCSAgKGZhY2Utc2V0LWFmdGVyLWZyYW1lLWRlZmF1bHQgZnJhbWUgcGFy YW1ldGVycykKQEAgLTIxNDUsNyArMjE2Niw3IEBAIHgtY3JlYXRlLWZyYW1lLXdpdGgtZmFjZXMK IChkZWZ1biBmYWNlLXNldC1hZnRlci1mcmFtZS1kZWZhdWx0IChmcmFtZSAmb3B0aW9uYWwgcGFy YW1ldGVycykKICAgIkluaXRpYWxpemUgdGhlIGZyYW1lLWxvY2FsIGZhY2VzIG9mIEZSQU1FLgog Q2FsY3VsYXRlIHRoZSBmYWNlIGRlZmluaXRpb25zIHVzaW5nIHRoZSBmYWNlIHNwZWNzLCBjdXN0 b20gdGhlbWUKLXNldHRpbmdzLCBYIHJlc291cmNlcywgYW5kIGBmYWNlLW5ldy1mcmFtZS1kZWZh dWx0cycuCitzZXR0aW5ncywgWCByZXNvdXJjZXMsIGFuZCBgZmFjZS0tbmV3LWZyYW1lLWRlZmF1 bHRzJy4KIEZpbmFsbHksIGFwcGx5IGFueSByZWxldmFudCBmYWNlIGF0dHJpYnV0ZXMgZm91bmQg YW1vbmdzdCB0aGUKIGZyYW1lIHBhcmFtZXRlcnMgaW4gUEFSQU1FVEVSUy4iCiAgIDs7IFRoZSBg cmV2ZXJzZScgaXMgc28gdGhhdCBgZGVmYXVsdCcgZ29lcyBmaXJzdC4KQEAgLTIxNTQsNyArMjE3 NSw3IEBAIGZhY2Utc2V0LWFmdGVyLWZyYW1lLWRlZmF1bHQKIAkocHJvZ24KIAkgIDs7IEluaXRp YWxpemUgZmFjZXMgZnJvbSBmYWNlIHNwZWMgYW5kIGN1c3RvbSB0aGVtZS4KIAkgIChmYWNlLXNw ZWMtcmVjYWxjIGZhY2UgZnJhbWUpCi0JICA7OyBBcHBseSBhdHRyaWJ1dGVzIHNwZWNpZmllZCBi eSBmYWNlLW5ldy1mcmFtZS1kZWZhdWx0cworCSAgOzsgQXBwbHkgYXR0cmlidXRlcyBzcGVjaWZp ZWQgYnkgZmFjZS0tbmV3LWZyYW1lLWRlZmF1bHRzCiAJICAoaW50ZXJuYWwtbWVyZ2UtaW4tZ2xv YmFsLWZhY2UgZmFjZSBmcmFtZSkpCiAgICAgICA7OyBEb24ndCBsZXQgaW52YWxpZCBzcGVjcyBw cmV2ZW50IGZyYW1lIGNyZWF0aW9uLgogICAgICAgKGVycm9yIG5pbCkpKQpkaWZmIC0tZ2l0IGEv bGlzcC9mcmFtZS5lbCBiL2xpc3AvZnJhbWUuZWwKaW5kZXggYWZmMWQ0NzllYy4uOTRlMGNmM2M2 YSAxMDA2NDQKLS0tIGEvbGlzcC9mcmFtZS5lbAorKysgYi9saXNwL2ZyYW1lLmVsCkBAIC0xMjMx LDcgKzEyMzEsNyBAQCBmcmFtZS1zZXQtYmFja2dyb3VuZC1tb2RlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgOzsgZHVyaW5nIHN0YXJ0dXAgd2l0aCAtcnYgb24gdGhlIGNvbW1hbmQKICAgICAg ICAgICAgICAgICAgICAgICAgICA7OyBsaW5lIGZvciB0aGUgaW5pdGlhbCBmcmFtZSwgYmVjYXVz ZSBmcmFtZXMKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBhcmUgbm90IHJlY29yZGVkIGlu IHRoZSBwZHVtcCBmaWxlLgotICAgICAgICAgICAgICAgICAgICAgICAgIChhc3NxIGZhY2UgKGZy YW1lLWZhY2UtYWxpc3QgZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRoYXNo IGZhY2UgKGZyYW1lLS1mYWNlLWhhc2gtdGFibGUpKQogICAgICAgICAgICAgICAgICAgICAgICAg IChmYWNlLXNwZWMtbWF0Y2gtcCBmYWNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChmYWNlLXVzZXItZGVmYXVsdC1zcGVjIGZhY2UpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lKSkpCmRpZmYgLS1naXQgYS9saXNw L3Byb2dtb2Rlcy9lbGlzcC1tb2RlLmVsIGIvbGlzcC9wcm9nbW9kZXMvZWxpc3AtbW9kZS5lbApp bmRleCBhNTZjNzA5M2U3Li43ZWQyZDNkMDhjIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9l bGlzcC1tb2RlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL2VsaXNwLW1vZGUuZWwKQEAgLTEzMjUs OCArMTMyNSw3IEBAIGVsaXNwLS1ldmFsLWRlZnVuLTEKIAkoKGVxIChjYXIgZm9ybSkgJ2N1c3Rv bS1kZWNsYXJlLWZhY2UpCiAJIDs7IFJlc2V0IHRoZSBmYWNlLgogCSAobGV0ICgoZmFjZS1zeW1i b2wgKGV2YWwgKG50aCAxIGZvcm0pIGxleGljYWwtYmluZGluZykpKQotCSAgIChzZXRxIGZhY2Ut bmV3LWZyYW1lLWRlZmF1bHRzCi0JCSAoYXNzcS1kZWxldGUtYWxsIGZhY2Utc3ltYm9sIGZhY2Ut bmV3LWZyYW1lLWRlZmF1bHRzKSkKKwkgICAocmVtaGFzaCBmYWNlLXN5bWJvbCBmYWNlLS1uZXct ZnJhbWUtZGVmYXVsdHMpCiAJICAgKHB1dCBmYWNlLXN5bWJvbCAnZmFjZS1kZWZmYWNlLXNwZWMg bmlsKQogCSAgIChwdXQgZmFjZS1zeW1ib2wgJ2ZhY2Utb3ZlcnJpZGUtc3BlYyBuaWwpKQogCSBm b3JtKQpkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmMgYi9zcmMvZnJhbWUuYwppbmRleCBlM2Q2NWRk MjhmLi4xYjdhNzEyNTE4IDEwMDY0NAotLS0gYS9zcmMvZnJhbWUuYworKysgYi9zcmMvZnJhbWUu YwpAQCAtMTAxNyw2ICsxMDE3LDEwIEBAIG1ha2VfZnJhbWUgKGJvb2wgbWluaV9wKQogICBydy0+ dG90YWxfbGluZXMgPSBGUkFNRV9MSU5FUyAoZikgLSAobWluaV9wID8gMSA6IDApOwogICBydy0+ cGl4ZWxfaGVpZ2h0ID0gcnctPnRvdGFsX2xpbmVzICogRlJBTUVfTElORV9IRUlHSFQgKGYpOwog CisgIGZzZXRfZmFjZV9oYXNoX3RhYmxlCisgICAgKGYsIG1ha2VfaGFzaF90YWJsZSAoaGFzaHRl c3RfZXEsIERFRkFVTFRfSEFTSF9TSVpFLCBERUZBVUxUX1JFSEFTSF9TSVpFLAorICAgICAgICAg ICAgICAgICAgICAgICAgIERFRkFVTFRfUkVIQVNIX1RIUkVTSE9MRCwgUW5pbCwgZmFsc2UpKTsK KwogICBpZiAobWluaV9wKQogICAgIHsKICAgICAgIG13LT50b3BfbGluZSA9IHJ3LT50b3RhbF9s aW5lczsKQEAgLTEzMjUsNyArMTMyOSw3IEBAIERFRlVOICgibWFrZS10ZXJtaW5hbC1mcmFtZSIs IEZtYWtlX3Rlcm1pbmFsX2ZyYW1lLCBTbWFrZV90ZXJtaW5hbF9mcmFtZSwKIHsKICAgc3RydWN0 IGZyYW1lICpmOwogICBzdHJ1Y3QgdGVybWluYWwgKnQgPSBOVUxMOwotICBMaXNwX09iamVjdCBm cmFtZSwgdGVtOworICBMaXNwX09iamVjdCBmcmFtZTsKICAgc3RydWN0IGZyYW1lICpzZiA9IFNF TEVDVEVEX0ZSQU1FICgpOwogCiAjaWZkZWYgTVNET1MKQEAgLTE0MDcsMTQgKzE0MTEsMTYgQEAg REVGVU4gKCJtYWtlLXRlcm1pbmFsLWZyYW1lIiwgRm1ha2VfdGVybWluYWxfZnJhbWUsIFNtYWtl X3Rlcm1pbmFsX2ZyYW1lLAogICBzdG9yZV9pbl9hbGlzdCAoJnBhcm1zLCBRbWluaWJ1ZmZlciwg UXQpOwogICBGbW9kaWZ5X2ZyYW1lX3BhcmFtZXRlcnMgKGZyYW1lLCBwYXJtcyk7CiAKLSAgLyog TWFrZSB0aGUgZnJhbWUgZmFjZSBhbGlzdCBiZSBmcmFtZS1zcGVjaWZpYywgc28gdGhhdCBlYWNo CisgIC8qIE1ha2UgdGhlIGZyYW1lIGZhY2UgaGFzaCBiZSBmcmFtZS1zcGVjaWZpYywgc28gdGhh dCBlYWNoCiAgICAgIGZyYW1lIGNvdWxkIGNoYW5nZSBpdHMgZmFjZSBkZWZpbml0aW9ucyBpbmRl cGVuZGVudGx5LiAgKi8KLSAgZnNldF9mYWNlX2FsaXN0IChmLCBGY29weV9hbGlzdCAoc2YtPmZh Y2VfYWxpc3QpKTsKLSAgLyogU2ltcGxlIEZjb3B5X2FsaXN0IGlzbid0IGVub3VnaCwgYmVjYXVz ZSB3ZSBuZWVkIHRoZSBjb250ZW50cyBvZgotICAgICB0aGUgdmVjdG9ycyB3aGljaCBhcmUgdGhl IENEUnMgb2YgYXNzb2NpYXRpb25zIGluIGZhY2VfYWxpc3QgdG8KKyAgZnNldF9mYWNlX2hhc2hf dGFibGUgKGYsIEZjb3B5X2hhc2hfdGFibGUgKHNmLT5mYWNlX2hhc2hfdGFibGUpKTsKKyAgLyog U2ltcGxlIGNvcHlfaGFzaF90YWJsZSBpc24ndCBlbm91Z2gsIGJlY2F1c2Ugd2UgbmVlZCB0aGUg Y29udGVudHMgb2YKKyAgICAgdGhlIHZlY3RvcnMgd2hpY2ggYXJlIHRoZSB2YWx1ZXMgaW4gZmFj ZV9oYXNoX3RhYmxlIHRvCiAgICAgIGJlIGNvcGllZCBhcyB3ZWxsLiAgKi8KLSAgZm9yICh0ZW0g PSBmLT5mYWNlX2FsaXN0OyBDT05TUCAodGVtKTsgdGVtID0gWENEUiAodGVtKSkKLSAgICBYU0VU Q0RSIChYQ0FSICh0ZW0pLCBGY29weV9zZXF1ZW5jZSAoWENEUiAoWENBUiAodGVtKSkpKTsKKyAg cHRyZGlmZl90IGlkeCA9IDA7CisgIHN0cnVjdCBMaXNwX0hhc2hfVGFibGUgKnRhYmxlID0gWEhB U0hfVEFCTEUgKGYtPmZhY2VfaGFzaF90YWJsZSk7CisgIGZvciAoaWR4ID0gMDsgaWR4IDwgdGFi bGUtPmNvdW50OyArK2lkeCkKKyAgICBzZXRfaGFzaF92YWx1ZV9zbG90ICh0YWJsZSwgaWR4LCBG Y29weV9zZXF1ZW5jZSAoSEFTSF9WQUxVRSAodGFibGUsIGlkeCkpKTsKIAogICBmLT5jYW5fc2V0 X3dpbmRvd19zaXplID0gdHJ1ZTsKICAgZi0+YWZ0ZXJfbWFrZV9mcmFtZSA9IHRydWU7CmRpZmYg LS1naXQgYS9zcmMvZnJhbWUuaCBiL3NyYy9mcmFtZS5oCmluZGV4IDc1YTBiMTg0YzEuLmU3MGY0 MThkYzkgMTAwNjQ0Ci0tLSBhL3NyYy9mcmFtZS5oCisrKyBiL3NyYy9mcmFtZS5oCkBAIC0xNTgs OCArMTU4LDggQEAgI2RlZmluZSBFTUFDU19GUkFNRV9ICiAgICAgIFRoZXJlIGFyZSBmb3VyIGFk ZGl0aW9uYWwgZWxlbWVudHMgb2YgbmlsIGF0IHRoZSBlbmQsIHRvIHRlcm1pbmF0ZS4gICovCiAg IExpc3BfT2JqZWN0IG1lbnVfYmFyX2l0ZW1zOwogCi0gIC8qIEFsaXN0IG9mIGVsZW1lbnRzIChG QUNFLU5BTUUgLiBGQUNFLVZFQ1RPUi1EQVRBKS4gICovCi0gIExpc3BfT2JqZWN0IGZhY2VfYWxp c3Q7CisgIC8qIEhhc2ggdGFibGUgb2YgRkFDRS1OQU1FIGtleXMgYW5kIEZBQ0UtVkVDVE9SLURB VEEgdmFsdWVzLiAgKi8KKyAgTGlzcF9PYmplY3QgZmFjZV9oYXNoX3RhYmxlOwogCiAgIC8qIEEg dmVjdG9yIHRoYXQgcmVjb3JkcyB0aGUgZW50aXJlIHN0cnVjdHVyZSBvZiB0aGlzIGZyYW1lJ3Mg bWVudSBiYXIuCiAgICAgIEZvciB0aGUgZm9ybWF0IG9mIHRoZSBkYXRhLCBzZWUgZXh0ZW5zaXZl IGNvbW1lbnRzIGluIHhtZW51LmMuCkBAIC02NjcsOSArNjY3LDkgQEAgZnNldF9jb25kZW1uZWRf c2Nyb2xsX2JhcnMgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgdmFsKQogICBmLT5jb25k ZW1uZWRfc2Nyb2xsX2JhcnMgPSB2YWw7CiB9CiBJTkxJTkUgdm9pZAotZnNldF9mYWNlX2FsaXN0 IChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IHZhbCkKK2ZzZXRfZmFjZV9oYXNoX3RhYmxl IChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IHZhbCkKIHsKLSAgZi0+ZmFjZV9hbGlzdCA9 IHZhbDsKKyAgZi0+ZmFjZV9oYXNoX3RhYmxlID0gdmFsOwogfQogI2lmIGRlZmluZWQgKEhBVkVf V0lORE9XX1NZU1RFTSkKIElOTElORSB2b2lkCmRpZmYgLS1naXQgYS9zcmMveGZhY2VzLmMgYi9z cmMveGZhY2VzLmMKaW5kZXggYWI0NDQwZjQ2YS4uZDg2YWRlZjYyYyAxMDA2NDQKLS0tIGEvc3Jj L3hmYWNlcy5jCisrKyBiL3NyYy94ZmFjZXMuYwpAQCAtOTUsOSArOTUsMTAgQEAgQ29weXJpZ2h0 IChDKSAxOTkzLTE5OTQsIDE5OTgtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICAgIHdpdGggdGhlIHN5bWJvbCBgZmFjZScgaW4gc2xvdCAwLCBhbmQgYSBzbG90IGZvciBlYWNo IG9mIHRoZSBmYWNlCiAgICBhdHRyaWJ1dGVzIG1lbnRpb25lZCBhYm92ZS4KIAotICAgVGhlcmUg aXMgYWxzbyBhIGdsb2JhbCBmYWNlIGFsaXN0IGBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMnLiAg RmFjZQotICAgZGVmaW5pdGlvbnMgZnJvbSB0aGlzIGxpc3QgYXJlIHVzZWQgdG8gaW5pdGlhbGl6 ZSBmYWNlcyBvZiBuZXdseQotICAgY3JlYXRlZCBmcmFtZXMuCisgICBUaGVyZSBpcyBhbHNvIGEg Z2xvYmFsIGZhY2UgbWFwIGBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMnLAorICAgY29udGFpbmlu ZyBjb25zZXMgb2YgKEZBQ0VfSUQgLiBGQUNFX0RFRklOSVRJT04pLiAgRmFjZSBkZWZpbml0aW9u cworICAgZnJvbSB0aGlzIHRhYmxlIGFyZSB1c2VkIHRvIGluaXRpYWxpemUgZmFjZXMgb2YgbmV3 bHkgY3JlYXRlZAorICAgZnJhbWVzLgogCiAgICBBIGZhY2UgZG9lc24ndCBoYXZlIHRvIHNwZWNp ZnkgYWxsIGF0dHJpYnV0ZXMuICBUaG9zZSBub3Qgc3BlY2lmaWVkCiAgICBoYXZlIGEgdmFsdWUg b2YgYHVuc3BlY2lmaWVkJy4gIEZhY2VzIHNwZWNpZnlpbmcgYWxsIGF0dHJpYnV0ZXMgYnV0CkBA IC0xOTYyLDEzICsxOTYzLDExIEBAIGxmYWNlX2Zyb21fZmFjZV9uYW1lX25vX3Jlc29sdmUgKHN0 cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgZmFjZV9uYW1lLAogICBMaXNwX09iamVjdCBsZmFj ZTsKIAogICBpZiAoZikKLSAgICBsZmFjZSA9IGFzc3Ffbm9fcXVpdCAoZmFjZV9uYW1lLCBmLT5m YWNlX2FsaXN0KTsKKyAgICBsZmFjZSA9IEZnZXRoYXNoIChmYWNlX25hbWUsIGYtPmZhY2VfaGFz aF90YWJsZSwgUW5pbCk7CiAgIGVsc2UKLSAgICBsZmFjZSA9IGFzc3Ffbm9fcXVpdCAoZmFjZV9u YW1lLCBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMpOworICAgIGxmYWNlID0gQ0RSIChGZ2V0aGFz aCAoZmFjZV9uYW1lLCBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMsIFFuaWwpKTsKIAotICBpZiAo Q09OU1AgKGxmYWNlKSkKLSAgICBsZmFjZSA9IFhDRFIgKGxmYWNlKTsKLSAgZWxzZSBpZiAoc2ln bmFsX3ApCisgIGlmIChzaWduYWxfcCAmJiBOSUxQIChsZmFjZSkpCiAgICAgc2lnbmFsX2Vycm9y ICgiSW52YWxpZCBmYWNlIiwgZmFjZV9uYW1lKTsKIAogICBjaGVja19sZmFjZSAobGZhY2UpOwpA QCAtMjg2NywxMSArMjg2Niw2IEBAIERFRlVOICgiaW50ZXJuYWwtbWFrZS1saXNwLWZhY2UiLCBG aW50ZXJuYWxfbWFrZV9saXNwX2ZhY2UsCiAgIC8qIEFkZCBhIGdsb2JhbCBkZWZpbml0aW9uIGlm IHRoZXJlIGlzIG5vbmUuICAqLwogICBpZiAoTklMUCAoZ2xvYmFsX2xmYWNlKSkKICAgICB7Ci0g ICAgICBnbG9iYWxfbGZhY2UgPSBtYWtlX3ZlY3RvciAoTEZBQ0VfVkVDVE9SX1NJWkUsIFF1bnNw ZWNpZmllZCk7Ci0gICAgICBBU0VUIChnbG9iYWxfbGZhY2UsIDAsIFFmYWNlKTsKLSAgICAgIFZm YWNlX25ld19mcmFtZV9kZWZhdWx0cyA9IEZjb25zIChGY29ucyAoZmFjZSwgZ2xvYmFsX2xmYWNl KSwKLQkJCQkJVmZhY2VfbmV3X2ZyYW1lX2RlZmF1bHRzKTsKLQogICAgICAgLyogQXNzaWduIHRo ZSBuZXcgTGlzcCBmYWNlIGEgdW5pcXVlIElELiAgVGhlIG1hcHBpbmcgZnJvbSBMaXNwCiAJIGZh Y2UgaWQgdG8gTGlzcCBmYWNlIGlzIGdpdmVuIGJ5IHRoZSB2ZWN0b3IgbGZhY2VfaWRfdG9fbmFt ZS4KIAkgVGhlIG1hcHBpbmcgZnJvbSBMaXNwIGZhY2UgdG8gTGlzcCBmYWNlIGlkIGlzIGdpdmVu IGJ5IHRoZQpAQCAtMjg4MSw5ICsyODc1LDE0IEBAIERFRlVOICgiaW50ZXJuYWwtbWFrZS1saXNw LWZhY2UiLCBGaW50ZXJuYWxfbWFrZV9saXNwX2ZhY2UsCiAJICB4cGFsbG9jIChsZmFjZV9pZF90 b19uYW1lLCAmbGZhY2VfaWRfdG9fbmFtZV9zaXplLCAxLCBNQVhfRkFDRV9JRCwKIAkJICAgc2l6 ZW9mICpsZmFjZV9pZF90b19uYW1lKTsKIAorICAgICAgTGlzcF9PYmplY3QgZmFjZV9pZCA9IG1h a2VfZml4bnVtIChuZXh0X2xmYWNlX2lkKTsKICAgICAgIGxmYWNlX2lkX3RvX25hbWVbbmV4dF9s ZmFjZV9pZF0gPSBmYWNlOwotICAgICAgRnB1dCAoZmFjZSwgUWZhY2UsIG1ha2VfZml4bnVtIChu ZXh0X2xmYWNlX2lkKSk7CisgICAgICBGcHV0IChmYWNlLCBRZmFjZSwgZmFjZV9pZCk7CiAgICAg ICArK25leHRfbGZhY2VfaWQ7CisKKyAgICAgIGdsb2JhbF9sZmFjZSA9IG1ha2VfdmVjdG9yIChM RkFDRV9WRUNUT1JfU0laRSwgUXVuc3BlY2lmaWVkKTsKKyAgICAgIEFTRVQgKGdsb2JhbF9sZmFj ZSwgMCwgUWZhY2UpOworICAgICAgRnB1dGhhc2ggKGZhY2UsIEZjb25zIChmYWNlX2lkLCBnbG9i YWxfbGZhY2UpLCBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMpOwogICAgIH0KICAgZWxzZSBpZiAo ZiA9PSBOVUxMKQogICAgIGZvciAoaSA9IDE7IGkgPCBMRkFDRV9WRUNUT1JfU0laRTsgKytpKQpA QCAtMjg5Niw3ICsyODk1LDcgQEAgREVGVU4gKCJpbnRlcm5hbC1tYWtlLWxpc3AtZmFjZSIsIEZp bnRlcm5hbF9tYWtlX2xpc3BfZmFjZSwKIAl7CiAJICBsZmFjZSA9IG1ha2VfdmVjdG9yIChMRkFD RV9WRUNUT1JfU0laRSwgUXVuc3BlY2lmaWVkKTsKIAkgIEFTRVQgKGxmYWNlLCAwLCBRZmFjZSk7 Ci0JICBmc2V0X2ZhY2VfYWxpc3QgKGYsIEZjb25zIChGY29ucyAoZmFjZSwgbGZhY2UpLCBmLT5m YWNlX2FsaXN0KSk7CisgICAgICAgICAgRnB1dGhhc2ggKGZhY2UsIGxmYWNlLCBmLT5mYWNlX2hh c2hfdGFibGUpOwogCX0KICAgICAgIGVsc2UKIAlmb3IgKGkgPSAxOyBpIDwgTEZBQ0VfVkVDVE9S X1NJWkU7ICsraSkKQEAgLTMwNTcsNyArMzA1Niw3IEBAIERFRlVOICgiaW50ZXJuYWwtc2V0LWxp c3AtZmFjZS1hdHRyaWJ1dGUiLCBGaW50ZXJuYWxfc2V0X2xpc3BfZmFjZV9hdHRyaWJ1dGUsCiAg ICAgICBmID0gTlVMTDsKICAgICAgIGxmYWNlID0gbGZhY2VfZnJvbV9mYWNlX25hbWUgKE5VTEws IGZhY2UsIHRydWUpOwogCi0gICAgICAvKiBXaGVuIHVwZGF0aW5nIGZhY2UtbmV3LWZyYW1lLWRl ZmF1bHRzLCB3ZSBwdXQgOmlnbm9yZS1kZWZmYWNlCisgICAgICAvKiBXaGVuIHVwZGF0aW5nIGZh Y2UtLW5ldy1mcmFtZS1kZWZhdWx0cywgd2UgcHV0IDppZ25vcmUtZGVmZmFjZQogCSB3aGVyZSB0 aGUgY2FsbGVyIHdhbnRzIGB1bnNwZWNpZmllZCcuICBUaGlzIGZvcmNlcyB0aGUgZnJhbWUKIAkg ZGVmYXVsdHMgdG8gaWdub3JlIHRoZSBkZWZmYWNlIHZhbHVlLiAgT3RoZXJ3aXNlLCB0aGUgZGVm ZmFjZQogCSB3aWxsIHRha2UgZWZmZWN0LCB3aGljaCBpcyBnZW5lcmFsbHkgbm90IHdoYXQgaXMg aW50ZW5kZWQuCkBAIC0zNjQyLDcgKzM2NDEsNyBAQCB1cGRhdGVfZmFjZV9mcm9tX2ZyYW1lX3Bh cmFtZXRlciAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBwYXJhbSwKICAgLyogSWYgdGhl cmUgYXJlIG5vIGZhY2VzIHlldCwgZ2l2ZSB1cC4gIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiBjYWxs ZWQKICAgICAgZnJvbSBGeF9jcmVhdGVfZnJhbWUsIGFuZCB3ZSBkbyB0aGUgbmVjZXNzYXJ5IHRo aW5ncyBsYXRlciBpbgogICAgICBmYWNlLXNldC1hZnRlci1mcmFtZS1kZWZhdWx0cy4gICovCi0g IGlmIChOSUxQIChmLT5mYWNlX2FsaXN0KSkKKyAgaWYgKFhGSVhOQVQgKEZoYXNoX3RhYmxlX2Nv dW50IChmLT5mYWNlX2hhc2hfdGFibGUpKSA9PSAwKQogICAgIHJldHVybjsKIAogICBpZiAoRVEg KHBhcmFtLCBRZm9yZWdyb3VuZF9jb2xvcikpCkBAIC00MzA4LDE0ICs0MzA3LDEzIEBAIERFRlVO ICgiaW50ZXJuYWwtbGlzcC1mYWNlLWVtcHR5LXAiLCBGaW50ZXJuYWxfbGlzcF9mYWNlX2VtcHR5 X3AsCiAgIHJldHVybiBpID09IExGQUNFX1ZFQ1RPUl9TSVpFID8gUXQgOiBRbmlsOwogfQogCi0K LURFRlVOICgiZnJhbWUtZmFjZS1hbGlzdCIsIEZmcmFtZV9mYWNlX2FsaXN0LCBTZnJhbWVfZmFj ZV9hbGlzdCwKK0RFRlVOICgiZnJhbWUtLWZhY2UtaGFzaC10YWJsZSIsIEZmcmFtZV9mYWNlX2hh c2hfdGFibGUsIFNmcmFtZV9mYWNlX2hhc2hfdGFibGUsCiAgICAgICAgMCwgMSwgMCwKLSAgICAg ICBkb2M6IC8qIFJldHVybiBhbiBhbGlzdCBvZiBmcmFtZS1sb2NhbCBmYWNlcyBkZWZpbmVkIG9u IEZSQU1FLgorICAgICAgIGRvYzogLyogUmV0dXJuIGEgaGFzaCB0YWJsZSBvZiBmcmFtZS1sb2Nh bCBmYWNlcyBkZWZpbmVkIG9uIEZSQU1FLgogRm9yIGludGVybmFsIHVzZSBvbmx5LiAgKi8pCiAg IChMaXNwX09iamVjdCBmcmFtZSkKIHsKLSAgcmV0dXJuIGRlY29kZV9saXZlX2ZyYW1lIChmcmFt ZSktPmZhY2VfYWxpc3Q7CisgIHJldHVybiBkZWNvZGVfbGl2ZV9mcmFtZSAoZnJhbWUpLT5mYWNl X2hhc2hfdGFibGU7CiB9CiAKIApAQCAtNjgzMiwzMCArNjgzMCwzMiBAQCBERUZVTiAoInNob3ct ZmFjZS1yZXNvdXJjZXMiLCBGc2hvd19mYWNlX3Jlc291cmNlcywgU3Nob3dfZmFjZV9yZXNvdXJj ZXMsCiAKICNpZmRlZiBIQVZFX1BEVU1QRVIKIC8qIEFsbCB0aGUgZmFjZXMgZGVmaW5lZCBkdXJp bmcgbG9hZHVwIGFyZSByZWNvcmRlZCBpbgotICAgZmFjZS1uZXctZnJhbWUtZGVmYXVsdHMsIHdp dGggdGhlIGxhc3QgZmFjZSBmaXJzdCBpbiB0aGUgbGlzdC4gIFdlCi0gICBuZWVkIHRvIHNldCBu ZXh0X2xmYWNlX2lkIHRvIHRoZSBuZXh0IGZhY2UgSUQgbnVtYmVyLCBzbyB0aGF0IGFueQotICAg bmV3IGZhY2VzIGRlZmluZWQgaW4gdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZSBmYWNlIElEcyBkaWZm ZXJlbnQgZnJvbQotICAgdGhvc2UgZGVmaW5lZCBkdXJpbmcgbG9hZHVwLiAgV2UgYWxzbyBuZWVk IHRvIHNldCB1cCB0aGUKLSAgIGxmYWNlX2lkX3RvX25hbWVbXSBhcnJheSBmb3IgdGhlIGZhY2Vz IHRoYXQgd2VyZSBkZWZpbmVkIGR1cmluZwotICAgbG9hZHVwLiAgKi8KKyAgIGZhY2UtbmV3LWZy YW1lLWRlZmF1bHRzLiAgV2UgbmVlZCB0byBzZXQgbmV4dF9sZmFjZV9pZCB0byB0aGUgbmV4dAor ICAgZmFjZSBJRCBudW1iZXIsIHNvIHRoYXQgYW55IG5ldyBmYWNlcyBkZWZpbmVkIGluIHRoaXMg c2Vzc2lvbiB3aWxsCisgICBoYXZlIGZhY2UgSURzIGRpZmZlcmVudCBmcm9tIHRob3NlIGRlZmlu ZWQgZHVyaW5nIGxvYWR1cC4gIFdlIGFsc28KKyAgIG5lZWQgdG8gc2V0IHVwIHRoZSBsZmFjZV9p ZF90b19uYW1lW10gYXJyYXkgZm9yIHRoZSBmYWNlcyB0aGF0IHdlcmUKKyAgIGRlZmluZWQgZHVy aW5nIGxvYWR1cC4gICovCiB2b2lkCiBpbml0X3hmYWNlcyAodm9pZCkKIHsKLSAgaWYgKENPTlNQ IChWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMpKQorICBpbnQgbmZhY2VzID0gWEZJWE5BVCAoRmhh c2hfdGFibGVfY291bnQgKFZmYWNlX25ld19mcmFtZV9kZWZhdWx0cykpOworICBpZiAobmZhY2Vz ID4gMCkKICAgICB7CiAgICAgICAvKiBBbGxvY2F0ZSB0aGUgbGZhY2VfaWRfdG9fbmFtZVtdIGFy cmF5LiAgKi8KLSAgICAgIGxmYWNlX2lkX3RvX25hbWVfc2l6ZSA9IG5leHRfbGZhY2VfaWQgPQot CVhGSVhOQVQgKEZsZW5ndGggKFZmYWNlX25ld19mcmFtZV9kZWZhdWx0cykpOworICAgICAgbGZh Y2VfaWRfdG9fbmFtZV9zaXplID0gbmV4dF9sZmFjZV9pZCA9IG5mYWNlczsKICAgICAgIGxmYWNl X2lkX3RvX25hbWUgPSB4bm1hbGxvYyAobmV4dF9sZmFjZV9pZCwgc2l6ZW9mICpsZmFjZV9pZF90 b19uYW1lKTsKIAogICAgICAgLyogU3RvcmUgdGhlIGZhY2VzLiAgKi8KLSAgICAgIExpc3BfT2Jq ZWN0IHRhaWw7Ci0gICAgICBpbnQgaSA9IG5leHRfbGZhY2VfaWQgLSAxOwotICAgICAgZm9yICh0 YWlsID0gVmZhY2VfbmV3X2ZyYW1lX2RlZmF1bHRzOyBDT05TUCAodGFpbCk7IHRhaWwgPSBYQ0RS ICh0YWlsKSkKKyAgICAgIHN0cnVjdCBMaXNwX0hhc2hfVGFibGUqIHRhYmxlID0gWEhBU0hfVEFC TEUgKFZmYWNlX25ld19mcmFtZV9kZWZhdWx0cyk7CisgICAgICBmb3IgKHB0cmRpZmZfdCBpZHgg PSAwOyBpZHggPCBuZmFjZXM7ICsraWR4KQogCXsKLQkgIExpc3BfT2JqZWN0IGxmYWNlID0gWENB UiAodGFpbCk7Ci0JICBlYXNzZXJ0IChpID49IDApOwotCSAgbGZhY2VfaWRfdG9fbmFtZVtpLS1d ID0gWENBUiAobGZhY2UpOworCSAgTGlzcF9PYmplY3QgbGZhY2UgPSBIQVNIX0tFWSAodGFibGUs IGlkeCk7CisJICBMaXNwX09iamVjdCBmYWNlX2lkID0gQ0FSIChIQVNIX1ZBTFVFICh0YWJsZSwg aWR4KSk7CisgICAgICAgICAgaWYgKEZJWE5BVFAgKGZhY2VfaWQpKSB7CisgICAgICAgICAgICAg IGludCBpZCA9IFhGSVhOQVQgKGZhY2VfaWQpOworICAgICAgICAgICAgICBlYXNzZXJ0IChpZCA+ PSAwKTsKKyAgICAgICAgICAgICAgbGZhY2VfaWRfdG9fbmFtZVtpZF0gPSBsZmFjZTsKKyAgICAg ICAgICAgIH0KIAl9CiAgICAgfQogICBmYWNlX2F0dHJfc3ltWzBdID0gUWZhY2U7CkBAIC03MDEx LDcgKzcwMTEsNyBAQCBzeW1zX29mX3hmYWNlcyAodm9pZCkKICAgZGVmc3ViciAoJlNpbnRlcm5h bF9jb3B5X2xpc3BfZmFjZSk7CiAgIGRlZnN1YnIgKCZTaW50ZXJuYWxfbWVyZ2VfaW5fZ2xvYmFs X2ZhY2UpOwogICBkZWZzdWJyICgmU2ZhY2VfZm9udCk7Ci0gIGRlZnN1YnIgKCZTZnJhbWVfZmFj ZV9hbGlzdCk7CisgIGRlZnN1YnIgKCZTZnJhbWVfZmFjZV9oYXNoX3RhYmxlKTsKICAgZGVmc3Vi ciAoJlNkaXNwbGF5X3N1cHBvcnRzX2ZhY2VfYXR0cmlidXRlc19wKTsKICAgZGVmc3ViciAoJlNj b2xvcl9kaXN0YW5jZSk7CiAgIGRlZnN1YnIgKCZTaW50ZXJuYWxfc2V0X2ZvbnRfc2VsZWN0aW9u X29yZGVyKTsKQEAgLTcwMzUsOSArNzAzNSwxMiBAQCBzeW1zX29mX3hmYWNlcyAodm9pZCkKIHRo ZSAic3BlY2lmaXR5IiBvZiBhIGZhY2Ugc3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGJlIGxldC1i b3VuZAogb25seSBmb3IgdGhpcyBwdXJwb3NlLiAgKi8pOwogCi0gIERFRlZBUl9MSVNQICgiZmFj ZS1uZXctZnJhbWUtZGVmYXVsdHMiLCBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMsCi0gICAgZG9j OiAvKiBMaXN0IG9mIGdsb2JhbCBmYWNlIGRlZmluaXRpb25zIChmb3IgaW50ZXJuYWwgdXNlIG9u bHkuKSAgKi8pOwotICBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMgPSBRbmlsOworICBERUZWQVJf TElTUCAoImZhY2UtLW5ldy1mcmFtZS1kZWZhdWx0cyIsIFZmYWNlX25ld19mcmFtZV9kZWZhdWx0 cywKKyAgICBkb2M6IC8qIEhhc2ggdGFibGUgb2YgZ2xvYmFsIGZhY2UgZGVmaW5pdGlvbnMgKGZv ciBpbnRlcm5hbCB1c2Ugb25seS4pICAqLyk7CisgIFZmYWNlX25ld19mcmFtZV9kZWZhdWx0cyA9 CisgICAgLyogMzMgZW50cmllcyBpcyBlbm91Z2ggdG8gZml0IGFsbCBiYXNpYyBmYWNlcyAqLwor ICAgIG1ha2VfaGFzaF90YWJsZSAoaGFzaHRlc3RfZXEsIDMzLCBERUZBVUxUX1JFSEFTSF9TSVpF LAorICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9SRUhBU0hfVEhSRVNIT0xELCBRbmlsLCBm YWxzZSk7CiAKICAgREVGVkFSX0xJU1AgKCJmYWNlLWRlZmF1bHQtc3RpcHBsZSIsIFZmYWNlX2Rl ZmF1bHRfc3RpcHBsZSwKICAgICBkb2M6IC8qIERlZmF1bHQgc3RpcHBsZSBwYXR0ZXJuIHVzZWQg b24gbW9ub2Nocm9tZSBkaXNwbGF5cy4KLS0gCjIuMzEuMQoK --Multipart_Thu_May_13_15:56:24_2021-1-- --pgp-sign-Multipart_Thu_May_13_15:56:24_2021-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit Content-Description: OpenPGP Digital Signature -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEMs5zGc3ddpJcaCdJrDCBpVWB0sAFAmCco2gACgkQrDCBpVWB 0sCm1w/7BeGUOYMjEzApl/2PmfqiIQrT2F1ul2cMMXku/ffMBjP85Vk39nEmyOnN BNBtkjEC+Qcv94oRebpPM1KzNIiIkHTNL+ifLXcKM7q6HtyauWZolDz8PK97tfgJ UZ1XmjyXps6E4X4dl5oco0UEIJ/Vh2teNO4tuPiDmFs/OsNcmGYrA6d6MEZNmP24 McPxPHjeEV5jsjC635EGCixviLNiBGw4ufdyyv7Y5a4fL3YA+2BGSFWJgkNO/voM f+EE9yRMxgmTKROJJTHMh803CtS9oOHajqkgFpvcjFuwNe9BQ0kmdj19zCRkdI9d fr1NG63JOVx+e0ASd1BjZIuP1nxzrcfQeCBAGNr0iccpdAXtbelOtP6Y62uqtVuT EUB6tOaeiKnewL+jvhtwWJe4J+dqCSA0Zxah6UV1rrabmTvxqoO3gy5sC+LHoDj9 NbceQ+cCa9IMWbdJDmDPML/+vRwlQ4bxO/19uJlMJqWhyoxmuEYtye+zb6K43CBG yWwo0GP71wqUU/780e4E4Kdr20vCKcCpyg8nIqzmWASHpA4j5pExbueIGG7POJp5 +ianvrqHXny0E4Ahng1h2fQvpZkp+mgZewewxpiIhncDZeqnQL9FZS8jhLW/wVo4 +6uRF2/Iw7F2nYZz3Y1e06xey9XsnH7/bzs9BBpXd1cK8z1AlKQ= =Gnn8 -----END PGP SIGNATURE----- --pgp-sign-Multipart_Thu_May_13_15:56:24_2021-1--