From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#33498: 26.1; Unable to delete minibuffer-only+child frames Date: Tue, 23 Apr 2019 10:46:41 +0200 Message-ID: <83856264-7e8e-da45-44de-8ae4c674d970@gmx.at> References: <8736rpfklv.fsf@hochschule-trier.de> <5C7E4B92.1040200@gmx.at> <87d0muldyo.fsf@hochschule-trier.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------798E05270F96DD200CC62CD8" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="103981"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 33498@debbugs.gnu.org To: Andreas Politz Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Apr 23 10:48:16 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hIr63-000Qpz-WD for geb-bug-gnu-emacs@m.gmane.org; Tue, 23 Apr 2019 10:48:12 +0200 Original-Received: from localhost ([127.0.0.1]:50171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hIr62-000719-SC for geb-bug-gnu-emacs@m.gmane.org; Tue, 23 Apr 2019 04:48:10 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:47873) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hIr5k-0006xm-4i for bug-gnu-emacs@gnu.org; Tue, 23 Apr 2019 04:47:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hIr50-0001Tw-2z for bug-gnu-emacs@gnu.org; Tue, 23 Apr 2019 04:47:14 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38763) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hIr4x-0001PS-Li for bug-gnu-emacs@gnu.org; Tue, 23 Apr 2019 04:47:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hIr4w-0004hI-IZ for bug-gnu-emacs@gnu.org; Tue, 23 Apr 2019 04:47:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 23 Apr 2019 08:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33498 X-GNU-PR-Package: emacs Original-Received: via spool by 33498-submit@debbugs.gnu.org id=B33498.155600921318028 (code B ref 33498); Tue, 23 Apr 2019 08:47:02 +0000 Original-Received: (at 33498) by debbugs.gnu.org; 23 Apr 2019 08:46:53 +0000 Original-Received: from localhost ([127.0.0.1]:52302 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hIr4m-0004gf-He for submit@debbugs.gnu.org; Tue, 23 Apr 2019 04:46:53 -0400 Original-Received: from mout.gmx.net ([212.227.15.15]:56691) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hIr4k-0004gP-3n; Tue, 23 Apr 2019 04:46:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1556009199; bh=9WSc7EBTqPXrIxj85knP0KPF4r2nXPF/3+a8w+pZCdg=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=YqBXJucz8TddH0glmtWGBoa7WiWYYje7ItpbdqzE1HaVv4/F4EPYF00UBbs0C84BW NrQlzM4/i91TJU6Z7QvNDC13YIZgQ2hiZd12M+bWmeTW0JYwpF54JT2ZRC8Bnb1FWH c9J9cXjeIUrQ80u6ZFtqYEkMUVEsl2uR5nU6JIB8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([213.162.73.225]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0Lbujs-1gZesk3HlM-00jMJ6; Tue, 23 Apr 2019 10:46:39 +0200 In-Reply-To: <87d0muldyo.fsf@hochschule-trier.de> Content-Language: de-DE X-Provags-ID: V03:K1:3ttfxpi6PDAycLEN4cGRp9HnqS1YqOxSvii0lL3QIAROJQMsfin pYs6R4sW82tX0B79Rdcy31tdBfahlbHR+mjk+Nd1JiegwA6/feeo8RuF8q+oUdFAXQkJRuh 2BjY8vCWCW0cXZUGFJHcRJFB3+ryeNWtTpDDA9ZU4BsgNc5BcXfuQZwOPNCLlChfVhzUDy4 h4eljy2scSW/VfK+w2sKQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:9XpKb1I0jOo=:uCT6aM+dc/bj6xrglUjlBo C8zSLhAKk3nbWYDWvxkScO6BVrAgq/joV1Hgqszj9da5emhARMC7LV0KfvmaRa7DX2GwAjG4B lqOFqx4V+NhXt603zdlBlaCcoFxYaTBNnEPRBvBXHeaLjN5dMnyeWg5pLz4R1TX6sg3137THZ J5tfhsS/OyXOkGl0dnLinO7lEzH5fA0guxy2fRolhD8/j6XSGT7JV0WFlvbwd9/FOy0VmqYvx IXDsCwW/seB18n6PDK8euNxNngo4EhMlIz2haY4RJRKuuTTGGMR8Lfrvt5nK9zrag3urvpTsi h6vuUMBLZ4xrljU4AzTJFKaeqM5ErTPO87N0CsdzzWStV/udVPse5kilfcZVzWL/tfVCVxie8 5TNRE0aeIPX1hxRJBQFi/i0Hr1UDHIDlAETPZRzVjVabN0MmDaxv1hUjF+DvQ0vbEOVk3LFV7 UE1VaouDJn02Ut4ADfXvF3wagxoQxtG+cg6vL7iQGEV3VZKJgnE5H/TJRt9pEmzuorgzGIJr1 OFVG/02fqYkwuF8aUrthpawxxR3DquxwyuPx3ZJKnZqwsjW4EyT4IVAv3kMlIYzv6YP6LV5RV 4A0ZwcJ6F61WFCOvB3A0V3PMFXOBS81OMPEii26N+sVRR3qCRaHkDP5bKQqTUlegtoKP0+c0p U8m/mIn5xTbmVbzH17GZuIh9ZajMYofUEl6JMXHkfus4PALHDsW1esQO0TUtdZJNYGwnsP5vb ueBQLTjufxuvnYRm276YP/YMrP/LqoVu/GwfEvSVLTHsWt4HQjpBFthaLzuhU5xAVtcY3ooc X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:158103 Archived-At: This is a multi-part message in MIME format. --------------798E05270F96DD200CC62CD8 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit tags 33498 fixed close 33498 27.1 quit >> By using a '(minibuffer . child-frame) frame parameter, creating the >> minibuffer child frame should proceed without glitches now. > > Yes, that seems to work now. OK. Trying to close this bug now. >> I intend to soon add code for fitting minibuffer child frames to the >> contents of their buffers. > > And I am looking forward to it. Customizing 'resize-mini-frames' allows to do that now. I attach a minor mode which I'm using for some while now that allows to put a minibuffer child frame on the top or bottom of the currently selected window and hide it whenever it's not used. If you are on Emacs 27 try it. martin --------------798E05270F96DD200CC62CD8 Content-Type: text/plain; charset=UTF-8; name="pop-up-mini.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pop-up-mini.el" Ozs7IHBvcC11cC1taW5pLmVsIC0tLSBwb3AgdXAgbWluaSB3aW5kb3cgaW4gY2hpbGQgZnJh bWUgLSotIGxleGljYWwtYmluZGluZzp0IC0qLQoKOzsgQ29weXJpZ2h0IChDKSAyMDE5ICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCjs7IEF1dGhvcjogTWFydGluIFJ1ZGFs aWNzIDxydWRhbGljc0BnbXguYXQ+Cjs7IEtleXdvcmRzOiBmcmFtZXMsIG1pbmlidWZmZXJz LCB3aW5kb3dzCjs7IFZlcnNpb246IDEuMAo7OyBQYWNrYWdlLVJlcXVpcmVzOiAoKGVtYWNz ICIyNy4xIikpCgo7OyBwb3AtdXAtbWluaS5lbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKOzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKOzsgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdAo7 OyB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgo7OyBwb3AtdXAtbWluaS5lbCBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQo7OyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KCjs7OyBD b21tZW50YXJ5OgoKOzsgTWlub3IgbW9kZSB0byBwb3AgdXAgbWluaWJ1ZmZlciBhbmQgZWNo byBhcmVhIGluIGEgY2hpbGQgZnJhbWUgb2YKOzsgdGhlIHNlbGVjdGVkIGZyYW1lLiAgVGhp cyBtb2RlIGF1dG9tYXRpemVzIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzOgo7Owo7OyAtIFJl cGFyZW50IGNoaWxkIGZyYW1lIHdoZW4gc3dpdGNoaW5nIGZyYW1lcy4KOzsKOzsgLSBGYWN1 bHRhdGl2ZWx5IGhvc3QgY2hpbGQgZnJhbWUgYXQgdGhlIGJvdHRvbSBvciB0b3Agb2Ygc2Vs ZWN0ZWQKOzsgICB3aW5kb3cgb3Igc2VsZWN0ZWQgZnJhbWUncyBtYWluIG9yIHJvb3Qgd2lu ZG93Lgo7Owo7OyAtIFJlc2l6ZSBhbmQgcmVwb3NpdGlvbiBjaGlsZCBmcmFtZSBjb3JyZXNw b25kaW5nIHRvIHNpemUgb2YgaXRzCjs7ICAgdGV4dCBhbmQvb3IgaG9zdCB3aW5kb3cuCjs7 Cjs7IC0gSGlkZSBlbXB0eSBjaGlsZCBmcmFtZS4KOzsKOzsgQSBzYW1wbGUgZm9ybSB3aXRo IHJlY29tbWVuZGVkIHZhcmlhYmxlIHNldHRpbmdzIGZvciBjdXN0b21pemluZwo7OyB0aGUg LmVtYWNzIGluaXQgZmlsZSBpcyBpbmNsdWRlZCBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZS4K Cjs7IE5vdGU6IFRoaXMgZmlsZSB3aWxsIHdvcmsgb25seSB3aXRoIEVtYWNzIDI3LjEgYW5k IGhpZ2hlci4KCjs7OyBDb2RlOgoKKGRlZnZhciBwb3AtdXAtbWluaS1tb2RlKQoKKGRlZnZh ciBwb3AtdXAtbWluaS1mcmFtZSBuaWwKICAiVGhlIG1pbmlidWZmZXIgY2hpbGQtZnJhbWUg b2YgJ3BvcC11cC1taW5pLW1vZGUnLgpVc3VhbGx5IGRpc3BsYXllZCBhcyBjaGlsZCBmcmFt ZSBvZiB0aGUgc2VsZWN0ZWQgZnJhbWUuIikKCihkZWZ2YXIgcG9wLXVwLW1pbmktd2luZG93 IG5pbAogICJUaGUgcm9vdCB3aW5kb3cgb2YgJ3BvcC11cC1taW5pLWZyYW1lJy4iKQoKKGRl Zmdyb3VwIHBvcC11cC1taW5pIG5pbAogICJDdXN0b21pemF0aW9uIGdyb3VwIGZvciAncG9w LXVwLW1pbmktbW9kZScuIgogIDp2ZXJzaW9uICIyNy4xIgogIDpncm91cCAnY29udmVuaWVu Y2UKICA6Z3JvdXAgJ2ZyYW1lcykKCihkZWZ1biBwb3AtdXAtbWluaS0tc2V0LXZhbHVlIChz eW1ib2wgdmFsdWUpCiAgIkhlbHBlciBmdW5jdGlvbiBmb3IgY3VzdG9taXppbmcgJ3BvcC11 cC1taW5pLW1vZGUnIG9wdGlvbnMuIgogIChzZXQtZGVmYXVsdCBzeW1ib2wgdmFsdWUpCiAg KGNvbmQKICAgKChub3QgKGZyYW1lLWxpdmUtcCBwb3AtdXAtbWluaS1mcmFtZSkpKQogICAo KGVxIHN5bWJvbCAncG9wLXVwLW1pbmktaW50ZXJuYWwtYm9yZGVyKQogICAgKHNldC1mYWNl LWJhY2tncm91bmQgJ2ludGVybmFsLWJvcmRlciB2YWx1ZSBwb3AtdXAtbWluaS1mcmFtZSkp CiAgICgoZnJhbWUtdmlzaWJsZS1wIHBvcC11cC1taW5pLWZyYW1lKQogICAgKHdoZW4gKGZy YW1lLWxpdmUtcCAoZnJhbWUtcGFyZW50IHBvcC11cC1taW5pLWZyYW1lKSkKICAgICAgKHBv cC11cC1taW5pLW1vdmUgKGZyYW1lLXBhcmVudCBwb3AtdXAtbWluaS1mcmFtZSkpKSkpKQoK KGRlZmN1c3RvbSBwb3AtdXAtbWluaS1ob3N0ICdzZWxlY3RlZAogICJUeXBlIG9mIHdpbmRv dyBob3N0aW5nICdwb3AtdXAtbWluaS1mcmFtZScuCkNob2ljZXMgYXJlCgonc2VsZWN0ZWQn IC0gdGhlIHNlbGVjdGVkIHdpbmRvdwoKJ21haW4nIC0gdGhlIHNlbGVjdGVkIGZyYW1lJ3Mg bWFpbiB3aW5kb3cKCidyb290JyAtIHRoZSBzZWxlY3RlZCBmcmFtZSdzIHJvb3Qgd2luZG93 CgpOb3RlIHRoYXQgYm90aCAnbWFpbicgYW5kICdyb290JyBtYXkgb3ZlcndyaXRlIHRoZSBt b2RlIGxpbmVzIG9mCnRoZSB3aW5kb3dzIGF0IHRoZSBib3R0b20gb2YgdGhlIGZyYW1lLiIK ICA6dHlwZSAnKGNob2ljZSAoY29uc3Qgc2VsZWN0ZWQpCiAgICAgICAgICAgICAgICAgKGNv bnN0IG1haW4pCiAgICAgICAgICAgICAgICAgKGNvbnN0IHJvb3QpKQogIDppbml0aWFsaXpl ICdjdXN0b20taW5pdGlhbGl6ZS1kZWZhdWx0CiAgOnNldCAncG9wLXVwLW1pbmktLXNldC12 YWx1ZQogIDp2ZXJzaW9uICIyNy4xIgogIDpncm91cCAncG9wLXVwLW1pbmkpCgooZGVmY3Vz dG9tIHBvcC11cC1taW5pLWhvc3QtbWluLXdpZHRoIDIwCiAgIk1pbmltdW0gd2lkdGggb2Yg aG9zdCB3aW5kb3cgZm9yICdwb3AtdXAtbWluaS1mcmFtZScuCklmIHRoZSB3aW5kb3cgZGVz aWduYXRlZCBieSAncG9wLXVwLW1pbmktaG9zdCcgaXMgbm90IGFzIHdpZGUgYXMKc3BlY2lm aWVkIGJ5IHRoaXMgb3B0aW9uLCByZWhvc3QgJ3BvcC11cC1taW5pLWZyYW1lJyBhdCB0aGUg bWFpbgpvciByb290IHdpbmRvdyBvZiBpdHMgcGFyZW50IGZyYW1lLiIKICA6dHlwZSAnaW50 ZWdlcgogIDppbml0aWFsaXplICdjdXN0b20taW5pdGlhbGl6ZS1kZWZhdWx0CiAgOnNldCAn cG9wLXVwLW1pbmktLXNldC12YWx1ZQogIDp2ZXJzaW9uICIyNy4xIgogIDpncm91cCAncG9w LXVwLW1pbmkpCgooZGVmY3VzdG9tIHBvcC11cC1taW5pLWhvc3QtbWluLWhlaWdodCAzCiAg Ik1pbmltdW0gaGVpZ2h0IG9mIG9mIGhvc3Qgd2luZG93IGZvciAncG9wLXVwLW1pbmktZnJh bWUnLgpJZiB0aGUgd2luZG93IGRlc2lnbmF0ZWQgYnkgJ3BvcC11cC1taW5pLWhvc3QnIGlz IG5vdCBhcyBoaWdoIGFzCnNwZWNpZmllZCBieSB0aGlzIG9wdGlvbiwgcmVob3N0ICdwb3At dXAtbWluaS1mcmFtZScgYXQgdGhlIG1haW4Kb3Igcm9vdCB3aW5kb3cgb2YgaXRzIHBhcmVu dCBmcmFtZS4iCiAgOnR5cGUgJ2ludGVnZXIKICA6aW5pdGlhbGl6ZSAnY3VzdG9tLWluaXRp YWxpemUtZGVmYXVsdAogIDpzZXQgJ3BvcC11cC1taW5pLS1zZXQtdmFsdWUKICA6dmVyc2lv biAiMjcuMSIKICA6Z3JvdXAgJ3BvcC11cC1taW5pKQoKKGRlZmN1c3RvbSBwb3AtdXAtbWlu aS1yZWhvc3QtdG8tZml0IHQKICAiSWYgbm9uLW5pbCwgcmVob3N0ICdwb3AtdXAtbWluaS1m cmFtZScgd2hlbiBpdHMgdGV4dCBkb2VzIG5vdCBmaXQuCklmIHRoaXMgb3B0aW9uIGlzIG5v bi1uaWwsICdwb3AtdXAtbWluaS1ob3N0JyBlcXVhbHMgJ3NlbGVjdGVkJwphbmQgdGhlIHRl eHQgc2hvd24gaW4gJ3BvcC11cC1taW5pLWZyYW1lJyBleGNlZWRzIHRoZSB3aWR0aCBvZgp0 aGUgc2VsZWN0ZWQgd2luZG93LCByZWhvc3QgJ3BvcC11cC1taW5pLWZyYW1lJyB0byB0aGUg c2VsZWN0ZWQKZnJhbWUncyBtYWluIHdpbmRvdy4iCiAgOnR5cGUgJ2Jvb2xlYW4KICA6aW5p dGlhbGl6ZSAnY3VzdG9tLWluaXRpYWxpemUtZGVmYXVsdAogIDpzZXQgJ3BvcC11cC1taW5p LS1zZXQtdmFsdWUKICA6dmVyc2lvbiAiMjcuMSIKICA6Z3JvdXAgJ3BvcC11cC1taW5pKQoK KGRlZmN1c3RvbSBwb3AtdXAtbWluaS1oaWRlLWlmLWVtcHR5IDAuNQogICJJZiBub24tbmls LCBkZWxheSBmb3IgaGlkaW5nIHRoZSBlbXB0eSAncG9wLXVwLW1pbmktZnJhbWUnLgpJZiB0 aGlzIGlzIG5pbCwgbmV2ZXIgaGlkZSB0aGUgJ3BvcC11cC1taW5pLWZyYW1lJy4gIE90aGVy d2lzZSwKaXQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGJlZm9y ZSBoaWRpbmcgYW4gZW1wdHkKJ3BvcC11cC1taW5pLWZyYW1lJy4gIFplcm8gbWVhbnMgdG8g aGlkZSAncG9wLXVwLW1pbmktZnJhbWUnCmltbWVkaWF0ZWx5IGFmdGVyIGl0IGJlY29tZXMg ZW1wdHkuIgogIDp0eXBlICcoY2hvaWNlIChjb25zdCBuaWwpCgkJIChudW1iZXIgOnRhZyAi ZGVsYXkiKSkKICA6aW5pdGlhbGl6ZSAnY3VzdG9tLWluaXRpYWxpemUtZGVmYXVsdAogIDpz ZXQgJ3BvcC11cC1taW5pLS1zZXQtdmFsdWUKICA6dmVyc2lvbiAiMjcuMSIKICA6Z3JvdXAg J3BvcC11cC1taW5pKQoKKGRlZmN1c3RvbSBwb3AtdXAtbWluaS1wb3NpdGlvbiAnc2Nyb2xs LWJhcgogICJQb3NpdGlvbiBvZiAncG9wLXVwLW1pbmktZnJhbWUnIHdpdGhpbiBpdHMgaG9z dCB3aW5kb3cuCkNob2ljZXMgYXJlCgonYm9keS1ib3R0b20nIC0gYXQgdGhlIGJvdHRvbSBv ZiB0aGUgaG9zdCdzIGJvZHkgaWYgdGhlIGhvc3QgaXMgYQogICBsaXZlIHdpbmRvdywgYXQg dGhlIGJvdHRvbSBvZiB0aGUgaG9zdCB3aW5kb3cgb3RoZXJ3aXNlLiAgRm9yCiAgIGEgbGl2 ZSBob3N0IHdpbmRvdyB0aGlzIGF2b2lkcyBjb3ZlcmluZyB0aGUgd2luZG93J3MgbW9kZSBs aW5lCiAgIGFuZCBhbnkgc2Nyb2xsIGJhcnMsIGZyaW5nZXMsIG9yIG1hcmdpbnMuCgonYm9k eS10b3AnIC0gYXQgdGhlIHRvcCBvZiB0aGUgaG9zdCB3aW5kb3cncyBib2R5IGlmIHRoZSBo b3N0IGlzCiAgIGEgbGl2ZSB3aW5kb3csIGF0IHRoZSB0b3Agb2YgdGhlIGhvc3Qgd2luZG93 IG90aGVyd2lzZS4gIEZvciBhCiAgIGxpdmUgaG9zdCB3aW5kb3cgdGhpcyBhdm9pZHMgY292 ZXJpbmcgdGhlIHdpbmRvdydzIGhlYWRlciBsaW5lCiAgIGFuZCBhbnkgc2Nyb2xsIGJhcnMs IGZyaW5nZXMsIG9yIG1hcmdpbnMuCgonc2Nyb2xsLWJhcicgLSBhYm92ZSB0aGUgbW9kZSBs aW5lIG9mIHRoZSBob3N0IHdpbmRvdyBpZiBpdCBpcwogICBsaXZlLCBhdCB0aGUgYm90dG9t IG9mIHRoZSBob3N0IHdpbmRvdyBvdGhlcndpc2UuICBUaGlzIHdpbGwKICAgdXN1YWxseSBo aWRlIHRoZSBob3Jpem9udGFsIHNjcm9sbCBiYXIgb2YgdGhlIGhvc3Qgd2luZG93LgoKJ2Jv dHRvbScgLSBhdCB0aGUgYm90dG9tIG9mIHRoZSBob3N0IHdpbmRvdy4gIFRoaXMgd2lsbCB1 c3VhbGx5CiAgIGNvdmVyIHRoZSBob3N0IHdpbmRvdydzIG1vZGUgbGluZSwgaWYgYW55LgoK J3RvcCcgLSBhdCB0aGUgdG9wIG9mIHRoZSBob3N0IHdpbmRvdy4gIFRoaXMgd2lsbCB1c3Vh bGx5IGNvdmVyCiAgIHRoZSBob3N0IHdpbmRvdydzIGhlYWRlciBsaW5lLCBpZiBhbnkuCgpU aGUgd2lkdGggb2YgJ3BvcC11cC1taW5pLWZyYW1lJyBpcyB0aGUgYm9keSB3aWR0aCBvZiB0 aGUgaG9zdAp3aW5kb3cgZm9yIHRoZSBmaXJzdCB0d28gb3B0aW9ucyBhbmQgdGhlIHRvdGFs IHdpZHRoIG9mIHRoZSBob3N0CndpbmRvdyBmb3IgdGhlIHJlbWFpbmluZyBvbmVzLiIKICA6 dHlwZSAnKGNob2ljZSAoY29uc3QgYm9keS1ib3R0b20pCiAgICAgICAgICAgICAgICAgKGNv bnN0IGJvZHktdG9wKQoJCSAoY29uc3Qgc2Nyb2xsLWJhcikKICAgICAgICAgICAgICAgICAo Y29uc3QgYm90dG9tKQogICAgICAgICAgICAgICAgIChjb25zdCB0b3ApKQogIDppbml0aWFs aXplICdjdXN0b20taW5pdGlhbGl6ZS1kZWZhdWx0CiAgOnNldCAncG9wLXVwLW1pbmktLXNl dC12YWx1ZQogIDp2ZXJzaW9uICIyNy4xIgogIDpncm91cCAncG9wLXVwLW1pbmkpCgooZGVm Y3VzdG9tIHBvcC11cC1taW5pLXJlc2l6ZS1tYW51YWxseSB0CiAgIklmIG5vbi1uaWwsIGFs bG93IG1hbnVhbGx5IHJlc2l6aW5nIG9mICdwb3AtdXAtbWluaS1mcmFtZScuClRoaXMgYWxs b3dzIHRvIHRlbXBvcmFyaWx5IGRyYWcgdGhlIHVwcGVyIGJvcmRlciBvZiB0aGUgc2VsZWN0 ZWQKJ3BvcC11cC1taW5pLWZyYW1lJyB3aXRoIHRoZSBtb3VzZSB1bnRpbCBpdCBzaHJpbmtz IGJhY2sgdG8gb25lCmxpbmUgb3IgYmVjb21lcyBlbXB0eS4iCiAgOnR5cGUgJ2Jvb2xlYW4K ICA6aW5pdGlhbGl6ZSAnY3VzdG9tLWluaXRpYWxpemUtZGVmYXVsdAogIDpzZXQgJ3BvcC11 cC1taW5pLS1zZXQtdmFsdWUKICA6dmVyc2lvbiAiMjcuMSIKICA6Z3JvdXAgJ3BvcC11cC1t aW5pKQoKKGRlZmN1c3RvbSBwb3AtdXAtbWluaS1pbnRlcm5hbC1ib3JkZXIgImJsdWUiCiAg IkJhY2tncm91bmQgb2YgaW50ZXJuYWwgYm9yZGVyIG9mICdwb3AtdXAtbWluaS1mcmFtZScu IgogIDp0eXBlICdzdHJpbmcKICA6c2V0ICdwb3AtdXAtbWluaS0tc2V0LXZhbHVlCiAgOnZl cnNpb24gIjI3LjEiCiAgOmdyb3VwICdwb3AtdXAtbWluaSkKCihkZWZ2YXIgcG9wLXVwLW1p bmktYnVmZmVyIG5pbAogICJQcmVzZW50IG9yIHBhc3QgYnVmZmVyIG9mICdwb3AtdXAtbWlu aS13aW5kb3cnLgpUaGlzIGlzIHRoZSBidWZmZXIgc2hvd24gaW4gJ3BvcC11cC1taW5pLXdp bmRvdycgdGhlIGxhc3QgdGltZQoncmVzaXplLW1pbmktZnJhbWUnIHdhcyBjYWxsZWQgZm9y IGl0cyBmcmFtZS4iKQoKKGRlZnZhciBwb3AtdXAtbWluaS10ZXh0ICIiCiAgIlRleHQgZGlz cGxheWVkIGluICdwb3AtdXAtbWluaS13aW5kb3cnLiIpCgooZGVmdmFyIHBvcC11cC1taW5p LXRleHQtcGl4ZWwtc2l6ZSAnKDAgLiAwKQogICJTaXplIG9mICdwb3AtdXAtbWluaS10ZXh0 JyB0aGUgbGFzdCB0aW1lIGl0IHdhcyBjYWxjdWxhdGVkLgpUaGUgcmV0dXJuIHZhbHVlIG9m ICd3aW5kb3ctdGV4dC1waXhlbC1zaXplJyB0aGUgbGFzdCB0aW1lIGl0IHdhcwpydW4gZm9y ICdwb3AtdXAtbWluaS13aW5kb3cnLiAgVGhlIFgtTElNSVQgZm9yIHRoYXQgcnVuIHdhcyB0 aGUKd2lkdGggb2YgdGhlIHBhcmVudCBmcmFtZSBvZiAncG9wLXVwLW1pbmktZnJhbWUnIGF0 IHRoYXQgdGltZS4KVGhlIGJ1ZmZlciB0ZXh0IG9mICdwb3AtdXAtbWluaS13aW5kb3cnIGF0 IHRoYXQgdGltZSB3YXMKJ3BvcC11cC1taW5pLXRleHQnLiIpCgooZGVmdmFyIHBvcC11cC1t aW5pLXdpbmRvdy1waXhlbC13aWR0aCAwCiAgIlBpeGVsIHdpZHRoIG9mICdwb3AtdXAtbWlu aS13aW5kb3cnLiIpCgooZGVmdmFyIHBvcC11cC1taW5pLXdpbmRvdy1waXhlbC1oZWlnaHQg MAogICJQaXhlbCBoZWlnaHQgb2YgJ3BvcC11cC1taW5pLXdpbmRvdycuIikKCihkZWZ2YXIg cG9wLXVwLW1pbmktYmxvY2staGVpZ2h0IG5pbAogICJOb24tbmlsIG1lYW5zIHRlbXBvcmFy aWx5IGJsb2NrIGhlaWdodCBhZGp1c3RtZW50LiIpCgooZGVmdmFyIHBvcC11cC1taW5pLWhp ZGUtaWYtZW1wdHktdGltZXIgbmlsCiAgIlRpbWVyIGZvciBoaWRpbmcgJ3BvcC11cC1taW5p LWZyYW1lJy4iKQoKKGRlZnVuIHBvcC11cC1taW5pLWhvc3Qtd2luZG93ICgmb3B0aW9uYWwg ZnJhbWUpCiAgIlJldHVybiB3aW5kb3cgdG8gaG9zdCAncG9wLXVwLW1pbmktZnJhbWUnIG9u IEZSQU1FLgpGUkFNRSBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgZnJhbWUuIgogIChjb25k CiAgICgoZXEgcG9wLXVwLW1pbmktaG9zdCAnbWFpbikKICAgICh3aW5kb3ctbWFpbi13aW5k b3cgZnJhbWUpKQogICAoKGVxIHBvcC11cC1taW5pLWhvc3QgJ3Jvb3QpCiAgICAoZnJhbWUt cm9vdC13aW5kb3cgZnJhbWUpKQogICAodAogICAgKGZyYW1lLXNlbGVjdGVkLXdpbmRvdyBm cmFtZSkpKSkKCihkZWZ1biBwb3AtdXAtbWluaS1oaWRlICgpCiAgIkhpZGUgcG9wLXVwLW1p bmktZnJhbWUuIgogICh3aGVuIChmcmFtZS1saXZlLXAgcG9wLXVwLW1pbmktZnJhbWUpCiAg ICAobWFrZS1mcmFtZS1pbnZpc2libGUgcG9wLXVwLW1pbmktZnJhbWUpCiAgICAod2hlbiAo dGltZXJwIHBvcC11cC1taW5pLWhpZGUtaWYtZW1wdHktdGltZXIpCiAgICAgIChjYW5jZWwt dGltZXIgcG9wLXVwLW1pbmktaGlkZS1pZi1lbXB0eS10aW1lcikKICAgICAgKHNldHEgcG9w LXVwLW1pbmktaGlkZS1pZi1lbXB0eS10aW1lciBuaWwpKSkpCgooZGVmdW4gcG9wLXVwLW1p bmktbW92ZSAoZnJhbWUgJm9wdGlvbmFsIGhpZGUtaW1tZWRpYXRlbHkpCiAgIk1heWJlIG1v dmUgYW5kIHJlc2l6ZSAncG9wLXVwLW1pbmktZnJhbWUnIHRvIEZSQU1FLiIKICAobGV0KiAo KGhvc3QgKHBvcC11cC1taW5pLWhvc3Qtd2luZG93IGZyYW1lKSkKCSAocG9zaXRpb24gcG9w LXVwLW1pbmktcG9zaXRpb24pCgkgKGJvZHkgKGFuZCAod2luZG93LWxpdmUtcCBob3N0KQoJ CSAgICAobWVtcSBwb3NpdGlvbiAnKGJvZHktYm90dG9tIGJvZHktdG9wKSkpKQoJIChlZGdl cyAod2luZG93LWVkZ2VzIGhvc3QgYm9keSBuaWwgdCkpCgkgKGJvcmRlcnMtd2lkdGgKCSAg KCogKGZyYW1lLXBhcmFtZXRlciBwb3AtdXAtbWluaS1mcmFtZSAnaW50ZXJuYWwtYm9yZGVy LXdpZHRoKSAyKSkKCSAoYm9keS13aWR0aCAoY2FyIHBvcC11cC1taW5pLXRleHQtcGl4ZWwt c2l6ZSkpCgkgKGJvZHktaGVpZ2h0IChjZHIgcG9wLXVwLW1pbmktdGV4dC1waXhlbC1zaXpl KSkKCSB0b3RhbC13aWR0aCB0b3RhbC1oZWlnaHQgZXh0ZW5kZWQtd2lkdGggZXh0ZW5kZWQt bWFpbikKCjs7ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUg Iipmb28qIikKOzsgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKOzsgICAgICAgKGlu c2VydCAoZm9ybWF0ICIlc1xuIiBoaWRlLWltbWVkaWF0ZWx5KSkpCgogICAgKGlmIChhbmQg KG51bWJlcnAgcG9wLXVwLW1pbmktaGlkZS1pZi1lbXB0eSkKCSAgICAgKHplcm9wIGJvZHkt d2lkdGgpICh6ZXJvcCBib2R5LWhlaWdodCkpCgkoY29uZAoJICgob3IgaGlkZS1pbW1lZGlh dGVseSAoPD0gcG9wLXVwLW1pbmktaGlkZS1pZi1lbXB0eSAwKSkKCSAgOzsgQW4gZW1wdHkg J3BvcC11cC1taW5pLWJ1ZmZlcicgLSBoaWRlIGl0LgoJICAoc2V0cSBwb3AtdXAtbWluaS1i bG9jay1oZWlnaHQgbmlsKQoJICAobWFrZS1mcmFtZS1pbnZpc2libGUgcG9wLXVwLW1pbmkt ZnJhbWUpKQoJICh0CgkgIChzZXRxIHBvcC11cC1taW5pLWJsb2NrLWhlaWdodCBuaWwpCgkg IChzZXRxIHBvcC11cC1taW5pLWhpZGUtaWYtZW1wdHktdGltZXIKCQkocnVuLXdpdGgtdGlt ZXIKCQkgcG9wLXVwLW1pbmktaGlkZS1pZi1lbXB0eSBuaWwgJ3BvcC11cC1taW5pLWhpZGUp KSkpCiAgICAgIDs7IElmICdwb3AtdXAtbWluaS1yZXNpemUtbWFudWFsbHknIGlzIG5vbi1u aWwga2VlcCBhcm91bmQgaG9zdAogICAgICA7OyBhbmQgaGVpZ2h0IG9mIGEgbWFudWFsbHkg cmVzaXplZCAncG9wLXVwLW1pbmktZnJhbWUnIGFzIGxvbmcKICAgICAgOzsgYXMgaXQncyBs YXJnZXIgdGhhbiBvbmUgbGluZSBhbmQgaXRzIGJ1ZmZlciBpcyBub24tZW1wdHkuCiAgICAg IChpZiBwb3AtdXAtbWluaS1ibG9jay1oZWlnaHQKCSAgKHNldHEgcG9wLXVwLW1pbmktYmxv Y2staGVpZ2h0CgkgICAgICAoYW5kIChub3QgKHplcm9wIGJvZHktd2lkdGgpKQoJCSAgIChu b3QgKHplcm9wIGJvZHktaGVpZ2h0KSkKCQkgICAoPiAod2luZG93LXBpeGVsLWhlaWdodCBw b3AtdXAtbWluaS13aW5kb3cpCgkJICAgICAgKGZyYW1lLWNoYXItaGVpZ2h0IHBvcC11cC1t aW5pLWZyYW1lKSkpKQoJKHNldHEgcG9wLXVwLW1pbmktYmxvY2staGVpZ2h0CgkgICAgICAo YW5kIHBvcC11cC1taW5pLXJlc2l6ZS1tYW51YWxseQoJCSAgIChlcSBwb3AtdXAtbWluaS1m cmFtZSAoc2VsZWN0ZWQtZnJhbWUpKQoJCSAgICgvPSAod2luZG93LXBpeGVsLWhlaWdodCBw b3AtdXAtbWluaS13aW5kb3cpCgkJICAgICAgICh3aW5kb3ctb2xkLXBpeGVsLWhlaWdodCBw b3AtdXAtbWluaS13aW5kb3cpKSkpKQoKOzsgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIg KGdldC1idWZmZXItY3JlYXRlICIqZm9vKiIpCjs7IAkoZ290by1jaGFyIChwb2ludC1tYXgp KQo7OyAJKGluc2VydCAoZm9ybWF0ICJmb29iYXIgJXMgLi4gJXMgLi4gJXNcbiIKOzsgCQkJ cG9wLXVwLW1pbmktaGlkZS1pZi1lbXB0eQo7OyAJCQlib2R5LXdpZHRoIGJvZHktaGVpZ2h0 KSkpCgogICAgICA7OyBDaGVjayBtaW5pbXVtIHdpZHRoIGFuZCBoZWlnaHQgb2Ygc2VsZWN0 ZWQgd2luZG93LgogICAgICAoY29uZAogICAgICAgOzsgRm9yICdzY3JvbGwtYmFyJyBkZXRy YWN0IG1vZGUgbGluZSBhbmQgZGl2aWRlciBoZWlnaHQgZnJvbQogICAgICAgOzsgdGhpcmQg ZWRnZS4KICAgICAgICgoYW5kIChlcSBwb3NpdGlvbiAnc2Nyb2xsLWJhcikgKGVxIHBvcC11 cC1taW5pLWhvc3QgJ3NlbGVjdGVkKSkKCShzZXRxIGVkZ2VzIChsaXN0IChudGggMCBlZGdl cykgKG50aCAxIGVkZ2VzKSAobnRoIDIgZWRnZXMpCgkJCSAgKC0gKG50aCAzIGVkZ2VzKSAo d2luZG93LW1vZGUtbGluZS1oZWlnaHQgaG9zdCkKCQkJICAgICAod2luZG93LWJvdHRvbS1k aXZpZGVyLXdpZHRoIGhvc3QpKSkpCgkoc2V0cSBwb3NpdGlvbiAnYm90dG9tKSkKICAgICAg IDs7IEZvciAnYm90dG9tJyBkZXRyYWN0IGRpdmlkZXIgaGVpZ2h0IGZyb20gdGhpcmQgZWRn ZSB3aGVuIGhvc3QKICAgICAgIDs7IGlzIGxpdmUgKCdtYWluJyBzbGlnaHRseSBsb3NlcyBo ZXJlKS4KICAgICAgICgoYW5kIChlcSBwb3NpdGlvbiAnYm90dG9tKSAod2luZG93LWxpdmUt cCBob3N0KSkKCShzZXRxIGVkZ2VzIChsaXN0IChudGggMCBlZGdlcykgKG50aCAxIGVkZ2Vz KSAobnRoIDIgZWRnZXMpCgkJCSAgKC0gKG50aCAzIGVkZ2VzKQoJCQkgICAgICh3aW5kb3ct Ym90dG9tLWRpdmlkZXItd2lkdGggaG9zdCkpKSkpKQogICAgICAoc2V0cSB0b3RhbC13aWR0 aAoJICAgICgrIGJvZHktd2lkdGgKCSAgICAgICAoLSAod2luZG93LXBpeGVsLXdpZHRoIHBv cC11cC1taW5pLXdpbmRvdykKCQkgICh3aW5kb3ctYm9keS13aWR0aCBwb3AtdXAtbWluaS13 aW5kb3cgdCkpCgkgICAgICAgYm9yZGVycy13aWR0aCkpCgogICAgICAodW5sZXNzIHBvcC11 cC1taW5pLWJsb2NrLWhlaWdodAoJKHNldHEgdG90YWwtaGVpZ2h0CgkgICAgICAoKyBib2R5 LWhlaWdodAoJCSAoLSAod2luZG93LXBpeGVsLWhlaWdodCBwb3AtdXAtbWluaS13aW5kb3cp CgkJICAgICh3aW5kb3ctYm9keS1oZWlnaHQgcG9wLXVwLW1pbmktd2luZG93IHQpKQoJCSBi b3JkZXJzLXdpZHRoKSkpCgogICAgICA7OyBFeHRlbmQgb24gc2Nyb2xsIGJhcnMsIG1heWJl LgogICAgICAod2hlbiAoYW5kIChlcSBwb3AtdXAtbWluaS1wb3NpdGlvbiAnc2Nyb2xsLWJh cikKCQkgKHdpbmRvdy1jb21iaW5lZC1wIG5pbCB0KQoJCSAob3IgKDwgKC0gKG50aCAyIGVk Z2VzKSAobnRoIDAgZWRnZXMpCgkJCSAgICh3aW5kb3ctcmlnaHQtZGl2aWRlci13aWR0aCBo b3N0KSkKCQkJdG90YWwtd2lkdGgpCgkJICAgICAoPCAoLSAobnRoIDIgZWRnZXMpIChudGgg MCBlZGdlcykKCQkJICAgKHdpbmRvdy1yaWdodC1kaXZpZGVyLXdpZHRoIGhvc3QpKQoJCQlw b3AtdXAtbWluaS1ob3N0LW1pbi13aWR0aCkpKQoJKGxldCogKChlZGdlLTAgKG50aCAwIGVk Z2VzKSkKCSAgICAgICAoc2libGluZyAod2luZG93LW5leHQtc2libGluZykpCgkgICAgICAg KGVkZ2UtMiAobnRoIDIgKHdpbmRvdy1lZGdlcyBzaWJsaW5nIG5pbCBuaWwgdCkpKQoJICAg ICAgICh3aWR0aCAoLSBlZGdlLTIgZWRnZS0wKSkpCgkgICh3aGlsZSAoYW5kIHNpYmxpbmcg KDwgd2lkdGggdG90YWwtd2lkdGgpKQoJICAgIChzZXRxIHNpYmxpbmcgKHdpbmRvdy1uZXh0 LXNpYmxpbmcgc2libGluZykpCgkgICAgKHNldHEgZWRnZS0yIChudGggMiAod2luZG93LWVk Z2VzIHNpYmxpbmcgbmlsIG5pbCB0KSkpCgkgICAgKHNldHEgd2lkdGggKC0gZWRnZS0yIGVk Z2UtMCkpKQoJICAoaWYgKD49IHdpZHRoIHRvdGFsLXdpZHRoKQoJICAgICAgKHByb2duCgkJ KHNldHEgZXh0ZW5kZWQtd2lkdGggd2lkdGgpCgkJKHNldHEgZXh0ZW5kZWQtbWFpbgoJCSAg ICAgIChhbmQgc2libGluZyAobm90ICh3aW5kb3ctbGl2ZS1wIHNpYmxpbmcpKSkpKQoJICAg IChzZXRxIGVkZ2UtMiAobnRoIDIgKHdpbmRvdy1lZGdlcwoJCQkJICh3aW5kb3ctbWFpbi13 aW5kb3cgZnJhbWUpIG5pbCBuaWwgdCkpKQoJICAgIChzZXRxIHdpZHRoICgtIGVkZ2UtMiBl ZGdlLTApKQoJICAgICh3aGVuICg+PSB3aWR0aCB0b3RhbC13aWR0aCkKCSAgICAgIChzZXRx IGV4dGVuZGVkLW1haW4gdCkKCSAgICAgIChzZXRxIGV4dGVuZGVkLXdpZHRoIHdpZHRoKSkp KSkKCiAgICAgICh3aGVuIChhbmQgKG5vdCBwb3AtdXAtbWluaS1ibG9jay1oZWlnaHQpCgkJ IChlcSBwb3AtdXAtbWluaS1ob3N0ICdzZWxlY3RlZCkKCQkgKG5vdCBleHRlbmRlZC13aWR0 aCkKCQkgKG9yIChub3QgKHplcm9wIHBvcC11cC1taW5pLWhvc3QtbWluLXdpZHRoKSkKCQkg ICAgIChub3QgKHplcm9wIHBvcC11cC1taW5pLWhvc3QtbWluLWhlaWdodCkpCgkJICAgICBw b3AtdXAtbWluaS1yZWhvc3QtdG8tZml0KQoJCSAob3IgKGFuZCAoLz0gKHdpbmRvdy10b3Rh bC13aWR0aCBob3N0KQoJCQkgICAgICAod2luZG93LXRvdGFsLXdpZHRoICh3aW5kb3ctbWFp bi13aW5kb3cgZnJhbWUpKSkKCQkJICAob3IgKDwgKC0gKG50aCAyIGVkZ2VzKSAobnRoIDAg ZWRnZXMpCgkJCQkgICAgKHdpbmRvdy1yaWdodC1kaXZpZGVyLXdpZHRoIGhvc3QpKQoJCQkJ IHRvdGFsLXdpZHRoKQoJCQkgICAgICAoPCAoLSAobnRoIDIgZWRnZXMpIChudGggMCBlZGdl cykKCQkJCSAgICAod2luZG93LXJpZ2h0LWRpdmlkZXItd2lkdGggaG9zdCkpCgkJCQkgcG9w LXVwLW1pbmktaG9zdC1taW4td2lkdGgpCgkJICAgICAoYW5kICgvPSAod2luZG93LXRvdGFs LWhlaWdodCBob3N0KQoJCQkgICAgICAod2luZG93LXRvdGFsLWhlaWdodCAod2luZG93LW1h aW4td2luZG93IGZyYW1lKSkpCgkJCSAgKG9yICg8ICgtIChudGggMyBlZGdlcykgKG50aCAx IGVkZ2VzKSkgdG90YWwtaGVpZ2h0KQoJCQkgICAgICAoPCAoLSAobnRoIDMgZWRnZXMpIChu dGggMSBlZGdlcykpCgkJCQkgcG9wLXVwLW1pbmktaG9zdC1taW4taGVpZ2h0KSkpKSkpKQoJ OzsgRlJBTUUncyBzZWxlY3RlZCB3aW5kb3cgaXMgdG9vIHNtYWxsLCB1c2UgaXRzIG1haW4g d2luZG93LgoJKHNldHEgaG9zdCAod2luZG93LW1haW4td2luZG93IGZyYW1lKSkKCShzZXRx IHBvc2l0aW9uCgkgICAgICAoY29uZAoJICAgICAgICgoZXEgcG9zaXRpb24gJ2JvZHktdG9w KSAndG9wKQoJICAgICAgICgoZXEgcG9zaXRpb24gJ2JvZHktYm90dG9tKSAnYm90dG9tKQoJ ICAgICAgICh0IHBvc2l0aW9uKSkpCgkoc2V0cSBlZGdlcyAod2luZG93LWVkZ2VzIGhvc3Qg bmlsIG5pbCB0KSkpCgo7OyAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZl ci1jcmVhdGUgIipmb28qIikKOzsgCShnb3RvLWNoYXIgKHBvaW50LW1heCkpCjs7IAkoaW5z ZXJ0IChmb3JtYXQgImJhciAlcyAuLiAlcyAuLiAlcyAuLiBob3N0OiAlcyAuLiAlcyA+PSAl c1xuIgo7OyAJCQlwb3AtdXAtbWluaS1idWZmZXIgcG9wLXVwLW1pbmktdGV4dAo7OyAJCQlw b3AtdXAtbWluaS10ZXh0LXBpeGVsLXNpemUKOzsgCQkJaG9zdCAoLSAobnRoIDIgZWRnZXMp IChudGggMCBlZGdlcykpIGJvZHktd2lkdGgpKSkKCjs7ICAgICAgICh3aXRoLWN1cnJlbnQt YnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiKmZvbyoiKQo7OyAJKGdvdG8tY2hhciAocG9p bnQtbWF4KSkKOzsgCShpbnNlcnQgKGZvcm1hdCAiYmFyIHRvcDogJXMgLi4uIGhlaWdodDog JXNcbiIKOzsgCQkJKC0gKGZyYW1lLXBpeGVsLWhlaWdodCBmcmFtZSkgKG50aCAzIGVkZ2Vz KSkKOzsgCQkJdG90YWwtaGVpZ2h0KSkpCgogICAgICA7OyBDYW5jZWwgb3VyIHRpbWVyLgog ICAgICAod2hlbiAodGltZXJwIHBvcC11cC1taW5pLWhpZGUtaWYtZW1wdHktdGltZXIpCgko Y2FuY2VsLXRpbWVyIHBvcC11cC1taW5pLWhpZGUtaWYtZW1wdHktdGltZXIpCgkoc2V0cSBw b3AtdXAtbWluaS1oaWRlLWlmLWVtcHR5LXRpbWVyIG5pbCkpCiAgICAgIDs7IFJlc2l6ZSBh bmQgcG9zaXRpb24uCiAgICAgIChtb2RpZnktZnJhbWUtcGFyYW1ldGVycwogICAgICAgcG9w LXVwLW1pbmktZnJhbWUKICAgICAgIGAoKHBhcmVudC1mcmFtZSAuICxmcmFtZSkKCSAodmlz aWJpbGl0eSAuIHQpCgkgKHRvcCAuICwoaWYgKG1lbXEgcG9wLXVwLW1pbmktcG9zaXRpb24g Jyh0b3AgYm9keS10b3ApKQoJCSAgICAgKG50aCAxIGVkZ2VzKQoJCSAgIGAoLSAsKC0gKGZy YW1lLXBpeGVsLWhlaWdodCBmcmFtZSkgKG50aCAzIGVkZ2VzKSkpKSkKCSAobGVmdCAuICwo bnRoIDAgZWRnZXMpKQoJICwodW5sZXNzIHBvcC11cC1taW5pLWJsb2NrLWhlaWdodAoJICAg IGAoaGVpZ2h0IC4gLChjb25zICd0ZXh0LXBpeGVscwoJCQkgICAgICA7OyBEb24ndCBtYWtl ICdwb3AtdXAtbWluaS1mcmFtZScgaGlnaGVyCgkJCSAgICAgIDs7IHRoYW4gaXRzIGhvc3Qg d2luZG93LgoJCQkgICAgICAobWluICgtIChudGggMyBlZGdlcykgKG50aCAxIGVkZ2VzKSkK CQkJCSAgIHRvdGFsLWhlaWdodCkpKSkKCSAod2lkdGggLiAsKGNvbnMgJ3RleHQtcGl4ZWxz CgkJCSA7OyBNYWtlICdwb3AtdXAtbWluaS1mcmFtZScgYXMgd2lkZSBhcyBpdHMKCQkJIDs7 IGhvc3Qgd2luZG93LgoJCQkgKG9yIChhbmQgZXh0ZW5kZWQtd2lkdGgKCQkJCSAgKC0gZXh0 ZW5kZWQtd2lkdGgKCQkJCSAgICAgKGlmIChhbmQgKHdpbmRvdy1saXZlLXAgaG9zdCkgKG5v dCBleHRlbmRlZC1tYWluKSkKCQkJCQkgKHdpbmRvdy1yaWdodC1kaXZpZGVyLXdpZHRoIGhv c3QpCgkJCQkgICAgICAgMCkKCQkJCSAgICAgKC0gKHdpbmRvdy1waXhlbC13aWR0aCBwb3At dXAtbWluaS13aW5kb3cpCgkJCQkJKHdpbmRvdy1ib2R5LXdpZHRoIHBvcC11cC1taW5pLXdp bmRvdyB0KSkKCQkJCSAgICAgYm9yZGVycy13aWR0aCkpCgkJCSAgICAgKC0gKG50aCAyIGVk Z2VzKSAobnRoIDAgZWRnZXMpCgkJCQkoaWYgKHdpbmRvdy1saXZlLXAgaG9zdCkKCQkJCSAg ICAod2luZG93LXJpZ2h0LWRpdmlkZXItd2lkdGggaG9zdCkKCQkJCSAgMCkKCQkJCSgtICh3 aW5kb3ctcGl4ZWwtd2lkdGggcG9wLXVwLW1pbmktd2luZG93KQoJCQkJICAgKHdpbmRvdy1i b2R5LXdpZHRoIHBvcC11cC1taW5pLXdpbmRvdyB0KSkKCQkJCWJvcmRlcnMtd2lkdGgpKSkp KSkKICAgICAgKHNldHEgcG9wLXVwLW1pbmktd2luZG93LXBpeGVsLXdpZHRoCgkgICAgKHdp bmRvdy1waXhlbC13aWR0aCBwb3AtdXAtbWluaS13aW5kb3cpKQogICAgICAoc2V0cSBwb3At dXAtbWluaS13aW5kb3ctcGl4ZWwtaGVpZ2h0CgkgICAgKHdpbmRvdy1waXhlbC1oZWlnaHQg cG9wLXVwLW1pbmktd2luZG93KSkpKSkKCihkZWZ1biBwb3AtdXAtbWluaS13aW5kb3ctc3Rh dGUtY2hhbmdlICgpCiAgIidwb3AtdXAtbWluaS1tb2RlJyBmdW5jdGlvbiBydW4gYnkgJ3dp bmRvdy1zdGF0ZS1jaGFuZ2UtaG9vaycuCklmIHRoZSBzZWxlY3RlZCB3aW5kb3csIHRoZSB3 aW5kb3cgc3BlY2ZpZWQgYnkgJ3BvcC11cC1taW5pLWhvc3QnCm9yICdwb3AtdXAtbWluaS10 ZXh0JyBjaGFuZ2VkIHNpbmNlIGxhc3QgcmVkaXNwbGF5LCByZXBhcmVudCwKcmVzaXplIGFu ZC9vciByZXBvc2l0aW9uICdwb3AtdXAtbWluaS1mcmFtZScgaWYgbmVjZXNzYXJ5LiIKICAo d2hlbiAoZnJhbWUtbGl2ZS1wIHBvcC11cC1taW5pLWZyYW1lKQogICAgKGxldCogKChvbGQt cGFyZW50CgkgICAgKGFuZCAoZnJhbWUtbGl2ZS1wIChmcmFtZS1wYXJlbnQgcG9wLXVwLW1p bmktZnJhbWUpKQoJCSAoZnJhbWUtcGFyZW50IHBvcC11cC1taW5pLWZyYW1lKSkpCgkgICAo bmV3LXBhcmVudAoJICAgIChjb25kCgkgICAgICgoZXEgKHNlbGVjdGVkLWZyYW1lKSBvbGQt cGFyZW50KSBvbGQtcGFyZW50KQoJICAgICAoKGVxIChzZWxlY3RlZC1mcmFtZSkgcG9wLXVw LW1pbmktZnJhbWUpCgkgICAgICAoaWYgKG1pbmlidWZmZXItc2VsZWN0ZWQtd2luZG93KQoJ CSAgKGxldCAoKGZyYW1lICh3aW5kb3ctZnJhbWUgKG1pbmlidWZmZXItc2VsZWN0ZWQtd2lu ZG93KSkpKQoJCSAgICAoaWYgKGFuZCAobm90IChlcSBmcmFtZSBvbGQtcGFyZW50KSkKCQkJ ICAgICAoZXEgKG1pbmlidWZmZXItd2luZG93IGZyYW1lKSBwb3AtdXAtbWluaS13aW5kb3cp KQoJCQk7OyBTcGVjaWFsIGNhc2Ugd2hlcmUgc2VsZWN0ZWQgd2luZG93IGNoYW5nZWQKCQkJ OzsgX2FuZF8gJ3BvcC11cC1taW5pLXdpbmRvdycgZ290IHNlbGVjdGVkLgoJCQlmcmFtZQoJ CSAgICAgIG9sZC1wYXJlbnQpKSkpCgkgICAgICgoZXEgKG1pbmlidWZmZXItd2luZG93KSBw b3AtdXAtbWluaS13aW5kb3cpIChzZWxlY3RlZC1mcmFtZSkpCgkgICAgICh0IG9sZC1wYXJl bnQpKSkKCSAgIGhpZGUtaW1tZWRpYXRlbHkpCgo7OyAgICAgICAodW5sZXNzIChlcSAoZnJh bWUtb2xkLXNlbGVjdGVkLXdpbmRvdyBuZXctcGFyZW50KQo7OyAJCSAgKGZyYW1lLXNlbGVj dGVkLXdpbmRvdyBuZXctcGFyZW50KSkKOzsgCSh3aXRoLWN1cnJlbnQtYnVmZmVyIChnZXQt YnVmZmVyLWNyZWF0ZSAiKmZvbyoiKQo7OyAJICAoZ290by1jaGFyIChwb2ludC1tYXgpKQo7 OyAJICAoaW5zZXJ0IChmb3JtYXQgIiVzIC4uLiAlc1xuIgo7OyAJCQkgIChmcmFtZS1vbGQt c2VsZWN0ZWQtd2luZG93IG5ldy1wYXJlbnQpCjs7IAkJCSAgKGZyYW1lLXNlbGVjdGVkLXdp bmRvdyBuZXctcGFyZW50KSkpKSkKCiAgICAgICh3aGVuIChhbmQgKGZyYW1lLWxpdmUtcCBu ZXctcGFyZW50KQoJCSAob3IgKHNldHEgaGlkZS1pbW1lZGlhdGVseSAobm90IChlcSBvbGQt cGFyZW50IG5ldy1wYXJlbnQpKSkKCQkgICAgIChsZXQgKChob3N0LXdpbmRvdyAocG9wLXVw LW1pbmktaG9zdC13aW5kb3cgbmV3LXBhcmVudCkpKQoJCSAgICAgICAoc2V0cSBoaWRlLWlt bWVkaWF0ZWx5CgkJCSAgICAgKG9yIChhbmQgKGVxIHBvcC11cC1taW5pLWhvc3QgJ3NlbGVj dGVkKQoJCQkJICAgICAgKG5vdCAoZXEgKGZyYW1lLW9sZC1zZWxlY3RlZC13aW5kb3cKCQkJ CQkJbmV3LXBhcmVudCkKCQkJCQkgICAgICAgKGZyYW1lLXNlbGVjdGVkLXdpbmRvdwoJCQkJ CQluZXctcGFyZW50KSkpKQoJCQkJICgvPSAod2luZG93LXBpeGVsLWhlaWdodCBob3N0LXdp bmRvdykKCQkJCSAgICAgKHdpbmRvdy1vbGQtcGl4ZWwtaGVpZ2h0IGhvc3Qtd2luZG93KSkK CQkJCSAoLz0gKHdpbmRvdy1waXhlbC13aWR0aCBob3N0LXdpbmRvdykKCQkJCSAgICAgKHdp bmRvdy1vbGQtcGl4ZWwtd2lkdGggaG9zdC13aW5kb3cpKSkpKQoJCSAgICAgKGZyYW1lLXdp bmRvdy1zdGF0ZS1jaGFuZ2UgcG9wLXVwLW1pbmktZnJhbWUpKSkKCTs7IFNvbWV0aGluZyBy ZWFsbHkgY2hhbmdlZCwgZGlnIGZ1cnRoZXIuCgkocG9wLXVwLW1pbmktbW92ZSBuZXctcGFy ZW50IGhpZGUtaW1tZWRpYXRlbHkpKSkpKQoKKGRlZnVuIHBvcC11cC1taW5pLXJlc2l6ZS1t aW5pLWZyYW1lIChmcmFtZSkKICAiJ3Jlc2l6ZS1taW5pLWZyYW1lcycgZnVuY3Rpb24gb2Yg J3BvcC11cC1taW5pLW1vZGUnLiIKICAod2hlbiAoZXEgZnJhbWUgcG9wLXVwLW1pbmktZnJh bWUpCiAgICAobGV0KiAoKGJ1ZmZlciAod2luZG93LWJ1ZmZlciBwb3AtdXAtbWluaS13aW5k b3cpKQoJICAgKHRleHQgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCgkJICAgOzsgU2lu Y2Ugd2UgaWdub3JlIHRleHQgcHJvcGVydGllcyB3ZSB3aWxsIG1pc3MgdGhlCgkJICAgOzsg Y2FzZSBvZiBkaXNwbGF5aW5nIHRoZSBzYW1lIHN0cmluZyB3aXRoCgkJICAgOzsgZGlmZmVy ZW50IHRleHQgcHJvcGVydGllcyB0d2ljZSBpbiBhIHJvdy4KCQkgICAoYnVmZmVyLXN1YnN0 cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQogICAgICA7 OyBSZXR1cm4gd2hlbiB0aGVyZSdzIG5vIGNoYW5nZS4gIFRoaXMgbWVhbnMgdGhhdAogICAg ICA7OyAncG9wLXVwLW1pbmktYnVmZmVyJywgJ3BvcC11cC1taW5pLXRleHQnIGFzIHdlbGwg YXMgd2lkdGggYW5kCiAgICAgIDs7IGhlaWdodCBvZiAncG9wLXVwLW1pbmktd2luZG93JyBh cmUgdGhlIHNhbWUgYXMgdGhlIGxhc3QgdGltZQogICAgICA7OyB3ZSBkaXNwbGF5ZWQgdGhl bS4KICAgICAgKHVubGVzcyAoYW5kIChlcSBidWZmZXIgcG9wLXVwLW1pbmktYnVmZmVyKQoJ CSAgIChzdHJpbmctZXF1YWwgcG9wLXVwLW1pbmktdGV4dCB0ZXh0KQoJCSAgIDs7IE1ha2Ug c3VyZSB0aGF0IHdlIGRvIG5vdCBtaXNzIGEgY2FzZSB3aGVyZSB3ZQoJCSAgIDs7IHdhbnQg dG8gbWFrZSAncG9wLXVwLW1pbmktZnJhbWUnIGludmlzaWJsZS4KCQkgICAob3IgKG5vdCBw b3AtdXAtbWluaS1oaWRlLWlmLWVtcHR5KQoJCSAgICAgICAobm90IChzdHJpbmctZXF1YWwg dGV4dCAiIikpCgkJICAgICAgIChub3QgKGZyYW1lLXZpc2libGUtcCBwb3AtdXAtbWluaS1m cmFtZSkpKQoJCSAgIChlcXVhbCAod2luZG93LXBpeGVsLXdpZHRoIHBvcC11cC1taW5pLXdp bmRvdykKCQkJICBwb3AtdXAtbWluaS13aW5kb3ctcGl4ZWwtd2lkdGgpCgkJICAgKGVxdWFs ICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHBvcC11cC1taW5pLXdpbmRvdykKCQkJICBwb3AtdXAt bWluaS13aW5kb3ctcGl4ZWwtaGVpZ2h0KSkKCTs7IFJlbWVtYmVyIG9sZCBzdHJpbmcuCgko c2V0cSBwb3AtdXAtbWluaS1idWZmZXIgYnVmZmVyKQoJKHNldHEgcG9wLXVwLW1pbmktdGV4 dCB0ZXh0KQoJKHNldHEgcG9wLXVwLW1pbmktd2luZG93LXBpeGVsLXdpZHRoCgkgICAgICAo d2luZG93LXBpeGVsLXdpZHRoIHBvcC11cC1taW5pLXdpbmRvdykpCgkoc2V0cSBwb3AtdXAt bWluaS13aW5kb3ctcGl4ZWwtaGVpZ2h0CgkgICAgICAod2luZG93LXBpeGVsLWhlaWdodCBw b3AtdXAtbWluaS13aW5kb3cpKQoJOzsgVGhpcyBpcyB0aGUgb25seSBwbGFjZSB3aGVyZSB3 ZSBjYW4gY2FsY3VsYXRlIHRoZSBzaXplLgoJKHNldHEgcG9wLXVwLW1pbmktdGV4dC1waXhl bC1zaXplCgkgICAgICAoYW5kIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKCQkgICAod2luZG93 LXRleHQtcGl4ZWwtc2l6ZQoJCSAgICBwb3AtdXAtbWluaS13aW5kb3cKCQkgICAgbmlsIG5p bCAoZnJhbWUtdGV4dC13aWR0aAoJCQkgICAgIChmcmFtZS1wYXJlbnQgcG9wLXVwLW1pbmkt ZnJhbWUpKSkpKQoKOzsgCSh3aGVuIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKOzsgCSAgKHdp dGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqZm9vKiIpCjs7IAkgICAg KGdvdG8tY2hhciAocG9pbnQtbWF4KSkKOzsgCSAgICAoaW5zZXJ0IChmb3JtYXQgImZvbyAl cyAoJXMpIC4uICVzICglcykgLi4gJXMgLi4gJXNcbiIKOzsgCQkJICAgIGJ1ZmZlciAoZXEg YnVmZmVyIHBvcC11cC1taW5pLWJ1ZmZlcikKOzsgCQkJICAgIHRleHQgKHN0cmluZy1lcXVh bCB0ZXh0IHBvcC11cC1taW5pLXRleHQpCjs7IAkJCSAgICBwb3AtdXAtbWluaS10ZXh0LXBp eGVsLXNpemUKOzsgCQkJICAgIChmcmFtZS10ZXh0LXdpZHRoCjs7IAkJCSAgICAgKGZyYW1l LXBhcmVudCBwb3AtdXAtbWluaS1mcmFtZSkpKSkpKQoKCTs7IE5vdGlmeSBvdXJzZWx2ZXMg b2YgY2hhbmdlLgoJKHNldC1mcmFtZS13aW5kb3ctc3RhdGUtY2hhbmdlIGZyYW1lIHQpKSkp KQoKKGRlZnVuIHBvcC11cC1taW5pLWFmdGVyLW1ha2UtZnJhbWUgKGZyYW1lKQogICJNYXli ZSBtYWtlIEZSQU1FIGNsaWVudCBvZiAncG9wLXVwLW1pbmktZnJhbWUnLiIKICAod2hlbiAo YW5kIChub3QgKGZyYW1lLXBhcmFtZXRlciBmcmFtZSAnbWluaWJ1ZmZlcikpCgkgICAgICh3 aW5kb3ctbGl2ZS1wIHBvcC11cC1taW5pLXdpbmRvdykpCiAgICAoc2V0LWZyYW1lLXBhcmFt ZXRlciBmcmFtZSAnbWluaWJ1ZmZlciBwb3AtdXAtbWluaS13aW5kb3cpKSkKCihkZWZ1biBw b3AtdXAtbWluaS1zZXR1cCAoKQogICJTZXQgdXAgbWluaWJ1ZmZlciBjaGlsZCBmcmFtZSBt b2RlLgpUaGlzIGZ1bmN0aW9uIG1ha2VzIHRoZSBmaXJzdCBtaW5pYnVmZmVyLW9ubHkgZnJh bWUgaXQgZmluZHMgdGhlCidwb3AtdXAtbWluaS1mcmFtZScuICBOZWVkcyBhIG1pbmlidWZm ZXItb25seSBmcmFtZS4iCiAgKHNldHEgcG9wLXVwLW1pbmktZnJhbWUgbmlsKQoKICA7OyBN YWtlICdwb3AtdXAtbWluaS1mcmFtZScgdGhlIGZpcnN0ICdtaW5pYnVmZmVyLW9ubHknIGZy YW1lIGZvdW5kCiAgOzsgb24gJ2ZyYW1lLWxpc3QnLiAgVGhyb3cgYW4gZXJyb3IgaWYgd2Ug ZG9uJ3QgZmluZCBvbmUuCiAgKHVubGVzcyAoY2F0Y2ggJ2ZvdW5kCgkgICAgKGRvbGlzdCAo ZnJhbWUgKGZyYW1lLWxpc3QpKQoJICAgICAgKHdoZW4gKGVxIChmcmFtZS1wYXJhbWV0ZXIg ZnJhbWUgJ21pbmlidWZmZXIpICdvbmx5KQoJCSh0aHJvdyAnZm91bmQgKHNldHEgcG9wLXVw LW1pbmktZnJhbWUgZnJhbWUpKSkpKQogICAgKGVycm9yICIncG9wLXVwLW1pbmktbW9kZScg bmVlZHMgYSBtaW5pYnVmZmVyLW9ubHkgZnJhbWUiKSkKCiAgOzsgVGhlIGZvbGxvd2luZyB3 aWxsIGZhaWwgd2hlbmV2ZXIgc29tZW9uZSByZXNldHMgdGhlCiAgOzsgJ3Vuc3BsaXR0YWJs ZScgcGFyYW1ldGVyIG9mICdwb3AtdXAtbWluaS1mcmFtZScuCiAgKHNldHEgcG9wLXVwLW1p bmktd2luZG93IChmcmFtZS1yb290LXdpbmRvdyBwb3AtdXAtbWluaS1mcmFtZSkpCiAgKHNl dHEgcG9wLXVwLW1pbmktYnVmZmVyICh3aW5kb3ctYnVmZmVyIHBvcC11cC1taW5pLXdpbmRv dykpCiAgKHNldC1mYWNlLWJhY2tncm91bmQKICAgJ2ludGVybmFsLWJvcmRlciBwb3AtdXAt bWluaS1pbnRlcm5hbC1ib3JkZXIgcG9wLXVwLW1pbmktZnJhbWUpCiAgOzsgVXN1cnBhdGUg J3Jlc2l6ZS1taW5pLWZyYW1lcycuICBPbiBleGl0IHJlc2V0IHRoYXQgdG8gbmlsLgogIChz ZXRxIHJlc2l6ZS1taW5pLWZyYW1lcyAncG9wLXVwLW1pbmktcmVzaXplLW1pbmktZnJhbWUp CiAgKGFkZC1ob29rCiAgICd3aW5kb3ctc3RhdGUtY2hhbmdlLWhvb2sgJ3BvcC11cC1taW5p LXdpbmRvdy1zdGF0ZS1jaGFuZ2UpCiAgKGFkZC1ob29rCiAgICdhZnRlci1tYWtlLWZyYW1l LWZ1bmN0aW9ucyAncG9wLXVwLW1pbmktYWZ0ZXItbWFrZS1mcmFtZSkpCgo7OzsjIyNhdXRv bG9hZAooZGVmaW5lLW1pbm9yLW1vZGUgcG9wLXVwLW1pbmktbW9kZQogICJTaG93IG1pbmli dWZmZXIgYW5kIGVjaG8gYXJlYSBpbiBhIGNoaWxkIGZyYW1lLgoncG9wLXVwLW1pbmktbW9k ZScgdXNlcyBhIGNoaWxkIGZyYW1lIGNhbGxlZCAncG9wLXVwLW1pbmktZnJhbWUnCmZvciBk aXNwbGF5aW5nIHRoZSBtaW5pYnVmZmVyIG9yIHRoZSBlY2hvIGFyZWEuICBUaGUgcGFyZW50 IGZyYW1lCm9mICdwb3AtdXAtbWluaS1mcmFtZScgaXMgdGhlIGN1cnJlbnRseSBzZWxlY3Rl ZCBmcmFtZS4gIFdpdGhpbgppdHMgcGFyZW50LCAncG9wLXVwLW1pbmktZnJhbWUnIGNhbiBi ZSBob3N0ZWQgYXQgdGhhdCBmcmFtZSdzCnNlbGVjdGVkLCBtYWluIG9yIHJvb3Qgd2luZG93 IChzZWUgJ3BvcC11cC1taW5pLWhvc3QnKSBlaXRoZXIgYXQKdGhhdCB3aW5kb3cncyB0b3Ag b3IgYm90dG9tIChzZWUgJ3BvcC11cC1taW5pLXBvc2l0aW9uJykuICBBCidwb3AtdXAtbWlu aS1mcmFtZScgdGhhdCBkb2VzIG5vdCBkaXNwbGF5IGFueSB0ZXh0IGNhbiBiZSBoaWRkZW4K dXNpbmcgdGhlIG9wdGlvbiAncG9wLXVwLW1pbmktaGlkZS1pZi1lbXB0eScuIgogIDpnbG9i YWwgdAogIDpncm91cCAncG9wLXVwLW1pbmkKICA6aW5pdC12YWx1ZSBuaWwKICA6bGluayAn KGVtYWNzLWNvbW1lbnRhcnktbGluayAicG9wLXVwLW1pbmkuZWwiKQogIChpZiBwb3AtdXAt bWluaS1tb2RlCiAgICAgIChpZiBmcmFtZS1pbml0aWFsLWZyYW1lCgkgIDs7IFdoZW4gdGhl IGluaXRpYWwgZnJhbWUgaXMgc3RpbGwgYXJvdW5kIHdhaXQgdW50aWwKCSAgOzsgJ3dpbmRv dy1zZXR1cC1ob29rJyBpcyBydW4uCgkgIChhZGQtaG9vayAnd2luZG93LXNldHVwLWhvb2sg J3BvcC11cC1taW5pLXNldHVwKQoJOzsgT3RoZXJ3aXNlIHJ1biBpbW1lZGlhdGVseS4KCShw b3AtdXAtbWluaS1zZXR1cCkpCiAgICA7OyBDYW5jZWwgb3VyIHRpbWVyLgogICAgKHdoZW4g KHRpbWVycCBwb3AtdXAtbWluaS1oaWRlLWlmLWVtcHR5LXRpbWVyKQogICAgICAoY2FuY2Vs LXRpbWVyIHBvcC11cC1taW5pLWhpZGUtaWYtZW1wdHktdGltZXIpCiAgICAgIChzZXRxIHBv cC11cC1taW5pLWhpZGUtaWYtZW1wdHktdGltZXIgbmlsKSkKICAgIChyZW1vdmUtaG9vawog ICAgICd3aW5kb3ctc3RhdGUtY2hhbmdlLWhvb2sgJ3BvcC11cC1taW5pLXdpbmRvdy1zdGF0 ZS1jaGFuZ2UpCiAgICAocmVtb3ZlLWhvb2sKICAgICAnYWZ0ZXItbWFrZS1mcmFtZS1mdW5j dGlvbnMgJ3BvcC11cC1taW5pLWFmdGVyLW1ha2UtZnJhbWUpCiAgICA7OyBUaGlzIGlzIG5v dCB2ZXJ5IG5pY2UgYnV0IGFueSBwcmV2aW91cyB2YWx1ZSBtaWdodCBiZSBicm9rZW4uCiAg ICAoc2V0cSByZXNpemUtbWluaS1mcmFtZXMgbmlsKQogICAgOzsgUmVzZXQgb3VyIHZhcmlh Ymxlcy4KICAgIChzZXRxIHBvcC11cC1taW5pLXdpbmRvdyBuaWwpCiAgICAod2hlbiBwb3At dXAtbWluaS1mcmFtZQogICAgICA7OyBVbnBhcmVudCBvdXIgZnJhbWUgYW5kIG1ha2UgaXQg dmlzaWJsZS4KICAgICAgKG1vZGlmeS1mcmFtZS1wYXJhbWV0ZXJzCiAgICAgICBwb3AtdXAt bWluaS1mcmFtZQogICAgICAgYCgocGFyZW50LWZyYW1lIC4gbmlsKSAodmlzaWJpbGl0eSAu IHQpKSkKICAgICAgKHNldHEgcG9wLXVwLW1pbmktZnJhbWUgbmlsKSkpKQoKKHByb3ZpZGUg J3BvcC11cC1taW5pKQoKOzs7IFJlY29tbWVuZGVkIHZhcmlhYmxlIHNldHRpbmdzIGZvciAu ZW1hY3MgaW5pdCBmaWxlLgoKOzsgKGN1c3RvbS1zZXQtdmFyaWFibGVzCjs7ICA7OyBFbmFi bGUgb3Vyc2VsdmVzLgo7OyAgJyhwb3AtdXAtbWluaS1tb2RlIDEpCjs7ICA7OyBSZXNpemUg ZnJhbWVzIGV4YWN0bHkuCjs7ICAnKGZyYW1lLXJlc2l6ZS1waXhlbHdpc2UgdCkKOzsgIDs7 IEF0IGxlYXN0IHR3byBsaW5lcyBzY3JvbGwgbWFyZ2luIGZvciBzZWxlY3RlZCB3aW5kb3cg aG9zdC4KOzsgICcoc2Nyb2xsLW1hcmdpbiAyKQo7OyAgOzsgQXV0b21hdGljYWxseSBjcmVh dGUgYSBtaW5pYnVmZmVyIGNoaWxkIGZyYW1lIGF0IHN0YXJ0dXAgYW5kCjs7ICA7OyByZXBh cmVudCBpdCBpbW1lZGlhdGVseS4KOzsgICcoaW5pdGlhbC1mcmFtZS1hbGlzdAo7OyAgICAg KGNvbnMgJyhtaW5pYnVmZmVyIC4gY2hpbGQtZnJhbWUpIGluaXRpYWwtZnJhbWUtYWxpc3Qp KQo7OyAgOzsgUmV1c2UgbWluaWJ1ZmZlciBjaGlsZCBmcmFtZSB3aGVuIG1ha2luZyBhIG5l dyBmcmFtZS4gIERvIG5vdCB1c2UKOzsgIDs7ICcobWluaWJ1ZmZlciAuIGNoaWxkLWZyYW1l KSBoZXJlLCBpdCB3b3VsZCBtYWtlIGEgbmV3IGNoaWxkIGZyYW1lLgo7OyAgJyhkZWZhdWx0 LWZyYW1lLWFsaXN0Cjs7ICAgICAoY29ucyAnKG1pbmlidWZmZXIgLiBuaWwpIGRlZmF1bHQt ZnJhbWUtYWxpc3QpKQo7OyAgJyhtaW5pYnVmZmVyLWZyYW1lLWFsaXN0Cjs7ICAgICcoOzsg SW5pdGlhbCBwb3NpdGlvbmluZyBhbmQgc2l6aW5nIGZvciB0aGUgd2luZG93IG1hbmFnZXIu Cjs7ICAgICAgKGhlaWdodCAuIDEpCjs7ICAgICAgKHdpZHRoIC4gMS4wKQo7OyAgICAgICh0 b3AgLiAxLjApCjs7ICAgICAgOzsgQWx3YXlzIHNob3cgYXQgbGVhc3Qgb25lIGxpbmUuCjs7 ICAgICAgKG1pbi1oZWlnaHQgLiAxKQo7OyAgICAgIDs7IE5vIGhvcml6b250YWwgc2Nyb2xs IGJhcnMgKHRoZXkgZG9uJ3Qgd29yayBwcm9wZXJseSBpbgo7OyAgICAgIDs7IG1pbmlidWZm ZXIgd2luZG93cykuCjs7ICAgICAgKGhvcml6b250YWwtc2Nyb2xsLWJhcnMgLiBuaWwpCjs7 ICAgICAgOzsgTm8gdGl0bGUgYmFyLgo7OyAgICAgICh1bmRlY29yYXRlZCAuIHQpCjs7ICAg ICAgOzsgVG8gZHJhZyB0aGUgY2hpbGQgZnJhbWUncyB0b3Agd2l0aCB0aGUgbW91c2UuCjs7 ICAgICAgKGludGVybmFsLWJvcmRlci13aWR0aCAuIDEpCjs7ICAgICAgKGRyYWctaW50ZXJu YWwtYm9yZGVyIC4gdCkKOzsgICAgICA7OyBObyBzcGVjaWFsIGdseXBocy4KOzsgICAgICAo bm8tc3BlY2lhbC1nbHlwaHMgLiB0KQo7OyAgICAgIDs7IE5vIGZvdWNzIHdoZW4gY2hpbGQg ZnJhbWUgaXMgKHJlLSltYXBwZWQuCjs7ICAgICAgKG5vLWZvY3VzLW9uLW1hcCAuIHQpKSkp Cgo7OzsgcG9wLXVwLW1pbmkuZWwgZW5kcyBoZXJlCg== --------------798E05270F96DD200CC62CD8--