From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.bugs Subject: bug#46882: 26.3; Let `dired-omit-mode' match lines, as well as file names Date: Wed, 3 Mar 2021 00:39:42 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_002_SA2PR10MB4474DF8E4F189BE0C875337AF3989SA2PR10MB4474namp_" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16562"; mail-complaints-to="usenet@ciao.gmane.io" To: 46882@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Mar 03 01:40:30 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lHFYz-0004Bn-OM for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 03 Mar 2021 01:40:29 +0100 Original-Received: from localhost ([::1]:41770 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lHFYy-0006Of-9V for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 02 Mar 2021 19:40:28 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39070) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHFYY-0006O6-2X for bug-gnu-emacs@gnu.org; Tue, 02 Mar 2021 19:40:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43080) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lHFYX-0006Ke-Ri for bug-gnu-emacs@gnu.org; Tue, 02 Mar 2021 19:40:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lHFYX-00049d-P1 for bug-gnu-emacs@gnu.org; Tue, 02 Mar 2021 19:40:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 03 Mar 2021 00:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 46882 X-GNU-PR-Package: emacs X-Debbugs-Original-To: "bug-gnu-emacs@gnu.org" Original-Received: via spool by submit@debbugs.gnu.org id=B.161473199715953 (code B ref -1); Wed, 03 Mar 2021 00:40:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 3 Mar 2021 00:39:57 +0000 Original-Received: from localhost ([127.0.0.1]:54626 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lHFYT-00049E-Ch for submit@debbugs.gnu.org; Tue, 02 Mar 2021 19:39:57 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:43372) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lHFYR-000497-Na for submit@debbugs.gnu.org; Tue, 02 Mar 2021 19:39:56 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39018) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHFYQ-0006Nr-QP for bug-gnu-emacs@gnu.org; Tue, 02 Mar 2021 19:39:55 -0500 Original-Received: from aserp2120.oracle.com ([141.146.126.78]:59532) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHFYN-0006I5-VH for bug-gnu-emacs@gnu.org; Tue, 02 Mar 2021 19:39:54 -0500 Original-Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1230UWXo108443 for ; Wed, 3 Mar 2021 00:39:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : content-type : mime-version; s=corp-2020-01-29; bh=RARVOF6+frSgNynlh0fia78V+A46cTEbLFYUrGmkL5s=; b=n48b69+CJklcIngOZvYQ9bNcI6Ku2oa5chtErkQ9p7Phms/Yip6HZQl6J56CGUvPY2pC p2Al3G7qE4D3o480G5qWZkEjOdqCFvUfRzhXr0CiaL0eLYHH4ngCgPhR1BVL5An+GRkF 1XPSxDWemryMmpEtpyeThOmSd+Ze3NFDcuIveCYEzSiH7hT2KEm8SfzJAIynQu436T1L gv7VQiOnRXCGNQcsw8njW2elZLYTNeNHFFdrd4NX2l4e9rVxCc6fu4a1po/UJqkbopxD t7ihUnSoRhLYo+zTWbBHRRYAjvyIFvMJxCavdJapkrvMA5tdGBBam0oohaUnEIBEBB3h Zw== Original-Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 36ye1m9m7n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 03 Mar 2021 00:39:45 +0000 Original-Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1230V0q8045905 for ; Wed, 3 Mar 2021 00:39:44 GMT Original-Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2107.outbound.protection.outlook.com [104.47.58.107]) by aserp3030.oracle.com with ESMTP id 36yynpvd7r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 03 Mar 2021 00:39:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fq5mQpe9vaKq0a2sXJWX094KuGm9+TfFg3QERMETsJ2quU+9I2ZLZXrjUFGeCUHHgiYDMpGEPvc1wktmlHfGM7VeMHGVebQ8+c51Co1+kP/wBVai+2SYLuOpnLcmKRHv89mBDfMb4n8iHgjwgtkjE342UqU21JmLb8y2vuzlOTrL5ja0Ugfkjp8wgx7ZOB9eRZQhbP6SgpeatMmWSYD/mf8S1q+mIpLy2dbvyTghdBfWZEqf92HQdk8vL/2sLTPlL/j5o/87KOU8Khw/aDveYka3J4X+elVQC03CJI6BWJp7WuNMKN2GRMbovONqsC8F6xZt6i/FXREXYHKjYL220Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RARVOF6+frSgNynlh0fia78V+A46cTEbLFYUrGmkL5s=; b=AD6naCVvW735w2Bj9sSTJtM5ZFMb3pj5NA1ozGy9p3RdFfxYJMLSbWOAIwM52zdBOXzTNBtJZ6m0V0nTUUKXkFEialqYCoBxL+K86E73dhaF7QJgvxaErBMs0U0T27GPxCWeopjtBURUQBUuBBKVqupSNbQB4wVhDj2KlszSfwvtFaFKoiVH6eUzdya4Dpjq81FJAbDDFbpBiaYGdeSUBCwom52C8WnwxPf9j9QXRG/PA8GuybGfnN3G5GA4OBsQ9oJh6t+oUVcjnSE8Ss15XDD8vLOT918WtejBA5yAZMwcxh0k8IJoj2Jl8OFkvZUZdO+JcljlCYTwZ4rKQSnqFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RARVOF6+frSgNynlh0fia78V+A46cTEbLFYUrGmkL5s=; b=s4V5UEAB3diE15LmvH3do0u9cbafFHirZeQMZZuMmcq38cO5q5Zg8ZMleCQ9S9nW3vIE4aKThfUQw7J+PulzzmtV8nJ3ab6vqzppdD0jbgnaVeMWNEJgenjUNkp85NwcrlSVapfjQo5GoStW2zgz9uCLsr1maFhhEX++77CGRhk= Original-Received: from SA2PR10MB4474.namprd10.prod.outlook.com (2603:10b6:806:11b::15) by SN6PR10MB2797.namprd10.prod.outlook.com (2603:10b6:805:cb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Wed, 3 Mar 2021 00:39:42 +0000 Original-Received: from SA2PR10MB4474.namprd10.prod.outlook.com ([fe80::b8d2:db6d:3e4b:d315]) by SA2PR10MB4474.namprd10.prod.outlook.com ([fe80::b8d2:db6d:3e4b:d315%5]) with mapi id 15.20.3912.017; Wed, 3 Mar 2021 00:39:42 +0000 Thread-Topic: 26.3; Let `dired-omit-mode' match lines, as well as file names Thread-Index: AdcPxIr27GpHH5ZsSHmtuzgts+D78w== Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes authentication-results: gnu.org; dkim=none (message not signed) header.d=none;gnu.org; dmarc=none action=none header.from=oracle.com; x-originating-ip: [73.170.83.28] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a0f202de-677a-4009-c7fb-08d8dddcd634 x-ms-traffictypediagnostic: SN6PR10MB2797: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3826; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Wx5npi0KUeTvfIEW3ChLVxmbYv6nt8VZxVabVE5W+1g54dXgyTQQUBlD2/32U1aFA7K1XGh7UO6vvdXiISlZX1stIVqztH0qN6UlhY5xldyzTK2H9h2zaTcSrX+pjHQAjXCLRN08aROBq45JOCsdv6S/NJQb3vevJEIB9lXxKCo67wxxdDEr1su+rSwFO0wPXJwIE7q08dSYnJnUQWd+JLiBmcb7DOZtA+I2D5fEmLrZNVAg5WjBMwrjT4AYddJTGj9Dvs9pHsnvyFfEJLzu/GxJw71Ny6DoSR8GcTih0yAt3BzfUCzuDgZ9WzuoEwzPUoQdYgxoFmq8AI+JFGa0JwwwGmdNmaTPziwM+QQMVHV62suw/bhrtdV1yM0PVjptu65dqLs0fCbhndvb/b9+p07SV/acNIg0V3axi5Mf6wYhUVJffrmfnapVB8xFY0lYo5l9uFAt+UHiqxmwCrAfnuysUG1O7bO75iDBaM93+Ih4EocLprxLzjnEAW1b6v3Uepvt3rNgqPr9NFT5/Rc3vb+/OcNNNZP+noEcUrTaBM6Fli0p8ZSWgsPBvikByg2TjFtrycLFtwRfV3PNYkOcM35n+GufpoXNeOiHoezzzjt3BU811qa0PiZd0k6Mdn1q2saWae4jOOjpQOjW5JflRA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR10MB4474.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(136003)(39860400002)(346002)(376002)(366004)(66616009)(71200400001)(2906002)(6506007)(44832011)(966005)(55016002)(66446008)(66476007)(5660300002)(33656002)(66556008)(99936003)(8936002)(9686003)(45080400002)(186003)(8676002)(316002)(76116006)(86362001)(83380400001)(6916009)(7696005)(478600001)(64756008)(66946007)(52536014)(26005)(81973001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: c/tLaP3rDHbvMkYTBQ3aV5gclzhkmtzqYmCsi6UDo/pR6OHtR97atpdc/5owsjqACV6qBJbzw4ePaJJ6w251nZSFzSFqQEKL9xFzCzaD4PtV4zof+1Y3cR+nBDAd0cMBoF0LOOgVWtt5fey115gZbEn7DXwzaZ23+D8LMM9Ek0fii4wd6trecsf+nQz9Vkkkx4Ra+RSdNvGwaplBAvOF1622HuH1PAT/7PNEEbQICAhOiFk65u8tHBnOxNlrC1HAtRTJFpeDLFZx2G/h76mcP+uPBNmju7eC6DBU5BfUKokeIKQg6hq4y11+/cobaU1WbyTEy8Vys6/pz+accdSs/3uE0iasLcvA1nJs/4QknhYs55wpnNNnDXQyzEn+dGSFuqlHUyp4zCsqnhBYCOM1lXxDzFp9S5n5NQUS/xbSZ2AADEWZtxespvvid47Dd13nkjWHkAjjJU1k03FAIZRbIZiLn25SGqy2FoTY5ndrhPUMxzC9+h5qyqxqkYl9cTz9V1tHDpP8RWnKcrbMFh8lt9NZ7Kes502rCVQak5NcQAcLE1kOCTDtg1rUaHVnHK7tfPXicX/aubXmOHN0UNCatE8CMIhkqpxFMQXNK5MNlq7MA+e7LMrxSWIeCDWqhK+vjJVPhD728i37/8cM/+sb8b16ZcQ1SHa/EWHJh4sbbHbZKclVdGUznV37UmytemmVv4SqrCYlHBbhGq2RjTTye8ega6XcUTUiDa+02Qtg0iT88N7FPv0HbrE133LJ wBjpgaPY607TrQplMCsaBIWz/uZMgcK1BBZKGaReUbSFyJ6VJS814NZfzRIdQvRigABxei299SfCXXmrDsYIN0YtLCUdFhOquM x-ms-exchange-transport-forked: True X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4474.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0f202de-677a-4009-c7fb-08d8dddcd634 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2021 00:39:42.7987 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Cv1WOQleDYxjHA77DO/6Lfuse8ZNuayQgHtjv/gSkX+z/+l//j4458vbIYf4clFT8O0HM7RDdGqwZIddx9GqXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2797 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9911 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 spamscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103030001 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9911 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 priorityscore=1501 mlxlogscore=999 impostorscore=0 suspectscore=0 adultscore=0 malwarescore=0 mlxscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103030001 Received-SPF: pass client-ip=141.146.126.78; envelope-from=drew.adams@oracle.com; helo=aserp2120.oracle.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:201248 Archived-At: --_002_SA2PR10MB4474DF8E4F189BE0C875337AF3989SA2PR10MB4474namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable `dired-omit-mode' matches file names against regexps, and removes their lines from the Dired listing. It can also be useful to match other things on a file's line, besides its name. For example, match the `x' permission to omit executable files. The attached code implements this. It adds a new option, `dired-omit-line-regexp', which is a regexp to match lines. It redefines `dired-omit-mode', `dired-omit-expunge', and `dired-do-kill-lines'. It adds optional args LINEP and INIT-COUNT to `dired-omit-expunge', and optional arg INIT-COUNT to `dired-do-kill-lines'. When the new option is non-nil, `dired-omit-mode' calls `dired-omit-expunge' a second time, to omit matching lines. The updated doc of `dired-do-kill-lines' speaks only of removing lines from the listing, not of "killing" lines, to avoid confusion with kills (the `kill-ring' is unaffected by this command). We should consider renaming the command altogether, but then the key binding of `k' would no longer be mnemonic'. At the very least, if the doc continues to speak of "killing" lines then it should explicitly say that the `kill-ring' is unaffected. If this improvement is OK (try it) then I can send a patch. Otherwise, I won't bother. The improvement was inspired by this user question: https://emacs.stackexchange.com/q/63659/105 In GNU Emacs 26.3 (build 1, x86_64-w64-mingw32) of 2019-08-29 Repository revision: 96dd0196c28bc36779584e47fffcca433c9309cd Windowing system distributor `Microsoft Corp.', version 10.0.19041 Configured using: `configure --without-dbus --host=3Dx86_64-w64-mingw32 --without-compress-install 'CFLAGS=3D-O2 -static -g3'' --_002_SA2PR10MB4474DF8E4F189BE0C875337AF3989SA2PR10MB4474namp_ Content-Type: application/octet-stream; name="throw-dir-omit.el" Content-Description: throw-dir-omit.el Content-Disposition: attachment; filename="throw-dir-omit.el"; size=6851; creation-date="Wed, 03 Mar 2021 00:04:57 GMT"; modification-date="Wed, 03 Mar 2021 00:36:20 GMT" Content-Transfer-Encoding: base64 KGRlZmN1c3RvbSBkaXJlZC1vbWl0LWxpbmUtcmVnZXhwIG5pbAogICJSZWdleHAgbWF0Y2hpbmcg bGluZXMgdG8gYmUgb21pdHRlZCBieSBgZGlyZWQtb21pdC1tb2RlJy4KVGhlIHZhbHVlIGNhbiBh bHNvIGJlIG5pbCwgd2hpY2ggbWVhbnMgZG8gbm8gbGluZSBtYXRjaGluZy4KClNlZSBjb21tYW5k IGBkaXJlZC1vbWl0LW1vZGUnIChcXFtkaXJlZC1vbWl0LW1vZGVdKS4KClNvbWUgcHJlZGVmaW5l ZCByZWdleHAgdmFyaWFibGVzIGZvciBEaXJlZCwgd2hvc2UgdmFsdWVzIHlvdSBjYW4gdXNlCmFz IHRoZSBvcHRpb24gdmFsdWU6CgoqIGBkaXJlZC1yZS1pbm9kZS1zaXplJwoqIGBkaXJlZC1yZS1t YXJrJwoqIGBkaXJlZC1yZS1tYXliZS1tYXJrJwoqIGBkaXJlZC1yZS1kaXInCiogYGRpcmVkLXJl LXN5bScKKiBgZGlyZWQtcmUtZXhlJwoqIGBkaXJlZC1yZS1wZXJtcycKKiBgZGlyZWQtcmUtZG90 JwoqIGBkaXJlZC1yZS1uby1kb3QnIgogIDp0eXBlIGAoY2hvaWNlIChjb25zdCAgOnRhZyAiRG9u J3QgbWF0Y2ggbGluZXMiIG5pbCkKICAgICAgICAgICAgICAgICAocmVnZXhwIDp0YWcgIk1hdGNo IGxpbmVzIHdpdGggcmVnZXhwIChkZWZhdWx0OiBleGVjdXRhYmxlcykiCiAgICAgICAgICAgICAg ICAgICAgICAgICA6dmFsdWUgLGRpcmVkLXJlLWV4ZSkpCiAgOmdyb3VwICdkaXJlZC14KQoKCjs7 IFJFUExBQ0UgT1JJR0lOQUwgaW4gYGRpcmVkLXguZWwnLgo7Owo7OyBXaGVuIGBkaXJlZC1vbWl0 LWxpbmUtcmVnZXhwJyBpcyBub24tbmlsLCBjYWxsIGBkaXJlZC1vbWl0LWV4cHVuZ2UnCjs7IGFn YWluIHRvIG9taXQgbWF0Y2hpbmcgbGluZXMuCjs7CihkZWZpbmUtbWlub3ItbW9kZSBkaXJlZC1v bWl0LW1vZGUKICAiVG9nZ2xlIG9taXNzaW9uIG9mIHVuaW50ZXJlc3RpbmcgZmlsZXMgaW4gRGly ZWQgKERpcmVkLU9taXQgbW9kZSkuCldpdGggcHJlZml4IGFyZ3VtZW50IEFSRywgZW5hYmxlIERp cmVkLU9taXQgbW9kZSBpZiBBUkcgaXMgcG9zaXRpdmUsCmFuZCBkaXNhYmxlIGl0IG90aGVyd2lz ZS4KCklmIGNhbGxlZCBmcm9tIExpc3AsIGVuYWJsZSB0aGUgbW9kZSBpZiBBUkcgaXMgb21pdHRl ZCBvciBuaWwuCgpEaXJlZC1PbWl0IG1vZGUgaXMgYSBidWZmZXItbG9jYWwgbWlub3IgbW9kZS4K CldoZW4gZW5hYmxlZCBpbiBhIERpcmVkIGJ1ZmZlciwgRGlyZWQgZG9lcyBub3QgbGlzdCBmaWxl cyB3aG9zZQpmaWxlbmFtZXMgbWF0Y2ggcmVnZXhwIGBkaXJlZC1vbWl0LWZpbGVzJywgZmlsZXMg ZW5kaW5nIHdpdGgKZXh0ZW5zaW9ucyBpbiBgZGlyZWQtb21pdC1leHRlbnNpb25zJywgb3IgZmls ZXMgbGlzdGVkIG9uIGxpbmVzCm1hdGNoaW5nIGBkaXJlZC1vbWl0LWxpbmUtcmVnZXhwJy4KClRv IGVuYWJsZSBvbWl0dGluZyBpbiBldmVyeSBEaXJlZCBidWZmZXIsIHlvdSBjYW4gcHV0IHRoaXMg aW4KeW91ciBpbml0IGZpbGU6CgogIChhZGQtaG9vayBcXD0nZGlyZWQtbW9kZS1ob29rIChsYW1i ZGEgKCkgKGRpcmVkLW9taXQtbW9kZSkpKQoKU2VlIEluZm8gbm9kZSBgKGRpcmVkLXgpIE9taXR0 aW5nIFZhcmlhYmxlcycgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgogIG5pbCBuaWwgbmlsIDpncm91 cCAnZGlyZWQteAogIChpZiAobm90IGRpcmVkLW9taXQtbW9kZSkKICAgICAgKHJldmVydC1idWZm ZXIpCiAgICAobGV0ICgoZGlyZWQtb21pdC1zaXplLWxpbWl0ICBuaWwpCiAgICAgICAgICAoZmls ZS1jb3VudCAgICAgICAgICAgICAwKSkKICAgICAgOzsgT21pdCBieSBmaWxlLW5hbWUgbWF0Y2gs IHRoZW4gb21pdCBieSBsaW5lIG1hdGNoLgogICAgICA7OyBVc2UgY291bnQgb2YgZmlsZS1uYW1l IG1hdGNoIGFzIElOSVQtQ09VTlQgZm9yIGxpbmUgbWF0Y2guCiAgICAgIDs7IFJldHVybiB0b3Rh bCBjb3VudC4gIChSZXR1cm4gdmFsdWUgaXMgbm90IHVzZWQgYW55d2hlcmUsIHNvIGZhcikuCiAg ICAgIChzZXRxIGZpbGUtY291bnQgIChkaXJlZC1vbWl0LWV4cHVuZ2UpKQogICAgICAod2hlbiBk aXJlZC1vbWl0LWxpbmUtcmVnZXhwCiAgICAgICAgKGRpcmVkLW9taXQtZXhwdW5nZSBkaXJlZC1v bWl0LWxpbmUtcmVnZXhwICdMSU5FUCBmaWxlLWNvdW50KSkpKSkKCgo7OyBSRVBMQUNFIE9SSUdJ TkFMIGluIGBkaXJlZC14LmVsJy4KOzsKOzsgQWRkZWQgb3B0aW9uYWwgYXJncyBMSU5FUCBhbmQg SU5JVC1DT1VOVC4KOzsKKGRlZnVuIGRpcmVkLW9taXQtZXhwdW5nZSAoJm9wdGlvbmFsIHJlZ2V4 cCBsaW5lcCBpbml0LWNvdW50KQogICJFcmFzZSBhbGwgdW5tYXJrZWQgZmlsZXMgd2hvc2UgbmFt ZXMgbWF0Y2ggUkVHRVhQLgpXaXRoIGEgcHJlZml4IGFyZyAobm9uLW5pbCBMSU5FUCB3aGVuIGNh bGxlZCBmcm9tIExpc3ApLCBtYXRjaCBSRUdFWFAKYWdhaW5zdCB0aGUgd2hvbGUgbGluZS4gIE90 aGVyd2lzZSwgbWF0Y2ggaXQgYWdhaW5zdCB0aGUgZmlsZSBuYW1lLgoKSWYgUkVHRVhQIGlzIG5p bCwgdXNlIGBkaXJlZC1vbWl0LWZpbGVzJywgYW5kIGFsc28gb21pdCBmaWxlIG5hbWVzCmVuZGlu ZyBpbiBgZGlyZWQtb21pdC1leHRlbnNpb25zJy4KCkRvIG5vdGhpbmcgaWYgUkVHRVhQIGlzIHRo ZSBlbXB0eSBzdHJpbmcsIGBkaXJlZC1vbWl0LW1vZGUnIGlzIG5pbCwgb3IKaWYgY2FsbGVkIGZy b20gTGlzcCBhbmQgYnVmZmVyIGlzIGJpZ2dlciB0aGFuIGBkaXJlZC1vbWl0LXNpemUtbGltaXQn LgoKT3B0aW9uYWwgYXJnIElOSVQtQ09VTlQgaXMgYW4gaW5pdGlhbCBjb3VudCB0aGEnaXMgYWRk ZWQgdG8gdGhlIG51bWJlcgpvZiBsaW5lcyBvbWl0dGVkIGJ5IHRoaXMgaW52b2NhdGlvbiBvZiBg ZGlyZWQtb21pdC1leHB1bmdlJywgaW4gdGhlCnN0YXR1cyBtZXNzYWdlLiIKICAoaW50ZXJhY3Rp dmUgInNPbWl0IGZpbGVzIChyZWdleHApOiBcblAiKQogIDs7IEJpbmQgYGRpcmVkLW1hcmtlci1j aGFyJyB0byBgZGlyZWQtb21pdC1tYXJrZXItY2hhcicsCiAgOzsgdGhlbiBjYWxsIGBkaXJlZC1k by1raWxsLWxpbmVzJy4KICAoaWYgKGFuZCBkaXJlZC1vbWl0LW1vZGUKICAgICAgICAgICAob3Ig KGNhbGxlZC1pbnRlcmFjdGl2ZWx5LXAgJ2ludGVyYWN0aXZlKQogICAgICAgICAgICAgICAobm90 IGRpcmVkLW9taXQtc2l6ZS1saW1pdCkKICAgICAgICAgICAgICAgKDwgKGJ1ZmZlci1zaXplKSBk aXJlZC1vbWl0LXNpemUtbGltaXQpCiAgICAgICAgICAgICAgIChwcm9nbgogICAgICAgICAgICAg ICAgICh3aGVuIGRpcmVkLW9taXQtdmVyYm9zZQogICAgICAgICAgICAgICAgICAgKG1lc3NhZ2Ug Ik5vdCBvbWl0dGluZzogZGlyZWN0b3J5IGxhcmdlciB0aGFuICVkIGNoYXJhY3RlcnMuIgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWQtb21pdC1zaXplLWxpbWl0KSkKICAgICAgICAg ICAgICAgICAoc2V0cSBkaXJlZC1vbWl0LW1vZGUgIG5pbCkKICAgICAgICAgICAgICAgICBuaWwp KSkKICAgICAgKGxldCAoKG9taXQtcmUgICAgICAgICAob3IgcmVnZXhwICAoZGlyZWQtb21pdC1y ZWdleHApKSkKICAgICAgICAgICAgKG9sZC1tb2RpZmllZC1wICAoYnVmZmVyLW1vZGlmaWVkLXAp KQogICAgICAgICAgICAoY291bnQgICAgICAgICAgIChvciBpbml0LWNvdW50ICAwKSkpCiAgICAg ICAgKHVubGVzcyAoc3RyaW5nPSBvbWl0LXJlICIiKQogICAgICAgICAgKGxldCAoKGRpcmVkLW1h cmtlci1jaGFyICBkaXJlZC1vbWl0LW1hcmtlci1jaGFyKSkKICAgICAgICAgICAgKHdoZW4gZGly ZWQtb21pdC12ZXJib3NlIChtZXNzYWdlICJPbWl0dGluZy4uLiIpKQogICAgICAgICAgICAoaWYg KG5vdCAoaWYgbGluZXAKICAgICAgICAgICAgICAgICAgICAgICAgIChkaXJlZC1tYXJrLWlmCiAg ICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoPSAoZm9sbG93aW5nLWNoYXIpID9ccykgOyBO b3QgYWxyZWFkeSBtYXJrZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmct bWF0Y2gtcCBvbWl0LXJlIChidWZmZXItc3Vic3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lLWVuZC1wb3NpdGlvbikpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5pbCkKICAgICAgICAgICAgICAgICAgICAgICAoZGlyZWQtbWFyay11bm1hcmtlZC1m aWxlcwogICAgICAgICAgICAgICAgICAgICAgICBvbWl0LXJlIG5pbCBuaWwgZGlyZWQtb21pdC1s b2NhbHAKICAgICAgICAgICAgICAgICAgICAgICAgKGRpcmVkLW9taXQtY2FzZS1mb2xkLXAgKGlm IChzdHJpbmdwIGRpcmVkLWRpcmVjdG9yeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpcmVkLWRpcmVjdG9yeQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgZGlyZWQtZGlyZWN0b3J5KSkpKSkp CiAgICAgICAgICAgICAgICAod2hlbiBkaXJlZC1vbWl0LXZlcmJvc2UgKG1lc3NhZ2UgIihOb3Ro aW5nIHRvIG9taXQpIikpCiAgICAgICAgICAgICAgKHNldHEgY291bnQgICgrIGNvdW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChkaXJlZC1kby1raWxsLWxpbmVzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp ZiBkaXJlZC1vbWl0LXZlcmJvc2UgIk9taXR0ZWQgJWQgbGluZSVzIiAiIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluaXQtY291bnQpKSkKICAgICAgICAgICAgICAoZm9yY2UtbW9k ZS1saW5lLXVwZGF0ZSkpKSkKICAgICAgICA7OyBUcnkgdG8gcHJlc2VydmUgbW9kaWZpZWQgc3Rh dGUsIHNvIGAlKicgZG9lc24ndCBhcHBlYXIgaW4gYG1vZGUtbGluZScuCiAgICAgICAgKHNldC1i dWZmZXItbW9kaWZpZWQtcCAoYW5kIG9sZC1tb2RpZmllZC1wCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkIGRpcmVkLXJlLW1hcmsgbmlsIHQp KSkpCiAgICAgICAgY291bnQpKSkKCgo7OyBSRVBMQUNFIE9SSUdJTkFMIGluIGBkaXJlZC1hdXgu ZWwnLgo7Owo7OyAxLiBBZGRlZCBvcHRpb25hbCBhcmcgSU5JVC1DT1VOVC4KOzsgMi4gQ2hhbmdl ZCBkb2MgdG8gc3BlYWsgb2YgcmVtb3ZpbmcsIG5vdCBraWxsaW5nLgo7OwooZGVmdW4gZGlyZWQt ZG8ta2lsbC1saW5lcyAoJm9wdGlvbmFsIGFyZyBmbXQgaW5pdC1jb3VudCkKICAiUmVtb3ZlIGFs bCBtYXJrZWQgbGluZXMsIG9yIHRoZSBuZXh0IEFSRyBsaW5lcy4KVGhlIGZpbGVzIG9yIGRpcmVj dG9yaWVzIG9uIHRob3NlIGxpbmVzIGFyZSBfbm90XyBkZWxldGVkLiAgT25seSB0aGUKRGlyZWQg bGlzdGluZyBpcyBhZmZlY3RlZC4gIFRvIHJlc3RvcmUgdGhlIHJlbW92YWxzLCB1c2UgYFxcW3Jl dmVydC1idWZmZXJdJy4KCldpdGggYSBudW1lcmljIHByZWZpeCBhcmcsIHJlbW92ZSB0aGF0IG1h bnkgbGluZXMgZ29pbmcgZm9yd2FyZCwKc3RhcnRpbmcgd2l0aCB0aGUgY3VycmVudCBsaW5lLiAg KEEgbmVnYXRpdmUgcHJlZml4IGFyZyByZW1vdmVzIGxpbmVzCmdvaW5nIGJhY2t3YXJkLikKCklm IHlvdSB1c2UgYSBwcmVmaXggYXJnIHRvIHJlbW92ZSB0aGUgbGluZSBmb3IgYSBzdWJkaXIgd2hv c2UgbGlzdGluZwp5b3UgaGF2ZSBpbnNlcnRlZCBpbnRvIHRoZSBEaXJlZCBidWZmZXIsIHRoZW4g dGhhdCBzdWJkaXIgbGlzdGluZyBpcwphbHNvIHJlbW92ZWQuCgpUbyByZW1vdmUgYSBzdWJkaXIg bGlzdGluZyBfd2l0aG91dF8gcmVtb3ZpbmcgdGhlIHN1YmRpcidzIGxpbmUgaW4gaXRzCnBhcmVu dCBsaXN0aW5nLCBnbyB0byB0aGUgaGVhZGVyIGxpbmUgb2YgdGhlIHN1YmRpciBsaXN0aW5nIGFu ZCB1c2UKdGhpcyBjb21tYW5kIHdpdGggYW55IHByZWZpeCBhcmcuCgpXaGVuIGNhbGxlZCBmcm9t IExpc3AsIG5vbi1uaWwgSU5JVC1DT1VOVCBpcyBhZGRlZCB0byB0aGUgbnVtYmVyIG9mCmxpbmVz IHJlbW92ZWQgYnkgdGhpcyBpbnZvY2F0aW9uLCBmb3IgdGhlIHJlcG9ydGluZyBtZXNzYWdlLiIK ICA7OyBSZXR1cm5zIGNvdW50IG9mIGtpbGxlZCBsaW5lcy4gIEZNVD0iIiBzdXBwcmVzc2VzIG1l c3NhZ2UuCiAgKGludGVyYWN0aXZlICJQIikKICAoaWYgYXJnCiAgICAgIChpZiAoZGlyZWQtZ2V0 LXN1YmRpcikgKGRpcmVkLWtpbGwtc3ViZGlyKSAoZGlyZWQta2lsbC1saW5lIGFyZykpCiAgICAo c2F2ZS1leGN1cnNpb24KICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgKGxldCAo KGNvdW50ICAgKG9yIGluaXQtY291bnQgIDApKQogICAgICAgICAgICAocmVnZXhwICAoZGlyZWQt bWFya2VyLXJlZ2V4cCkpCiAgICAgICAgICAgIGJ1ZmZlci1yZWFkLW9ubHkpCiAgICAgICAgKHdo aWxlIChhbmQgKG5vdCAoZW9icCkpICAocmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIG5pbCB0KSkK ICAgICAgICAgIChzZXRxIGNvdW50ICAoMSsgY291bnQpKQogICAgICAgICAgKGRlbGV0ZS1yZWdp b24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocHJvZ24gKGZvcndhcmQtbGluZSAxKSAocG9p bnQpKSkpCiAgICAgICAgKHVubGVzcyAoZXF1YWwgIiIgZm10KSAobWVzc2FnZSAob3IgZm10ICJL aWxsZWQgJWQgbGluZSVzLiIpIGNvdW50IChkaXJlZC1wbHVyYWwtcyBjb3VudCkpKQogICAgICAg IGNvdW50KSkpKQo= --_002_SA2PR10MB4474DF8E4F189BE0C875337AF3989SA2PR10MB4474namp_--