From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jared Finder via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#68765: 30.0.50; Adding window-tool-bar package. Date: Sat, 01 Jun 2024 21:17:58 -0700 Message-ID: References: <07df5e8408054bcae5968066b0cebf34@finder.org> <86fry0vihy.fsf@gnu.org> <86fry08di9.fsf@mail.linkov.net> <86cyrg5hc0.fsf@mail.linkov.net> <865xvyoupe.fsf@mail.linkov.net> <86frur76uj.fsf@gnu.org> <791456a05f91c68549027ea1ea33eaf6@finder.org> <84a5dcf2833598c5b588ab6dd4f5c762@finder.org> <86le4fxa41.fsf@mail.linkov.net> <86frufe9i9.fsf@gnu.org> <8cfec392c3f9259b7499ebd4f605bc25@finder.org> <86pltib8m7.fsf@gnu.org> <1d18b11671667fefa925dbc41423d547@finder.org> <86cypd58ak.fsf@gnu.org> <8dbddd7bed38100561a1555da18a3a08@finder.org> <86ttilygb6.fsf@gnu.org> <67cc1f1b694041bfaf12dab7ef161ec8@finder.org> <86o78sx5z4.fsf@gnu.org> <65a70df3c5e0edf72fb6d6e1dda99c22@finder.org> <861q5owh5v.fsf@gnu.org> Reply-To: Jared Finder Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_1bbc60d09472d5dd2a966e06cfde9c08" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5322"; mail-complaints-to="usenet@ciao.gmane.io" Cc: philipk@posteo.net, 68765@debbugs.gnu.org, monnier@iro.umontreal.ca, juri@linkov.net To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jun 02 06:19:07 2024 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 1sDcgV-0001BN-9Y for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 02 Jun 2024 06:19:07 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sDcgG-0006KJ-6S; Sun, 02 Jun 2024 00:18:52 -0400 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 1sDcgE-0006K3-Mz for bug-gnu-emacs@gnu.org; Sun, 02 Jun 2024 00:18:50 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sDcgE-00065q-Ez for bug-gnu-emacs@gnu.org; Sun, 02 Jun 2024 00:18:50 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sDcgQ-0002M8-4L for bug-gnu-emacs@gnu.org; Sun, 02 Jun 2024 00:19:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jared Finder Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 02 Jun 2024 04:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68765 X-GNU-PR-Package: emacs Original-Received: via spool by 68765-submit@debbugs.gnu.org id=B68765.17173018989009 (code B ref 68765); Sun, 02 Jun 2024 04:19:02 +0000 Original-Received: (at 68765) by debbugs.gnu.org; 2 Jun 2024 04:18:18 +0000 Original-Received: from localhost ([127.0.0.1]:57633 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sDcfh-0002LE-BF for submit@debbugs.gnu.org; Sun, 02 Jun 2024 00:18:18 -0400 Original-Received: from greenhill.hpalace.com ([192.155.80.58]:56314) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sDcfb-0002Kz-9d for 68765@debbugs.gnu.org; Sun, 02 Jun 2024 00:18:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=finder.org; s=2018; t=1717301878; bh=HuDmvCD7PSKc6nfPUnwrlWjDxaG7XUHoRvyDsqgXWPs=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=uV9PZ6WvTUQbv51IbNAznTg0908lPLF8j9Buxb0dIBZNSbOGnOy/S0rOrVvUXADle 2pkNYTPbsz3FzyYqy47BKPTtWPYmEaxpY4HhHVmL7qr7d5tBpUSSMZsGv5nFcYrsMe AMZg4GVv+hbSzPLOsKACFArhtvHNdv+eN4MofzytcgVKgkV7aSBXaE6KpyX/IAskij g2tKWTmDPJDt3GKbr1tc+9u1UBKvVTIJ32rzG1R6K46vyGhPf1LmfsMjatIzZWeGg5 wv2O95O18u3mvQ2TtivzMF0/DVWzo3eUQEx1zuBrjcXk8+wGRXTy8C/2nv7l5goSNh RXcbKEIXoXByA== Original-Received: from mail.finder.org (unknown [192.155.80.58]) by greenhill.hpalace.com (Postfix) with ESMTPSA id 455077A1; Sun, 2 Jun 2024 04:17:58 +0000 (UTC) In-Reply-To: <861q5owh5v.fsf@gnu.org> X-Sender: jared@finder.org 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:286355 Archived-At: --=_1bbc60d09472d5dd2a966e06cfde9c08 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Thank you for all the feedback. Updated patch attached. On 2024-05-26 11:40, Eli Zaretskii wrote: >> Date: Sun, 26 May 2024 09:20:56 -0700 >> From: Jared Finder >> Cc: juri@linkov.net, 68765@debbugs.gnu.org, philipk@posteo.net, >> monnier@iro.umontreal.ca >> >> >> +@findex global-window-tool-bar-mode >> >> + The command @code{global-window-tool-bar-mode} toggles the display >> >> of >> >> +a tool bar at the top of each window. When enabled, multiple windows >> >> +can display their own tool bar simultaneously. To conserve space, a >> >> +window tool bar is only shown if the tool bar for that window's >> >> current >> >> +buffer is different from the global (default) tool bar. The most >> >> common >> >> +way a buffer has a different tool bar is due to its major mode, so >> >> you >> >> +can think of the window tool bar as showing a major mode's tool bar >> >> if >> >> +it exists. >> > >> > So, let me understand what happens under this global mode. By >> > default, the frame's tool bar changes according to the major mode of >> > the buffer shown in the frame's selected window. As a very frequent >> > example, entering the minibuffer from a buffer whose mode is, say, >> > Dired or Rmail or Info, changes the tool bar. When that happens, some >> > windows which previously didn't display their tool bar because it was >> > identical to the frame's tool bar will now display their tool bars. >> > Right? And when you exit the minibuffer, those window-specific tool >> > bars will again disappear, right? Wouldn't that cause annoying >> > flickering of the display? (I know that setting >> > tool-bar-always-show-default non-nil can prevent that, but I'm asking >> > about the default behavior.) >> >> No, this is not the behavior. The window tool bar displays that >> buffer's binding of . The window tool bar is displayed in >> the >> tab line of each window and doesn't pay attention to what the current >> buffer or window is. > > But this means that the following text: > >>> To conserve space, >>> a window tool bar is only shown if the tool bar for that window's >>> current buffer is different from the global (default) tool bar > > is at least inaccurate. Specifically, if the frame's global tool bar > changes as result of some command, the identity of the tool bars of > windows to that of the frame is not re-examined. So if some window > decided that its tool bar is not to be displayed, it will remain > undisplayed until that window shows a different buffer or its buffer > changes its major mode. Is that correct? If not, why not? Your understanding here is accurate. I consider this behavior a bug that I'd like to fix (in normal use it rarely happens). I suppose I could use add-variable-watcher to detect all changes to tool-bar-map and update tool bar visibility. I'd like to make sure to do this correctly and not cause a significant performance hit. Should such a temporary limitation be documented in the manual? I added a section to describe this limitation to my patch, but I don't know if it is appropriate. > Or maybe I don't understand well enough what you mean by "The window > tool bar is displayed in the tab line of each window and doesn't pay > attention to what the current buffer or window is." You are using > here terminology that is confusing: there's no "current window" in > Emacs, only the "selected window", and it is unclear whether by > "current buffer" you mean the global current buffer (the one returned > by the function current-buffer) or the buffer shown in a window (since > you also say "the window's current buffer", another term that we do > not use). Thanks for helping me here with terminology here. Looking over the manual, it seems the proper terms are "current buffer", "selected window", and "buffer displayed in a window". I have updated my patch to use these terms. >> > Btw, what exactly is the meaning of "the tool bar of the window is >> > different from the global tool bar"? How are tool bars compared? For >> > example, a button on the tool bar can have the :visible attribute, >> > which will cause the icon not to appear under some conditions -- will >> > a tool bar with that icon on display be considered "different" from a >> > tool bar where the icon is not shown due to :visible conditions? >> >> It's specifically using the following test: >> >> (eq tool-bar-map >> (default-value 'tool-bar-map)) > > So a frame's tool bar can completely change its look due to :visible, > and Emacs will still consider it "equal" to the tool bar of some > window where those :visible conditions yield a completely different > look? Does that make sense? From a functionality standpoint, I think it makes a lot of sense. It's about if there's a major mode specific tool bar, not just if the list of buttons is different. Major modes with custom tool bars are recommended to set tool-bar-map locally and that's what all customizations in core Emacs do. An eq comparison properly catches this. I have updated the patch to refer to the tool bar binding being different to try to communicate this. > I'm beginning to think that the feature whereby we don't display the > window's tool bar under some conditions "to conserve space" is more > confusing and hard to document than is useful, and perhaps we should > simply show the window's tool bar unconditionally? I find it really useful to have this auto-show/hide behavior. As I wrote in the docs, "you can think of the window tool bar as showing a major mode specific tool bar if it exists". The most prominent other source of a custom tool bar is isearch. Having no space taken up when editing a text file, then having the tool bar appear when I hit C-s lines up with what I see in many other programs. I'd be sad to see this behavior removed. > So what I would like us to say in the manual is that the value of > window-tool-bar-format Just to be clear -- there is no new line as you requested a while back. The mode just alters the value of tab-line-format. > and of tab-line-format should produce what is > expected from these lines: a row of tabs for tab-line and a row of > icons for the tool bar. The reader should understand that having a > tab-line-format whose value is "%b %f", for example, makes no sense, > although it will work. (In general, most or all %-elements of mode > line and header line make no sense in tab-line and tool bar. It is > hardly an accident that tab-line-format's value is just (:eval FUNC), > in stark contrast to the value of mode-line-format and > header-line-format in modes in which it is non-nil.) > > Did I succeed to explain my concerns? Yes, I think I understand. I have updated my patch. -- MJF --=_1bbc60d09472d5dd2a966e06cfde9c08 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-Adding-documentation-for-window-tool-bar-bug-68765.patch Content-Disposition: attachment; filename=0001-Adding-documentation-for-window-tool-bar-bug-68765.patch; size=13847 RnJvbSA3OTcyMDY4ZDQ2ZjdiNDBmYjU0YTZlMmI4MDJmYzY1ZGU5NzNjZjU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJlZCBGaW5kZXIgPGphcmVkQGZpbmRlci5vcmc+CkRhdGU6 IE1vbiwgMjAgTWF5IDIwMjQgMjE6NTk6MTQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGRpbmcg ZG9jdW1lbnRhdGlvbiBmb3Igd2luZG93LXRvb2wtYmFyIChidWcjNjg3NjUpCgoqIGRvYy9lbWFj cy9lbWFjcy50ZXhpIChUb3ApOgoqIGRvYy9lbWFjcy9mcmFtZXMudGV4aSAoVG9vbCBCYXJzKToK KiBkb2MvZW1hY3MvZ2xvc3NhcnkudGV4aSAoR2xvc3NhcnkpOgoqIGRvYy9lbWFjcy9tb2Rlcy50 ZXhpIChNaW5vciBNb2Rlcyk6IE1lbnRpb24gV2luZG93IFRvb2wgQmFyCmFuZCBhZGQgeHJlZi4K KiBkb2MvZW1hY3Mvd2luZG93cy50ZXhpIChXaW5kb3dzLCBUYWIgTGluZSk6IE5ldyBkb2N1bWVu dGF0aW9uLgoqIGRvYy9saXNwcmVmL2VsaXNwLnRleGkgKFRvcCk6CiogZG9jL2xpc3ByZWYvbW9k ZXMudGV4aSAoTW9kZSBMaW5lIEZvcm1hdCwgTW9kZSBMaW5lIEJhc2ljcykKKE1vZGUgTGluZSBE YXRhKTogTWVudGlvbiBUYWIgTGluZXMgYW5kIGFkZCB4cmVmLgooVGFiIExpbmVzKTogTmV3IGRv Y3VtZW50YXRpb24uCiogZXRjL05FV1M6IE1lbnRpb24gbmV3bHkgYWRkZWQgdmFyaWFibGUKJ3Rv b2wtYmFyLWFsd2F5cy1zaG93LWRlZmF1bHQnIGFuZCBuZXcgcGFja2FnZSAnd2luZG93LXRvb2wt YmFyJwotLS0KIGRvYy9lbWFjcy9lbWFjcy50ZXhpICAgIHwgIDEgKwogZG9jL2VtYWNzL2ZyYW1l cy50ZXhpICAgfCAxNCArKysrKysrKy0tLQogZG9jL2VtYWNzL2dsb3NzYXJ5LnRleGkgfCAxMCAr KysrKy0tLQogZG9jL2VtYWNzL21vZGVzLnRleGkgICAgfCAgNCArKysKIGRvYy9lbWFjcy93aW5k b3dzLnRleGkgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkb2Mv bGlzcHJlZi9lbGlzcC50ZXhpICB8ICAxICsKIGRvYy9saXNwcmVmL21vZGVzLnRleGkgIHwgNTYg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGV0Yy9ORVdTICAgICAg ICAgICAgICAgIHwgMTQgKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTI4IGluc2VydGlv bnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9lbWFjcy50ZXhp IGIvZG9jL2VtYWNzL2VtYWNzLnRleGkKaW5kZXggN2Q3N2YxM2FiMjEuLjgyNDYwNDFmYjk1IDEw MDY0NAotLS0gYS9kb2MvZW1hY3MvZW1hY3MudGV4aQorKysgYi9kb2MvZW1hY3MvZW1hY3MudGV4 aQpAQCAtNTI5LDYgKzUyOSw3IEBAIFRvcAogKiBUZW1wb3JhcnkgRGlzcGxheXM6OiAgRGlzcGxh eWluZyBub24tZWRpdGFibGUgYnVmZmVycy4KICogV2luZG93IENvbnZlbmllbmNlOjogIENvbnZl bmllbmNlIGZ1bmN0aW9ucyBmb3Igd2luZG93IGhhbmRsaW5nLgogKiBUYWIgTGluZTo6ICAgICAg ICAgICAgV2luZG93IHRhYiBsaW5lLgorKiBXaW5kb3cgVG9vbCBCYXI6OiAgICAgQSB0b29sIGJh ciB0aGF0IGlzIGF0dGFjaGVkIHRvIHdpbmRvd3MuCiAKIERpc3BsYXlpbmcgYSBCdWZmZXIgaW4g YSBXaW5kb3cKIApkaWZmIC0tZ2l0IGEvZG9jL2VtYWNzL2ZyYW1lcy50ZXhpIGIvZG9jL2VtYWNz L2ZyYW1lcy50ZXhpCmluZGV4IDZjNjJmZGU0ZmZiLi44MDI4YTUxNmU2NiAxMDA2NDQKLS0tIGEv ZG9jL2VtYWNzL2ZyYW1lcy50ZXhpCisrKyBiL2RvYy9lbWFjcy9mcmFtZXMudGV4aQpAQCAtMTI5 NSwxNiArMTI5NSwyMiBAQCBNZW51IEJhcnMKIEBub2RlIFRvb2wgQmFycwogQHNlY3Rpb24gVG9v bCBCYXJzCiBAY2luZGV4IHRvb2wgYmFyIG1vZGUKK0BjaW5kZXggdG9vbCBiYXIsIGF0dGFjaGVk IHRvIGZyYW1lCiBAY2luZGV4IG1vZGUsIFRvb2wgQmFyCiBAY2luZGV4IGljb25zLCB0b29sYmFy CiAKLSAgT24gZ3JhcGhpY2FsIGRpc3BsYXlzLCBFbWFjcyBwdXRzIGEgQGRmbnt0b29sIGJhcn0g YXQgdGhlIHRvcCBvZgotZWFjaCBmcmFtZSwganVzdCBiZWxvdyB0aGUgbWVudSBiYXIuICBUaGlz IGlzIGEgcm93IG9mIGljb25zIHdoaWNoIHlvdQotY2FuIGNsaWNrIG9uIHdpdGggdGhlIG1vdXNl IHRvIGludm9rZSB2YXJpb3VzIGNvbW1hbmRzLgorICBPbiBncmFwaGljYWwgZGlzcGxheXMsIEVt YWNzIHB1dHMgYSBAZGZue3Rvb2wgYmFyfSBhdCB0aGUgdG9wIG9mIGVhY2gKK2ZyYW1lLCBqdXN0 IGJlbG93IHRoZSBtZW51IGJhci4gIFRoaXMgaXMgYSByb3cgb2YgaWNvbnMgd2hpY2ggeW91IGNh bgorY2xpY2sgb24gd2l0aCB0aGUgbW91c2UgdG8gaW52b2tlIHZhcmlvdXMgY29tbWFuZHMuICBF bWFjcyBjYW4gYWxzbworb3B0aW9uYWxseSBkaXNwbGF5IGEgdG9vbCBiYXIgYXQgdGhlIHRvcCBv ZiBlYWNoIHdpbmRvdyAoQHB4cmVme1dpbmRvdworVG9vbCBCYXJ9KS4KIAorQHZpbmRleCB0b29s LWJhci1hbHdheXMtc2hvdy1kZWZhdWx0CiAgIFRoZSBnbG9iYWwgKGRlZmF1bHQpIHRvb2wgYmFy IGNvbnRhaW5zIGdlbmVyYWwgY29tbWFuZHMuICBTb21lIG1ham9yCiBtb2RlcyBkZWZpbmUgdGhl aXIgb3duIHRvb2wgYmFyczsgd2hlbmV2ZXIgYSBidWZmZXIgd2l0aCBzdWNoIGEgbWFqb3IKLW1v ZGUgaXMgY3VycmVudCwgdGhlIG1vZGUncyB0b29sIGJhciByZXBsYWNlcyB0aGUgZ2xvYmFsIHRv b2wgYmFyLgorbW9kZSBpcyBjdXJyZW50LCB0aGUgbW9kZSdzIHRvb2wgYmFyIHJlcGxhY2VzIHRo ZSBnbG9iYWwgdG9vbCBiYXIuICBUbworcHJldmVudCB0aGlzIHJlcGxhY2VtZW50IGZyb20gaGFw cGVuaW5nLCBjdXN0b21pemUgdGhlIHZhcmlhYmxlCitAY29kZXt0b29sLWJhci1hbHdheXMtc2hv dy1kZWZhdWx0fS4KIAogQGZpbmRleCB0b29sLWJhci1tb2RlCiBAdmluZGV4IHRvb2wtYmFyLW1v ZGUKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9nbG9zc2FyeS50ZXhpIGIvZG9jL2VtYWNzL2dsb3Nz YXJ5LnRleGkKaW5kZXggMzQ0ZTQ4MzFmMzYuLmIzMGUxZDc4OWZjIDEwMDY0NAotLS0gYS9kb2Mv ZW1hY3MvZ2xvc3NhcnkudGV4aQorKysgYi9kb2MvZW1hY3MvZ2xvc3NhcnkudGV4aQpAQCAtMTQz NiwxMCArMTQzNiwxMiBAQCBHbG9zc2FyeQogZm9yIHlvdXIgZmF2b3JpdGUgc2V0IG9mIGZhY2Vz IChxLnYuKS4KIAogQGl0ZW0gVG9vbCBCYXIKLVRoZSB0b29sIGJhciBpcyBhIGxpbmUgKHNvbWV0 aW1lcyBtdWx0aXBsZSBsaW5lcykgb2YgaWNvbnMgYXQgdGhlIHRvcAotb2YgYW4gRW1hY3MgZnJh bWUuICBDbGlja2luZyBvbiBvbmUgb2YgdGhlc2UgaWNvbnMgZXhlY3V0ZXMgYSBjb21tYW5kLgot WW91IGNhbiB0aGluayBvZiB0aGlzIGFzIGEgZ3JhcGhpY2FsIHJlbGF0aXZlIG9mIHRoZSBtZW51 IGJhciAocS52LikuCi1AeHJlZntUb29sIEJhcnN9LgorVGhlIHRvb2wgYmFyIGlzIGEgbGluZSAo c29tZXRpbWVzIG11bHRpcGxlIGxpbmVzKSBvZiBpY29ucyBhdCB0aGUgdG9wIG9mCithbiBFbWFj cyBmcmFtZS4gIENsaWNraW5nIG9uIG9uZSBvZiB0aGVzZSBpY29ucyBleGVjdXRlcyBhIGNvbW1h bmQuICBZb3UKK2NhbiB0aGluayBvZiB0aGlzIGFzIGEgZ3JhcGhpY2FsIHJlbGF0aXZlIG9mIHRo ZSBtZW51IGJhciAocS52LikuCitAeHJlZntUb29sIEJhcnN9LiAgVGhlcmUgaXMgYWxzbyBhIHdp bmRvdyB0b29sIGJhciB0aGF0IGJlaGF2ZXMKK3NpbWlsYXJseSwgYnV0IGlzIGF0IHRoZSB0b3Ag b2YgYW4gRW1hY3Mgd2luZG93LiAgQHhyZWZ7V2luZG93IFRvb2wKK0Jhcn0uCiAKIEBhbmNob3J7 R2xvc3NhcnktLS1Ub29sdGlwc30KIEBpdGVtIFRvb2x0aXBzCmRpZmYgLS1naXQgYS9kb2MvZW1h Y3MvbW9kZXMudGV4aSBiL2RvYy9lbWFjcy9tb2Rlcy50ZXhpCmluZGV4IDI3NzZkYzcyYTI3Li4y NTMwNDJiMjhhMyAxMDA2NDQKLS0tIGEvZG9jL2VtYWNzL21vZGVzLnRleGkKKysrIGIvZG9jL2Vt YWNzL21vZGVzLnRleGkKQEAgLTI5NSw2ICsyOTUsMTAgQEAgTWlub3IgTW9kZXMKIGJ1dCB0aGUg dG9vbCBiYXIgaXMgb25seSBkaXNwbGF5ZWQgb24gZ3JhcGhpY2FsIHRlcm1pbmFscy4gIEB4cmVm e1Rvb2wKIEJhcnN9LgogCitAaXRlbQorV2luZG93IFRvb2wgQmFyIG1vZGUgZ2l2ZXMgd2luZG93 cyBhIHRvb2wgYmFyIHdoZW4gaXQgaXMgZGlmZmVyZW50IGZyb20KK3RoZSBkZWZhdWx0IHRvb2wg YmFyLiAgQHhyZWZ7V2luZG93IFRvb2wgQmFyfS4KKwogQGl0ZW0KIFRhYiBCYXIgbW9kZSBnaXZl cyBlYWNoIGZyYW1lIGEgdGFiIGJhci4gIEB4cmVme1RhYiBCYXJzfS4KIApkaWZmIC0tZ2l0IGEv ZG9jL2VtYWNzL3dpbmRvd3MudGV4aSBiL2RvYy9lbWFjcy93aW5kb3dzLnRleGkKaW5kZXggYWQy MjI1YjU5MjIuLjhhYjgzMmQ3Y2M3IDEwMDY0NAotLS0gYS9kb2MvZW1hY3Mvd2luZG93cy50ZXhp CisrKyBiL2RvYy9lbWFjcy93aW5kb3dzLnRleGkKQEAgLTIyLDYgKzIyLDcgQEAgV2luZG93cwog KiBEaXNwbGF5aW5nIEJ1ZmZlcnM6OiAgSG93IEVtYWNzIHBpY2tzIGEgd2luZG93IGZvciBkaXNw bGF5aW5nIGEgYnVmZmVyLgogKiBXaW5kb3cgQ29udmVuaWVuY2U6OiAgQ29udmVuaWVuY2UgZnVu Y3Rpb25zIGZvciB3aW5kb3cgaGFuZGxpbmcuCiAqIFRhYiBMaW5lOjogICAgICAgICAgICBXaW5k b3cgdGFiIGxpbmUuCisqIFdpbmRvdyBUb29sIEJhcjo6ICAgICBBIHRvb2wgYmFyIHRoYXQgaXMg YXR0YWNoZWQgdG8gd2luZG93cy4KIEBlbmQgbWVudQogCiBAbm9kZSBCYXNpYyBXaW5kb3cKQEAg LTY4OSwzICs2OTAsNTIgQEAgVGFiIExpbmUKIHN3aXRjaCBiZXR3ZWVuIHdpbmRvdyBjb25maWd1 cmF0aW9ucyBjb250YWluaW5nIHNldmVyYWwgd2luZG93cyB3aXRoIGJ1ZmZlcnMsCiB0YWJzIG9u IHRoZSBUYWIgTGluZSBhdCB0aGUgdG9wIG9mIGVhY2ggd2luZG93IGFyZSB1c2VkIHRvIHN3aXRj aAogYmV0d2VlbiBidWZmZXJzIGluIHRoZSB3aW5kb3cuCisKKworQG5vZGUgV2luZG93IFRvb2wg QmFyCitAc2VjdGlvbiBXaW5kb3cgVG9vbCBCYXIKKworQGNpbmRleCB3aW5kb3cgdG9vbCBiYXIK K0BjaW5kZXggbW9kZSwgd2luZG93IHRvb2wgYmFyCitAY2luZGV4IHRvb2wgYmFyLCBhdHRhY2hl ZCB0byB3aW5kb3cKKworQGZpbmRleCBnbG9iYWwtd2luZG93LXRvb2wtYmFyLW1vZGUKKyAgVGhl IGNvbW1hbmQgQGNvZGV7Z2xvYmFsLXdpbmRvdy10b29sLWJhci1tb2RlfSB0b2dnbGVzIHRoZSBk aXNwbGF5IG9mCithIHRvb2wgYmFyIGF0IHRoZSB0b3Agb2YgZWFjaCB3aW5kb3cuICBXaGVuIGVu YWJsZWQsIG11bHRpcGxlIHdpbmRvd3MKK2NhbiBkaXNwbGF5IHRoZWlyIG93biB0b29sIGJhciBz aW11bHRhbmVvdXNseS4gIFRvIGNvbnNlcnZlIHNwYWNlLCBhCit3aW5kb3cgdG9vbCBiYXIgaXMg b25seSBzaG93biBpZiB0aGUgdG9vbCBiYXIgZm9yIHRoZSB3aW5kb3cncyBkaXNwbGF5ZWQKK2J1 ZmZlciBoYXMgYSBkaWZmZXJlbnQgYmluZGluZyBmcm9tIHRoZSBnbG9iYWwgKGRlZmF1bHQpIHRv b2wgYmFyLiAgVGhlCittb3N0IGNvbW1vbiB3YXkgYSBidWZmZXIgaGFzIGEgZGlmZmVyZW50IGJp bmRpbmcgaXMgZHVlIHRvIGl0cyBtYWpvcgorbW9kZSwgc28geW91IGNhbiB0aGluayBvZiB0aGUg d2luZG93IHRvb2wgYmFyIGFzIHNob3dpbmcgYSBtYWpvciBtb2RlCitzcGVjaWZpYyB0b29sIGJh ciBpZiBpdCBleGlzdHMuCisKK1RoZXJlIGlzIGEgbGltaXRhdGlvbiB3aXRoIGhvdyB0aGlzIG1v ZGUgZGV0ZWN0cyB0aGF0IHRoZXJlIGlzIGEgbWFqb3IKK21vZGUgc3BlY2lmaWMgdG9vbCBiYXIu ICBUaGlzIGNoZWNrIGlzIG9ubHkgbWFkZSB3aGVuIGVudGVyaW5nIGEgbWFqb3IKK21vZGUuICBJ ZiB0aGUgZ2xvYmFsIG9yIG1ham9yIG1vZGUgc3BlY2lmaWMgdG9vbCBiYXIgYmluZGluZyBpcyBj aGFuZ2VkCit3aGlsZSBXaW5kb3cgVG9vbCBCYXIgbW9kZSBpcyBlbmFibGVkIGFuZCB0aGUgd2lu ZG93IHRvb2wgYmFyIGlzIG5vdAorc2hvd2luZywgcmUtZW50ZXJpbmcgdGhlIG1ham9yIG1vZGUs IGxpa2UgYnkgcnVubmluZyBAa2Jke00teAorbm9ybWFsLW1vZGV9LCB3aWxsIGNhdXNlIHRoZSB3 aW5kb3cgdG9vbCBiYXIgdG8gc2hvdyBjb3JyZWN0bHkuCisKK0BmaW5kZXggd2luZG93LXRvb2wt YmFyLW1vZGUKK0lmIHlvdSB3YW50IHRvIHRvZ2dsZSB0aGUgZGlzcGxheSBvZiBhIHdpbmRvdyB0 b29sIGJhciBmb3Igb25seSBzb21lCitidWZmZXJzLCBydW4gdGhlIGNvbW1hbmQgQGNvZGV7d2lu ZG93LXRvb2wtYmFyLW1vZGV9IGluIHRob3NlIGJ1ZmZlcnMuCitUaGlzIGlzIHVzZWZ1bCB0byBw dXQgaW4gYSBtb2RlIGhvb2suICBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdGhlIHdpbmRvdwor dG9vbCBiYXIgdG8gYXBwZWFyIG9ubHkgZm9yIGJ1ZmZlcnMgdGhhdCBkbyBub3QgcmVwcmVzZW50 IGZpbGVzIGFuZCBoYXZlCithIGN1c3RvbSB0b29sIGJhciwgeW91IGNvdWxkIGFkZCB0aGUgZm9s bG93aW5nIGNvZGUgdG8geW91ciBpbml0IGZpbGUKKyhAcHhyZWZ7SW5pdCBGaWxlfSk6CisKK0Bl eGFtcGxlCisoYWRkLWhvb2sgJ3NwZWNpYWwtbW9kZS1ob29rICd3aW5kb3ctdG9vbC1iYXItbW9k ZSkKK0BlbmQgZXhhbXBsZQorCitFbWFjcyBjYW4gYWxzbyBkaXNwbGF5IGEgc2luZ2xlIHRvb2wg YmFyIGF0IHRoZSB0b3Agb2YgZnJhbWVzCisoQHB4cmVme1Rvb2wgQmFyc30pLiAgV2hlbiBzaG93 aW5nIGEgdG9vbCBiYXIgYXQgdGhlIHRvcCBvZiBmcmFtZXMgYXMKK3dlbGwgYXMgd2luZG93cywg eW91IG1heSB3YW50IHRvIGhhdmUgdGhlIGZyYW1lIHRvb2wgYmFyIG5vdCBjaGFuZ2UKK2Jhc2Vk IG9uIHRoZSBjdXJyZW50IGJ1ZmZlcidzIG1ham9yIG1vZGUuICBUaGlzIGNhbiBiZSBkb25lIGJ5 CitjdXN0b21pemluZyB0aGUgdmFyaWFibGUgQGNvZGV7dG9vbC1iYXItYWx3YXlzLXNob3ctZGVm YXVsdH0uCisKK05vdGUgdGhhdCB0aGUgd2luZG93IHRvb2wgYmFyIGRpc3BsYXlzIGluIHRoZSBz YW1lIHNwYWNlIGFzIHRoZSB0YWIKK2xpbmUsIHNvIG9ubHkgb25lIG9mIHRoZXNlIGNhbiBiZSBk aXNwbGF5IGF0IGEgdGltZSB1bmxlc3MgeW91IGN1c3RvbWl6ZQordGhlIHZhbHVlIG9mIEBjb2Rl e3RhYi1saW5lLWZvcm1hdH0gaW4gTGlzcC4gIEluIHRoaXMgY2FzZSwgYWRkCitAY29kZXsoOmV2 YWwgKHdpbmRvdy10b29sLWJhci1zdHJpbmcpKX0gdG8gQGNvZGV7dGFiLWxpbmUtZm9ybWF0fS4K K0B4cmVme01vZGUgTGluZSBGb3JtYXQsLCwgZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5j ZSBNYW51YWx9LgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZWxpc3AudGV4aSBiL2RvYy9saXNw cmVmL2VsaXNwLnRleGkKaW5kZXggMzM5MjcyZDFmMDUuLjEwNTlkMGRjZjYxIDEwMDY0NAotLS0g YS9kb2MvbGlzcHJlZi9lbGlzcC50ZXhpCisrKyBiL2RvYy9saXNwcmVmL2VsaXNwLnRleGkKQEAg LTkyNSw2ICs5MjUsNyBAQCBUb3AKICogJS1Db25zdHJ1Y3RzOjogICAgICAgICAgICBQdXR0aW5n IGluZm9ybWF0aW9uIGludG8gYSBtb2RlIGxpbmUuCiAqIFByb3BlcnRpZXMgaW4gTW9kZTo6ICAg ICAgVXNpbmcgdGV4dCBwcm9wZXJ0aWVzIGluIHRoZSBtb2RlIGxpbmUuCiAqIEhlYWRlciBMaW5l czo6ICAgICAgICAgICAgTGlrZSBhIG1vZGUgbGluZSwgYnV0IGF0IHRoZSB0b3AuCisqIFRhYiBM aW5lczo6ICAgICAgICAgICAgICAgQSBsaW5lIHRoYXQgaXMgYWJvdmUgdGhlIGhlYWRlciBsaW5l LgogKiBFbXVsYXRpbmcgTW9kZSBMaW5lOjogICAgIEZvcm1hdHRpbmcgdGV4dCBhcyB0aGUgbW9k ZSBsaW5lIHdvdWxkLgogCiBGb250IExvY2sgTW9kZQpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYv bW9kZXMudGV4aSBiL2RvYy9saXNwcmVmL21vZGVzLnRleGkKaW5kZXggY2Y2N2IzMTk5MjQuLmYz ZDRmNTM0N2IzIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9tb2Rlcy50ZXhpCisrKyBiL2RvYy9s aXNwcmVmL21vZGVzLnRleGkKQEAgLTIwNzQsMTQgKzIwNzQsMTQgQEAgTW9kZSBMaW5lIEZvcm1h dAogbGluZSBhdCB0aGUgYm90dG9tLCB3aGljaCBkaXNwbGF5cyBzdGF0dXMgaW5mb3JtYXRpb24g YWJvdXQgdGhlIGJ1ZmZlcgogZGlzcGxheWVkIGluIHRoZSB3aW5kb3cuICBUaGUgbW9kZSBsaW5l IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZQogYnVmZmVyLCBzdWNoIGFzIGl0cyBuYW1l LCBhc3NvY2lhdGVkIGZpbGUsIGRlcHRoIG9mIHJlY3Vyc2l2ZSBlZGl0aW5nLAotYW5kIG1ham9y IGFuZCBtaW5vciBtb2Rlcy4gIEEgd2luZG93IGNhbiBhbHNvIGhhdmUgYSBAZGZue2hlYWRlcgot bGluZX0sIHdoaWNoIGlzIG11Y2ggbGlrZSB0aGUgbW9kZSBsaW5lIGJ1dCBhcHBlYXJzIGF0IHRo ZSB0b3Agb2YgdGhlCi13aW5kb3cuCithbmQgbWFqb3IgYW5kIG1pbm9yIG1vZGVzLiAgQSB3aW5k b3cgY2FuIGFsc28gaGF2ZSBhIEBkZm57aGVhZGVyIGxpbmV9CithbmQgYSBAZGZue3RhYiBsaW5l fSwgd2hpY2ggYXJlIG11Y2ggbGlrZSB0aGUgbW9kZSBsaW5lIGJ1dCB0aGV5IGFwcGVhcgorYXQg dGhlIHRvcCBvZiB0aGUgd2luZG93LgogCi0gIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgaG93IHRv IGNvbnRyb2wgdGhlIGNvbnRlbnRzIG9mIHRoZSBtb2RlIGxpbmUKLWFuZCBoZWFkZXIgbGluZS4g IFdlIGluY2x1ZGUgaXQgaW4gdGhpcyBjaGFwdGVyIGJlY2F1c2UgbXVjaCBvZiB0aGUKLWluZm9y bWF0aW9uIGRpc3BsYXllZCBpbiB0aGUgbW9kZSBsaW5lIHJlbGF0ZXMgdG8gdGhlIGVuYWJsZWQg bWFqb3IgYW5kCi1taW5vciBtb2Rlcy4KKyAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8g Y29udHJvbCB0aGUgY29udGVudHMgb2YgdGhlIG1vZGUgbGluZSwKK2hlYWRlciBsaW5lLCBhbmQg dGFiIGxpbmUuICBXZSBpbmNsdWRlIGl0IGluIHRoaXMgY2hhcHRlciBiZWNhdXNlIG11Y2gKK29m IHRoZSBpbmZvcm1hdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIG1vZGUgbGluZSByZWxhdGVzIHRvIHRo ZSBlbmFibGVkCittYWpvciBhbmQgbWlub3IgbW9kZXMuCiAKIEBtZW51CiAqIEJhc2U6IE1vZGUg TGluZSBCYXNpY3MuICAgICAgIEJhc2ljIGlkZWFzIG9mIG1vZGUgbGluZSBjb250cm9sLgpAQCAt MjA5MSw2ICsyMDkxLDcgQEAgTW9kZSBMaW5lIEZvcm1hdAogKiAlLUNvbnN0cnVjdHM6OiAgICAg ICAgICAgICAgICBQdXR0aW5nIGluZm9ybWF0aW9uIGludG8gYSBtb2RlIGxpbmUuCiAqIFByb3Bl cnRpZXMgaW4gTW9kZTo6ICAgICAgICAgIFVzaW5nIHRleHQgcHJvcGVydGllcyBpbiB0aGUgbW9k ZSBsaW5lLgogKiBIZWFkZXIgTGluZXM6OiAgICAgICAgICAgICAgICBMaWtlIGEgbW9kZSBsaW5l LCBidXQgYXQgdGhlIHRvcC4KKyogVGFiIExpbmVzOjogICAgICAgICAgICAgICAgICAgQSBsaW5l IHRoYXQgaXMgYWJvdmUgdGhlIGhlYWRlciBsaW5lLgogKiBFbXVsYXRpbmcgTW9kZSBMaW5lOjog ICAgICAgICBGb3JtYXR0aW5nIHRleHQgYXMgdGhlIG1vZGUgbGluZSB3b3VsZC4KIEBlbmQgbWVu dQogCkBAIC0yMTAxLDExICsyMTAyLDEzIEBAIE1vZGUgTGluZSBCYXNpY3MKIHZhcmlhYmxlIEBj b2Rle21vZGUtbGluZS1mb3JtYXR9IChAcHhyZWZ7TW9kZSBMaW5lIFRvcH0pLiAgVGhpcyB2YXJp YWJsZQogaG9sZHMgYSBAZGZue21vZGUgbGluZSBjb25zdHJ1Y3R9OiBhIHRlbXBsYXRlIHRoYXQg Y29udHJvbHMgd2hhdCBpcwogZGlzcGxheWVkIG9uIHRoZSBidWZmZXIncyBtb2RlIGxpbmUuICBU aGUgdmFsdWUgb2YKLUBjb2Rle2hlYWRlci1saW5lLWZvcm1hdH0gc3BlY2lmaWVzIHRoZSBidWZm ZXIncyBoZWFkZXIgbGluZSBpbiB0aGUgc2FtZQotd2F5LiAgQWxsIHdpbmRvd3MgZm9yIHRoZSBz YW1lIGJ1ZmZlciB1c2UgdGhlIHNhbWUKLUBjb2Rle21vZGUtbGluZS1mb3JtYXR9IGFuZCBAY29k ZXtoZWFkZXItbGluZS1mb3JtYXR9IHVubGVzcyBhCi1AY29kZXttb2RlLWxpbmUtZm9ybWF0fSBv ciBAY29kZXtoZWFkZXItbGluZS1mb3JtYXR9IHBhcmFtZXRlciBoYXMgYmVlbgotc3BlY2lmaWVk IGZvciB0aGF0IHdpbmRvdyAoQHB4cmVme1dpbmRvdyBQYXJhbWV0ZXJzfSkuCitAY29kZXtoZWFk ZXItbGluZS1mb3JtYXR9IGFuZCBAY29kZXt0YWItbGluZS1mb3JtYXR9IHNwZWNpZmllcyB0aGUK K2J1ZmZlcidzIGhlYWRlciBsaW5lIGFuZCB0YWIgbGluZSBpbiB0aGUgc2FtZSB3YXkuICBBbGwg d2luZG93cyBmb3IgdGhlCitzYW1lIGJ1ZmZlciB1c2UgdGhlIHNhbWUgQGNvZGV7bW9kZS1saW5l LWZvcm1hdH0sCitAY29kZXtoZWFkZXItbGluZS1mb3JtYXR9LCBhbmQgQGNvZGV7dGFiLWxpbmUt Zm9ybWF0fSB1bmxlc3MgYQorQGNvZGV7bW9kZS1saW5lLWZvcm1hdH0sIEBjb2Rle2hlYWRlci1s aW5lLWZvcm1hdH0sIG9yCitAY29kZXt0YWItbGluZS1mb3JtYXR9IHBhcmFtZXRlciBoYXMgYmVl biBzcGVjaWZpZWQgZm9yIHRoYXQgd2luZG93CisoQHB4cmVme1dpbmRvdyBQYXJhbWV0ZXJzfSku CiAKICAgRm9yIGVmZmljaWVuY3ksIEVtYWNzIGRvZXMgbm90IGNvbnRpbnVvdXNseSByZWNvbXB1 dGUgZWFjaCB3aW5kb3cncwogbW9kZSBsaW5lIGFuZCBoZWFkZXIgbGluZS4gIEl0IGRvZXMgc28g d2hlbiBjaXJjdW1zdGFuY2VzIGFwcGVhciB0byBjYWxsCkBAIC0yMTY3LDggKzIxNzAsOCBAQCBN b2RlIExpbmUgRGF0YQogQGRmbnttb2RlIGxpbmUgY29uc3RydWN0fSwgbWFkZSB1cCBvZiBsaXN0 cywgc3RyaW5ncywgc3ltYm9scywgYW5kCiBudW1iZXJzIGtlcHQgaW4gYnVmZmVyLWxvY2FsIHZh cmlhYmxlcy4gIEVhY2ggZGF0YSB0eXBlIGhhcyBhIHNwZWNpZmljCiBtZWFuaW5nIGZvciB0aGUg bW9kZSBsaW5lIGFwcGVhcmFuY2UsIGFzIGRlc2NyaWJlZCBiZWxvdy4gIFRoZSBzYW1lIGRhdGEK LXN0cnVjdHVyZSBpcyB1c2VkIGZvciBjb25zdHJ1Y3RpbmcgZnJhbWUgdGl0bGVzIChAcHhyZWZ7 RnJhbWUgVGl0bGVzfSkKLWFuZCBoZWFkZXIgbGluZXMgKEBweHJlZntIZWFkZXIgTGluZXN9KS4K K3N0cnVjdHVyZSBpcyB1c2VkIGZvciBjb25zdHJ1Y3RpbmcgZnJhbWUgdGl0bGVzIChAcHhyZWZ7 RnJhbWUgVGl0bGVzfSksCitoZWFkZXIgbGluZXMgKEBweHJlZntIZWFkZXIgTGluZXN9KSwgYW5k IHRhYiBsaW5lcyAoQHB4cmVme1RhYiBMaW5lc30pLgogCiAgIEEgbW9kZSBsaW5lIGNvbnN0cnVj dCBtYXkgYmUgYXMgc2ltcGxlIGFzIGEgZml4ZWQgc3RyaW5nIG9mIHRleHQsCiBidXQgaXQgdXN1 YWxseSBzcGVjaWZpZXMgaG93IHRvIGNvbWJpbmUgZml4ZWQgc3RyaW5ncyB3aXRoIHZhcmlhYmxl cycKQEAgLTI4MTYsNiArMjgxOSwzMSBAQCBIZWFkZXIgTGluZXMKIGhlYWRlciBsaW5lIGF0IG9u Y2U7IGlmIGl0IGhhcyBhIG1vZGUgbGluZSwgdGhlbiBpdCBkb2VzIG5vdCBkaXNwbGF5IGEKIGhl YWRlciBsaW5lLgogCitAbm9kZSBUYWIgTGluZXMKK0BzdWJzZWN0aW9uIFdpbmRvdyBUYWIgTGlu ZXMKK0BjaW5kZXggdGFiIGxpbmUgKG9mIGEgd2luZG93KQorQGNpbmRleCB3aW5kb3cgdGFiIGxp bmUKKworICBBIHdpbmRvdyBjYW4gaGF2ZSBhIEBkZm57dGFiIGxpbmV9IGF0IHRoZSB0b3AuICBJ ZiBib3RoIHRoZSB0YWIgbGluZQorYW5kIGhlYWRlciBsaW5lIGFyZSB2aXNpYmxlLCB0aGUgdGFi IGxpbmUgYXBwZWFycyBhYm92ZSB0aGUgaGVhZGVyIGxpbmUuCitUaGUgdGFiIGxpbmUgZmVhdHVy ZSBpcyBjb250cm9sbGVkIGxpa2UgdGhlIG1vZGUgbGluZSBmZWF0dXJlLCBleGNlcHQKK3RoYXQg aXQncyBjb250cm9sbGVkIGJ5IEBjb2Rle3RhYi1saW5lLWZvcm1hdH0uICBVbmxpa2UgdGhlIG1v ZGUgbGluZSwKK3RoZSB0YWIgbGluZSBpcyBvbmx5IGV4cGVjdGVkIHRvIGJlIHVzZWQgdG8gZGlz cGxheSBhIGxpc3Qgb2YgdGFicworKEBweHJlZntUYWIgTGluZSwsLCBlbWFjcywgVGhlIEdOVSBF bWFjcyBNYW51YWx9KSBvciB0aGUgd2luZG93Cit0b29sIGJhciAoQHB4cmVme1dpbmRvdyBUb29s IEJhciwsLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9KToKKworQGRlZnZhciB0YWItbGlu ZS1mb3JtYXQKK1RoaXMgdmFyaWFibGUsIGxvY2FsIGluIGV2ZXJ5IGJ1ZmZlciwgc3BlY2lmaWVz IGhvdyB0byBkaXNwbGF5IHRoZSB0YWIKK2xpbmUsIGZvciB3aW5kb3dzIGRpc3BsYXlpbmcgdGhl IGJ1ZmZlci4gIFRoZSBmb3JtYXQgb2YgdGhlIHZhbHVlIGlzIHRoZQorc2FtZSBhcyBmb3IgQGNv ZGV7bW9kZS1saW5lLWZvcm1hdH0gKEBweHJlZntNb2RlIExpbmUgRGF0YX0pLiAgSXQgaXMKK25v cm1hbGx5IEBjb2Rle25pbH0sIHNvIHRoYXQgb3JkaW5hcnkgYnVmZmVycyBoYXZlIG5vIHRhYiBs aW5lLgorQGVuZCBkZWZ2YXIKKworQGRlZnVuIHdpbmRvdy10YWItbGluZS1oZWlnaHQgJm9wdGlv bmFsIHdpbmRvdworVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBoZWlnaHQgaW4gcGl4ZWxzIG9m IEB2YXJ7d2luZG93fSdzIHRhYiBsaW5lLgorQHZhcnt3aW5kb3d9IG11c3QgYmUgYSBsaXZlIHdp bmRvdywgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCB3aW5kb3cuCitAZW5kIGRlZnVuCisK IEBub2RlIEVtdWxhdGluZyBNb2RlIExpbmUKIEBzdWJzZWN0aW9uIEVtdWxhdGluZyBNb2RlIExp bmUgRm9ybWF0dGluZwogCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IGQ3 MmVmNWI1YmVmLi42MjAyYTBjYjJhOCAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05F V1MKQEAgLTI0MCw2ICsyNDAsMTIgQEAgd2luZG93IHN5c3RlbXMgb3RoZXIgdGhhbiBOZXh0c3Rl cC4KIFdoZW4gdGhpcyBtaW5vciBtb2RlIGlzIGVuYWJsZWQsIGJ1dHRvbnMgcmVwcmVzZW50aW5n IG1vZGlmaWVyIGtleXMKIGFyZSBkaXNwbGF5ZWQgYWxvbmcgdGhlIHRvb2wgYmFyLgogCisrKysK KyoqIE5ldyB1c2VyIG9wdGlvbiAndG9vbC1iYXItYWx3YXlzLXNob3ctZGVmYXVsdCcuCitXaGVu IG5vbi1uaWwsIHRoZSB0b29sIGJhciBhdCB0aGUgdG9wIG9mIGEgZnJhbWUgZG9lcyBub3Qgc2hv dyBidWZmZXIKK2xvY2FsIGN1c3RvbWl6YXRpb24gb2YgdGhlIHRvb2wgYmFyLiAgVGhpcyBpcyBj b252ZW5pZW50IHdoZW4gdXNpbmcgdGhlCituZXdseSBhZGRlZCAnZ2xvYmFsLXdpbmRvdy10b29s LWJhci1tb2RlJy4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG5pbC4KKwogKysrCiAqKiAiZCIgaW4g dGhlIG1vZGUgbGluZSBub3cgaW5kaWNhdGVzIHRoYXQgdGhlIHdpbmRvdyBpcyBkZWRpY2F0ZWQu CiBXaW5kb3dzIGhhdmUgYWx3YXlzIGJlZW4gYWJsZSB0byBiZSBkZWRpY2F0ZWQgdG8gYSBzcGVj aWZpYyBidWZmZXI7CkBAIC0xODc3LDYgKzE4ODMsMTQgQEAgdGhhbiByZWd1bGFyIGV4cHJlc3Np b25zLCBidXQgbGVzcyBjb21wbGV4aXR5IHRoYW4gY29udGV4dC1mcmVlCiBncmFtbWFycy4gIFRo ZSBJbmZvIG1hbnVhbCAiKGVsaXNwKSBQYXJzaW5nIEV4cHJlc3Npb24gR3JhbW1hcnMiIGhhcwog ZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMuCiAKKysrKworKiogTmV3IHBhY2thZ2UgV2luZG93 LVRvb2wtQmFyLgorVGhpcyBwcm92aWRlcyBhIG5ldyBtaW5vciBtb2RlLCAnd2luZG93LXRvb2wt YmFyLW1vZGUnLiAgV2hlbiB0aGlzIG1pbm9yCittb2RlIGlzIGVuYWJsZWQsIGEgdG9vbCBiYXIg aXMgZGlzcGxheWVkIGF0IHRoZSB0b3Agb2YgYSB3aW5kb3cgaWYgdGhlCitidWZmZXIgaW4gdGhl IHdpbmRvdyBoYXMgYSBidWZmZXIgbG9jYWwgdG9vbCBiYXIsIGNvbW1vbmx5IGZyb20gaXRzCitt YWpvciBtb2RlLiAgVGhlIGdsb2JhbCBtaW5vciBtb2RlICdnbG9iYWwtd2luZG93LXRvb2wtYmFy LW1vZGUnIGVuYWJsZXMKK3RoaXMgbWlub3IgbW9kZSBpbiBhbGwgYnVmZmVycy4KKwogDAogKiBJ bmNvbXBhdGlibGUgTGlzcCBDaGFuZ2VzIGluIEVtYWNzIDMwLjEKIAotLSAKMi4zOS4yCgo= --=_1bbc60d09472d5dd2a966e06cfde9c08--