From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Ken Brown Newsgroups: gmane.emacs.bugs Subject: bug#21804: 25.0.50; file-notify-tests failure on Cygwin Date: Mon, 26 Dec 2016 12:08:18 -0500 Message-ID: References: <563634F7.2070606@cornell.edu> <8737wpipy8.fsf@gmx.de> <87a8qv6lu2.fsf@gmx.de> <5639818A.5090307@cornell.edu> <87ziyugoqr.fsf@gmx.de> <563A3890.6030707@cornell.edu> <87si4lhaeq.fsf@gmx.de> <563ACB3F.5080709@cornell.edu> <87y4ecnrpp.fsf@gmx.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------261EE904291B775820C4FB16" X-Trace: blaine.gmane.org 1482772154 19340 195.159.176.226 (26 Dec 2016 17:09:14 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 26 Dec 2016 17:09:14 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 To: 21804@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Dec 26 18:09:09 2016 Return-path: Envelope-to: geb-bug-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 1cLYlp-0004F5-9F for geb-bug-gnu-emacs@m.gmane.org; Mon, 26 Dec 2016 18:09:09 +0100 Original-Received: from localhost ([::1]:51100 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cLYlt-0005mb-IW for geb-bug-gnu-emacs@m.gmane.org; Mon, 26 Dec 2016 12:09:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46086) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cLYlm-0005mO-MF for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2016 12:09:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cLYli-0000ra-Lg for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2016 12:09:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:40476) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cLYli-0000rT-IF for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2016 12:09:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cLYli-00073h-96 for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2016 12:09:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Ken Brown Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 26 Dec 2016 17:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21804 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21804-submit@debbugs.gnu.org id=B21804.148277210127080 (code B ref 21804); Mon, 26 Dec 2016 17:09:02 +0000 Original-Received: (at 21804) by debbugs.gnu.org; 26 Dec 2016 17:08:21 +0000 Original-Received: from localhost ([127.0.0.1]:55875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cLYl3-00072i-51 for submit@debbugs.gnu.org; Mon, 26 Dec 2016 12:08:21 -0500 Original-Received: from limerock03.mail.cornell.edu ([128.84.13.243]:34580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cLYl1-00072R-GW for 21804@debbugs.gnu.org; Mon, 26 Dec 2016 12:08:20 -0500 X-CornellRouted: This message has been Routed already. Original-Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu [10.16.197.8]) by limerock03.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id uBQH8DLj011985 for <21804@debbugs.gnu.org>; Mon, 26 Dec 2016 12:08:13 -0500 Original-Received: from [192.168.1.9] (mta-68-175-148-36.twcny.rr.com [68.175.148.36] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id uBQH8CbO024674 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for <21804@debbugs.gnu.org>; Mon, 26 Dec 2016 12:08:12 -0500 In-Reply-To: <87y4ecnrpp.fsf@gmx.de> X-PMX-Cornell-Gauge: Gauge=XXXXX X-PMX-CORNELL-AUTH-RESULTS: dkim-out=none; 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: 208.118.235.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:127456 Archived-At: This is a multi-part message in MIME format. --------------261EE904291B775820C4FB16 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit [Resending after unarchiving the bug.] On 11/5/2015 2:58 PM, Michael Albinus wrote: > I've played with this the whole afternoon. Looks like there is no error > in gfilenotify for Cygwin. But it is a hard job to trigger the file > notification events to appear such a way they could be checked for > correctness in the test cases. > > Increasing timeouts was necessary. But even this does not make the > events to appear reliably. One would need to write additional code to > get every single event one after the other. Waiting for a series of > events, as the test cases do expect, does not seem to work. Hi Michael, I've made some progress on understanding why some file notifications aren't triggered in the tests on Cygwin. One issue is that file-notify--test-read-event-timeout has to be increased drastically in order for `created' and `changed' events to be received. These can take 5 seconds or more. A second issue is that a small delay is needed between the creation of a file watch and the beginning of file activity. This is not normally a problem in interactive sessions. But it can be observed in an interactive session by evaluating the following: (require 'filenotify) filenotify (defun my-notify-callback (event) (message "Event %S" event)) (progn (file-notify-add-watch "/tmp/foo" '(change) 'my-notify-callback) (write-region "" nil "/tmp/foo")) (delete-file "/tmp/foo") ;; The above yields `deleted' and `stopped' events, but no `created' event. Now we introduce a delay after adding the watch. (progn (file-notify-add-watch "/tmp/foo" '(change) 'my-notify-callback) (sleep-for 1) (write-region "" nil "/tmp/foo")) (delete-file "/tmp/foo") ;; This time we get the expected `created' event. The attached patch takes care of both timing issues. With this patch, all the inexpensive file-notify tests pass on all my Cygwin systems. Best regards, Ken --------------261EE904291B775820C4FB16 Content-Type: text/plain; charset=UTF-8; name="filenotify-tests.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="filenotify-tests.patch" ZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9maWxlbm90aWZ5LXRlc3RzLmVsIGIvdGVzdC9saXNw L2ZpbGVub3RpZnktdGVzdHMuZWwNCmluZGV4IDBlNmU1OGUuLjFlZDc2NGYgMTAwNjQ0DQot LS0gYS90ZXN0L2xpc3AvZmlsZW5vdGlmeS10ZXN0cy5lbA0KKysrIGIvdGVzdC9saXNwL2Zp bGVub3RpZnktdGVzdHMuZWwNCkBAIC02NCw3ICs2NCwxMSBAQCBmaWxlLW5vdGlmeS0tdGVz dC1yZXN1bHRzDQogKGRlZnZhciBmaWxlLW5vdGlmeS0tdGVzdC1ldmVudCBuaWwpDQogKGRl ZnZhciBmaWxlLW5vdGlmeS0tdGVzdC1ldmVudHMgbmlsKQ0KIA0KLShkZWZjb25zdCBmaWxl LW5vdGlmeS0tdGVzdC1yZWFkLWV2ZW50LXRpbWVvdXQgMC4wMQ0KKyhkZWZjb25zdCBmaWxl LW5vdGlmeS0tdGVzdC1yZWFkLWV2ZW50LXRpbWVvdXQNCisgIChjb25kDQorICAgOzsgU29t ZSBldmVudHMgdGFrZSBzZXZlcmFsIHNlY29uZHMgdG8gYXJyaXZlIG9uIGN5Z3dpbi4NCisg ICAoKGVxIHN5c3RlbS10eXBlICdjeWd3aW4pIDcpDQorICAgKHQgMC4wMSkpDQogICAiVGlt ZW91dCBmb3IgYHJlYWQtZXZlbnQnIGNhbGxzLg0KIEl0IGlzIGRpZmZlcmVudCBmb3IgbG9j YWwgYW5kIHJlbW90ZSBmaWxlIG5vdGlmaWNhdGlvbiBsaWJyYXJpZXMuIikNCiANCkBAIC0z ODgsNiArMzkyLDEwIEBAIGZpbGUtbm90aWZ5LS10ZXN0LXdpdGgtZXZlbnRzDQogICAgICAg KG5vdCAoaW5wdXQtcGVuZGluZy1wKSkpDQogICAgICAoc2V0cSBmaWxlLW5vdGlmeS0tdGVz dC1ldmVudHMgbmlsDQogICAgICAgICAgICBmaWxlLW5vdGlmeS0tdGVzdC1yZXN1bHRzIG5p bCkNCisgICAgIDs7IGN5Z3dpbiBuZWVkcyBhIGRlbGF5IGJldHdlZW4gc2V0dGluZyBhIHdh dGNoIGFuZCBiZWdpbm5pbmcNCisgICAgIDs7IGZpbGUgYWN0aXZpdHksIG9yIGVsc2UgdGhl IGZpcnN0IGV2ZW50IGlzIG5vdCBzZW50Lg0KKyAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAn Y3lnd2luKQ0KKyAgICAgICAgIChzbGVlcC1mb3IgMSkpDQogICAgICAsQGJvZHkNCiAgICAg IChmaWxlLW5vdGlmeS0td2FpdC1mb3ItZXZlbnRzDQogICAgICAgOzsgTW9yZSBldmVudHMg bmVlZCBtb3JlIHRpbWUuICBVc2Ugc29tZSBmdWRnZSBmYWN0b3IuDQpAQCAtNDA5LDEwICs0 MTcsOSBAQCBmaWxlLW5vdGlmeS0tdGVzdC13aXRoLWV2ZW50cw0KICAgKHVud2luZC1wcm90 ZWN0DQogICAgICAgKHByb2duDQogICAgICAgICA7OyBDaGVjayBmaWxlIGNyZWF0aW9uLCBj aGFuZ2UgYW5kIGRlbGV0aW9uLiAgSXQgZG9lc24ndCB3b3JrDQotICAgICAgICA7OyBmb3Ig Y3lnd2luIGFuZCBrcXVldWUsIGJlY2F1c2Ugd2UgZG9uJ3QgdXNlIGFuIGltcGxpY2l0DQot ICAgICAgICA7OyBkaXJlY3RvcnkgbW9uaXRvciAoa3F1ZXVlKSwgb3IgdGhlIHRpbWluZ3Mg YXJlIHRvbyBiYWQgKGN5Z3dpbikuDQotICAgICAgICAodW5sZXNzIChvciAoZXEgc3lzdGVt LXR5cGUgJ2N5Z3dpbikNCi0JCSAgICAoc3RyaW5nLWVxdWFsIChmaWxlLW5vdGlmeS0tdGVz dC1saWJyYXJ5KSAia3F1ZXVlIikpDQorICAgICAgICA7OyBmb3Iga3F1ZXVlLCBiZWNhdXNl IHdlIGRvbid0IHVzZSBhbiBpbXBsaWNpdCBkaXJlY3RvcnkNCisgICAgICAgIDs7IG1vbml0 b3IuDQorICAgICAgICAodW5sZXNzIChzdHJpbmctZXF1YWwgKGZpbGUtbm90aWZ5LS10ZXN0 LWxpYnJhcnkpICJrcXVldWUiKQ0KICAgICAgICAgICAoc2V0cSBmaWxlLW5vdGlmeS0tdGVz dC10bXBmaWxlIChmaWxlLW5vdGlmeS0tdGVzdC1tYWtlLXRlbXAtbmFtZSkpDQogICAgICAg ICAgIChzaG91bGQNCiAgICAgICAgICAgIChzZXRxIGZpbGUtbm90aWZ5LS10ZXN0LWRlc2MN CkBAIC00MjEsOSArNDI4LDkgQEAgZmlsZS1ub3RpZnktLXRlc3Qtd2l0aC1ldmVudHMNCiAg ICAgICAgICAgICAgICAgICAnKGNoYW5nZSkgIydmaWxlLW5vdGlmeS0tdGVzdC1ldmVudC1o YW5kbGVyKSkpDQogICAgICAgICAgIChmaWxlLW5vdGlmeS0tdGVzdC13aXRoLWV2ZW50cw0K ICAgICAgICAgICAgICAgKGNvbmQNCi0gICAgICAgICAgICAgICA7OyBjeWd3aW4gcmVjb2du aXplcyBvbmx5IGBkZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2ZW50cy4NCisgICAgICAgICAg ICAgICA7OyBjeWd3aW4gZG9lcyBub3QgcmFpc2UgYSBgY2hhbmdlZCcgZXZlbnQuDQogICAg ICAgICAgICAgICAgKChlcSBzeXN0ZW0tdHlwZSAnY3lnd2luKQ0KLSAgICAgICAgICAgICAg ICAnKGRlbGV0ZWQgc3RvcHBlZCkpDQorICAgICAgICAgICAgICAgICcoY3JlYXRlZCBkZWxl dGVkIHN0b3BwZWQpKQ0KICAgICAgICAgICAgICAgICh0ICcoY3JlYXRlZCBjaGFuZ2VkIGRl bGV0ZWQgc3RvcHBlZCkpKQ0KICAgICAgICAgICAgICh3cml0ZS1yZWdpb24NCiAgICAgICAg ICAgICAgImFub3RoZXIgdGV4dCIgbmlsIGZpbGUtbm90aWZ5LS10ZXN0LXRtcGZpbGUgbmls ICduby1tZXNzYWdlKQ0KQEAgLTQ0MCwxMyArNDQ3LDkgQEAgZmlsZS1ub3RpZnktLXRlc3Qt d2l0aC1ldmVudHMNCiAJCWZpbGUtbm90aWZ5LS10ZXN0LXRtcGZpbGUNCiAJCScoY2hhbmdl KSAjJ2ZpbGUtbm90aWZ5LS10ZXN0LWV2ZW50LWhhbmRsZXIpKSkNCiAgICAgICAgIChmaWxl LW5vdGlmeS0tdGVzdC13aXRoLWV2ZW50cw0KLQkgICAgKGNvbmQNCi0JICAgICA7OyBjeWd3 aW4gcmVjb2duaXplcyBvbmx5IGBkZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2ZW50cy4NCi0J ICAgICAoKGVxIHN5c3RlbS10eXBlICdjeWd3aW4pDQotCSAgICAgICcoZGVsZXRlZCBzdG9w cGVkKSkNCi0gICAgICAgICAgICAgOzsgVGhlcmUgY291bGQgYmUgb25lIG9yIHR3byBgY2hh bmdlZCcgZXZlbnRzLg0KLSAgICAgICAgICAgICAodCAnKChjaGFuZ2VkIGRlbGV0ZWQgc3Rv cHBlZCkNCi0gICAgICAgICAgICAgICAgICAoY2hhbmdlZCBjaGFuZ2VkIGRlbGV0ZWQgc3Rv cHBlZCkpKSkNCisgICAgICAgICAgICA7OyBUaGVyZSBjb3VsZCBiZSBvbmUgb3IgdHdvIGBj aGFuZ2VkJyBldmVudHMuDQorICAgICAgICAgICAgJygoY2hhbmdlZCBkZWxldGVkIHN0b3Bw ZWQpDQorICAgICAgICAgICAgICAoY2hhbmdlZCBjaGFuZ2VkIGRlbGV0ZWQgc3RvcHBlZCkp DQogICAgICAgICAgICh3cml0ZS1yZWdpb24NCiAgICAgICAgICAgICJhbm90aGVyIHRleHQi IG5pbCBmaWxlLW5vdGlmeS0tdGVzdC10bXBmaWxlIG5pbCAnbm8tbWVzc2FnZSkNCiAgICAg ICAgICAgKHJlYWQtZXZlbnQgbmlsIG5pbCBmaWxlLW5vdGlmeS0tdGVzdC1yZWFkLWV2ZW50 LXRpbWVvdXQpDQpAQCAtNDcwLDExICs0NzMsMTEgQEAgZmlsZS1ub3RpZnktLXRlc3Qtd2l0 aC1ldmVudHMNCiAJICAgICAgIDs7IGV2ZW50cyBmb3IgdGhlIHdhdGNoZWQgZGlyZWN0b3J5 Lg0KIAkgICAgICAgKChzdHJpbmctZXF1YWwgKGZpbGUtbm90aWZ5LS10ZXN0LWxpYnJhcnkp ICJ3MzJub3RpZnkiKQ0KIAkJJyhjcmVhdGVkIGNoYW5nZWQgZGVsZXRlZCkpDQotCSAgICAg ICA7OyBjeWd3aW4gcmVjb2duaXplcyBvbmx5IGBkZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2 ZW50cy4NCi0JICAgICAgICgoZXEgc3lzdGVtLXR5cGUgJ2N5Z3dpbikNCi0JCScoZGVsZXRl ZCBzdG9wcGVkKSkNCiAJICAgICAgIDs7IFRoZXJlIGFyZSB0d28gYGRlbGV0ZWQnIGV2ZW50 cywgZm9yIHRoZSBmaWxlIGFuZCBmb3INCi0JICAgICAgIDs7IHRoZSBkaXJlY3RvcnkuICBF eGNlcHQgZm9yIGtxdWV1ZS4NCisJICAgICAgIDs7IHRoZSBkaXJlY3RvcnkuICBFeGNlcHQg Zm9yIGN5Z3dpbiBhbmQga3F1ZXVlLiAgQW5kDQorCSAgICAgICA7OyBjeWd3aW4gZG9lcyBu b3QgcmFpc2UgYSBgY2hhbmdlZCcgZXZlbnQuDQorCSAgICAgICAoKGVxIHN5c3RlbS10eXBl ICdjeWd3aW4pDQorCQknKGNyZWF0ZWQgZGVsZXRlZCBzdG9wcGVkKSkNCiAJICAgICAgICgo c3RyaW5nLWVxdWFsIChmaWxlLW5vdGlmeS0tdGVzdC1saWJyYXJ5KSAia3F1ZXVlIikNCiAJ CScoY3JlYXRlZCBjaGFuZ2VkIGRlbGV0ZWQgc3RvcHBlZCkpDQogCSAgICAgICAodCAnKGNy ZWF0ZWQgY2hhbmdlZCBkZWxldGVkIGRlbGV0ZWQgc3RvcHBlZCkpKQ0KQEAgLTUwMywxMSAr NTA2LDEwIEBAIGZpbGUtbm90aWZ5LS10ZXN0LXdpdGgtZXZlbnRzDQogCQknKGNyZWF0ZWQg Y2hhbmdlZCBjcmVhdGVkIGNoYW5nZWQNCiAJCSAgY2hhbmdlZCBjaGFuZ2VkIGNoYW5nZWQN CiAJCSAgZGVsZXRlZCBkZWxldGVkKSkNCi0JICAgICAgIDs7IGN5Z3dpbiByZWNvZ25pemVz IG9ubHkgYGRlbGV0ZWQnIGFuZCBgc3RvcHBlZCcgZXZlbnRzLg0KLQkgICAgICAgKChlcSBz eXN0ZW0tdHlwZSAnY3lnd2luKQ0KLQkJJyhkZWxldGVkIHN0b3BwZWQpKQ0KIAkgICAgICAg OzsgVGhlcmUgYXJlIHRocmVlIGBkZWxldGVkJyBldmVudHMsIGZvciB0d28gZmlsZXMgYW5k DQotCSAgICAgICA7OyBmb3IgdGhlIGRpcmVjdG9yeS4gIEV4Y2VwdCBmb3Iga3F1ZXVlLg0K KwkgICAgICAgOzsgZm9yIHRoZSBkaXJlY3RvcnkuICBFeGNlcHQgZm9yIGN5Z3dpbiBhbmQg a3F1ZXVlLg0KKwkgICAgICAgKChlcSBzeXN0ZW0tdHlwZSAnY3lnd2luKQ0KKwkJJyhjcmVh dGVkIGNyZWF0ZWQgY2hhbmdlZCBjaGFuZ2VkIGRlbGV0ZWQgc3RvcHBlZCkpDQogCSAgICAg ICAoKHN0cmluZy1lcXVhbCAoZmlsZS1ub3RpZnktLXRlc3QtbGlicmFyeSkgImtxdWV1ZSIp DQogCQknKGNyZWF0ZWQgY2hhbmdlZCBjcmVhdGVkIGNoYW5nZWQgZGVsZXRlZCBzdG9wcGVk KSkNCiAJICAgICAgICh0ICcoY3JlYXRlZCBjaGFuZ2VkIGNyZWF0ZWQgY2hhbmdlZA0KQEAg LTU0MSwxMSArNTQzLDEyIEBAIGZpbGUtbm90aWZ5LS10ZXN0LXdpdGgtZXZlbnRzDQogCSAg ICAgICA7OyBldmVudHMgZm9yIHRoZSB3YXRjaGVkIGRpcmVjdG9yeS4NCiAJICAgICAgICgo c3RyaW5nLWVxdWFsIChmaWxlLW5vdGlmeS0tdGVzdC1saWJyYXJ5KSAidzMybm90aWZ5IikN CiAJCScoY3JlYXRlZCBjaGFuZ2VkIHJlbmFtZWQgZGVsZXRlZCkpDQotCSAgICAgICA7OyBj eWd3aW4gcmVjb2duaXplcyBvbmx5IGBkZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2ZW50cy4N Ci0JICAgICAgICgoZXEgc3lzdGVtLXR5cGUgJ2N5Z3dpbikNCi0JCScoZGVsZXRlZCBzdG9w cGVkKSkNCiAJICAgICAgIDs7IFRoZXJlIGFyZSB0d28gYGRlbGV0ZWQnIGV2ZW50cywgZm9y IHRoZSBmaWxlIGFuZCBmb3INCi0JICAgICAgIDs7IHRoZSBkaXJlY3RvcnkuICBFeGNlcHQg Zm9yIGtxdWV1ZS4NCisJICAgICAgIDs7IHRoZSBkaXJlY3RvcnkuICBFeGNlcHQgZm9yIGN5 Z3dpbiBhbmQga3F1ZXVlLiAgQW5kDQorCSAgICAgICA7OyBjeWd3aW4gcmFpc2VzIGBjcmVh dGVkJyBhbmQgYGRlbGV0ZWQnIGV2ZW50cyBpbnN0ZWFkDQorCSAgICAgICA7OyBvZiBhIGBy ZW5hbWVkJyBldmVudC4NCisJICAgICAgICgoZXEgc3lzdGVtLXR5cGUgJ2N5Z3dpbikNCisJ CScoY3JlYXRlZCBjcmVhdGVkIGRlbGV0ZWQgZGVsZXRlZCBzdG9wcGVkKSkNCiAJICAgICAg ICgoc3RyaW5nLWVxdWFsIChmaWxlLW5vdGlmeS0tdGVzdC1saWJyYXJ5KSAia3F1ZXVlIikN CiAJCScoY3JlYXRlZCBjaGFuZ2VkIHJlbmFtZWQgZGVsZXRlZCBzdG9wcGVkKSkNCiAJICAg ICAgICh0ICcoY3JlYXRlZCBjaGFuZ2VkIHJlbmFtZWQgZGVsZXRlZCBkZWxldGVkIHN0b3Bw ZWQpKSkNCkBAIC03MjgsMTMgKzczMSw5IEBAIGZpbGUtbm90aWZ5LS10ZXN0LXdpdGgtZXZl bnRzDQogCQknKGNoYW5nZSkgIydmaWxlLW5vdGlmeS0tdGVzdC1ldmVudC1oYW5kbGVyKSkp DQogCShzaG91bGQgKGZpbGUtbm90aWZ5LXZhbGlkLXAgZmlsZS1ub3RpZnktLXRlc3QtZGVz YykpDQogICAgICAgICAoZmlsZS1ub3RpZnktLXRlc3Qtd2l0aC1ldmVudHMNCi0gICAgICAg ICAgICAoY29uZA0KLSAgICAgICAgICAgICA7OyBjeWd3aW4gcmVjb2duaXplcyBvbmx5IGBk ZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2ZW50cy4NCi0JICAgICAoKGVxIHN5c3RlbS10eXBl ICdjeWd3aW4pDQotCSAgICAgICcoZGVsZXRlZCBzdG9wcGVkKSkNCiAgICAgICAgICAgICAg OzsgVGhlcmUgY291bGQgYmUgb25lIG9yIHR3byBgY2hhbmdlZCcgZXZlbnRzLg0KLSAgICAg ICAgICAgICAodCAnKChjaGFuZ2VkIGRlbGV0ZWQgc3RvcHBlZCkNCi0gICAgICAgICAgICAg ICAgICAoY2hhbmdlZCBjaGFuZ2VkIGRlbGV0ZWQgc3RvcHBlZCkpKSkNCisgICAgICAgICAg ICAgJygoY2hhbmdlZCBkZWxldGVkIHN0b3BwZWQpDQorICAgICAgICAgICAgICAgKGNoYW5n ZWQgY2hhbmdlZCBkZWxldGVkIHN0b3BwZWQpKQ0KICAgICAgICAgICAod3JpdGUtcmVnaW9u DQogICAgICAgICAgICAiYW5vdGhlciB0ZXh0IiBuaWwgZmlsZS1ub3RpZnktLXRlc3QtdG1w ZmlsZSBuaWwgJ25vLW1lc3NhZ2UpDQogCSAgKHJlYWQtZXZlbnQgbmlsIG5pbCBmaWxlLW5v dGlmeS0tdGVzdC1yZWFkLWV2ZW50LXRpbWVvdXQpDQpAQCAtNzY1LDExICs3NjQsMTEgQEAg ZmlsZS1ub3RpZnktLXRlc3Qtd2l0aC1ldmVudHMNCiAJICA7OyBmb3IgdGhlIHdhdGNoZWQg ZGlyZWN0b3J5Lg0KIAkgICgoc3RyaW5nLWVxdWFsIChmaWxlLW5vdGlmeS0tdGVzdC1saWJy YXJ5KSAidzMybm90aWZ5IikNCiAJICAgJyhjcmVhdGVkIGNoYW5nZWQgZGVsZXRlZCkpDQot CSAgOzsgY3lnd2luIHJlY29nbml6ZXMgb25seSBgZGVsZXRlZCcgYW5kIGBzdG9wcGVkJyBl dmVudHMuDQotCSAgKChlcSBzeXN0ZW0tdHlwZSAnY3lnd2luKQ0KLQkgICAnKGRlbGV0ZWQg c3RvcHBlZCkpDQogCSAgOzsgVGhlcmUgYXJlIHR3byBgZGVsZXRlZCcgZXZlbnRzLCBmb3Ig dGhlIGZpbGUgYW5kIGZvciB0aGUNCi0JICA7OyBkaXJlY3RvcnkuICBFeGNlcHQgZm9yIGtx dWV1ZS4NCisJICA7OyBkaXJlY3RvcnkuICBFeGNlcHQgZm9yIGN5Z3dpbiBhbmQga3F1ZXVl LiAgQW5kIGN5Z3dpbg0KKwkgIDs7IGRvZXMgbm90IHJhaXNlIGEgYGNoYW5nZWQnIGV2ZW50 Lg0KKwkgICgoZXEgc3lzdGVtLXR5cGUgJ2N5Z3dpbikNCisJICAgJyhjcmVhdGVkIGRlbGV0 ZWQgc3RvcHBlZCkpDQogCSAgKChzdHJpbmctZXF1YWwgKGZpbGUtbm90aWZ5LS10ZXN0LWxp YnJhcnkpICJrcXVldWUiKQ0KIAkgICAnKGNyZWF0ZWQgY2hhbmdlZCBkZWxldGVkIHN0b3Bw ZWQpKQ0KIAkgICh0ICcoY3JlYXRlZCBjaGFuZ2VkIGRlbGV0ZWQgZGVsZXRlZCBzdG9wcGVk KSkpDQpAQCAtMTE3Miw5ICsxMTcxLDEwIEBAIGZpbGUtbm90aWZ5LXRlc3QtYWxsDQogOzsg ICB0aGUgbWlzc2luZyBkaXJlY3RvcnkgbW9uaXRvci4NCiA7OyAqIEZvciB3MzJub3RpZnks IG5vIGBkZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2ZW50cyBhcnJpdmUgd2hlbiBhDQogOzsg ICBkaXJlY3RvcnkgaXMgcmVtb3ZlZC4NCi07OyAqIEZvciB3MzJub3RpZnksIG5vIGBhdHRy aWJ1dGUtY2hhbmdlZCcgZXZlbnRzIGFycml2ZS4gIEl0cyBzZW5kcw0KLTs7ICAgYGNoYW5n ZWQnIGV2ZW50cyBpbnN0ZWFkLg0KLTs7ICogQ2hlY2ssIHdoeSBjeWd3aW4gcmVjb2duaXpl cyBvbmx5IGBkZWxldGVkJyBhbmQgYHN0b3BwZWQnIGV2ZW50cy4NCis7OyAqIEZvciBjeWd3 aW4gYW5kIHczMm5vdGlmeSwgbm8gYGF0dHJpYnV0ZS1jaGFuZ2VkJyBldmVudHMgYXJyaXZl Lg0KKzs7ICAgVGhleSBzZW5kIGBjaGFuZ2VkJyBldmVudHMgaW5zdGVhZC4NCis7OyAqIGN5 Z3dpbiBkb2VzIG5vdCBzZW5kIGFsbCBleHBlY3RlZCBgY2hhbmdlZCcgYW5kIGBkZWxldGVk JyBldmVudHMuDQorOzsgICBQcm9iYWJseSBkdWUgdG8gdGltaW5nIGlzc3Vlcy4NCiANCiAo cHJvdmlkZSAnZmlsZS1ub3RpZnktdGVzdHMpDQogOzs7IGZpbGVub3RpZnktdGVzdHMuZWwg ZW5kcyBoZXJlDQoNCg== --------------261EE904291B775820C4FB16--