From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#62731: 29.0.60; diff-apply-hunk doesn't work for creating new files Date: Fri, 4 Oct 2024 04:14:32 +0300 Message-ID: <235ffe61-d6af-4edb-9367-58f1b685b038@gutov.dev> References: <87jzyln9g0.fsf@catern.com> <86ldz70z4i.fsf@gnu.org> <36712130-53f5-4515-a887-d8df3175b271@gutov.dev> <86zfnmz40b.fsf@gnu.org> <92fc2d1f-492d-4d42-914f-b6a4cd712306@gutov.dev> <86wmipzqis.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------f1GkjnJbizruzEeWoDfX8kRi" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7687"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: sbaugh@catern.com, 62731@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Oct 04 03:15:22 2024 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 1swWue-0001oM-R4 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 04 Oct 2024 03:15:21 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1swWuM-00008q-BD; Thu, 03 Oct 2024 21:15:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1swWuK-00007x-C1 for bug-gnu-emacs@gnu.org; Thu, 03 Oct 2024 21:15:00 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1swWuJ-0006KB-So for bug-gnu-emacs@gnu.org; Thu, 03 Oct 2024 21:15:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=l5/Gw4reLyw+kLi48vyqFfu9gOhuQJdwiZwIv2TIgsQ=; b=XYLuJ4a6LF1+7JgSmmUxSL8s7c0ROS07724V18oWPDBuAMzjFY9KQoMSF5SHT7W4FM5j3yTQElvP2dp8GsrKgDTV2enc7zVfghvAauxKMgUbDVvr/iM5T9dNBNt8ataowpfMVsJWQST++2t0xH2epSmO1oworLJzc7v/9yHtxmXP/IED0YX8UtAGTKz388fa3hnGqMKGOp3q/DYWCcRsxQlxkdH+uFJB9kHUsNyFhIRf9yBSdDQORSl9SwL/5vrENWr4A3+IVywbSUkCteZ3s0WeL2N9O5axOlfcouGHSlkmPBpFMYleSzsVT64mRPEMl6yL8s36s79/JedD0yiKNw==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1swWuM-0000GO-5y for bug-gnu-emacs@gnu.org; Thu, 03 Oct 2024 21:15:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 04 Oct 2024 01:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62731 X-GNU-PR-Package: emacs Original-Received: via spool by 62731-submit@debbugs.gnu.org id=B62731.1728004488967 (code B ref 62731); Fri, 04 Oct 2024 01:15:02 +0000 Original-Received: (at 62731) by debbugs.gnu.org; 4 Oct 2024 01:14:48 +0000 Original-Received: from localhost ([127.0.0.1]:34144 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1swWu7-0000FX-CI for submit@debbugs.gnu.org; Thu, 03 Oct 2024 21:14:47 -0400 Original-Received: from fhigh-a6-smtp.messagingengine.com ([103.168.172.157]:35553) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1swWu5-0000FI-15 for 62731@debbugs.gnu.org; Thu, 03 Oct 2024 21:14:45 -0400 Original-Received: from phl-compute-06.internal (phl-compute-06.phl.internal [10.202.2.46]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4962A1140225; Thu, 3 Oct 2024 21:14:37 -0400 (EDT) Original-Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-06.internal (MEProxy); Thu, 03 Oct 2024 21:14:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1728004477; x=1728090877; bh=l5/Gw4reLy w+kLi48vyqFfu9gOhuQJdwiZwIv2TIgsQ=; b=Hn6zgfr9iW5iqbCS3SHuTcPg6W CQmI5Mpkbv67WRmthgRkFUDaGTAe2W5VnfXvDEup6bFn+0lK+Nd4jhTZfAcALGxK PtPHqsT9CcD13AoIUWzawF9a/bu9NfMFhl7cDl4vsFTW8axwMtlWkNlaJdAxgTAa ZCJBuWmMP8LdZCKYHcF25LGTc/N4fybCbxhjbQJjPpLPPGUcEJ8liKC+6PiqwXZw K1mAMXIXw8wpI0NA4TadMfF+HIweYgMRfw0TZWHnvBEMycoASRRKO7BIZRXI2Ekj Zul2/8cwM6RaXggRlN+VWOMjA09BTbvi1iAOYdxJdd5TO53LJydQKcol9s9A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1728004477; x=1728090877; bh=l5/Gw4reLyw+kLi48vyqFfu9gOhu QJdwiZwIv2TIgsQ=; b=IpjtHnfErNU3rpuw3k6H+D3RdGP3yCM+M8WGG7DXwJWi bk47KyAoQG16hgH2ABZ1FAv+QU3jSBiKQ80bPYILnjaVrgh0Xo0M/5auu6qKK/8U qmLpBCubZkV/aOXCUaXv0dKmUqrDDmRVpNJTf5UzWd0Bj6MRx1Cv3K7JvsydcCUm UKz/MOludRr4Ti8qmUkKNezksGp6lyTlYb6pbgSROk8hz8dslGbtzJaZVO1flJjb OMLvRYr2cYRKATb98IPHJdfpGwYo1T4gUg32rZT4TqYdlHdxpEeJ4O1vMbRdHGZ2 9W2oWnPg2hC0oVFvKEi/ap9oTzbjEnZQ9rDrfCaR3w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddvvddggeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeen ucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvg hvqeenucggtffrrghtthgvrhhnpeehleefudekudduveekieelgfeiffdvkefhkeeljeeu jeegueekveffkeejjeevheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohep fedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpd hrtghpthhtohepshgsrghughhhsegtrghtvghrnhdrtghomhdprhgtphhtthhopeeivdej feduseguvggssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 3 Oct 2024 21:14:34 -0400 (EDT) Content-Language: en-US In-Reply-To: <86wmipzqis.fsf@gnu.org> 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:292937 Archived-At: This is a multi-part message in MIME format. --------------f1GkjnJbizruzEeWoDfX8kRi Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 03/10/2024 08:47, Eli Zaretskii wrote: >>> If Hg doesn't prepend fake leading directories, we don't need to be >>> bothered by Hg. >> >> It does. A fuller example, with deletion: This was file creation, btw. Just to keep the things clear. >> diff -r d045d1125783 -r 9396bae6ff0d CLOBBER.new >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/CLOBBER.new Fri Dec 15 20:37:14 2023 +0200 >> @@ -0,0 +1,56 @@ > > OK, then does the presence of two -r options indicate Hg? Or is that > not guaranteed, either? No guarantee I suppose, but I'm not aware of any others, yet. And apparently 'hg diff --git' can also output diff --git a/a b/b But that seems fine for our check. >> I'm concerned the user is going to wonder whether anything happened at >> all, and checking is a non-trivial action. But if you think this is >> fine, I guess it's something to try. > > Not sure I understand the problem. The user instructed us to apply > diffs, one of which deletes a file. Why should we hesitate about > deleting that file? It's a destructive operation, not always easy to undo. The current edits might be saved to disk but not checked in, for example. I suppose using a prompt could be enough, though. >>>> Deleting files is something that one can do manually, though, so solving >>>> this seems lower priority. >>> >>> When you apply a large set of diffs in which one file is deleted, >>> there's no easy way of knowing you should deleted that file. >> >> In the current version of code you will be asked midway through a file >> (or right away, when using diff-apply-hunk) to specify a file name, >> defaulting to /dev/null, and after you press C-g after seeing the odd >> prompt the hunk won't be applied. So it's hard to miss, at least. > > Yes, but this is buggy behavior: there's no need to ask for a file > name in this case. Emacs is just confused by the part of the diffs > which delete a file because the code doesn't take that into account. All right, the attached seems to support both creation and deletion, including applying hunks in reverse direction. Things got trickier but not by a lot. --------------f1GkjnJbizruzEeWoDfX8kRi Content-Type: text/x-patch; charset=UTF-8; name="diff-apply-hunk-create-or-delete.diff" Content-Disposition: attachment; filename="diff-apply-hunk-create-or-delete.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvdmMvZGlmZi1tb2RlLmVsIGIvbGlzcC92Yy9kaWZmLW1vZGUu ZWwKaW5kZXggZGY1NWNhMmFkODAuLjRlMjI3NTAxODgzIDEwMDY0NAotLS0gYS9saXNwL3Zj L2RpZmYtbW9kZS5lbAorKysgYi9saXNwL3ZjL2RpZmYtbW9kZS5lbApAQCAtMTA5MSwxMyAr MTA5MSwyNCBAQCBkaWZmLWZpbmQtZmlsZS1uYW1lCiAJICAgICAgKGRpZmYtZmluZC1maWxl LW5hbWUgb2xkIG5vcHJvbXB0IChtYXRjaC1zdHJpbmcgMSkpKQogICAgICAgICAgOzsgaWYg YWxsIGVsc2UgZmFpbHMsIGFzayB0aGUgdXNlcgogICAgICAgICAgKHVubGVzcyBub3Byb21w dAotICAgICAgICAgICAobGV0ICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAob3IgKGNhciBm cykgIiIpKSkpCisgICAgICAgICAgIChsZXQgKChmaWxlIChvciAoY2FyIGZzKSAiIikpCisg ICAgICAgICAgICAgICAgIChjcmVhdGlvbiAoZXF1YWwgbnVsbC1kZXZpY2UKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIChkaWZmLWh1bmstZmlsZS1uYW1lcyAo bm90IG9sZCkpKSkpKQorICAgICAgICAgICAgICh3aGVuIChhbmQgKG1lbXEgZGlmZi1idWZm ZXItdHlwZSAnKGdpdCBoZykpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1h dGNoICIvIiBmaWxlKSkKKyAgICAgICAgICAgICAgIDs7IFN0cmlwIHRoZSBkc3QgcHJlZml4 IChsaWtlIGIvKSBpZiBkaWZmIGlzIGZyb20gR2l0L0hnLgorICAgICAgICAgICAgICAgKHNl dHEgZmlsZSAoc3Vic3RyaW5nIGZpbGUgKG1hdGNoLWVuZCAwKSkpKQorICAgICAgICAgICAg IChzZXRxIGZpbGUgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkpCiAJICAgICAoc2V0cSBmaWxl CiAJCSAgIChyZWFkLWZpbGUtbmFtZSAoZm9ybWF0ICJVc2UgZmlsZSAlczogIiBmaWxlKQot CQkJCSAgIChmaWxlLW5hbWUtZGlyZWN0b3J5IGZpbGUpIGZpbGUgdAorCQkJCSAgIChmaWxl LW5hbWUtZGlyZWN0b3J5IGZpbGUpIGZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOzsgQWxsb3cgbm9uLW1hdGNoaW5nIGZvciBjcmVhdGlvbi4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCBjcmVhdGlvbikKIAkJCQkgICAoZmls ZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxlKSkpCi0gICAgICAgICAgICAgKHNldHEtbG9jYWwg ZGlmZi1yZW1lbWJlcmVkLWZpbGVzLWFsaXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnMgKGNvbnMgZnMgZmlsZSkgZGlmZi1yZW1lbWJlcmVkLWZpbGVzLWFsaXN0KSkKKyAg ICAgICAgICAgICAod2hlbiAob3IgKG5vdCBjcmVhdGlvbikgKGZpbGUtZXhpc3RzLXAgZmls ZSkpCisgICAgICAgICAgICAgICA7OyBPbmx5IHJlbWVtYmVyIGZpbGVzIHRoYXQgZXhpc3Qu IFVzZXIgbWlnaHQgaGF2ZSBtaXN0eXBlZC4KKyAgICAgICAgICAgICAgIChzZXRxLWxvY2Fs IGRpZmYtcmVtZW1iZXJlZC1maWxlcy1hbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNvbnMgKGNvbnMgZnMgZmlsZSkgZGlmZi1yZW1lbWJlcmVkLWZpbGVzLWFsaXN0KSkp CiAgICAgICAgICAgICAgZmlsZSkpKSkpKSkKIAogCkBAIC0xNjQ3LDcgKzE2NTgsOSBAQCBk aWZmLXNldHVwLWJ1ZmZlci10eXBlCiAgICAgKHNldHEtbG9jYWwgZGlmZi1idWZmZXItdHlw ZQogICAgICAgICAgICAgICAgIChpZiAocmUtc2VhcmNoLWZvcndhcmQgIl5kaWZmIC0tZ2l0 IiBuaWwgdCkKICAgICAgICAgICAgICAgICAgICAgJ2dpdAotICAgICAgICAgICAgICAgICAg bmlsKSkpCisgICAgICAgICAgICAgICAgICAoaWYgKHJlLXNlYXJjaC1mb3J3YXJkICJeZGlm ZiAtci4qLXIiIG5pbCB0KQorICAgICAgICAgICAgICAgICAgICAgICdoZworICAgICAgICAg ICAgICAgICAgICBuaWwpKSkpCiAgICh3aGVuIChlcSBkaWZmLWJ1ZmZlci10eXBlICdnaXQp CiAgICAgKHNldHEgZGlmZi1vdXRsaW5lLXJlZ2V4cAogICAgICAgICAgIChjb25jYXQgIlxc KF5kaWZmIC0tZ2l0LipcXHwiIGRpZmYtaHVuay1oZWFkZXItcmUgIlxcKSIpKSkKQEAgLTE5 NTcsNyArMTk3MCw3IEBAIGRpZmYtZmluZC1zb3VyY2UtbG9jYXRpb24KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGlmZi1jb250ZXh0LW1pZC1odW5rLWhlYWRlci1yZSBu aWwgdCkKIAkJCSAoZXJyb3IgIkNhbid0IGZpbmQgdGhlIGh1bmsgc2VwYXJhdG9yIikpCiAJ CSAgICAgICAobWF0Y2gtc3RyaW5nIDEpKSkpKQotCSAgIChmaWxlIChvciAoZGlmZi1maW5k LWZpbGUtbmFtZSBvdGhlciBub3Byb21wdCkKKwkgICAoZmlsZSAob3IgKGRpZmYtZmluZC1m aWxlLW5hbWUgKHhvciBvdGhlciByZXZlcnNlKSBub3Byb21wdCkKICAgICAgICAgICAgICAg ICAgICAgIChlcnJvciAiQ2FuJ3QgZmluZCB0aGUgZmlsZSIpKSkKIAkgICAocmV2aXNpb24g KGFuZCBvdGhlciBkaWZmLXZjLWJhY2tlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlmIHJldmVyc2UgKG50aCAxIGRpZmYtdmMtcmV2aXNpb25zKQpAQCAtMjAyMCw3ICsyMDMz LDExIEBAIGRpZmYtYXBwbHktaHVuawogV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgUkVWRVJT RSB0aGUgaHVuay4iCiAgIChpbnRlcmFjdGl2ZSAiUCIpCiAgIChkaWZmLWJlZ2lubmluZy1v Zi1odW5rIHQpCi0gIChwY2FzZS1sZXQgKChgKCxidWYgLGxpbmUtb2Zmc2V0ICxwb3MgLG9s ZCAsbmV3ICxzd2l0Y2hlZCkKKyAgKHBjYXNlLWxldCogKDs7IERvIG5vdCBhY2NlcHQgQlVG RkVSLlJFViBidWZmZXJzIGFzIHNvdXJjZSBsb2NhdGlvbi4KKyAgICAgICAgICAgICAgIChk aWZmLXZjLWJhY2tlbmQgbmlsKQorICAgICAgICAgICAgICAgOzsgV2hlbiB3ZSBkZXRlY3Qg ZGVsZXRpb24sIHdlIHdpbGwgdXNlIHRoZSBvbGQgZmlsZSBuYW1lLgorICAgICAgICAgICAg ICAgKGRlbGV0aW9uIChlcXVhbCBudWxsLWRldmljZSAoY2FyIChkaWZmLWh1bmstZmlsZS1u YW1lcyByZXZlcnNlKSkpKQorICAgICAgICAgICAgICAgKGAoLGJ1ZiAsbGluZS1vZmZzZXQg LHBvcyAsb2xkICxuZXcgLHN3aXRjaGVkKQogICAgICAgICAgICAgICAgOzsgU29tZXRpbWVz IHdlJ2QgbGlrZSB0byBoYXZlIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3I6IGlmCiAgICAgICAg ICAgICAgICA7OyBSRVZFUlNFIGdvIHRvIHRoZSBuZXcgZmlsZSwgb3RoZXJ3aXNlIGdvIHRv IHRoZSBvbGQuCiAgICAgICAgICAgICAgICA7OyBCdXQgdGhhdCBtZWFucyB0aGF0IGJ5IGRl ZmF1bHQgd2UgdXNlIHRoZSBvbGQgZmlsZSwgd2hpY2ggaXMKQEAgLTIwMzAsNyArMjA0Nyw3 IEBAIGRpZmYtYXBwbHktaHVuawogICAgICAgICAgICAgICAgOzsgVE9ETzogbWFrZSBpdCBw b3NzaWJsZSB0byBhc2sgZXhwbGljaXRseSBmb3IgdGhpcyBiZWhhdmlvci4KICAgICAgICAg ICAgICAgIDs7CiAgICAgICAgICAgICAgICA7OyBUaGlzIGlzIGR1cGxpY2F0ZWQgaW4gZGlm Zi10ZXN0LWh1bmsuCi0gICAgICAgICAgICAgICAoZGlmZi1maW5kLXNvdXJjZS1sb2NhdGlv biBuaWwgcmV2ZXJzZSkpKQorICAgICAgICAgICAgICAgKGRpZmYtZmluZC1zb3VyY2UtbG9j YXRpb24gZGVsZXRpb24gcmV2ZXJzZSkpKQogICAgIChjb25kCiAgICAgICgobnVsbCBsaW5l LW9mZnNldCkKICAgICAgICh1c2VyLWVycm9yICJDYW4ndCBmaW5kIHRoZSB0ZXh0IHRvIHBh dGNoIikpCkBAIC0yMDU2LDYgKzIwNzMsMTAgQEAgZGlmZi1hcHBseS1odW5rCiAJCSAgICAg ICAiSHVuayBoYXNuJ3QgYmVlbiBhcHBsaWVkIHlldDsgYXBwbHkgaXQgbm93PyAiCiAJCSAg ICAgIkh1bmsgaGFzIGFscmVhZHkgYmVlbiBhcHBsaWVkOyB1bmRvIGl0PyAiKSkpKSkKICAg ICAgIChtZXNzYWdlICIoTm90aGluZyBkb25lKSIpKQorICAgICAoKGFuZCBkZWxldGlvbiAo bm90IHN3aXRjaGVkKSkKKyAgICAgICh3aGVuICh5LW9yLW4tcCAoZm9ybWF0LW1lc3NhZ2Ug IkRlbGV0ZSBmaWxlIGAlcyc/IiAoYnVmZmVyLWZpbGUtbmFtZSBidWYpKSkKKyAgICAgICAg KGRlbGV0ZS1maWxlIChidWZmZXItZmlsZS1uYW1lIGJ1ZikgZGVsZXRlLWJ5LW1vdmluZy10 by10cmFzaCkKKyAgICAgICAgKGtpbGwtYnVmZmVyIGJ1ZikpKQogICAgICAodAogICAgICAg OzsgQXBwbHkgdGhlIGh1bmsKICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1Zgo= --------------f1GkjnJbizruzEeWoDfX8kRi--