From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.help Subject: Re: Separate area at the top for a serious tab bar Date: Wed, 20 Jun 2018 14:16:10 +0200 Message-ID: <5B2A458A.4010809@gmx.at> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050401080600050909060605" X-Trace: blaine.gmane.org 1529498810 8827 195.159.176.226 (20 Jun 2018 12:46:50 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 20 Jun 2018 12:46:50 +0000 (UTC) Cc: help-gnu-emacs@gnu.org To: rdiezmail-emacs@yahoo.de Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jun 20 14:46:45 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fVcVY-0002CE-Nw for geh-help-gnu-emacs@m.gmane.org; Wed, 20 Jun 2018 14:46:45 +0200 Original-Received: from localhost ([::1]:49236 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVcXf-0003he-Rj for geh-help-gnu-emacs@m.gmane.org; Wed, 20 Jun 2018 08:48:55 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVc2D-00023U-EI for help-gnu-emacs@gnu.org; Wed, 20 Jun 2018 08:16:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fVc2A-0000wZ-8J for help-gnu-emacs@gnu.org; Wed, 20 Jun 2018 08:16:25 -0400 Original-Received: from mout.gmx.net ([212.227.15.18]:56181) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fVc29-0000vo-Or for help-gnu-emacs@gnu.org; Wed, 20 Jun 2018 08:16:22 -0400 Original-Received: from [192.168.1.101] ([212.95.5.251]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0LpcBS-1g9uaq18AI-00fP9j; Wed, 20 Jun 2018 14:16:18 +0200 Original-References: 376678535.4221832.1529478419186@mail.yahoo.com X-Provags-ID: V03:K1:Xg+KcW5ScSZvdZ3JaGoyalxVxSnvw6g2yx8Jw9Ptb+dfBrWosii Yg40NoUe+1qwZIkaXRWrcI7Jj3smQtFvX1tgHHeffGt4Ak02v4CAAPIsRtRVk2HGo+u+rw1 sGCvLW5k7Dtidttr0Oc4SPvxGqkO6e9iEhoDv8Xuct1tch4tpVt2M6Z9UnsHnndLecXYhh3 kvl9Jx4Osz60rIqmAZ1PQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:MQRJSG52ZKE=:TE/MpnIqlBb71lmMuhbwm/ wGuEBXX5ojRae0hTvxoDd0kdmoN8EhRBGgWM9+jGgHn9BycMKCOc2Azrf5ov9t88K3fENs68K Fga9CiSWG1aHHaxLVBfgkyuHhPsJhpfnDsL93NCQ1lplNS7IwzUJPb+UIeqfH7ndUQHxjaKMW kfwPISrFYMy6tFK5Jav5vLkkEpppjZtMQQ+ZQnXDLytDCDqGUc2wvVKeD1SXxOepD2/8YnMv4 WiDnl+wzj7f/Sh+PztpShcJ19V9sGIGY1luELucWD92PGkIQyaELlAtV/YuMzP5t1xzTfOKXC ZUsACfAbdsNuKwt0tVOOw+aCJR6Pgg1Gf4ObN8L/zEl+WZTQiSBTzwVUi3fK73HVIg8js/diV ovUInzmqg9U0egd8M3LlqI+nzP68AkSvbwoPeBxg8zuZPaGHePu4GB1pPPLzdTBUt2ql7tmy7 UyWd5yfHMMeZXk2Tnk7+RpKc6YwsLI3HHnUWLHj9zTyENsgiA8TzBOMzaYdqOOSNO/BR1/fqP tOp4rmqXqOBGVKVTnJLf4782NQmRLv7SFYe8SVazLdFFMPN4z5SHP5fcwp178PzJqfhJj0jIS 6Q3pJd0Eadt732qyNgmS23xdilGhaOKOIrok3j0ONbU4OShnpaQLrImnwrpg4sersvtJtzXzf fxfUVS9+kEygl0K1jn7RCWuEhAkMZOPJdR93wlTOeA6j11GybSMwNRhxyRwmG17kC1ixB/Bmt g+abqKi1ar6Z879jTI2ul9b0lC6kQG0/Ou6NqesOq1JHBa1IA6T6VwOHzrI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.18 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:117227 Archived-At: This is a multi-part message in MIME format. --------------050401080600050909060605 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > This is my plea to the Emacs gurus: Implement a suitable area at the top of > windows/frames/whatever to pave the way for a serious tab bar implementation. A side window at the top of a frame (see section 28.19 Side Windows of the Elisp manual) is such an area. A couple of years ago I wrote a package called frame-tabs.el which uses it. I attached a copy of it so you can see what's needed to convert your code. martin --------------050401080600050909060605 Content-Type: application/emacs-lisp; name="frame-tabs.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="frame-tabs.el" Ozs7IGZyYW1lLXRhYnMuZWwgLS0tIHNob3cgdGFicyBvbiBldmVyeSBmcmFtZSAgLSotIGxl eGljYWwtYmluZGluZzp0IC0qLQoKOzsgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKOzsgQXV0aG9yOiBNYXJ0aW4gUnVkYWxpY3Mg PHJ1ZGFsaWNzQGdteC5hdD4KOzsgS2V5d29yZHM6IGZyYW1lcywgdGFicwo7OyBWZXJzaW9u OiAxLjAKCjs7IGZyYW1lLXRhYnMuZWwgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBv cHRpb24pCjs7IGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgZnJhbWUtdGFicy5lbCBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KCjs7OyBDb21tZW50 YXJ5OgoKOzsgTWlub3IgbW9kZSB0byBzaG93IGEgdGFicyB3aW5kb3cgb24gZWFjaCBmcmFt ZS4KCjs7OyBUb2RvCgo7OyBPcHRpb25hbGx5IHByb3ZpZGUgZml4ZWQgc2l6ZSB0YWJzIHdp bmRvdyB3aXRoIHNjcm9sbCBidXR0b25zCgo7OyBQcm92aWRlIGtleWJvYXJkIGNvbW1hbmRz IGZvciBhY2Nlc3NpbmcgdGFicy13aW5kb3cgbmF2aWdhdGluZyB0YWJzCgo7OyBDdXN0b21p emUgc29ydGluZyBvZiB0YWJzCgo7OyBCYWxsb29uIGluZm8KCjs7IE1vdXNlIHN1cHBvcnQg KHNjcm9sbGluZyksIGFzc2lnbmUgYnV0dG9uIGZvciBvcGVuIHdoZXJlIG9yIGJ1cnksIGFk ZAo7OyB3aWRnZXRzIGZvciBzY3JvbGxpbmcgdGFiYmFyLgoKOzsgU2hvdyBvciBub3QgYnVy aWVkIGJ1ZmZlcnMKCjs7IE1lbnUgc3VwcG9ydCAoc2hvdyBpbiBzZWxlY3RlZCwgb3RoZXIs IG5ldyB3aW5kb3csIG5ldyBmcmFtZSkKCjs7IEhhbmRsZSBzZXBhcmF0ZSBtaW5pYnVmZmVy IHdpbmRvdy4KCjs7OyBDb2RlOgoKKGRlZnZhciBmcmFtZS10YWJzLWNvdW50IDApCgooZGVm Z3JvdXAgZnJhbWUtdGFicyBuaWwKICAiRnJhbWUgdGFicy4iCiAgOnZlcnNpb24gIjI0LjQi CiAgOmdyb3VwICdjb252ZW5pZW5jZSkKCjs7OyBGcmFtZSB0YWJzIGZhY2VzLgooZGVmZmFj ZSBmcmFtZS10YWJzLWl0ZW0tdGFiCiAgJygodCA6aW5oZXJpdCB2YXJpYWJsZS1waXRjaAog ICAgICAgOmJveCAoOmxpbmUtd2lkdGggMiA6Y29sb3IgImdyZXk3MiIpCiAgICAgICA6Zm9y ZWdyb3VuZCAiYmxhY2siCiAgICAgICA6YmFja2dyb3VuZCAiZ3JleTg0IikpCiAgIkZhY2Ug Zm9yIGZyYW1lIHRhYnMgaXRlbXMuIgogIDp2ZXJzaW9uICIyNC40IgogIDpncm91cCAnZnJh bWUtdGFicykKCihkZWZmYWNlIGZyYW1lLXRhYnMtc2VsZWN0ZWQtdGFiCiAgJygodCA6aW5o ZXJpdCBmcmFtZS10YWJzLWl0ZW0tdGFiCiAgICAgICA6YmFja2dyb3VuZCAicGluayIpKQog ICJGYWNlIGZvciBzZWxlY3RlZCBmcmFtZSB0YWJzIGl0ZW1zLiIKICA6dmVyc2lvbiAiMjQu NCIKICA6Z3JvdXAgJ2ZyYW1lLXRhYnMpCgooZGVmZmFjZSBmcmFtZS10YWJzLXgtdGFiCiAg JygodCA6aW5oZXJpdCBmcmFtZS10YWJzLWl0ZW0tdGFiCiAgICAgICA6Ym9sZCB0KSkKICAi RmFjZSBmb3IgZnJhbWUgdGFicyBleHRyYSBpdGVtcy4iCiAgOnZlcnNpb24gIjI0LjQiCiAg Omdyb3VwICdmcmFtZS10YWJzKQoKKGRlZmZhY2UgZnJhbWUtdGFicy1oaWdsaWdodC10YWIK ICAnKCh0IDppbmhlcml0IGZyYW1lLXRhYnMtaXRlbS10YWIKICAgICAgIDpmb3JlZ3JvdW5k ICJ3aGl0ZSIKICAgICAgIDpiYWNrZ3JvdW5kICJncmVlbjMiKSkKICAiRmFjZSBmb3IgaGln aGxpZ2h0aW5nIGZyYW1lIHRhYnMgaXRlbS4iCiAgOnZlcnNpb24gIjI0LjQiCiAgOmdyb3Vw ICdmcmFtZS10YWJzKQoKKGRlZmZhY2UgZnJhbWUtdGFicy14LWhpZ2xpZ2h0LXRhYgogICco KHQgOmluaGVyaXQgZnJhbWUtdGFicy1pdGVtLXRhYgogICAgICAgOmZvcmVncm91bmQgIndo aXRlIgogICAgICAgOmJhY2tncm91bmQgInJlZDMiKSkKICAiRmFjZSBmb3IgaGlnaGxpZ2h0 aW5nIGZyYW1lIHRhYnMgZXh0cmEgaXRlbXMuIgogIDp2ZXJzaW9uICIyNC40IgogIDpncm91 cCAnZnJhbWUtdGFicykKCjs7IEZyYW1lIHRhYnMgb3B0aW9ucy4KKGRlZmN1c3RvbSBmcmFt ZS10YWJzLXNpZGUgJ3RvcAogICJTaWRlIHdoZXJlIGZyYW1lIHRhYnMgd2luZG93cyBhcHBl YXIuCkNob2ljZXMgYXJlIHRvcCAodGhlIGRlZmF1bHQpLCBib3R0b20sIGxlZnQgYW5kIHJp Z2h0LiAgWW91IGhhdmUKdG8gcmVzdGFydCBmcmFtZSB0YWJzIG1vZGUgd2hlbiB5b3UgY2hh bmdlIHRoaXMgb3B0aW9uLiIKICA6dHlwZSAnKGNob2ljZSAoY29uc3QgdG9wKQogICAgICAg ICAgICAgICAgIChjb25zdCBib3R0b20pCiAgICAgICAgICAgICAgICAgKGNvbnN0IGxlZnQp CiAgICAgICAgICAgICAgICAgKGNvbnN0IHJpZ2h0KSkKICA6Z3JvdXAgJ2ZyYW1lLXRhYnMp CgooZGVmY3VzdG9tIGZyYW1lLXRhYnMtbWluLXNpemUgMQogICJNaW1pbXVtIHNpemUgb2Yg ZnJhbWUgdGFicyB3aW5kb3dzLgpGb3IgZnJhbWUgdGFicyB3aW5kb3dzIGF0IHRoZSB0b3Ag b3IgYm90dG9tIG9mIGEgZnJhbWUgdGhpcyBpcwp0aGVpciBoZWlnaHQuICBGb3IgZnJhbWUg dGFicyB3aW5kb3dzIGF0IHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGEKZnJhbWUgdGhpcyBpcyB0 aGVpciB3aWR0aC4iCiAgOnR5cGUgJ2ludGVnZXIKICA6dmVyc2lvbiAiMjQuNCIKICA6Z3Jv dXAgJ2ZyYW1lLXRhYnMpCgooZGVmY3VzdG9tIGZyYW1lLXRhYnMtbWF4LXNpemUgNgogICJN YXhpbXVtIHNpemUgb2YgZnJhbWUgdGFicyB3aW5kb3cuCkZvciBmcmFtZSB0YWJzIHdpbmRv d3MgYXQgdGhlIHRvcCBvciBib3R0b20gb2YgYSBmcmFtZSB0aGlzIGlzCnRoZWlyIGhlaWdo dC4gIEZvciBmcmFtZSB0YWJzIHdpbmRvd3MgYXQgdGhlIGxlZnQgb3IgcmlnaHQgb2YgYQpm cmFtZSB0aGlzIGlzIHRoZWlyIHdpZHRoLiIKICA6dHlwZSAnaW50ZWdlcgogIDp2ZXJzaW9u ICIyNC40IgogIDpncm91cCAnZnJhbWUtdGFicykKCihkZWZjdXN0b20gZnJhbWUtdGFicy1k ZWxheSAwLjAKICAiRnJhbWUgdGFicyB1cGRhdGUgaW50ZXJ2YWwuIgogIDp0eXBlICdmbG9h dAogIDp2ZXJzaW9uICIyNC40IgogIDpncm91cCAnZnJhbWUtdGFicykKCjs7IEludGVybmFs IHZhcmlhYmxlcwooZGVmdmFyIGZyYW1lLXRhYnMtdGltZXIgbmlsCiAgIkZyYW1lIHRhYnMg aWRsZSB0aW1lci4iKQoKKGRlZnZhciBmcmFtZS10YWJzLXJ1biBuaWwKICAiTm9uLW5pbCB3 aGlsZSBmcmFtZSB0YWJzIHJ1bnMgaXRzIGlkbGUgdGltZXIgZnVuY3Rpb24uIikKCihkZWZ2 YXIgZnJhbWUtdGFicy1idWZmZXJzIG5pbAogICJMaXN0IG9mIGZyYW1lIHRhYnMgYnVmZmVy cy4iKQoKKGRlZnVuIGZyYW1lLXRhYnMtc2VsZWN0IChldmVudCAmb3B0aW9uYWwgd2hlcmUp CiAgIkRpc3BsYXkgYnVmZmVyIGNsaWNrZWQgb24uIgogIChsZXQqICgodGFicy13aW5kb3cg KHBvc24td2luZG93IChldmVudC1lbmQgZXZlbnQpKSkKCSAodGFicy1idWZmZXIgKHdpbmRv dy1idWZmZXIgdGFicy13aW5kb3cpKQoJIGJ1ZmZlcikKICAgICh3aXRoLWN1cnJlbnQtYnVm ZmVyIHRhYnMtYnVmZmVyCiAgICAgIChzYXZlLWV4Y3Vyc2lvbgoJKGdvdG8tY2hhciAocG9z bi1wb2ludCAoZXZlbnQtZW5kIGV2ZW50KSkpCgkoc2V0cSBidWZmZXIgKGdldC10ZXh0LXBy b3BlcnR5IChwb2ludCkgJ2J1ZmZlcikpCgkod2hlbiAoZXEgdGFicy13aW5kb3cgKHNlbGVj dGVkLXdpbmRvdykpCgkgIChzZWxlY3Qtd2luZG93IChnZXQtbXJ1LXdpbmRvdyAwIG5pbCB0 KSkpCgkoY29uZAoJICgoZXEgd2hlcmUgJ290aGVyLXdpbmRvdykKCSAgKHN3aXRjaC10by1i dWZmZXItb3RoZXItd2luZG93IGJ1ZmZlcikpCgkgKChlcSB3aGVyZSAnb3RoZXItZnJhbWUp CgkgIChzd2l0Y2gtdG8tYnVmZmVyLW90aGVyLWZyYW1lIGJ1ZmZlcikpCgkgKHQKCSAgKHN3 aXRjaC10by1idWZmZXIgYnVmZmVyKSkpKSkpKQoKKGRlZnVuIGZyYW1lLXRhYnMtc2VsZWN0 LXRoaXMtd2luZG93IChldmVudCkKICAoaW50ZXJhY3RpdmUgImUiKQogIChmcmFtZS10YWJz LXNlbGVjdCBldmVudCkpCgooZGVmdW4gZnJhbWUtdGFicy1zZWxlY3Qtb3RoZXItd2luZG93 IChldmVudCkKICAoaW50ZXJhY3RpdmUgImUiKQogIChmcmFtZS10YWJzLXNlbGVjdCBldmVu dCAnb3RoZXItd2luZG93KSkKCihkZWZ1biBmcmFtZS10YWJzLXNlbGVjdC1vdGhlci1mcmFt ZSAoZXZlbnQpCiAgKGludGVyYWN0aXZlICJlIikKICAoZnJhbWUtdGFicy1zZWxlY3QgZXZl bnQgJ290aGVyLWZyYW1lKSkKCihkZWZ2YXIgZnJhbWUtdGFicy1idWZmZXItbWFwCiAgKGxl dCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAoZGVmaW5lLWtleSBtYXAgW2Rv d24tbW91c2UtMV0gJ2ZyYW1lLXRhYnMtc2VsZWN0LXRoaXMtd2luZG93KQogICAgOzsgVXNl IHRoZSBkb3duIGV2ZW50IHRvIGF2b2lkIHRoYXQgdGhlIGJ1ZmZlciBtZW51IGtpY2tzIGlu LgogICAgKGRlZmluZS1rZXkgbWFwIFtDLWRvd24tbW91c2UtMV0gJ2ZyYW1lLXRhYnMtc2Vs ZWN0LW90aGVyLXdpbmRvdykKICAgIChkZWZpbmUta2V5IG1hcCBbTS1kb3duLW1vdXNlLTFd ICdmcmFtZS10YWJzLXNlbGVjdC1vdGhlci1mcmFtZSkKICAgIG1hcCkpCgooZGVmdW4gZnJh bWUtdGFicy1kaXNtaXNzIChldmVudCAmb3B0aW9uYWwgaG93KQogIChsZXQqICgodGFicy13 aW5kb3cgKHBvc24td2luZG93IChldmVudC1lbmQgZXZlbnQpKSkKCSAodGFicy1idWZmZXIg KHdpbmRvdy1idWZmZXIgdGFicy13aW5kb3cpKQoJIGJ1ZmZlcikKICAgICh3aXRoLWN1cnJl bnQtYnVmZmVyIHRhYnMtYnVmZmVyCiAgICAgIChzYXZlLWV4Y3Vyc2lvbgoJKGdvdG8tY2hh ciAocG9zbi1wb2ludCAoZXZlbnQtZW5kIGV2ZW50KSkpCgkoc2V0cSBidWZmZXIgKGdldC10 ZXh0LXByb3BlcnR5IChwb2ludCkgJ2J1ZmZlcikpKSkKICAgICh3aGVuIChlcSB0YWJzLXdp bmRvdyAoc2VsZWN0ZWQtd2luZG93KSkKICAgICAgKHNlbGVjdC13aW5kb3cgKGdldC1tcnUt d2luZG93IDAgbmlsIHQpKSkKICAgIChjb25kCiAgICAgKChlcSBob3cgJ3JlcGxhY2UpCiAg ICAgIChyZXBsYWNlLWJ1ZmZlci1pbi13aW5kb3dzIGJ1ZmZlcikpCiAgICAgKChlcSBob3cg J2tpbGwpCiAgICAgIChraWxsLWJ1ZmZlciBidWZmZXIpKQogICAgICgoZXEgKHdpbmRvdy1i dWZmZXIpIGJ1ZmZlcikKICAgICAgOzsgTXVzdCBub3QgY2FsbCB0aGlzIHdpdGggQlVGRkVS IGFzIGFyZ3VtZW50IQogICAgICAoYnVyeS1idWZmZXIpKQogICAgICh0CiAgICAgIChidXJ5 LWJ1ZmZlciBidWZmZXIpKSkpKQoKKGRlZnVuIGZyYW1lLXRhYnMtYnVyeS1idWZmZXIgKGV2 ZW50KQogIChpbnRlcmFjdGl2ZSAiZSIpCiAgKGZyYW1lLXRhYnMtZGlzbWlzcyBldmVudCkp CgooZGVmdW4gZnJhbWUtdGFicy1yZXBsYWNlLWJ1ZmZlciAoZXZlbnQpCiAgKGludGVyYWN0 aXZlICJlIikKICAoZnJhbWUtdGFicy1kaXNtaXNzIGV2ZW50ICdyZXBsYWNlKSkKCihkZWZ1 biBmcmFtZS10YWJzLWtpbGwtYnVmZmVyIChldmVudCkKICAoaW50ZXJhY3RpdmUgImUiKQog IChmcmFtZS10YWJzLWRpc21pc3MgZXZlbnQgJ2tpbGwpKQoKKGRlZnZhciBmcmFtZS10YWJz LXgtbWFwCiAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAoZGVmaW5l LWtleSBtYXAgW2Rvd24tbW91c2UtMV0gJ2ZyYW1lLXRhYnMtYnVyeS1idWZmZXIpCiAgICAo ZGVmaW5lLWtleSBtYXAgW0MtZG93bi1tb3VzZS0xXSAnZnJhbWUtdGFicy1yZXBsYWNlLWJ1 ZmZlcikKICAgIChkZWZpbmUta2V5IG1hcCBbTS1kb3duLW1vdXNlLTFdICdmcmFtZS10YWJz LWtpbGwtYnVmZmVyKQogICAgbWFwKSkKCihkZWZ1biBmcmFtZS10YWJzLXdpbmRvdyAoJm9w dGlvbmFsIGZyYW1lKQogICJSZXR1cm4gb3IgY3JlYXRlIGEgdGFicyB3aW5kb3cgZm9yIEZS QU1FLgpGUkFNRSBtdXN0IGJlIGEgbGl2ZSBmcmFtZSBhbmQgZGVmYXVsdHMgdG8gdGhlIHNl bGVjdGVkIG9uZS4iCiAgKHNldHEgZnJhbWUgKHdpbmRvdy1ub3JtYWxpemUtZnJhbWUgZnJh bWUpKQogIChsZXQgKCh0YWJzLXZlcnQgKG1lbXEgZnJhbWUtdGFicy1zaWRlICcodG9wIGJv dHRvbSkpKQoJdGFicy1idWZmZXIgdGFicy13aW5kb3cgdGFicy1wb2ludCB0YWJzLXNlbGVj dGVkIHRhYnMteCkKICAgIDs7IGB0YWJzLWJ1ZmZlcicgaXMgdGhlIGJ1ZmZlciBzaG93aW5n IHRhYnMgb24gRlJBTUUgYW5kCiAgICA7OyBgdGFicy13aW5kb3cnIGlzIGl0cyB3aW5kb3cu CiAgICAodW5sZXNzIChjYXRjaCAnZm91bmQKCSAgICAgICh3YWxrLXdpbmRvdy10cmVlCgkg ICAgICAgKGxhbWJkYSAod2luZG93KQoJCSAobGV0ICgoYnVmZmVyICh3aW5kb3ctYnVmZmVy IHdpbmRvdykpKQoJCSAgICh3aGVuIChtZW1xIGJ1ZmZlciBmcmFtZS10YWJzLWJ1ZmZlcnMp CgkJICAgICAoc2V0cSB0YWJzLWJ1ZmZlciBidWZmZXIpCgkJICAgICAoc2V0cSB0YWJzLXdp bmRvdyB3aW5kb3cpCgkJICAgICAoaWYgKGVxIHRhYnMtd2luZG93IChzZWxlY3RlZC13aW5k b3cpKQoJCQkgKHdpdGgtY3VycmVudC1idWZmZXIgdGFicy1idWZmZXIKCQkJICAgKHNldHEg dGFicy1zZWxlY3RlZAoJCQkJIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdidWZmZXIp KQoJCQkgICAoc2V0cSB0YWJzLXgKCQkJCSAoZXEgKGdldC10ZXh0LXByb3BlcnR5IChwb2lu dCkgJ2ZhY2UpCgkJCQkgICAgICdmcmFtZS10YWJzLXgtdGFiKSkpCgkJICAgICAgIChzZXRx IHRhYnMtc2VsZWN0ZWQgKHdpbmRvdy1idWZmZXIpKSkKCQkgICAgICh0aHJvdyAnZm91bmQg dCkpKSkpKQogICAgICAoc2V0cSB0YWJzLWJ1ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAi ICp0YWJzKiIpKQogICAgICAoc2V0cSBmcmFtZS10YWJzLWJ1ZmZlcnMgKGNvbnMgdGFicy1i dWZmZXIgZnJhbWUtdGFicy1idWZmZXJzKSkKICAgICAgOzsgU2V0IGB0YWJzLXNlbGVjdGVk JyB0byB0aGUgdHJ1bHkgc2VsZWN0ZWQgd2luZG93LgogICAgICAoc2V0cSB0YWJzLXNlbGVj dGVkICh3aW5kb3ctYnVmZmVyKSkKICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgdGFicy1i dWZmZXIKCTs7IE1ha2Ugc3VyZSB3ZSBjYW4gY3JlYXRlIGEgb25lIGxpbmUgd2luZG93LgoJ KHNldHEgdGFicy13aW5kb3cKCSAgICAgIChkaXNwbGF5LWJ1ZmZlci1pbi1zaWRlLXdpbmRv dwoJICAgICAgIHRhYnMtYnVmZmVyIGAoKHNpZGUgLiAsZnJhbWUtdGFicy1zaWRlKQoJCQkg ICAgICgsKGlmIHRhYnMtdmVydCAnd2luZG93LXdpZHRoICd3aW5kb3ctaGVpZ2h0KQoJCQkg ICAgICAuICxmcmFtZS10YWJzLW1pbi1zaXplKSkpKSkpCgogICAgOzsgRGlzcGxheSB0YWJz IGluIHRoZSB3aW5kb3cuCiAgICAod2hlbiB0YWJzLXdpbmRvdwogICAgICAod2l0aC1jdXJy ZW50LWJ1ZmZlciB0YWJzLWJ1ZmZlcgoJKHNldHEgYnVmZmVyLXJlYWQtb25seSBuaWwpCgko ZXJhc2UtYnVmZmVyKQoJOzsgRG9uJ3Qgc2hvdyBub2JyZWFrIHNwYWNlcy4KCShzZXQgKG1h a2UtbG9jYWwtdmFyaWFibGUgJ25vYnJlYWstY2hhci1kaXNwbGF5KSBuaWwpCgkoc2V0cSBt b2RlLWxpbmUtZm9ybWF0IG5pbCkKCShkb2xpc3QgKGJ1ZmZlciAoYnVmZmVyLWxpc3QgZnJh bWUpKQoJICAobGV0ICgobmFtZSAoYnVmZmVyLW5hbWUgYnVmZmVyKSkpCgkgICAgOzsgTmV2 ZXIgc2hvdyBhIGJ1ZmZlciB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIGEgc3BhY2UuCgkgICAg KHVubGVzcyAoZXEgKGFyZWYgbmFtZSAwKSA/XHMpCgkgICAgICAoaW5zZXJ0CgkgICAgICAg KHByb3BlcnRpemUKCQluYW1lCgkJJ2J1ZmZlciBidWZmZXIKCQkna2V5bWFwIGZyYW1lLXRh YnMtYnVmZmVyLW1hcAoJCSdmYWNlIChpZiAoZXEgYnVmZmVyIHRhYnMtc2VsZWN0ZWQpCgkJ CSAgKHByb2duCgkJCSAgICAoc2V0cSB0YWJzLXBvaW50IChwb2ludCkpCgkJCSAgICAnZnJh bWUtdGFicy1zZWxlY3RlZC10YWIpCgkJCSdmcmFtZS10YWJzLWl0ZW0tdGFiKQoJCSdtb3Vz ZS1mYWNlICdmcmFtZS10YWJzLWhpZ2xpZ2h0LXRhYikKCSAgICAgICAocHJvcGVydGl6ZQoJ CSLCoCIgOyBVLTAwQTAKCQknZmFjZSAnZnJhbWUtdGFicy1pdGVtLXRhYikKCSAgICAgICAo cHJvcGVydGl6ZQoJCSLDlyIgJ2J1ZmZlciBidWZmZXIgOyBVLTAwRDcKCQk7OyAJICAgICAg IuKMpyIgJ2J1ZmZlciBidWZmZXIgOyBVLTIzMjcKCQkna2V5bWFwIGZyYW1lLXRhYnMteC1t YXAKCQknZmFjZSAnZnJhbWUtdGFicy14LXRhYgoJCSdtb3VzZS1mYWNlICdmcmFtZS10YWJz LXgtaGlnbGlnaHQtdGFiKQoJICAgICAgIDs7IFdlJ2QgbGlrZSB0byB1c2UgIuKAiyIgKFUt MjAwQikgaW5zdGVhZCBvZiAiICIgaW4gdGhlCgkgICAgICAgOzsgZm9sbG93aW5nIGZvcm0g YnV0IHRoZSBkaXNwbGF5LWVuZ2luZSB3b3JkLXdyYXBzIG9ubHkgYXQKCSAgICAgICA7OyBz cGFjZXMgb3IgdGFicyBzbyB1c2UgYSBkaXNwbGF5IHNwZWNpZmljYXRpb24gaW5zdGVhZC4K CSAgICAgICA7OyBOb3RlIHRoYXQgd2UgY2FuJ3QgdXNlIDp3aWR0aCBlaXRoZXIgc2luY2Ug aXQgd291bGQgbWFrZQoJICAgICAgIDs7IHRoZSBzcGFjZXMgb2YgdGhlIGxhc3QgaXRlbSBv biBlYWNoIGxpbmUgZXh0ZW5kIHRvIHRoZQoJICAgICAgIDs7IGVuZCBvZiB0aGF0IGxpbmUu CgkgICAgICAgKGlmIHRhYnMtdmVydAoJCSAgICLigIsiCjs7IAkJICAgKHByb3BlcnRpemUg IiAiICdkaXNwbGF5ICcoc3BhY2UgLiAoOnJlbGF0aXZlLXdpZHRoIDAuMSkpKQoJCSAiXG4i KQoJICAgICAgICkpKSkKCTs7IERlbGV0ZSB2ZXJ5IGxhc3Qgc3BhY2UgaW5zZXJ0ZWQuCgko dW5sZXNzIChib2JwKSAoZGVsZXRlLWNoYXIgLTEpKQoJKHdoZW4gdGFicy12ZXJ0CgkgIChz ZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3RydW5jYXRlLWxpbmVzKSBuaWwpCgkgIChzZXQg KG1ha2UtbG9jYWwtdmFyaWFibGUgJ3RydW5jYXRlLXBhcnRpYWwtd2lkdGgtd2luZG93cykg bmlsKQoJICAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlICd3b3JkLXdyYXApIHQpKQoJOzsg SGFuZGxlIHdpbmRvdy4KCShzZXQtd2luZG93LW1hcmdpbnMgdGFicy13aW5kb3cgMCAwKQoJ KHNldC13aW5kb3ctZnJpbmdlcyB0YWJzLXdpbmRvdyAwIDApCgkoc2V0LXdpbmRvdy1zY3Jv bGwtYmFycyB0YWJzLXdpbmRvdyAwKQo7OyAJKGlmIHRhYnMtdmVydAo7OyAJICAgIChwcm9n bgoJKHNldHEgd2luZG93LXNpemUtZml4ZWQgbmlsKQoJKGZpdC13aW5kb3ctdG8tYnVmZmVy CgkgdGFicy13aW5kb3cgZnJhbWUtdGFicy1tYXgtc2l6ZSBmcmFtZS10YWJzLW1pbi1zaXpl KQoJKGlmIHRhYnMtdmVydAoJICAgIChzZXRxIHdpbmRvdy1zaXplLWZpeGVkICdoZWlnaHQp CgkgIChzZXRxIHdpbmRvdy1zaXplLWZpeGVkICd3aWR0aCkpCjs7IAkgICh3aW5kb3ctcmVz aXplLW5vLWVycm9yCjs7IAkgICB0YWJzLXdpbmRvdyAoLSBmcmFtZS10YWJzLW1heC1zaXpl ICh3aW5kb3ctdG90YWwtd2lkdGggdGFicy13aW5kb3cpKQo7OyAJICAgdCB0KQoJKHNldC13 aW5kb3ctc3RhcnQgdGFicy13aW5kb3cgKHBvaW50LW1pbikpCgkoc2V0cSBjdXJzb3ItdHlw ZSBuaWwpCgkoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgdGFicy13aW5kb3cgJ25vLW90aGVyLXdp bmRvdyB0KQoJOzsgCShzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgdCkgOyBNdXN0IG5vdCAhIQoJ KHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAndHJhbnNpZW50LW1hcmstbW9kZSkgbmlsKQoJ KHNldC13aW5kb3ctcG9pbnQKCSB0YWJzLXdpbmRvdwoJIChjb25kCgkgICh0YWJzLXggKG5l eHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZSB0YWJzLXBvaW50ICdmYWNlKSkKCSAgKHRhYnMt cG9pbnQgdGFicy1wb2ludCkKCSAgKHQgKHBvaW50LW1pbikpKSkpCiAgICAgIChzZXQtd2lu ZG93LWRlZGljYXRlZC1wIHRhYnMtd2luZG93IHQpKQogICAgdGFicy13aW5kb3cpKQoKKGRl ZnVuIGZyYW1lLXRhYnMtdXBkYXRlICgpCiAgKHNldHEgZnJhbWUtdGFicy1jb3VudCAoMSsg ZnJhbWUtdGFicy1jb3VudCkpCiAgKGxldCAoKHNlbGVjdGVkLXdpbmRvdyAoc2VsZWN0ZWQt d2luZG93KSkKCWJ1ZmZlci1saXN0LXVwZGF0ZS1ob29rKQogICAgKHVud2luZC1wcm90ZWN0 CgkocHJvZ24KCSAgKHNldHEgZnJhbWUtdGFicy1ydW4gdCkKCSAgOzsgU2FuaXRpemUgZnJh bWUgdGFicyBidWZmZXJzLgoJICAoZG9saXN0IChidWZmZXIgZnJhbWUtdGFicy1idWZmZXJz KQoJICAgIChjb25kCgkgICAgICgobm90IChidWZmZXItbGl2ZS1wIGJ1ZmZlcikpCgkgICAg ICAoc2V0cSBmcmFtZS10YWJzLWJ1ZmZlcnMKCQkgICAgKGRlbHEgYnVmZmVyIGZyYW1lLXRh YnMtYnVmZmVycykpKQoJICAgICAoKG5vdCAoZ2V0LWJ1ZmZlci13aW5kb3cgYnVmZmVyIHQp KQoJICAgICAgKHNldHEgZnJhbWUtdGFicy1idWZmZXJzCgkJICAgIChkZWxxIGJ1ZmZlciBm cmFtZS10YWJzLWJ1ZmZlcnMpKQoJICAgICAgKGtpbGwtYnVmZmVyIGJ1ZmZlcikpKSkKCSAg OzsgUHJvdmlkZSB0YWJzIHdpbmRvdyBvbiBlYWNoIGZyYW1lLgoJICAoZG9saXN0IChmcmFt ZSAoZnJhbWUtbGlzdCkpCgkgICAgKGZyYW1lLXRhYnMtd2luZG93IGZyYW1lKSkpCiAgICAg IChzZWxlY3Qtd2luZG93IHNlbGVjdGVkLXdpbmRvdykKICAgICAgKHNldHEgZnJhbWUtdGFi cy1ydW4gbmlsKQogICAgICAoY2FuY2VsLXRpbWVyIGZyYW1lLXRhYnMtdGltZXIpKSkpCgoo ZGVmdW4gZnJhbWUtdGFicy1lbmFibGUtdGltZXIgKCkKICAodW5sZXNzIGZyYW1lLXRhYnMt cnVuCiAgICAod2hlbiAodGltZXJwIGZyYW1lLXRhYnMtdGltZXIpCiAgICAgIChjYW5jZWwt dGltZXIgZnJhbWUtdGFicy10aW1lcikpCiAgICAoc2V0cSBmcmFtZS10YWJzLXRpbWVyCgkg IChydW4td2l0aC1pZGxlLXRpbWVyIGZyYW1lLXRhYnMtZGVsYXkgdCAnZnJhbWUtdGFicy11 cGRhdGUpKSkpCgooZGVmdW4gZnJhbWUtdGFicy1yZW1vdmUgKCkKICAoY29uZGl0aW9uLWNh c2UgbmlsCiAgICAgIChwcm9nbgoJKHNldHEgZnJhbWUtdGFicy1ydW4gdCkKCShjYW5jZWwt dGltZXIgZnJhbWUtdGFicy10aW1lcikKCShkb2xpc3QgKGJ1ZmZlciBmcmFtZS10YWJzLWJ1 ZmZlcnMpCgkgICh3aGVuIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKCSAgICAoZGVsZXRlLXdp bmRvd3Mtb24gYnVmZmVyIHQpKQoJICAoa2lsbC1idWZmZXIgYnVmZmVyKSkKCShzZXRxIGZy YW1lLXRhYnMtYnVmZmVycyBuaWwpCgkoc2V0cSBmcmFtZS10YWJzLXJ1biBuaWwpCgkoY2Fu Y2VsLXRpbWVyIGZyYW1lLXRhYnMtdGltZXIpKQogICAgKGVycm9yIG5pbCkpKQoKKGRlZnVu IGZyYW1lLXRhYnMtZW5hYmxlLXRpbWVyLXdjYyAoKQo7OyAgIChzZXRxIGZyYW1lLXRhYnMt Y291bnQgKDErIGZyYW1lLXRhYnMtY291bnQpKQogIChmcmFtZS10YWJzLWVuYWJsZS10aW1l cikpCgooZGVmdW4gZnJhbWUtdGFicy1lbmFibGUtdGltZXItYmx1ICgpCiAgKHNldHEgZnJh bWUtdGFicy1jb3VudCAoMSsgZnJhbWUtdGFicy1jb3VudCkpCiAgKGZyYW1lLXRhYnMtZW5h YmxlLXRpbWVyKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZpbmUtbWlub3ItbW9kZSBmcmFtZS10 YWJzLW1vZGUKICAiVG9nZ2xlIGRpc3BsYXkgb2YgdGFicyBvbiBmcmFtZXMuCldpdGggYSBw cmVmaXggYXJndW1lbnQgQVJHLCBlbmFibGUgdGhpcyBtb2RlIGlmIEFSRyBpcyBwb3NpdGl2 ZSwKYW5kIGRpc2FibGUgaXQgb3RoZXJ3aXNlLiAgSWYgY2FsbGVkIGZyb20gTGlzcCwgZW5h YmxlIHRoZSBtb2RlCmlmIEFSRyBpcyBvbWl0dGVkIG9yIG5pbC4KCldoZW4gdGhpcyBtb2Rl IGlzIGVuYWJsZWQsIGV2ZXJ5IG5vcm1hbCBmcmFtZSBpcyBlcXVpcHBlZCB3aXRoIGEKdGFi cyB3aW5kb3cgc2hvd2luZyB0aGUgYnVmZmVycyB0aGF0IGFwcGVhcmVkIG9uIHRoYXQgZnJh bWUuIgogIDpnbG9iYWwgdAogIDpncm91cCAnZnJhbWUtdGFicwogIDppbml0LXZhbHVlIG5p bAogIDpsaW5rICcoZW1hY3MtY29tbWVudGFyeS1saW5rICJmcmFtZS10YWJzLmVsIikKICAo aWYgZnJhbWUtdGFicy1tb2RlCiAgICAgIChwcm9nbgoJKGFkZC1ob29rICdidWZmZXItbGlz dC11cGRhdGUtaG9vayAnZnJhbWUtdGFicy1lbmFibGUtdGltZXItYmx1ICdhcHBlbmQpCgko YWRkLWhvb2sgJ3dpbmRvdy1jb25maWd1cmF0aW9uLWNoYW5nZS1ob29rICdmcmFtZS10YWJz LWVuYWJsZS10aW1lci13Y2MgJ2FwcGVuZCkKCShmcmFtZS10YWJzLWVuYWJsZS10aW1lcikK CShmcmFtZS10YWJzLXVwZGF0ZSkpCiAgICAocmVtb3ZlLWhvb2sgJ2J1ZmZlci1saXN0LXVw ZGF0ZS1ob29rICdmcmFtZS10YWJzLWVuYWJsZS10aW1lci1ibHUpCiAgICAocmVtb3ZlLWhv b2sgJ3dpbmRvdy1jb25maWd1cmF0aW9uLWNoYW5nZS1ob29rICdmcmFtZS10YWJzLWVuYWJs ZS10aW1lci13Y2MpCiAgICAoZnJhbWUtdGFicy1yZW1vdmUpKSkKCihwcm92aWRlICdmcmFt ZS10YWJzKQoKOzs7IGZyYW1lLXRhYnMuZWwgZW5kcyBoZXJlCg== --------------050401080600050909060605--