From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrew De Angelis Newsgroups: gmane.emacs.bugs,gmane.emacs.devel Subject: bug#60703: Patches to xwidget code Date: Tue, 10 Jan 2023 00:14:28 -0500 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000ec3e0a05f1e1f516" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27945"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org, 60703@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 10 07:00:42 2023 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 1pF7gf-00078q-I5 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 10 Jan 2023 07:00:41 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pF7g5-0000fD-DQ; Tue, 10 Jan 2023 01:00:05 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pF7g3-0000ep-9W for bug-gnu-emacs@gnu.org; Tue, 10 Jan 2023 01:00:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pF7g2-0007q4-PE for bug-gnu-emacs@gnu.org; Tue, 10 Jan 2023 01:00:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pF7g2-0000iU-Jx for bug-gnu-emacs@gnu.org; Tue, 10 Jan 2023 01:00:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Andrew De Angelis Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 10 Jan 2023 06:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 60703 X-GNU-PR-Package: emacs X-Debbugs-Original-To: emacs-devel@gnu.org, bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16733303622658 (code B ref -1); Tue, 10 Jan 2023 06:00:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Jan 2023 05:59:22 +0000 Original-Received: from localhost ([127.0.0.1]:38525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pF7fN-0000gj-H1 for submit@debbugs.gnu.org; Tue, 10 Jan 2023 00:59:22 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:55530) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pF6yB-000816-II for submit@debbugs.gnu.org; Tue, 10 Jan 2023 00:14:45 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pF6yA-0000h9-VB; Tue, 10 Jan 2023 00:14:42 -0500 Original-Received: from mail-vs1-xe34.google.com ([2607:f8b0:4864:20::e34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pF6y9-0001TN-ED; Tue, 10 Jan 2023 00:14:42 -0500 Original-Received: by mail-vs1-xe34.google.com with SMTP id i188so11095115vsi.8; Mon, 09 Jan 2023 21:14:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=IsCFUsFhZ+LXwZIQMv1Qi3VT9+qP8SUf3Cm30uKUlpI=; b=hALx5oympoxzDfNwN10GqhmhUGJVusUwXbD7L6099xKfamOuWOoek5wV43my+qEbEo PQYY2sGAxXpfCnTxRt/05dOS/CwnDNz/q+BNEW+O/cGmegxMz1CUjmL7NLJNAFsCeQu6 ahi2/nIWu7fqz0PxQcx+EnCfLSbZhUhzxJKptDhovBI0pzZMPuZqHtQ91mhYuzrqv5Wv 7jCtkAfDeaUFoXbzX/B/DdO5WERqR/mhU4bKzo4ZIhvRQRK71vcvlFA4WpN7Rk+ygR0F IZcSqF4Ifs6OdIqQPlVCfu9ntncFwsWmy4zxqU9ef95hJ/EUhbkH6NnbrihHNeOoSaBI HytQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=IsCFUsFhZ+LXwZIQMv1Qi3VT9+qP8SUf3Cm30uKUlpI=; b=fsa+6AAGclL1WsqaB69MWtAeUkyD3iTFxrBXj1fG54lfuKdcDkPhFUrfauIB1ITWf9 v+4AJOQ0PeK3gHy7wGOwaQEsZwqyoeEG1DU67pqPHeMgQCRhBXsy17AEESWfn7H3hF7f ptAwBed61vUdPtdLHa+vKS9l93B7EgOvZ3175tc3joM3XOgrSLkcQYVLoDn3qLBiQBEt Sjhwitqp/SNP+3J7pKWGFCmlBIqr6b0BSihF5JNAsLDkLBh1OPZEgnRdB0JwcECc88pz Dtx8k5v0Aix5FSgYFr3PpSJc94NYOP/j+iJtskH43/9OS5CN/WsAwHYNd687uSV7TPxH Z1rA== X-Gm-Message-State: AFqh2kq2mjCR0cM4Chx+t8zhB6GNnJZ212YD/CPPArtdCMXVn8miXlm8 owhZA19OOY3gF1Xv+++tYoyv0gwe4I1gKQUuR+hoKjIQu88= X-Google-Smtp-Source: AMrXdXtcybgdzD6cgBlpi68C0eUDbl2bE3YS0zlsD/u2PPO99WsgWiezNs9TTuDlhYqfmumenXTBxCXTYRdcnI0/FDc= X-Received: by 2002:a05:6102:374d:b0:3d0:af13:3b6 with SMTP id u13-20020a056102374d00b003d0af1303b6mr639055vst.65.1673327679366; Mon, 09 Jan 2023 21:14:39 -0800 (PST) Received-SPF: pass client-ip=2607:f8b0:4864:20::e34; envelope-from=bobodeangelis@gmail.com; helo=mail-vs1-xe34.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 10 Jan 2023 00:59:17 -0500 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:253061 gmane.emacs.devel:302305 Archived-At: --000000000000ec3e0a05f1e1f516 Content-Type: multipart/alternative; boundary="000000000000ec3e0705f1e1f514" --000000000000ec3e0705f1e1f514 Content-Type: text/plain; charset="UTF-8" Hello everyone and thanks for all your work! I have some fixes to the xwidget code that I'd like to contribute. These should achieve three things 1) fix `xwidget-webkit-current-url' in xwidget.el so that it actually displays the current URL 2) fix the Objective-C code in nsxwidget.m to eliminate memory leaks 3) implement the function `xwidget-webkit-estimated-load-progress' in Objective-C, making this functionality available for macOS as well Regarding 2), I have tested my changes with the Instruments app within the XCode dev tools. I was able to test them on two different machines: a MacBook Air M2 running macOS Ventura 13, and an Intel processor running macOS Big Sur 11.6.7. When testing with Instruments, it appears that Emacs isn't leaking memory anymore. I am still seeing some leaks, but according to Instruments, the responsible libraries are system libraries, and not Emacs itself. If possible, I would appreciate it if other people can test/profile these changes as well, and share their feedback. Assuming the changes are correct and accepted, would it be possible to include them in the upcoming Emacs 29.1 release? Technically, none of these are new features; it's just fixes to existing features. I intend to keep working on xwidget support for macOS (fixing remaining issues and implementing missing functionalities), but I'm not sure when I'll be able to get to it; for now I'd like to start by contributing these first major fixes. Thanks in advance for your feedback; let me know if you need anything else from me. Best, Andrew --000000000000ec3e0705f1e1f514 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello everyone and thanks for all your work!

I have some fixes to the xwidget code that I'd like to= contribute.

These should achieve three things
=
1) fix `xwidget-webkit-current-url' in xwidget.el so that it= actually displays the current URL
2) fix the Objective-C code in= nsxwidget.m to eliminate memory leaks
3) implement the function = `xwidget-webkit-estimated-load-progress' in Objective-C, making this fu= nctionality available for macOS as well

Regard= ing 2), I have tested my changes with the Instruments app within the XCode = dev tools. I was able to test them on two different machines: a MacBook Air= M2 running macOS Ventura 13, and an Intel processor running macOS Big Sur = 11.6.7.
When testing with Instruments, it appears that Emacs isn&= #39;t leaking memory anymore. I am still seeing some leaks, but according t= o Instruments, the responsible libraries are system libraries, and not Emac= s itself.
If possible, I would appreciate it if other people can = test/profile these changes as well, and share their feedback.
Assuming the changes are correct and accepted, would it be poss= ible to include them in the upcoming Emacs 29.1 release?
Technica= lly, none of these are new features; it's just fixes to existing featur= es.

I intend to keep working on xwidget support fo= r macOS (fixing remaining issues and implementing missing functionalities),= but I'm not sure when I'll be able to get to it; for now I'd l= ike to start by contributing these first major fixes.

<= div>Thanks in advance for your feedback; let me know if you need anything e= lse from me.

Best,
Andrew
--000000000000ec3e0705f1e1f514-- --000000000000ec3e0a05f1e1f516 Content-Type: application/octet-stream; name="xwidget-patches.patch" Content-Disposition: attachment; filename="xwidget-patches.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lcpr78lc0 ZGlmZiAtLWdpdCBhL2xpc3AveHdpZGdldC5lbCBiL2xpc3AveHdpZGdldC5lbAppbmRleCBhYmJk YTI5MDgxLi44MDk1ZmE5ZGI1IDEwMDY0NAotLS0gYS9saXNwL3h3aWRnZXQuZWwKKysrIGIvbGlz cC94d2lkZ2V0LmVsCkBAIC05MjQsOCArOTI0LDkgQEAgeHdpZGdldC13ZWJraXQtcmVsb2FkCiAo ZGVmdW4geHdpZGdldC13ZWJraXQtY3VycmVudC11cmwgKCkKICAgIkRpc3BsYXkgdGhlIGN1cnJl bnQgeHdpZGdldCB3ZWJraXQgVVJMIGFuZCBwbGFjZSBpdCBvbiB0aGUgYGtpbGwtcmluZycuIgog ICAoaW50ZXJhY3RpdmUgbmlsIHh3aWRnZXQtd2Via2l0LW1vZGUpCi0gIChsZXQgKCh1cmwgKHh3 aWRnZXQtd2Via2l0LXVyaSAoeHdpZGdldC13ZWJraXQtY3VycmVudC1zZXNzaW9uKSkpKQotICAg IChtZXNzYWdlICJVUkw6ICVzIiAoa2lsbC1uZXcgKG9yIHVybCAiIikpKSkpCisgIChsZXQgKCh1 cmwgKG9yICh4d2lkZ2V0LXdlYmtpdC11cmkgKHh3aWRnZXQtd2Via2l0LWN1cnJlbnQtc2Vzc2lv bikpICIiKSkpCisgICAgKGtpbGwtbmV3IHVybCkKKyAgICAobWVzc2FnZSAiVVJMOiAlcyIgdXJs KSkpCiAKIChkZWZ1biB4d2lkZ2V0LXdlYmtpdC1icm93c2UtaGlzdG9yeSAoKQogICAiRGlzcGxh eSBhIGJ1ZmZlciBjb250YWluaW5nIHRoZSBoaXN0b3J5IG9mIHBhZ2UgbG9hZHMuIgpkaWZmIC0t Z2l0IGEvc3JjL25zeHdpZGdldC5oIGIvc3JjL25zeHdpZGdldC5oCmluZGV4IDhkNTVmYWM1MzIu LjJiNTU5NmY5MDUgMTAwNjQ0Ci0tLSBhL3NyYy9uc3h3aWRnZXQuaAorKysgYi9zcmMvbnN4d2lk Z2V0LmgKQEAgLTM2LDYgKzM2LDggQEAgI2RlZmluZSBOU1hXSURHRVRfSF9JTkNMVURFRAogTGlz cF9PYmplY3QgbnN4d2lkZ2V0X3dlYmtpdF90aXRsZSAoc3RydWN0IHh3aWRnZXQgKnh3KTsKIHZv aWQgbnN4d2lkZ2V0X3dlYmtpdF9nb3RvX3VyaSAoc3RydWN0IHh3aWRnZXQgKnh3LCBjb25zdCBj aGFyICp1cmkpOwogdm9pZCBuc3h3aWRnZXRfd2Via2l0X2dvdG9faGlzdG9yeSAoc3RydWN0IHh3 aWRnZXQgKnh3LCBpbnQgcmVsX3Bvcyk7Citkb3VibGUgbnN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0 ZWRfbG9hZF9wcm9ncmVzcyhzdHJ1Y3QgeHdpZGdldCAqeHcpOwordm9pZCBuc3h3aWRnZXRfd2Vi a2l0X3N0b3BfbG9hZGluZyAoc3RydWN0IHh3aWRnZXQgKnh3KTsKIHZvaWQgbnN4d2lkZ2V0X3dl YmtpdF96b29tIChzdHJ1Y3QgeHdpZGdldCAqeHcsIGRvdWJsZSB6b29tX2NoYW5nZSk7CiB2b2lk IG5zeHdpZGdldF93ZWJraXRfZXhlY3V0ZV9zY3JpcHQgKHN0cnVjdCB4d2lkZ2V0ICp4dywgY29u c3QgY2hhciAqc2NyaXB0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXNwX09iamVjdCBmdW4pOwpkaWZmIC0tZ2l0IGEvc3JjL25zeHdpZGdldC5tIGIvc3JjL25zeHdp ZGdldC5tCmluZGV4IGUxZmJkNzQ5YjYuLmFhZjg2N2JjZGQgMTAwNjQ0Ci0tLSBhL3NyYy9uc3h3 aWRnZXQubQorKysgYi9zcmMvbnN4d2lkZ2V0Lm0KQEAgLTU3LDEyICs1NywxOCBAQCBAaW50ZXJm YWNlIFh3V2ViVmlldyA6IFdLV2ViVmlldwogQGVuZAogQGltcGxlbWVudGF0aW9uIFh3V2ViVmll dyA6IFdLV2ViVmlldwogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgW3N1cGVyIGRlYWxsb2NdOwor fQorCiAtIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKICAgICAgIGNvbmZpZ3VyYXRp b246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgICAgICB4 d2lkZ2V0OihzdHJ1Y3QgeHdpZGdldCAqKXh3CiB7CiAgIC8qIFNjcmlwdCBjb250cm9sbGVyIHRv IGFkZCBzY3JpcHQgbWVzc2FnZSBoYW5kbGVyIGFuZCB1c2VyIHNjcmlwdC4gICovCi0gIFdLVXNl ckNvbnRlbnRDb250cm9sbGVyICpzY3JpcHRvciA9IFtbV0tVc2VyQ29udGVudENvbnRyb2xsZXIg YWxsb2NdIGluaXRdOworICBXS1VzZXJDb250ZW50Q29udHJvbGxlciAqc2NyaXB0b3IgPSBbW1tX S1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdXRvcmVsZWFzZV07CiAgIGNvbmZpZ3VyYXRpb24udXNlckNv bnRlbnRDb250cm9sbGVyID0gc2NyaXB0b3I7CiAKICAgLyogRW5hYmxlIGluc3BlY3QgZWxlbWVu dCBjb250ZXh0IG1lbnUgaXRlbSBmb3IgZGVidWdnaW5nLiAgKi8KQEAgLTgxLDcgKzg3LDggQEAg LSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCiAgIGlmIChzZWxmKQogICAgIHsKICAg ICAgIHNlbGYueHcgPSB4dzsKLSAgICAgIHNlbGYudXJsU2NyaXB0QmxvY2tlZCA9IFtbTlNNdXRh YmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07CisgICAgICBzZWxmLnVybFNjcmlwdEJsb2NrZWQg PSBbW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhdXRvcmVsZWFzZV07CiAgICAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0 ZSA9IHNlbGY7CiAgICAgICBzZWxmLlVJRGVsZWdhdGUgPSBzZWxmOwogICAgICAgc2VsZi5jdXN0 b21Vc2VyQWdlbnQgPQpAQCAtODksMTEgKzk2LDEzIEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KENH UmVjdClmcmFtZQogICAgICAgICBAIiBBcHBsZVdlYktpdC82MDMuMy44IChLSFRNTCwgbGlrZSBH ZWNrbykiCiAgICAgICAgIEAiIFZlcnNpb24vMTEuMC4xIFNhZmFyaS82MDMuMy44IjsKICAgICAg IFtzY3JpcHRvciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpzZWxmIG5hbWU6QCJrZXlEb3duIl07 Ci0gICAgICBbc2NyaXB0b3IgYWRkVXNlclNjcmlwdDpbW1dLVXNlclNjcmlwdCBhbGxvY10KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFdpdGhTb3VyY2U6eHdTY3JpcHQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWU6Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l bnRTdGFydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JNYWluRnJhbWVPbmx5 Ok5PXV07CisgICAgICBXS1VzZXJTY3JpcHQgKnVzZXJTY3JpcHQgPSBbW1tXS1VzZXJTY3JpcHQg YWxsb2NdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0V2l0aFNvdXJj ZTp4d1NjcmlwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlv blRpbWU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdLVXNlclNjcmlw dEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvck1haW5GcmFtZU9ubHk6Tk9dCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGF1dG9yZWxlYXNlXTsKKyAgICAgIFtzY3JpcHRvciBhZGRVc2VyU2NyaXB0OnVz ZXJTY3JpcHRdOwogICAgIH0KICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMDIsNyArMTExLDI3IEBA IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldwogZGlkRmluaXNoTmF2aWdhdGlv bjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgogewogICBpZiAoRVEgKEZidWZmZXJfbGl2ZV9w IChzZWxmLnh3LT5idWZmZXIpLCBRdCkpCi0gICAgc3RvcmVfeHdpZGdldF9ldmVudF9zdHJpbmcg KHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAiIik7CisgICAgc3RvcmVfeHdpZGdldF9ldmVudF9z dHJpbmcgKHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAibG9hZC1maW5pc2hlZCIpOworfQorCist ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5h dmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KK3sKKyAgaWYgKEVRIChGYnVmZmVy X2xpdmVfcCAoc2VsZi54dy0+YnVmZmVyKSwgUXQpKQorICAgIHN0b3JlX3h3aWRnZXRfZXZlbnRf c3RyaW5nIChzZWxmLnh3LCAibG9hZC1jaGFuZ2VkIiwgImxvYWQtc3RhcnRlZCIpOworfQorCist ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKK2RpZFJlY2VpdmVTZXJ2ZXJSZWRp cmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgor eworICBpZiAoRVEgKEZidWZmZXJfbGl2ZV9wIChzZWxmLnh3LT5idWZmZXIpLCBRdCkpCisgICAg c3RvcmVfeHdpZGdldF9ldmVudF9zdHJpbmcgKHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAibG9h ZC1yZWRpcmVjdGVkIik7Cit9CisKKy8vIFN0YXJ0IGxvYWRpbmcgV0tXZWJWaWV3CistICh2b2lk KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29tbWl0TmF2aWdhdGlvbjooV0tOYXZp Z2F0aW9uICopbmF2aWdhdGlvbgoreworICBpZiAoRVEgKEZidWZmZXJfbGl2ZV9wIChzZWxmLnh3 LT5idWZmZXIpLCBRdCkpIC8vIHdoYXQgZXhhY3RseSBpcyB0aGlzIHRlc3QgZm9yCisgICAgc3Rv cmVfeHdpZGdldF9ldmVudF9zdHJpbmcgKHNlbGYueHcsICJsb2FkLWNoYW5nZWQiLCAibG9hZC1j b21taXR0ZWQiKTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3CkBA IC0zNDMsNiArMzcyLDIwIEBAIC0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJD b250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlcgogICB9CiB9CiAKK2RvdWJs ZQorbnN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcyhzdHJ1Y3QgeHdpZGdl dCAqeHcpCit7CisgIFh3V2ViVmlldyAqeHdXZWJWaWV3ID0gKFh3V2ViVmlldyAqKSB4dy0+eHdX aWRnZXQ7CisgIHJldHVybiB4d1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3M7Cit9CisKK3ZvaWQK K25zeHdpZGdldF93ZWJraXRfc3RvcF9sb2FkaW5nIChzdHJ1Y3QgeHdpZGdldCAqeHcpCit7Cisg IFh3V2ViVmlldyAqeHdXZWJWaWV3ID0gKFh3V2ViVmlldyAqKSB4dy0+eHdXaWRnZXQ7CisgIFt4 d1dlYlZpZXcgc3RvcExvYWRpbmddOworfQorCiB2b2lkCiBuc3h3aWRnZXRfd2Via2l0X3pvb20g KHN0cnVjdCB4d2lkZ2V0ICp4dywgZG91YmxlIHpvb21fY2hhbmdlKQogewpAQCAtNDUyLDcgKzQ5 NSw4IEBAIC0gKEJPT0wpaXNGbGlwcGVkIHsgcmV0dXJuIFlFUzsgfQogICBOU1JlY3QgcmVjdCA9 IE5TTWFrZVJlY3QgKDAsIDAsIHh3LT53aWR0aCwgeHctPmhlaWdodCk7CiAgIHh3LT54d1dpZGdl dCA9IFtbWHdXZWJWaWV3IGFsbG9jXQogICAgICAgICAgICAgICAgICAgIGluaXRXaXRoRnJhbWU6 cmVjdAotICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246W1tXS1dlYlZpZXdDb25maWd1 cmF0aW9uIGFsbG9jXSBpbml0XQorICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246W1tb V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXV0b3JlbGVhc2VdCiAgICAgICAgICAgICAgICAgICAgICAgICAgeHdp ZGdldDp4d107CiAgIHh3LT54d1dpbmRvdyA9IFtbWHdXaW5kb3cgYWxsb2NdCiAgICAgICAgICAg ICAgICAgICAgaW5pdFdpdGhGcmFtZTpyZWN0XTsKQEAgLTQ3MCwxNiArNTE0LDE4IEBAIC0gKEJP T0wpaXNGbGlwcGVkIHsgcmV0dXJuIFlFUzsgfQogICAgICAgICAoKFh3V2ViVmlldyAqKSB4dy0+ eHdXaWRnZXQpLmNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgICAgW3Nj cmlwdG9yIHJlbW92ZUFsbFVzZXJTY3JpcHRzXTsKICAgICAgIFtzY3JpcHRvciByZW1vdmVTY3Jp cHRNZXNzYWdlSGFuZGxlckZvck5hbWU6QCJrZXlEb3duIl07Ci0gICAgICBbc2NyaXB0b3IgcmVs ZWFzZV07CisKICAgICAgIGlmICh4dy0+eHYpCiAgICAgICAgIHh3LT54di0+bW9kZWwgPSBRbmls OyAvKiBNYWtlIHN1cmUgcmVsYXRlZCB2aWV3IHN0YWxlLiAgKi8KIAogICAgICAgLyogVGhpcyBz dG9wcyBwbGF5aW5nIGF1ZGlvIHdoZW4gYSB4d2lkZ2V0LXdlYmtpdCBidWZmZXIgaXMKLSAgICAg ICAgIGtpbGxlZC4gIEkgY291bGQgbm90IGZpbmQgb3RoZXIgc29sdXRpb24uICAqLworICAgICAg ICAga2lsbGVkLiAgSSBjb3VsZCBub3QgZmluZCBvdGhlciBzb2x1dGlvbi4KKyAgICAgICAgIFRP RE86IGltcHJvdmUgdGhpcyAqLwogICAgICAgbnN4d2lkZ2V0X3dlYmtpdF9nb3RvX3VyaSAoeHcs ICJhYm91dDpibGFuayIpOwogCiAgICAgICBbKChYd1dlYlZpZXcgKikgeHctPnh3V2lkZ2V0KS51 cmxTY3JpcHRCbG9ja2VkIHJlbGVhc2VdOwogICAgICAgW3h3LT54d1dpZGdldCByZW1vdmVGcm9t U3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsKKwogICAgICAgW3h3LT54d1dpZGdldCBy ZWxlYXNlXTsKICAgICAgIFt4dy0+eHdXaW5kb3cgcmVtb3ZlRnJvbVN1cGVydmlld1dpdGhvdXRO ZWVkaW5nRGlzcGxheV07CiAgICAgICBbeHctPnh3V2luZG93IHJlbGVhc2VdOwpkaWZmIC0tZ2l0 IGEvc3JjL3h3aWRnZXQuYyBiL3NyYy94d2lkZ2V0LmMKaW5kZXggZWZlMjcwNTU2Mi4uYjk1NTBk YTQ2MCAxMDA2NDQKLS0tIGEvc3JjL3h3aWRnZXQuYworKysgYi9zcmMveHdpZGdldC5jCkBAIC01 NCw2ICs1NCw3IEBAIENvcHlyaWdodCAoQykgMjAxMS0yMDIzIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogCiAjaW5jbHVkZSA8bWF0aC5oPgogCisKIHN0YXRpYyBMaXNwX09iamVjdCBp ZF90b194d2lkZ2V0X21hcDsKIHN0YXRpYyBMaXNwX09iamVjdCBpbnRlcm5hbF94d2lkZ2V0X3Zp ZXdfbGlzdDsKIHN0YXRpYyBMaXNwX09iamVjdCBpbnRlcm5hbF94d2lkZ2V0X2xpc3Q7CkBAIC00 OTAsMTAgKzQ5MSwxMCBAQCBERUZVTiAoInh3aWRnZXQtcGVyZm9ybS1saXNweS1ldmVudCIsCiB7 CiAgIHN0cnVjdCB4d2lkZ2V0ICp4dzsKICAgc3RydWN0IGZyYW1lICpmID0gTlVMTDsKLSAgaW50 IGNoYXJhY3RlciA9IC0xLCBrZXljb2RlID0gLTE7Ci0gIGludCBtb2RpZmllcnMgPSAwOwogCiAj aWZkZWYgVVNFX0dUSworICBpbnQgY2hhcmFjdGVyID0gLTEsIGtleWNvZGUgPSAtMTsKKyAgaW50 IG1vZGlmaWVycyA9IDA7CiAgIEdka0V2ZW50ICp4Z19ldmVudDsKICAgR3RrQ29udGFpbmVyQ2xh c3MgKmtsYXNzOwogICBHdGtXaWRnZXQgKndpZGdldDsKQEAgLTMwNjMsNiArMzA2NCwzNiBAQCBE RUZVTiAoInh3aWRnZXQtd2Via2l0LXRpdGxlIiwKICNlbmRpZgogfQogCitERUZVTiAoInh3aWRn ZXQtd2Via2l0LWVzdGltYXRlZC1sb2FkLXByb2dyZXNzIiwKKyAgICAgICBGeHdpZGdldF93ZWJr aXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MsIFN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0ZWRfbG9h ZF9wcm9ncmVzcywKKyAgICAgICAxLCAxLCAwLCBkb2M6IC8qIEdldCB0aGUgZXN0aW1hdGVkIGxv YWQgcHJvZ3Jlc3Mgb2YgWFdJREdFVCwgYSBXZWJLaXQgd2lkZ2V0LgorUmV0dXJuIGEgdmFsdWUg cmFuZ2luZyBmcm9tIDAuMCB0byAxLjAsIGJhc2VkIG9uIGhvdyBjbG9zZSBYV0lER0VUCitpcyB0 byBjb21wbGV0ZWx5IGxvYWRpbmcgaXRzIHBhZ2UuICAqLykKKyAgKExpc3BfT2JqZWN0IHh3aWRn ZXQpCit7CisgIHN0cnVjdCB4d2lkZ2V0ICp4dzsKKyNpZmRlZiBVU0VfR1RLCisgIFdlYktpdFdl YlZpZXcgKndlYnZpZXc7CisjZW5kaWYKKyAgZG91YmxlIHZhbHVlOworCisgIENIRUNLX0xJVkVf WFdJREdFVCAoeHdpZGdldCk7CisgIHh3ID0gWFhXSURHRVQgKHh3aWRnZXQpOworICBDSEVDS19X RUJLSVRfV0lER0VUICh4dyk7CisKKyAgYmxvY2tfaW5wdXQgKCk7CisjaWZkZWYgVVNFX0dUSwor ICB3ZWJ2aWV3ID0gV0VCS0lUX1dFQl9WSUVXICh4dy0+d2lkZ2V0X29zcik7CisgIHZhbHVlID0g d2Via2l0X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcyAod2Vidmlldyk7Cisj ZWxpZiBkZWZpbmVkIE5TX0lNUExfQ09DT0EKKyAgdmFsdWUgPSBuc3h3aWRnZXRfd2Via2l0X2Vz dGltYXRlZF9sb2FkX3Byb2dyZXNzICh4dyk7CisjZW5kaWYKKworICB1bmJsb2NrX2lucHV0ICgp OworCisgIHJldHVybiBtYWtlX2Zsb2F0ICh2YWx1ZSk7Cit9CisKIERFRlVOICgieHdpZGdldC13 ZWJraXQtZ290by11cmkiLAogICAgICAgIEZ4d2lkZ2V0X3dlYmtpdF9nb3RvX3VyaSwgU3h3aWRn ZXRfd2Via2l0X2dvdG9fdXJpLAogICAgICAgIDIsIDIsIDAsCkBAIC0zODEwLDI4ICszODQxLDYg QEAgREVGVU4gKCJ4d2lkZ2V0LXdlYmtpdC1iYWNrLWZvcndhcmQtbGlzdCIsIEZ4d2lkZ2V0X3dl YmtpdF9iYWNrX2ZvcndhcmRfbGlzdCwKICAgcmV0dXJuIGxpc3QzIChiYWNrLCBoZXJlLCBmb3J3 YXJkKTsKIH0KIAotREVGVU4gKCJ4d2lkZ2V0LXdlYmtpdC1lc3RpbWF0ZWQtbG9hZC1wcm9ncmVz cyIsCi0gICAgICAgRnh3aWRnZXRfd2Via2l0X2VzdGltYXRlZF9sb2FkX3Byb2dyZXNzLCBTeHdp ZGdldF93ZWJraXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MsCi0gICAgICAgMSwgMSwgMCwgZG9j OiAvKiBHZXQgdGhlIGVzdGltYXRlZCBsb2FkIHByb2dyZXNzIG9mIFhXSURHRVQsIGEgV2ViS2l0 IHdpZGdldC4KLVJldHVybiBhIHZhbHVlIHJhbmdpbmcgZnJvbSAwLjAgdG8gMS4wLCBiYXNlZCBv biBob3cgY2xvc2UgWFdJREdFVAotaXMgdG8gY29tcGxldGVseSBsb2FkaW5nIGl0cyBwYWdlLiAg Ki8pCi0gIChMaXNwX09iamVjdCB4d2lkZ2V0KQotewotICBzdHJ1Y3QgeHdpZGdldCAqeHc7Ci0g IFdlYktpdFdlYlZpZXcgKndlYnZpZXc7Ci0gIGRvdWJsZSB2YWx1ZTsKLQotICBDSEVDS19MSVZF X1hXSURHRVQgKHh3aWRnZXQpOwotICB4dyA9IFhYV0lER0VUICh4d2lkZ2V0KTsKLSAgQ0hFQ0tf V0VCS0lUX1dJREdFVCAoeHcpOwotCi0gIGJsb2NrX2lucHV0ICgpOwotICB3ZWJ2aWV3ID0gV0VC S0lUX1dFQl9WSUVXICh4dy0+d2lkZ2V0X29zcik7Ci0gIHZhbHVlID0gd2Via2l0X3dlYl92aWV3 X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcyAod2Vidmlldyk7Ci0gIHVuYmxvY2tfaW5wdXQg KCk7Ci0KLSAgcmV0dXJuIG1ha2VfZmxvYXQgKHZhbHVlKTsKLX0KICNlbmRpZgogCiBERUZVTiAo Inh3aWRnZXQtd2Via2l0LXNldC1jb29raWUtc3RvcmFnZS1maWxlIiwKQEAgLTM4NzQsMTkgKzM4 ODMsMjMgQEAgREVGVU4gKCJ4d2lkZ2V0LXdlYmtpdC1zdG9wLWxvYWRpbmciLCBGeHdpZGdldF93 ZWJraXRfc3RvcF9sb2FkaW5nLAogWFdJREdFVCBhcyBwYXJ0IG9mIGxvYWRpbmcgYSBwYWdlLiAg Ki8pCiAgIChMaXNwX09iamVjdCB4d2lkZ2V0KQogewotI2lmZGVmIFVTRV9HVEsKICAgc3RydWN0 IHh3aWRnZXQgKnh3OworI2lmZGVmIFVTRV9HVEsKICAgV2ViS2l0V2ViVmlldyAqd2VidmlldzsK KyNlbmRpZgogCiAgIENIRUNLX0xJVkVfWFdJREdFVCAoeHdpZGdldCk7CiAgIHh3ID0gWFhXSURH RVQgKHh3aWRnZXQpOwogICBDSEVDS19XRUJLSVRfV0lER0VUICh4dyk7CiAKICAgYmxvY2tfaW5w dXQgKCk7CisjaWZkZWYgVVNFX0dUSwogICB3ZWJ2aWV3ID0gV0VCS0lUX1dFQl9WSUVXICh4dy0+ d2lkZ2V0X29zcik7CiAgIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcgKHdlYnZpZXcpOwot ICB1bmJsb2NrX2lucHV0ICgpOworI2VsaWYgZGVmaW5lZCBOU19JTVBMX0NPQ09BCisgIG5zeHdp ZGdldF93ZWJraXRfc3RvcF9sb2FkaW5nICh4dyk7CiAjZW5kaWYKKyAgdW5ibG9ja19pbnB1dCAo KTsKIAogICByZXR1cm4gUW5pbDsKIH0KQEAgLTM5MzYsOCArMzk0OSw5IEBAIHN5bXNfb2ZfeHdp ZGdldCAodm9pZCkKICNpZmRlZiBVU0VfR1RLCiAgIGRlZnN1YnIgKCZTeHdpZGdldF93ZWJraXRf bG9hZF9odG1sKTsKICAgZGVmc3ViciAoJlN4d2lkZ2V0X3dlYmtpdF9iYWNrX2ZvcndhcmRfbGlz dCk7Ci0gIGRlZnN1YnIgKCZTeHdpZGdldF93ZWJraXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3Mp OwogI2VuZGlmCisKKyAgZGVmc3ViciAoJlN4d2lkZ2V0X3dlYmtpdF9lc3RpbWF0ZWRfbG9hZF9w cm9ncmVzcyk7CiAgIGRlZnN1YnIgKCZTa2lsbF94d2lkZ2V0KTsKIAogICBERUZTWU0gKFFDeHdp ZGdldCwgIjp4d2lkZ2V0Iik7Cg== --000000000000ec3e0a05f1e1f516--