From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Christopher Genovese Newsgroups: gmane.emacs.bugs Subject: bug#25049: ibuffer bug when saving existing filter, with patches Date: Mon, 28 Nov 2016 01:54:39 -0500 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1143d830543794054256f3c7 X-Trace: blaine.gmane.org 1480316238 5925 195.159.176.226 (28 Nov 2016 06:57:18 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 28 Nov 2016 06:57:18 +0000 (UTC) Cc: Tino Calancha To: 25049@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Nov 28 07:57:13 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 1cBFsG-0000Xf-Ir for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Nov 2016 07:57:13 +0100 Original-Received: from localhost ([::1]:57004 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBFsK-00085U-Da for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Nov 2016 01:57:16 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37983) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBFsB-00084s-Hv for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:57:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBFs6-0005EF-KF for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:57:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:56957) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cBFs6-0005EB-GC for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:57:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cBFs6-0005rl-9b for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:57:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Christopher Genovese Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Nov 2016 06:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 25049 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.148031618122496 (code B ref -1); Mon, 28 Nov 2016 06:57:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 28 Nov 2016 06:56:21 +0000 Original-Received: from localhost ([127.0.0.1]:44123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBFrQ-0005ql-Tr for submit@debbugs.gnu.org; Mon, 28 Nov 2016 01:56:21 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:46906) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBFrO-0005qY-4Z for submit@debbugs.gnu.org; Mon, 28 Nov 2016 01:56:18 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBFrG-000563-6b for submit@debbugs.gnu.org; Mon, 28 Nov 2016 01:56:12 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:48608) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cBFrG-00055x-2g for submit@debbugs.gnu.org; Mon, 28 Nov 2016 01:56:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37866) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBFrD-0007yB-36 for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:56:09 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBFr8-00053w-4b for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:56:07 -0500 Original-Received: from mail-io0-f195.google.com ([209.85.223.195]:35895) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cBFr7-00053J-SX for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2016 01:56:02 -0500 Original-Received: by mail-io0-f195.google.com with SMTP id k19so20890516iod.3 for ; Sun, 27 Nov 2016 22:56:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:cc; bh=GFR4DEiy2vl+ncG/nW5+EtmQ61i7Ry7RwSLw02BPUKU=; b=STu0+daleYZ/mK0csHBVGYLRTO3+Z7Tqk3maFLRcvv5uwXBO+DAinITwlzJgUmTPoV YOi06Bj0ppvdL07WuBikckgsl4LXaKqvGH+0+pLvwDsH2fPW9rTi52O10sKVz4ZsCp1p +E5GfhTZb5u8MOap+OVyvW8w+NnnjFfhalbBTGkqRndq4kLEeotnge0ixXlFBqhzCWuc VpyQ07BuChT8hynZ3gJnplEJwavz9q4H7Sk6oUqkpFtiFv9paQSK4xvBfM9v+gVuk4dq +M3HtDArVnXBsO66Lu/KHJ7rodtBEGTu9QVSWuEuZoeMFHRrA/WpCd3xX/GBtHHi3bLM R3Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to:cc; bh=GFR4DEiy2vl+ncG/nW5+EtmQ61i7Ry7RwSLw02BPUKU=; b=GKmWE60LX0rrKk3+78hvjSKR7PnqxtLDwE/KNKLd6cKAe/NN3bXYjJRspAuB86l6Fm f19MUYZrPJkp8wbTCl5umlpZXPexw9EpsiY355JF3PfwlI/MysSmp6yyfkXpflZcAdKI BK4ZpEwkCCSmoHrQieNQDRYW15/dAnxiMfIQpbgrgMXZlbnqMKldgwEvEPxIC0NDf+HO e02JwGY1SC3OuCj9lbLYnQK1jnl5XhpjuA4QXCy8V5f2KD4qGta3os9YRLBKzBFRPmi3 KieG7HB9GCg3f3AfbgwUoEdthk2Ipf8SB6upahfzuC7epek7JLlY4Od0/K+sBidC7YTQ bbXA== X-Gm-Message-State: AKaTC03lwiu5u9TY3sEM+5/3xsv+/qyMPNG/nk7Ya8I1um84iKsCpkUB2vGq0NOI+Cpa18rvhranyNVMOmNSEA== X-Received: by 10.36.5.80 with SMTP id 77mr16752171itl.90.1480316100545; Sun, 27 Nov 2016 22:55:00 -0800 (PST) Original-Received: by 10.107.12.35 with HTTP; Sun, 27 Nov 2016 22:54:39 -0800 (PST) X-Google-Sender-Auth: n_N5jMaHTlhUIYtTa6lFSzN12Hs X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x 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:126204 Archived-At: --001a1143d830543794054256f3c7 Content-Type: multipart/alternative; boundary=001a1143d83054378f054256f3c5 --001a1143d83054378f054256f3c5 Content-Type: text/plain; charset=UTF-8 Hello, In at least Emacs 25+, the function 'ibuffer-save-filters' handles saving existing filters and new filters inconsistently. Specifically, at the following point in the original function: (ibuffer-aif (assoc name ibuffer-saved-filters) (setcdr it filters) (push (list name filters) ibuffer-saved-filters)) the setcdr (existing filters) and the push (new filters) save different formats for the variable, with the latter having an extra layer of parentheses. As a specific example of failure, using the current default value of 'ibuffer-saved-filters' (("gnus" ((or (mode . message-mode) (mode . mail-mode) (mode . gnus-group-mode) (mode . gnus-summary-mode) (mode . gnus-article-mode)))) ("programming" ((or (mode . emacs-lisp-mode) (mode . cperl-mode) (mode . c-mode) (mode . java-mode) (mode . idl-mode) (mode . lisp-mode))))) and doing (ibuffer-save-filters "foo" '((name . "foo") (derived-mode . text-mode))) (ibuffer-save-filters "gnus" '((filename . ".") (or (derived-mode . prog-mode) (mode . "compilation-mode")))) gives the following incorrect value for `ibuffer-saved-filters' (("foo" ((name . "foo") (derived-mode . text-mode))) ("gnus" (filename . ".") (or (derived-mode . prog-mode) (mode . "compilation-mode"))) ("programming" ((or (mode . emacs-lisp-mode) (mode . cperl-mode) (mode . c-mode) (mode . java-mode) (mode . idl-mode) (mode . lisp-mode))))) because the "foo" and "gnus" entries have different formats, the latter not consistent with later code to access it (e.g., in 'ibuffer-included-in-filter-p-1' and 'ibuffer-decompose-filter'). There are two immediate paths for fixing this: 1. Change the setcdr to add the extra level of nesting. 2. Change the format of 'ibuffer-saved-filters' to remove the level of testing, change the push (list->cons) and the later accesses (cadr->cdr). The first is very simple, but the extra level of nesting is unsightly, inconsistent with the structure of filter groups, and mildly annoying when writing filters by hand. The second is fairly simple, requiring only a few more small changes, but introduces the complication of changing an existing variable's format. (For what it's worth, I prefer the second.) I have attached a patch file with patches for three commits as follows: 1/3: The very simple fix corresponding to choice 1 above. 2/3: The simple fix corresponding to choice 2 above. 3/3: Some extra support added for handling the change in format for 'ibuffer-saved-filters'. Let me know if you need any further information. Thanks, Chris --001a1143d83054378f054256f3c5 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+SGVsbG8sPGJyPjxicj5JbiBhdCBsZWFzdCBFbWFjcyAyNSssIHRoZSBm dW5jdGlvbiAmIzM5O2lidWZmZXItc2F2ZS1maWx0ZXJzJiMzOTsgPGJyPmhhbmRsZXMgc2F2aW5n IGV4aXN0aW5nIGZpbHRlcnMgYW5kIG5ldyBmaWx0ZXJzIGluY29uc2lzdGVudGx5LiA8YnI+U3Bl Y2lmaWNhbGx5LCBhdCB0aGUgZm9sbG93aW5nIHBvaW50IGluIHRoZSBvcmlnaW5hbCBmdW5jdGlv bjo8YnI+PGJyPsKgIChpYnVmZmVyLWFpZiAoYXNzb2MgbmFtZSBpYnVmZmVyLXNhdmVkLWZpbHRl cnMpPGJyPsKgwqDCoMKgwqAgKHNldGNkciBpdCBmaWx0ZXJzKTxicj7CoMKgwqAgKHB1c2ggKGxp c3QgbmFtZSBmaWx0ZXJzKSBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpKTxicj48YnI+dGhlIHNldGNk ciAoZXhpc3RpbmcgZmlsdGVycykgYW5kIHRoZSBwdXNoIChuZXcgZmlsdGVycyk8YnI+c2F2ZSBk aWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHZhcmlhYmxlLCB3aXRoIHRoZSBsYXR0ZXI8YnI+aGF2 aW5nIGFuIGV4dHJhIGxheWVyIG9mIHBhcmVudGhlc2VzLjxicj48YnI+QXMgYSBzcGVjaWZpYyBl eGFtcGxlIG9mIGZhaWx1cmUsIHVzaW5nIHRoZSBjdXJyZW50IGRlZmF1bHQ8YnI+dmFsdWUgb2Yg JiMzOTtpYnVmZmVyLXNhdmVkLWZpbHRlcnMmIzM5Ozxicj48YnI+wqDCoMKgwqDCoMKgwqAgKCgm cXVvdDtnbnVzJnF1b3Q7PGJyPsKgwqDCoMKgwqDCoMKgwqDCoCAoKG9yPGJyPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKG1vZGUgLiBtZXNzYWdlLW1vZGUpPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKG1vZGUgLiBtYWlsLW1vZGUpPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1vZGUgLiBn bnVzLWdyb3VwLW1vZGUpPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1vZGUgLiBnbnVzLXN1 bW1hcnktbW9kZSk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobW9kZSAuIGdudXMtYXJ0aWNs ZS1tb2RlKSkpKTxicj7CoMKgwqDCoMKgwqDCoMKgICgmcXVvdDtwcm9ncmFtbWluZyZxdW90Ozxi cj7CoMKgwqDCoMKgwqDCoMKgwqAgKChvcjxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2Rl IC4gZW1hY3MtbGlzcC1tb2RlKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2RlIC4gY3Bl cmwtbW9kZSk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobW9kZSAuIGMtbW9kZSk8YnI+wqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAobW9kZSAuIGphdmEtbW9kZSk8YnI+wqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAobW9kZSAuIGlkbC1tb2RlKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2Rl IC4gbGlzcC1tb2RlKSkpKSk8YnI+PGJyPmFuZCBkb2luZzxicj48YnI+wqDCoCAoaWJ1ZmZlci1z YXZlLWZpbHRlcnMgJnF1b3Q7Zm9vJnF1b3Q7ICYjMzk7KChuYW1lIC4gJnF1b3Q7Zm9vJnF1b3Q7 KSAoZGVyaXZlZC1tb2RlIC4gdGV4dC1tb2RlKSkpPGJyPsKgwqAgKGlidWZmZXItc2F2ZS1maWx0 ZXJzICZxdW90O2dudXMmcXVvdDsgJiMzOTsoKGZpbGVuYW1lIC4gJnF1b3Q7LiZxdW90Oyk8YnI+ wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChvciAoZGVyaXZlZC1tb2RlIC4gcHJvZy1tb2RlKTxicj7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAobW9kZSAuICZxdW90O2NvbXBpbGF0aW9uLW1vZGUmcXVvdDspKSkpPGJyPjxicj5naXZl cyB0aGUgZm9sbG93aW5nIGluY29ycmVjdCB2YWx1ZSBmb3IgYGlidWZmZXItc2F2ZWQtZmlsdGVy cyYjMzk7PGJyPjxicj7CoMKgwqDCoMKgwqDCoCAoKCZxdW90O2ZvbyZxdW90Ozxicj7CoMKgwqDC oMKgwqDCoMKgwqAgKChuYW1lIC4gJnF1b3Q7Zm9vJnF1b3Q7KTxicj7CoMKgwqDCoMKgwqDCoMKg wqDCoCAoZGVyaXZlZC1tb2RlIC4gdGV4dC1tb2RlKSkpPGJyPsKgwqDCoMKgwqDCoMKgwqAgKCZx dW90O2dudXMmcXVvdDs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIChmaWxlbmFtZSAuICZxdW90Oy4m cXVvdDspPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCAob3I8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqAg KGRlcml2ZWQtbW9kZSAuIHByb2ctbW9kZSk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1vZGUg LiAmcXVvdDtjb21waWxhdGlvbi1tb2RlJnF1b3Q7KSkpPGJyPsKgwqDCoMKgwqDCoMKgwqAgKCZx dW90O3Byb2dyYW1taW5nJnF1b3Q7PGJyPsKgwqDCoMKgwqDCoMKgwqDCoCAoKG9yPGJyPsKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKG1vZGUgLiBlbWFjcy1saXNwLW1vZGUpPGJyPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKG1vZGUgLiBjcGVybC1tb2RlKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg IChtb2RlIC4gYy1tb2RlKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2RlIC4gamF2YS1t b2RlKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2RlIC4gaWRsLW1vZGUpPGJyPsKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKG1vZGUgLiBsaXNwLW1vZGUpKSkpKTxicj48YnI+YmVjYXVzZSB0 aGUgJnF1b3Q7Zm9vJnF1b3Q7IGFuZCAmcXVvdDtnbnVzJnF1b3Q7IGVudHJpZXMgaGF2ZSBkaWZm ZXJlbnQgZm9ybWF0cyw8YnI+dGhlIGxhdHRlciBub3QgY29uc2lzdGVudCB3aXRoIGxhdGVyIGNv ZGUgdG8gYWNjZXNzIGl0PGJyPihlLmcuLCBpbiAmIzM5O2lidWZmZXItaW5jbHVkZWQtaW4tZmls dGVyLXAtMSYjMzk7IGFuZCAmIzM5O2lidWZmZXItZGVjb21wb3NlLWZpbHRlciYjMzk7KS48YnI+ PGJyPlRoZXJlIGFyZSB0d28gaW1tZWRpYXRlIHBhdGhzIGZvciBmaXhpbmcgdGhpczo8YnI+PGJy PsKgIDEuIENoYW5nZSB0aGUgc2V0Y2RyIHRvIGFkZCB0aGUgZXh0cmEgbGV2ZWwgb2YgbmVzdGlu Zy48YnI+wqAgMi4gQ2hhbmdlIHRoZSBmb3JtYXQgb2YgJiMzOTtpYnVmZmVyLXNhdmVkLWZpbHRl cnMmIzM5OyB0byByZW1vdmU8YnI+wqDCoMKgwqAgdGhlIGxldmVsIG9mIHRlc3RpbmcsIGNoYW5n ZSB0aGUgcHVzaCAobGlzdC0mZ3Q7Y29ucykgYW5kPGJyPsKgwqDCoMKgIHRoZSBsYXRlciBhY2Nl c3NlcyAoY2Fkci0mZ3Q7Y2RyKS48YnI+PGJyPlRoZSBmaXJzdCBpcyB2ZXJ5IHNpbXBsZSwgYnV0 IHRoZSBleHRyYSBsZXZlbCBvZiBuZXN0aW5nPGJyPmlzIHVuc2lnaHRseSwgaW5jb25zaXN0ZW50 IHdpdGggdGhlIHN0cnVjdHVyZSBvZiBmaWx0ZXIgZ3JvdXBzLDxicj5hbmQgbWlsZGx5IGFubm95 aW5nIHdoZW4gd3JpdGluZyBmaWx0ZXJzIGJ5IGhhbmQuwqAgVGhlPGJyPnNlY29uZCBpcyBmYWly bHkgc2ltcGxlLCByZXF1aXJpbmcgb25seSBhIGZldyBtb3JlIHNtYWxsIGNoYW5nZXMsPGJyPmJ1 dCBpbnRyb2R1Y2VzIHRoZSBjb21wbGljYXRpb24gb2YgY2hhbmdpbmcgYW4gZXhpc3Rpbmc8YnI+ dmFyaWFibGUmIzM5O3MgZm9ybWF0LiAoRm9yIHdoYXQgaXQmIzM5O3Mgd29ydGgsIEkgcHJlZmVy IHRoZSBzZWNvbmQuKTxicj48YnI+SSBoYXZlIGF0dGFjaGVkIGEgcGF0Y2ggZmlsZSB3aXRoIHBh dGNoZXMgZm9yIHRocmVlIGNvbW1pdHM8YnI+YXMgZm9sbG93czo8YnI+PGJyPsKgIDEvMzogVGhl IHZlcnkgc2ltcGxlIGZpeCBjb3JyZXNwb25kaW5nIHRvIGNob2ljZSAxIGFib3ZlLjxicj7CoCAy LzM6IFRoZSBzaW1wbGUgZml4IGNvcnJlc3BvbmRpbmcgdG8gY2hvaWNlIDIgYWJvdmUuPGJyPsKg IDMvMzogU29tZSBleHRyYSBzdXBwb3J0IGFkZGVkIGZvciBoYW5kbGluZyB0aGUgY2hhbmdlPGJy PsKgwqDCoMKgwqDCoCBpbiBmb3JtYXQgZm9yICYjMzk7aWJ1ZmZlci1zYXZlZC1maWx0ZXJzJiMz OTsuIDxicj48YnI+TGV0IG1lIGtub3cgaWYgeW91IG5lZWQgYW55IGZ1cnRoZXIgaW5mb3JtYXRp b24uPGJyPjxicj5UaGFua3MsIENocmlzPGJyPjxicj48YnI+PC9kaXY+DQo= --001a1143d83054378f054256f3c5-- --001a1143d830543794054256f3c7 Content-Type: text/x-diff; charset=US-ASCII; name="ibuffer-saved-filters-bug.patch" Content-Disposition: attachment; filename="ibuffer-saved-filters-bug.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iw1pxebm0 RnJvbSAwMWU0MTAyN2FiZjI3ZjhmY2EwMWY3ZTRiNmZlYWQ1NWMwMzJiMWVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hyaXN0b3BoZXIgUi4gR2Vub3Zlc2UiIDxnZW5vdmVzZUBj bXUuZWR1PgpEYXRlOiBTdW4sIDI3IE5vdiAyMDE2IDIzOjM0OjUwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCAxLzNdIGlidWZmZXI6IG9uZSBwb3NzaWJsZSBmaXggZm9yIGJ1ZyB3aGVuIHNhdmluZyBl eGlzdGluZwogZmlsdGVyCgpUaGUgZnVuY3Rpb24gJ2lidWZmZXItc2F2ZS1maWx0ZXJzJyBoYW5k bGVzIHNhdmluZyBleGlzdGluZwpmaWx0ZXJzIGFuZCBuZXcgZmlsdGVycyBpbmNvbnNpc3RlbnRs eS4gU3BlY2lmaWNhbGx5LAphdCB0aGUgZm9sbG93aW5nIHBvaW50IGluIHRoZSBvcmlnaW5hbCBm dW5jdGlvbjoKCiAgKGlidWZmZXItYWlmIChhc3NvYyBuYW1lIGlidWZmZXItc2F2ZWQtZmlsdGVy cykKICAgICAgKHNldGNkciBpdCBmaWx0ZXJzKQogICAgKHB1c2ggKGxpc3QgbmFtZSBmaWx0ZXJz KSBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpKQoKdGhlIHNldGNkciAoZXhpc3RpbmcgZmlsdGVycykg YW5kIHRoZSBwdXNoIChuZXcgZmlsdGVycykKc2F2ZSBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhl IHZhcmlhYmxlLCB3aXRoIHRoZSBsYXR0ZXIKaGF2aW5nIGFuIGV4dHJhIGxheWVyIG9mIHBhcmVu dGhlc2VzLgoKQXMgYSBzcGVjaWZpYyBleGFtcGxlIG9mIGZhaWx1cmUsIHVzaW5nIHRoZSBjdXJy ZW50IGRlZmF1bHQKdmFsdWUgb2YgJ2lidWZmZXItc2F2ZWQtZmlsdGVycycKCiAgICAgICAgKCgi Z251cyIKICAgICAgICAgICgob3IKICAgICAgICAgICAgKG1vZGUgLiBtZXNzYWdlLW1vZGUpCiAg ICAgICAgICAgIChtb2RlIC4gbWFpbC1tb2RlKQogICAgICAgICAgICAobW9kZSAuIGdudXMtZ3Jv dXAtbW9kZSkKICAgICAgICAgICAgKG1vZGUgLiBnbnVzLXN1bW1hcnktbW9kZSkKICAgICAgICAg ICAgKG1vZGUgLiBnbnVzLWFydGljbGUtbW9kZSkpKSkKICAgICAgICAgKCJwcm9ncmFtbWluZyIK ICAgICAgICAgICgob3IKICAgICAgICAgICAgKG1vZGUgLiBlbWFjcy1saXNwLW1vZGUpCiAgICAg ICAgICAgIChtb2RlIC4gY3BlcmwtbW9kZSkKICAgICAgICAgICAgKG1vZGUgLiBjLW1vZGUpCiAg ICAgICAgICAgIChtb2RlIC4gamF2YS1tb2RlKQogICAgICAgICAgICAobW9kZSAuIGlkbC1tb2Rl KQogICAgICAgICAgICAobW9kZSAuIGxpc3AtbW9kZSkpKSkpCgphbmQgZG9pbmcKCiAgIChpYnVm ZmVyLXNhdmUtZmlsdGVycyAiZm9vIiAnKChuYW1lIC4gImZvbyIpIChkZXJpdmVkLW1vZGUgLiB0 ZXh0LW1vZGUpKSkKICAgKGlidWZmZXItc2F2ZS1maWx0ZXJzICJnbnVzIiAnKChmaWxlbmFtZSAu ICIuIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoZGVyaXZlZC1tb2Rl IC4gcHJvZy1tb2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2Rl IC4gImNvbXBpbGF0aW9uLW1vZGUiKSkpKQoKZ2l2ZXMgdGhlIGZvbGxvd2luZyBpbmNvcnJlY3Qg dmFsdWUgZm9yIGBpYnVmZmVyLXNhdmVkLWZpbHRlcnMnCgogICAgICAgICgoImZvbyIKICAgICAg ICAgICgobmFtZSAuICJmb28iKQogICAgICAgICAgIChkZXJpdmVkLW1vZGUgLiB0ZXh0LW1vZGUp KSkKICAgICAgICAgKCJnbnVzIgogICAgICAgICAgKGZpbGVuYW1lIC4gIi4iKQogICAgICAgICAg KG9yCiAgICAgICAgICAgKGRlcml2ZWQtbW9kZSAuIHByb2ctbW9kZSkKICAgICAgICAgICAobW9k ZSAuICJjb21waWxhdGlvbi1tb2RlIikpKQogICAgICAgICAoInByb2dyYW1taW5nIgogICAgICAg ICAgKChvcgogICAgICAgICAgICAobW9kZSAuIGVtYWNzLWxpc3AtbW9kZSkKICAgICAgICAgICAg KG1vZGUgLiBjcGVybC1tb2RlKQogICAgICAgICAgICAobW9kZSAuIGMtbW9kZSkKICAgICAgICAg ICAgKG1vZGUgLiBqYXZhLW1vZGUpCiAgICAgICAgICAgIChtb2RlIC4gaWRsLW1vZGUpCiAgICAg ICAgICAgIChtb2RlIC4gbGlzcC1tb2RlKSkpKSkKCmJlY2F1c2UgdGhlICJmb28iIGFuZCAiZ251 cyIgZW50cmllcyBoYXZlIGRpZmZlcmVudCBmb3JtYXRzLAp0aGUgbGF0dGVyIG5vdCBjb25zaXN0 ZW50IHdpdGggbGF0ZXIgY29kZSB0byBhY2Nlc3MgaXQKKGUuZy4sIGluICdpYnVmZmVyLWluY2x1 ZGVkLWluLWZpbHRlci1wLTEnIGFuZCAnaWJ1ZmZlci1kZWNvbXBvc2UtZmlsdGVyJykuCgpUaGVy ZSBhcmUgdHdvIGltbWVkaWF0ZSBwYXRocyBmb3IgZml4aW5nIHRoaXM6CgogIDEuIENoYW5nZSB0 aGUgc2V0Y2RyIHRvIGFkZCB0aGUgZXh0cmEgbGV2ZWwgb2YgbmVzdGluZy4KICAyLiBDaGFuZ2Ug dGhlIGZvcm1hdCBvZiAnaWJ1ZmZlci1zYXZlZC1maWx0ZXJzJyB0byByZW1vdmUKICAgICB0aGUg bGV2ZWwgb2YgdGVzdGluZywgY2hhbmdlIHRoZSBwdXNoIChsaXN0LT5jb25zKSBhbmQKICAgICB0 aGUgbGF0ZXIgYWNjZXNzZXMgKGNhZHItPmNkcikuCgpUaGUgZmlyc3QgaXMgdmVyeSBzaW1wbGUs IGJ1dCB0aGUgZXh0cmEgbGV2ZWwgb2YgbmVzdGluZwppcyB1bnNpZ2h0bHksIGluY29uc2lzdGVu dCB3aXRoIHRoZSBzdHJ1Y3R1cmUgb2YgZmlsdGVyIGdyb3VwcywKYW5kIG1pbGRseSBhbm5veWlu ZyB3aGVuIHdyaXRpbmcgZmlsdGVycyBieSBoYW5kLiAgVGhlCnNlY29uZCBpcyBmYWlybHkgc2lt cGxlLCByZXF1aXJpbmcgb25seSBhIGZldyBtb3JlIHNtYWxsIGNoYW5nZXMsCmJ1dCBpbnRyb2R1 Y2VzIHRoZSBjb21wbGljYXRpb24gb2YgY2hhbmdpbmcgYW4gZXhpc3RpbmcKdmFyaWFibGUncyBm b3JtYXQuIEZvciB3aGF0IGl0J3Mgd29ydGgsIEkgcHJlZmVyIHRoZSBzZWNvbmQuCgpUaGlzIGNv bW1pdCB0YWtlcyB0aGUgZmlyc3QgY2hvaWNlLgoKQ2hhbmdlIExvZzoKCjIwMTYtMTEtMjcgQ2hy aXN0b3BoZXIgUi4gR2Vub3Zlc2UgIDxnZW5vdmVzZUBjbXUuZWR1PgoKKiBsaXNwL2lidWYtZXh0 LmVsIChpYnVmZmVyLXNhdmUtZmlsdGVycyk6IGFkZGVkIGV4dHJhCmxldmVsIG9mIG5lc3Rpbmcg d2hlbiBzYXZpbmcgZmlsdGVyIHRvIGFuIGV4aXN0aW5nIG5hbWUuCi0tLQogbGlzcC9pYnVmLWV4 dC5lbCB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2xpc3AvaWJ1Zi1leHQuZWwgYi9saXNwL2lidWYtZXh0LmVsCmluZGV4 IDVlZjA3NDYuLjEwMzIzMmMgMTAwNjQ0Ci0tLSBhL2xpc3AvaWJ1Zi1leHQuZWwKKysrIGIvbGlz cC9pYnVmLWV4dC5lbApAQCAtOTM1LDcgKzkzNSw3IEBAIEludGVyYWN0aXZlbHksIHByb21wdCBm b3IgTkFNRSwgYW5kIHVzZSB0aGUgY3VycmVudCBmaWx0ZXJzLiIKICAgICAgIChyZWFkLWZyb20t bWluaWJ1ZmZlciAiU2F2ZSBjdXJyZW50IGZpbHRlcnMgYXM6ICIpCiAgICAgICBpYnVmZmVyLWZp bHRlcmluZy1xdWFsaWZpZXJzKSkpCiAgIChpYnVmZmVyLWFpZiAoYXNzb2MgbmFtZSBpYnVmZmVy LXNhdmVkLWZpbHRlcnMpCi0gICAgICAoc2V0Y2RyIGl0IGZpbHRlcnMpCisgICAgICAoc2V0Y2Ry IGl0IChsaXN0IGZpbHRlcnMpKQogICAgIChwdXNoIChsaXN0IG5hbWUgZmlsdGVycykgaWJ1ZmZl ci1zYXZlZC1maWx0ZXJzKSkKICAgKGlidWZmZXItbWF5YmUtc2F2ZS1zdHVmZikpCiAKLS0gCjIu MTAuMAoKCkZyb20gMDc5MTgyMGUwZmYzNjY1YjQ0N2VhMTc0YjRiOTE1YTM2ZGMzZWNlZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkNocmlzdG9waGVyIFIuIEdlbm92ZXNlIiA8Z2Vu b3Zlc2VAY211LmVkdT4KRGF0ZTogTW9uLCAyOCBOb3YgMjAxNiAwMDozMzozNiAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggMi8zXSBpYnVmZmVyOiBhbm90aGVyIGZpeCBmb3IgYnVnIHdoZW4gc2F2aW5n IGFuIGV4aXN0aW5nCiBmaWx0ZXIKCkFzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgY29tbWl0 LCB0aGUgZnVuY3Rpb24gJ2lidWZmZXItc2F2ZS1maWx0ZXJzJwpoYW5kbGVzIHNhdmluZyBleGlz dGluZyBmaWx0ZXJzIGFuZCBuZXcgZmlsdGVycyBpbmNvbnNpc3RlbnRseSwKYW5kIHRoZXJlIGFy ZSB0d28gcGF0aHMgdG8gZml4aW5nIHRoZSBwcm9ibGVtLgoKVGhlIHByZXZpb3VzIGNvbW1pdCBm aXhlZCB0aGUgcHJvYmxlbSB3aGlsZSBtYWludGFpbmluZyB0aGUgZm9ybWF0IG9mCnRoZSB2YXJp YWJsZSAnaWJ1ZmZlci1zYXZlZC1maWx0ZXJzJyB3aXRoIGl0cyBleHRyYSBsZXZlbCBvZiBuZXN0 aW5nLgoKVGhpcyBjb21taXQgaW5zdGVhZCB0YWtlcyB0aGUgc2Vjb25kIHBhdGg6IHJlbW92aW5n IHRoZSBleHRyYSBsZXZlbCBvZgpuZXN0aW5nIGZyb20gdGhlIHNhdmVkIGZpbHRlciBmb3JtYXQu CgpDaGFuZ2UgTG9nOgoKMjAxNi0xMS0yNyBDaHJpc3RvcGhlciBSLiBHZW5vdmVzZSAgPGdlbm92 ZXNlQGNtdS5lZHU+CgoqIGxpc3AvaWJ1Zi1leHQuZWwgKGlidWZmZXItc2F2ZWQtZmlsdGVycyk6 IHJlbW92ZWQgZXh0cmEKbmVzdGluZyBsZXZlbCBpbiB0aGUgYWxpc3QgdmFsdWVzIGFuZCB1cGRh dGVkIGRvY3N0cmluZy4KKGlidWZmZXItc2F2ZS1maWx0ZXJzKTogcmVtb3ZlZCBleHRyYSBsZXZl bCBvZiBuZXN0aW5nCmluIHNhdmVkIGZpbHRlciBhbGlzdCB2YWx1ZXMgd2hlbiBzYXZpbmcgbmV3 IGZpbHRlcnMuCihpYnVmZmVyLWluY2x1ZGVkLWluLWZpbHRlci1wKTogY2hhbmdlZCBhY2Nlc3Mg b2Ygc2F2ZWQKZmlsdGVyIGRhdGEgKGNhZHItPmNkcikgdG8gYWNjb3VudCBmb3IgcmVkdWNlZCBu ZXN0aW5nLgooaWJ1ZmZlci1kZWNvbXBvc2UtZmlsdGVyKTogY2hhbmdlZCBhY2Nlc3Mgb2Ygc2F2 ZWQKZmlsdGVyIGRhdGEgKGNhZHItPmNkcikgdG8gYWNjb3VudCBmb3IgcmVkdWNlZCBuZXN0aW5n LgotLS0KIGxpc3AvaWJ1Zi1leHQuZWwgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMzIGluc2VydGlv bnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvaWJ1Zi1leHQuZWwgYi9s aXNwL2lidWYtZXh0LmVsCmluZGV4IDEwMzIzMmMuLmU0YTdkZmEgMTAwNjQ0Ci0tLSBhL2xpc3Av aWJ1Zi1leHQuZWwKKysrIGIvbGlzcC9pYnVmLWV4dC5lbApAQCAtMTIwLDI4ICsxMjAsMzIgQEAg QnVmZmVycyB3aG9zZSBtYWpvciBtb2RlIGlzIGluIHRoaXMgbGlzdCwgYXJlIG5vdCBzZWFyY2hl ZC4iCiAoZGVmdmFyIGlidWZmZXItYXV0by1idWZmZXJzLWNoYW5nZWQgbmlsKQogCiAoZGVmY3Vz dG9tIGlidWZmZXItc2F2ZWQtZmlsdGVycyAnKCgiZ251cyIKLQkJCQkgICAgKChvciAobW9kZSAu IG1lc3NhZ2UtbW9kZSkKLQkJCQkJIChtb2RlIC4gbWFpbC1tb2RlKQotCQkJCQkgKG1vZGUgLiBn bnVzLWdyb3VwLW1vZGUpCi0JCQkJCSAobW9kZSAuIGdudXMtc3VtbWFyeS1tb2RlKQotCQkJCQkg KG1vZGUgLiBnbnVzLWFydGljbGUtbW9kZSkpKSkKLQkJCQkgICAoInByb2dyYW1taW5nIgotCQkJ CSAgICAoKG9yIChtb2RlIC4gZW1hY3MtbGlzcC1tb2RlKQotCQkJCQkgKG1vZGUgLiBjcGVybC1t b2RlKQotCQkJCQkgKG1vZGUgLiBjLW1vZGUpCi0JCQkJCSAobW9kZSAuIGphdmEtbW9kZSkKLQkJ CQkJIChtb2RlIC4gaWRsLW1vZGUpCi0JCQkJCSAobW9kZSAuIGxpc3AtbW9kZSkpKSkpCi0KLSAg IkFuIGFsaXN0IG9mIGZpbHRlciBxdWFsaWZpZXJzIHRvIHN3aXRjaCBiZXR3ZWVuLgotCi1UaGlz IHZhcmlhYmxlIHNob3VsZCBsb29rIGxpa2UgKChcIlNUUklOR1wiIFFVQUxJRklFUlMpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcIlNUUklOR1wiIFFVQUxJRklFUlMpIC4uLiks IHdoZXJlCi1RVUFMSUZJRVJTIGlzIGEgbGlzdCBvZiB0aGUgc2FtZSBmb3JtIGFzCi1gaWJ1ZmZl ci1maWx0ZXJpbmctcXVhbGlmaWVycycuCi1TZWUgYWxzbyB0aGUgdmFyaWFibGVzIGBpYnVmZmVy LWZpbHRlcmluZy1xdWFsaWZpZXJzJywKLWBpYnVmZmVyLWZpbHRlcmluZy1hbGlzdCcsIGFuZCB0 aGUgZnVuY3Rpb25zCi1gaWJ1ZmZlci1zd2l0Y2gtdG8tc2F2ZWQtZmlsdGVycycsIGBpYnVmZmVy LXNhdmUtZmlsdGVycycuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9y IChtb2RlIC4gbWVzc2FnZS1tb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChtb2RlIC4gbWFpbC1tb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtb2RlIC4gZ251cy1ncm91cC1tb2RlKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtb2RlIC4gZ251cy1zdW1tYXJ5LW1vZGUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgLiBnbnVzLWFydGljbGUtbW9kZSkp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInByb2dyYW1taW5nIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChtb2RlIC4gZW1hY3MtbGlzcC1t b2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlIC4gY3Bl cmwtbW9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSAu IGMtbW9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSAu IGphdmEtbW9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9k ZSAuIGlkbC1tb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICht b2RlIC4gbGlzcC1tb2RlKSkpKQorCisgICJBbiBhbGlzdCBtYXBwaW5nIHNhdmVkIGZpbHRlciBu YW1lcyB0byBmaWx0ZXIgc3BlY2lmaWNhdGlvbnMuCisKK0VhY2ggZWxlbWVudCBzaG91bGQgbG9v ayBsaWtlIChcIk5BTUVcIiAuIEZJTFRFUi1MSVNUKSwgd2hlcmUKK0ZJTFRFUi1MSVNUIGhhcyB0 aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgdGhlIHZhcmlhYmxlCitgaWJ1ZmZlci1maWx0ZXJpbmctcXVh bGlmaWVycycsIHdoaWNoIHNlZS4gVGhlIGZpbHRlcnMgZGVmaW5lZAoraGVyZSBhcmUgam9pbmVk IHdpdGggYW4gaW1wbGljaXQgbG9naWNhbCBgYW5kJyBhbmQgYXNzb2NpYXRlZAord2l0aCBOQU1F LiBUaGUgY29tYmluZWQgc3BlY2lmaWNhdGlvbiBjYW4gYmUgdXNlZCBieSBuYW1lIGluCitvdGhl ciBmaWx0ZXIgc3BlY2lmaWNhdGlvbnMgdmlhIHRoZSBgc2F2ZWQnIHF1YWxpZmllciAoYWdhaW4s IHNlZQorYGlidWZmZXItZmlsdGVyaW5nLXF1YWxpZmllcnMnKS4gVGhleSBjYW4gYWxzbyBiZSBz d2l0Y2hlZCB0byBieQorbmFtZSAoc2VlIHRoZSBmdW5jdGlvbnMgYGlidWZmZXItc3dpdGNoLXRv LXNhdmVkLWZpbHRlcnMnIGFuZAorYGlidWZmZXItc2F2ZS1maWx0ZXJzJykuIFRoZSB2YXJpYWJs ZSBgaWJ1ZmZlci1zYXZlLXdpdGgtY3VzdG9tJworYWZmZWN0cyBob3cgdGhpcyBpbmZvcm1hdGlv biBpcyBzYXZlZCBmb3IgZnV0dXJlIHNlc3Npb25zLiBUaGlzCit2YXJpYWJsZSBjYW4gYmUgc2V0 IGRpcmVjdGx5IGZyb20gbGlzcCBjb2RlLiIKICAgOnR5cGUgJyhyZXBlYXQgc2V4cCkKICAgOmdy b3VwICdpYnVmZmVyKQogCkBAIC01MzUsMTMgKzUzOSwxMSBAQCBUbyBldmFsdWF0ZSBhIGZvcm0g d2l0aG91dCB2aWV3aW5nIHRoZSBidWZmZXIsIHNlZSBgaWJ1ZmZlci1kby1ldmFsJy4iCiAJCQkg ICAoaWJ1ZmZlci1pbmNsdWRlZC1pbi1maWx0ZXItcCBidWYgeCkpCiAJCSAgICAgICAoY2RyIGZp bHRlcikpKSkKICAgICAgIChgc2F2ZWQKLSAgICAgICAobGV0ICgoZGF0YQotCSAgICAgIChhc3Nv YyAoY2RyIGZpbHRlcikKLQkJICAgICBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpKSkKKyAgICAgICAo bGV0ICgoZGF0YSAoYXNzb2MgKGNkciBmaWx0ZXIpIGlidWZmZXItc2F2ZWQtZmlsdGVycykpKQog CSAodW5sZXNzIGRhdGEKIAkgICAoaWJ1ZmZlci1maWx0ZXItZGlzYWJsZSB0KQogCSAgIChlcnJv ciAiVW5rbm93biBzYXZlZCBmaWx0ZXIgJXMiIChjZHIgZmlsdGVyKSkpCi0JIChpYnVmZmVyLWlu Y2x1ZGVkLWluLWZpbHRlcnMtcCBidWYgKGNhZHIgZGF0YSkpKSkKKwkgKGlidWZmZXItaW5jbHVk ZWQtaW4tZmlsdGVycy1wIGJ1ZiAoY2RyIGRhdGEpKSkpCiAgICAgICAoXwogICAgICAgIChwY2Fz ZS1sZXQgKChgKCxfdHlwZSAsX2Rlc2MgLGZ1bmMpCiAgICAgICAgICAgICAgICAgICAgIChhc3Nx IChjYXIgZmlsdGVyKSBpYnVmZmVyLWZpbHRlcmluZy1hbGlzdCkpKQpAQCAtODQ5LDE1ICs4NTEs MTIgQEAgdHVybmVkIGludG8gdHdvIHNlcGFyYXRlIGZpbHRlcnMgW25hbWU6IGZvb10gYW5kIFtt b2RlOiBiYXItbW9kZV0uIgogCQkJCQkgIChjZHIgbGltKQogCQkJCQkgIGlidWZmZXItZmlsdGVy aW5nLXF1YWxpZmllcnMpKSkKICAgICAgIChgc2F2ZWQKLSAgICAgICAobGV0ICgoZGF0YQotCSAg ICAgIChhc3NvYyAoY2RyIGxpbSkKLQkJICAgICBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpKSkKKyAg ICAgICAobGV0ICgoZGF0YSAoYXNzb2MgKGNkciBsaW0pIGlidWZmZXItc2F2ZWQtZmlsdGVycykp KQogCSAodW5sZXNzIGRhdGEKIAkgICAoaWJ1ZmZlci1maWx0ZXItZGlzYWJsZSkKIAkgICAoZXJy b3IgIlVua25vd24gc2F2ZWQgZmlsdGVyICVzIiAoY2RyIGxpbSkpKQotCSAoc2V0cSBpYnVmZmVy LWZpbHRlcmluZy1xdWFsaWZpZXJzIChhcHBlbmQKLQkJCQkJICAgIChjYWRyIGRhdGEpCi0JCQkJ CSAgICBpYnVmZmVyLWZpbHRlcmluZy1xdWFsaWZpZXJzKSkpKQorCSAoc2V0cSBpYnVmZmVyLWZp bHRlcmluZy1xdWFsaWZpZXJzCisgICAgICAgICAgICAgICAoYXBwZW5kIChjZHIgZGF0YSkgaWJ1 ZmZlci1maWx0ZXJpbmctcXVhbGlmaWVycykpKSkKICAgICAgIChgbm90CiAgICAgICAgKHB1c2gg KGNkciBsaW0pCiAJICAgICBpYnVmZmVyLWZpbHRlcmluZy1xdWFsaWZpZXJzKSkKQEAgLTkzNSw4 ICs5MzQsOCBAQCBJbnRlcmFjdGl2ZWx5LCBwcm9tcHQgZm9yIE5BTUUsIGFuZCB1c2UgdGhlIGN1 cnJlbnQgZmlsdGVycy4iCiAgICAgICAocmVhZC1mcm9tLW1pbmlidWZmZXIgIlNhdmUgY3VycmVu dCBmaWx0ZXJzIGFzOiAiKQogICAgICAgaWJ1ZmZlci1maWx0ZXJpbmctcXVhbGlmaWVycykpKQog ICAoaWJ1ZmZlci1haWYgKGFzc29jIG5hbWUgaWJ1ZmZlci1zYXZlZC1maWx0ZXJzKQotICAgICAg KHNldGNkciBpdCAobGlzdCBmaWx0ZXJzKSkKLSAgICAocHVzaCAobGlzdCBuYW1lIGZpbHRlcnMp IGlidWZmZXItc2F2ZWQtZmlsdGVycykpCisgICAgICAoc2V0Y2RyIGl0IGZpbHRlcnMpCisgICAg KHB1c2ggKGNvbnMgbmFtZSBmaWx0ZXJzKSBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpKQogICAoaWJ1 ZmZlci1tYXliZS1zYXZlLXN0dWZmKSkKIAogOzs7IyMjYXV0b2xvYWQKLS0gCjIuMTAuMAoKCkZy b20gYWVlMWMzY2RkNDdkYjljMGRhMmEyZjlkMWMzYTUzYzQwYTgxY2ZkZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogIkNocmlzdG9waGVyIFIuIEdlbm92ZXNlIiA8Z2Vub3Zlc2VAY211 LmVkdT4KRGF0ZTogTW9uLCAyOCBOb3YgMjAxNiAwMToyOTowNCAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBpYnVmZmVyOiBhZGRlZCBzdXBwb3J0IGZvciBzYXZlZCBmaWx0ZXIgZm9ybWF0IGNo YW5nZSBhbmQKIHRlc3QKCkFzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgY29tbWl0LCBvbmUg Zml4IHRvIHRoZQppbmNvbnNpc3RlbmN5IGluICdpYnVmZmVyLXNhdmUtZmlsdGVycycgaW52b2x2 ZXMgc2ltcGxpZnlpbmcKdGhlIGZvcm1hdCBvZiAnaWJ1ZmZlci1zYXZlZC1maWx0ZXJzJyB0byBy ZWR1Y2UgdGhlIGV4dHJhCm5lc3RpbmcgbGV2ZWwuIFRoaXMgYWRkcyBzb21lIHN1cHBvcnQgZm9y IHRoaXMgdHJhbnNpdGlvbiwKaW5jbHVkaW5nIGEgY3VzdG9taXplIHNldHRlciB0byB0cmFuc3Bh cmVudGx5IHVwZGF0ZSBvbGQKZm9ybWF0IHZhbHVlcyBhbmQgYSBjb21tYW5kIHRvIGNoZWNrIGFu ZCByZXBhaXIgdGhlIHNhdmVkCnZhbHVlcyBpZiBkZXNpcmVkLgoKQWxzbyBhZGRlZCBhIHRlc3Qg b2YgJ2lidWZmZXItc2F2ZS1maWx0ZXInLgoKQ2hhbmdlIExvZzoKCjIwMTYtMTEtMjcgQ2hyaXN0 b3BoZXIgUi4gR2Vub3Zlc2UgIDxnZW5vdmVzZUBjbXUuZWR1PgoKKiBsaXNwL2lidWYtZXh0LmVs IChpYnVmZmVyLXNhdmVkLWZpbHRlcnMpOiBhZGRlZCBtb3JlIGFjY3VyYXRlCmN1c3RvbWl6YXRp b24gdHlwZSBhbmQgdHJhbnNwYXJlbnQgc2V0dGVyIHRvIGFkanVzdCBvbGQtZm9ybWF0CnZhbHVl cy4KKGlidWZmZXItdXBkYXRlLXNhdmVkLWZpbHRlcnMtZm9ybWF0KTogdXBkYXRlcyBvbGQtZm9y bWF0CmZvciBzYXZlZCBidWZmZXIgZGF0YSB0byBuZXcgZm9ybWF0IHdpdGggcmVkdWNlZCBuZXN0 aW5nIGxldmVsLgooaWJ1ZmZlci1yZXBhaXItc2F2ZWQtZmlsdGVycyk6IG5ldyBjb21tYW5kIHRv IGNoZWNrIGFuZApyZXBhaXIgc2F2ZWQgZmlsdGVycyBmb3JtYXQuCihpYnVmZmVyLW9sZC1zYXZl ZC1maWx0ZXJzLXdhcm5pbmcpOiBuZXcgdmFyaWFibGUgd2l0aApjbGlja2FibGUgbWVzc2FnZSB3 aXRoIHJlcGFpciBvcHRpb25zIHRvIGJlIGRpc3BsYXllZAphcyBhIHdhcm5pbmcgaWYgJ2lidWZm ZXItcmVwYWlyLXNhdmVkLWZpbHRlcnMnIGRldGVjdHMKYSBmb3JtYXQgbWlzbWF0Y2guCiogdGVz dC9saXNwL2lidWZmZXItdGVzdHMuZWwgKGlidWZmZXItc2F2ZS1maWx0ZXJzKTogYWRkZWQKYSB0 ZXN0IHRoYXQgZmlsdGVycyBhcmUgc2F2ZWQgaW4gdGhlIHByb3BlciBmb3JtYXQuCi0tLQogbGlz cC9pYnVmLWV4dC5lbCAgICAgICAgICAgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiB0ZXN0L2xpc3AvaWJ1ZmZlci10ZXN0cy5lbCB8IDI5ICsrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9saXNwL2lidWYtZXh0LmVsIGIvbGlzcC9pYnVmLWV4dC5lbApp bmRleCBlNGE3ZGZhLi4xZDc5NzI5IDEwMDY0NAotLS0gYS9saXNwL2lidWYtZXh0LmVsCisrKyBi L2xpc3AvaWJ1Zi1leHQuZWwKQEAgLTExOSw2ICsxMTksMjYgQEAgQnVmZmVycyB3aG9zZSBtYWpv ciBtb2RlIGlzIGluIHRoaXMgbGlzdCwgYXJlIG5vdCBzZWFyY2hlZC4iCiAKIChkZWZ2YXIgaWJ1 ZmZlci1hdXRvLWJ1ZmZlcnMtY2hhbmdlZCBuaWwpCiAKKyhkZWZ1biBpYnVmZmVyLXVwZGF0ZS1z YXZlZC1maWx0ZXJzLWZvcm1hdCAoZmlsdGVycykKKyAgIlRyYW5zZm9ybXMgYWxpc3QgZnJvbSBv bGQgdG8gbmV3IGBpYnVmZmVyLXNhdmVkLWZpbHRlcnMnIGZvcm1hdC4KKworU3BlY2lmaWNhbGx5 LCBjb252ZXJ0cyBvbGQtZm9ybWF0IGFsaXN0IHdpdGggdmFsdWVzIG9mIHRoZQorZm9ybSAoU1RS SU5HIChGSUxURVItU1BFQ1MuLi4pKSB0byBhbGlzdCB3aXRoIHZhbHVlcyBvZiB0aGUKK2Zvcm0g KFNUUklORyBGSUxURVItU1BFQ1MuLi4pLCB3aGVyZSBlYWNoIGZpbHRlciBzcGVjIHNob3VsZCBi ZSBhCitjb25zIGNlbGwgd2l0aCBhIHN5bWJvbCBpbiB0aGUgY2FyLiBBbnkgZWxlbWVudHMgaW4g dGhlIGxhdHRlcgorZm9ybSBhcmUga2VwdCBhcyBpcy4KKworUmV0dXJucyAoT0xELUZPUk1BVC1E RVRFQ1RFRD8gLiBVUERBVEVELVNBVkVELUZJTFRFUlMtTElTVCkuIgorICAod2hlbiBmaWx0ZXJz CisgICAgKGxldCogKChvbGQtZm9ybWF0LWRldGVjdGVkIG5pbCkKKyAgICAgICAgICAgKGZpeC1m aWx0ZXIgKGxhbWJkYSAoZmlsdGVyLXNwZWMpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlm IChzeW1ib2xwIChjYXIgKGNhZHIgZmlsdGVyLXNwZWMpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsdGVyLXNwZWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG9s ZC1mb3JtYXQtZGV0ZWN0ZWQgdCkgOyBzaWRlLWVmZmVjdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnMgKGNhciBmaWx0ZXItc3BlYykgKGNhZHIgZmlsdGVyLXNwZWMpKSkpKQorICAg ICAgICAgICAoZml4ZWQgKG1hcGNhciBmaXgtZmlsdGVyIGZpbHRlcnMpKSkKKyAgICAgIChjb25z IG9sZC1mb3JtYXQtZGV0ZWN0ZWQgZml4ZWQpKSkpCisKIChkZWZjdXN0b20gaWJ1ZmZlci1zYXZl ZC1maWx0ZXJzICcoKCJnbnVzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG9yIChtb2RlIC4gbWVzc2FnZS1tb2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtb2RlIC4gbWFpbC1tb2RlKQpAQCAtMTQ2LDkgKzE2Niw3NCBAQCBuYW1lIChz ZWUgdGhlIGZ1bmN0aW9ucyBgaWJ1ZmZlci1zd2l0Y2gtdG8tc2F2ZWQtZmlsdGVycycgYW5kCiBg aWJ1ZmZlci1zYXZlLWZpbHRlcnMnKS4gVGhlIHZhcmlhYmxlIGBpYnVmZmVyLXNhdmUtd2l0aC1j dXN0b20nCiBhZmZlY3RzIGhvdyB0aGlzIGluZm9ybWF0aW9uIGlzIHNhdmVkIGZvciBmdXR1cmUg c2Vzc2lvbnMuIFRoaXMKIHZhcmlhYmxlIGNhbiBiZSBzZXQgZGlyZWN0bHkgZnJvbSBsaXNwIGNv ZGUuIgotICA6dHlwZSAnKHJlcGVhdCBzZXhwKQorICA6dHlwZSAnKGFsaXN0IDprZXktdHlwZSAo c3RyaW5nIDp0YWcgIkZpbHRlciBuYW1lIikKKyAgICAgICAgICAgICAgICA6dmFsdWUtdHlwZSAo cmVwZWF0IDp0YWcgIkZpbHRlciBzcGVjaWZpY2F0aW9uIiBzZXhwKSkKKyAgOnNldCAobGFtYmRh IChzeW1ib2wgdmFsdWUpCisgICAgICAgICA7OyBKdXN0IHNldC1kZWZhdWx0IGJ1dCB1cGRhdGUg bGVnYWN5IG9sZC1zdHlsZSBmb3JtYXQKKyAgICAgICAgIChzZXQtZGVmYXVsdCBzeW1ib2wgKGNk ciAoaWJ1ZmZlci11cGRhdGUtc2F2ZWQtZmlsdGVycy1mb3JtYXQgdmFsdWUpKSkpCiAgIDpncm91 cCAnaWJ1ZmZlcikKIAorKGRlZnZhciBpYnVmZmVyLW9sZC1zYXZlZC1maWx0ZXJzLXdhcm5pbmcK KyAgKGNvbmNhdCAiRGVwcmVjYXRlZCBmb3JtYXQgZGV0ZWN0ZWQgZm9yIHZhcmlhYmxlIGBpYnVm ZmVyLXNhdmVkLWZpbHRlcnMnLgorCitUaGUgZm9ybWF0IGhhcyBiZWVuIHJlcGFpcmVkIGFuZCB0 aGUgdmFyaWFibGUgbW9kaWZpZWQgYWNjb3JkaW5nbHkuCitZb3UgY2FuIHNhdmUgdGhlIGN1cnJl bnQgdmFsdWUgdGhyb3VnaCB0aGUgY3VzdG9taXplIHN5c3RlbSBieQorZWl0aGVyIGNsaWNraW5n IG9yIGhpdHRpbmcgcmV0dXJuICIKKyAgICAgICAgICAobWFrZS10ZXh0LWJ1dHRvbgorICAgICAg ICAgICAiaGVyZSIgbmlsCisgICAgICAgICAgICdmYWNlICcoOndlaWdodCBib2xkIDppbmhlcml0 IGJ1dHRvbikKKyAgICAgICAgICAgJ21vdXNlLWZhY2UgJyg6d2VpZ2h0IG5vcm1hbCA6YmFja2dy b3VuZCAiZ3JheTUwIiA6aW5oZXJpdCBidXR0b24pCisgICAgICAgICAgICdmb2xsb3ctbGluayB0 CisgICAgICAgICAgICdoZWxwLWVjaG8gIkNsaWNrIG9yIFJFVDogc2F2ZSBuZXcgdmFsdWUgaW4g Y3VzdG9taXplIgorICAgICAgICAgICAnYWN0aW9uIChsYW1iZGEgKGIpCisgICAgICAgICAgICAg ICAgICAgICAoaWYgKG5vdCAoZmJvdW5kcCAnY3VzdG9taXplLXNhdmUtdmFyaWFibGUpKQorICAg ICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlICJDdXN0b21pemUgbm90IGF2YWlsYWJsZTsg dmFsdWUgbm90IHNhdmVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgKGN1c3RvbWl6ZS1zYXZl LXZhcmlhYmxlICdpYnVmZmVyLXNhdmVkLWZpbHRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlidWZmZXItc2F2ZWQtZmlsdGVycykKKyAgICAgICAg ICAgICAgICAgICAgICAgKG1lc3NhZ2UgIlNhdmVkIHVwZGF0ZWQgaWJ1ZmZlci1zYXZlZC1maWx0 ZXJzLiIpKSkpCisgICAgICAgICAgIi4gU2VlIGJlbG93IGZvcgorYW4gZXhwbGFuYXRpb24gYW5k IGFsdGVybmF0aXZlIHdheXMgdG8gc2F2ZSB0aGUgcmVwYWlyZWQgdmFsdWUuCisKK0V4cGxhbmF0 aW9uOiBGb3IgdGhlIGxpc3QgdmFyaWFibGUgYGlidWZmZXItc2F2ZWQtZmlsdGVycycsCitlbGVt ZW50cyBvZiB0aGUgZm9ybSAoU1RSSU5HIChGSUxURVItU1BFQ1MuLi4pKSBhcmUgZGVwcmVjYXRl ZAorYW5kIHNob3VsZCBpbnN0ZWFkIGhhdmUgdGhlIGZvcm0gKFNUUklORyBGSUxURVItU1BFQ1Mu Li4pLCB3aGVyZQorZWFjaCBmaWx0ZXIgc3BlYyBpcyBhIGNvbnMgY2VsbCB3aXRoIGEgc3ltYm9s IGluIHRoZSBjYXIuIFNlZQorYGlidWZmZXItc2F2ZWQtZmlsdGVycycgZm9yIGRldGFpbHMuIFRo ZSByZXBhaXJlZCB2YWx1ZSBmaXhlcwordGhpcyBmb3JtYXQgd2l0aG91dCBjaGFuZ2luZyB0aGUg bWVhbmluZyBvZiB0aGUgc2F2ZWQgZmlsdGVycy4KKworQWx0ZXJuYXRpdmUgd2F5cyB0byBzYXZl IHRoZSByZXBhaXJlZCB2YWx1ZToKKworICAxLiBEbyBNLXggY3VzdG9taXplLXZhcmlhYmxlIGFu ZCBlbnRlcmluZyBgaWJ1ZmZlci1zYXZlZC1maWx0ZXJzJworICAgICB3aGVuIHByb21wdGVkLgor CisgIDIuIFNldCB0aGUgdXBkYXRlZCB2YWx1ZSBtYW51YWxseSBieSBjb3B5aW5nIHRoZQorICAg ICBmb2xsb3dpbmcgZW1hY3MtbGlzcCBmb3JtIHRvIHlvdXIgZW1hY3MgaW5pdCBmaWxlLgorCisl cworIikpCisKKyhkZWZ1biBpYnVmZmVyLXJlcGFpci1zYXZlZC1maWx0ZXJzICgpCisgICJVcGRh dGVzIGBpYnVmZmVyLXNhdmVkLWZpbHRlcnMnIHRvIGl0cyBuZXctc3R5bGUgZm9ybWF0LCBpZiBu ZWVkZWQuCisKK0lmIHRoaXMgbGlzdCBoYXMgYW55IGVsZW1lbnRzIG9mIHRoZSBvbGQtc3R5bGUg Zm9ybWF0LCBhCitkZXByZWNhdGlvbiB3YXJuaW5nIGlzIHJhaXNlZCwgd2l0aCBhIGJ1dHRvbiBh bGxvd2luZyBwZXJzaXN0ZW50Cit1cGRhdGUuIEFueSB1cGRhdGVkIGZpbHRlcnMgcmV0YWluIHRo ZWlyIG1lYW5pbmcgaW4gdGhlIG5ldworZm9ybWF0LiBTZWUgYGlidWZmZXItdXBkYXRlLXNhdmVk LWZpbHRlcnMtZm9ybWF0JyBhbmQKK2BpYnVmZmVyLXNhdmVkLWZpbHRlcnMnIGZvciBkZXRhaWxz IG9mIHRoZSBvbGQgYW5kIG5ldyBmb3JtYXRzLiIKKyAgKGludGVyYWN0aXZlKQorICAod2hlbiAo YW5kIChib3VuZHAgJ2lidWZmZXItc2F2ZWQtZmlsdGVycykgaWJ1ZmZlci1zYXZlZC1maWx0ZXJz KQorICAgIChsZXQgKChmaXhlZCAoaWJ1ZmZlci11cGRhdGUtc2F2ZWQtZmlsdGVycy1mb3JtYXQg aWJ1ZmZlci1zYXZlZC1maWx0ZXJzKSkpCisgICAgICAocHJvZzEKKyAgICAgICAgICAoc2V0cSBp YnVmZmVyLXNhdmVkLWZpbHRlcnMgKGNkciBmaXhlZCkpCisgICAgICAgICh3aGVuLWxldCAob2xk LWZvcm1hdC1kZXRlY3RlZD8gKGNhciBmaXhlZCkpCisgICAgICAgICAgKGxldCAoKHdhcm5pbmct c2VyaWVzIHQpCisgICAgICAgICAgICAgICAgKHVwZGF0ZWQtZm9ybQorICAgICAgICAgICAgICAg ICAod2l0aC1vdXRwdXQtdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgKHBwIGAoc2V0cSBp YnVmZmVyLXNhdmVkLWZpbHRlcnMgJyxpYnVmZmVyLXNhdmVkLWZpbHRlcnMpKSkpKQorICAgICAg ICAgICAgKGRpc3BsYXktd2FybmluZworICAgICAgICAgICAgICdpYnVmZmVyCisgICAgICAgICAg ICAgKGZvcm1hdCBpYnVmZmVyLW9sZC1zYXZlZC1maWx0ZXJzLXdhcm5pbmcgdXBkYXRlZC1mb3Jt KSkpKSkpKSkKKwogKGRlZnZhciBpYnVmZmVyLWZpbHRlcmluZy1xdWFsaWZpZXJzIG5pbAogICAi QSBsaXN0IGxpa2UgKFNZTUJPTCAuIFFVQUxJRklFUikgd2hpY2ggZmlsdGVycyB0aGUgY3VycmVu dCBidWZmZXIgbGlzdC4KIFNlZSBhbHNvIGBpYnVmZmVyLWZpbHRlcmluZy1hbGlzdCcuIikKZGlm ZiAtLWdpdCBhL3Rlc3QvbGlzcC9pYnVmZmVyLXRlc3RzLmVsIGIvdGVzdC9saXNwL2lidWZmZXIt dGVzdHMuZWwKaW5kZXggM2E0ZGVmMy4uNmQ1MTg3YSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2li dWZmZXItdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2lidWZmZXItdGVzdHMuZWwKQEAgLTY2LDUg KzY2LDM0IEBACiAgICAgICAobWFwYyAobGFtYmRhIChidWYpICh3aGVuIChidWZmZXItbGl2ZS1w IGJ1ZikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2lsbC1idWZmZXIgYnVmKSkpIChs aXN0IGJ1ZjEgYnVmMikpKSkpCiAKKyhlcnQtZGVmdGVzdCBpYnVmZmVyLXNhdmUtZmlsdGVycyAo KQorICAiVGVzdHMgdGhhdCBgaWJ1ZmZlci1zYXZlLWZpbHRlcnMnIHNhdmVzIGluIHRoZSBwcm9w ZXIgZm9ybWF0LiIKKyAgKHNraXAtdW5sZXNzIChmZWF0dXJlcCAnaWJ1Zi1leHQpKQorICAobGV0 ICgoaWJ1ZmZlci1zYXZlLXdpdGgtY3VzdG9tIG5pbCkKKyAgICAgICAgKGlidWZmZXItc2F2ZWQt ZmlsdGVycyBuaWwpCisgICAgICAgICh0ZXN0MSAnKChtb2RlIC4gb3JnLW1vZGUpCisgICAgICAg ICAgICAgICAgIChvciAoc2l6ZS1ndCAuIDEwMDAwKQorICAgICAgICAgICAgICAgICAgICAgKGFu ZCAobm90IChzdGFycmVkLW5hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlyZWN0 b3J5IC4gIlw8b3JnXD4iKSkpKSkKKyAgICAgICAgKHRlc3QyICcoKG9yIChtb2RlIC4gZW1hY3Mt bGlzcC1tb2RlKSAoZmlsZS1leHRlbnNpb24gLiAiZWxjPyIpCisgICAgICAgICAgICAgICAgICAg ICAoYW5kIChzdGFycmVkLW5hbWUpIChuYW1lIC4gImVsaXNwIikpCisgICAgICAgICAgICAgICAg ICAgICAobW9kZSAuIGxpc3AtaW50ZXJhY3Rpb24tbW9kZSkpKSkKKyAgICAgICAgKHRlc3QzICco KHNpemUtbHQgLiAxMDApIChkZXJpdmVkLW1vZGUgLiBwcm9nLW1vZGUpCisgICAgICAgICAgICAg ICAgIChvciAoZmlsZW5hbWUgLiAic2NyYXRjaCIpCisgICAgICAgICAgICAgICAgICAgICAoZmls ZW5hbWUgLiAiYm9ueiIpCisgICAgICAgICAgICAgICAgICAgICAoZmlsZW5hbWUgLiAidGVtcCIp KSkpKQorICAgIChpYnVmZmVyLXNhdmUtZmlsdGVycyAidGVzdDEiIHRlc3QxKQorICAgIChzaG91 bGQgKGVxdWFsIChjYXIgaWJ1ZmZlci1zYXZlZC1maWx0ZXJzKSAoY29ucyAidGVzdDEiIHRlc3Qx KSkpCisgICAgKGlidWZmZXItc2F2ZS1maWx0ZXJzICJ0ZXN0MiIgdGVzdDIpCisgICAgKHNob3Vs ZCAoZXF1YWwgKGNhciBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpIChjb25zICJ0ZXN0MiIgdGVzdDIp KSkKKyAgICAoc2hvdWxkIChlcXVhbCAoY2FkciBpYnVmZmVyLXNhdmVkLWZpbHRlcnMpIChjb25z ICJ0ZXN0MSIgdGVzdDEpKSkKKyAgICAoaWJ1ZmZlci1zYXZlLWZpbHRlcnMgInRlc3QzIiB0ZXN0 MykKKyAgICAoc2hvdWxkIChlcXVhbCAoY2FyIGlidWZmZXItc2F2ZWQtZmlsdGVycykgKGNvbnMg InRlc3QzIiB0ZXN0MykpKQorICAgIChzaG91bGQgKGVxdWFsIChjYWRyIGlidWZmZXItc2F2ZWQt ZmlsdGVycykgKGNvbnMgInRlc3QyIiB0ZXN0MikpKQorICAgIChzaG91bGQgKGVxdWFsIChjYXIg KGNkZHIgaWJ1ZmZlci1zYXZlZC1maWx0ZXJzKSkgKGNvbnMgInRlc3QxIiB0ZXN0MSkpKQorICAg IChzaG91bGQgKGVxdWFsIChjZHIgKGFzc29jICJ0ZXN0MSIgaWJ1ZmZlci1zYXZlZC1maWx0ZXJz KSkgdGVzdDEpKQorICAgIChzaG91bGQgKGVxdWFsIChjZHIgKGFzc29jICJ0ZXN0MiIgaWJ1ZmZl ci1zYXZlZC1maWx0ZXJzKSkgdGVzdDIpKQorICAgIChzaG91bGQgKGVxdWFsIChjZHIgKGFzc29j ICJ0ZXN0MyIgaWJ1ZmZlci1zYXZlZC1maWx0ZXJzKSkgdGVzdDMpKSkpCisKIChwcm92aWRlICdp YnVmZmVyLXRlc3RzKQogOzsgaWJ1ZmZlci10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMTAuMAoK --001a1143d830543794054256f3c7--