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#72705: 31.0.50; eglot--dumb-tryc Filters out too much Date: Wed, 21 Aug 2024 03:30:18 +0300 Message-ID: <0632f40f-98fd-4388-aba0-629a32d415eb@gutov.dev> References: <54dacc71-4395-431f-abc4-c60dc070cb03@gutov.dev> <0ff5f767-be87-4d64-964c-0a20fa776acf@gutov.dev> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------vDpKdcKfCe8K1U9PZwR4G8Nc" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27681"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 72705@debbugs.gnu.org To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Aug 21 02:31:40 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 1sgZGE-00073t-T6 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 21 Aug 2024 02:31:40 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sgZFy-0001gt-Tf; Tue, 20 Aug 2024 20:31:22 -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 1sgZFv-0001gW-0L for bug-gnu-emacs@gnu.org; Tue, 20 Aug 2024 20:31:19 -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 1sgZFu-0008Ra-Ml for bug-gnu-emacs@gnu.org; Tue, 20 Aug 2024 20:31:18 -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=C7JOcnaau5aSy68aB09dYTolDnLZJvEm3XqtL/bbg6Y=; b=UkbA1JZZmPK9BVIrbcYLnnhKtVxcdBTURvgIsKQzIYuAV24VqQRPSgZeT1Q8gsYu6j2A4glftdvQcEl6UQ3xWtiMpElkRqaYMfzJtNnrl154leeD+1Yeih3qliRhHgGh4xFDn8RX3daBloroOpVbXaODITk14R6lY1Z+boHnN4KEJ4eqJtRk+ZhWhmNMiAibaKlxMi5bUrLjYc9O5RGLrx3BsoG9ETQA+EPXSEvudHuOktBHg87ezXUNJTYeDnkZWJnJAnbMRt5i8xLpi9gBqUbYNeN4JI38detan7ajnCdiTR4gVDxfPqULjRxJq+1A+TQqCi/I0zR4fmVvai0/Zw==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sgZGc-00040j-1X for bug-gnu-emacs@gnu.org; Tue, 20 Aug 2024 20:32: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: Wed, 21 Aug 2024 00:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72705 X-GNU-PR-Package: emacs Original-Received: via spool by 72705-submit@debbugs.gnu.org id=B72705.172420027515341 (code B ref 72705); Wed, 21 Aug 2024 00:32:01 +0000 Original-Received: (at 72705) by debbugs.gnu.org; 21 Aug 2024 00:31:15 +0000 Original-Received: from localhost ([127.0.0.1]:34643 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sgZFr-0003zM-0Y for submit@debbugs.gnu.org; Tue, 20 Aug 2024 20:31:15 -0400 Original-Received: from fout4-smtp.messagingengine.com ([103.168.172.147]:52283) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sgZFo-0003z5-7q for 72705@debbugs.gnu.org; Tue, 20 Aug 2024 20:31:14 -0400 Original-Received: from phl-compute-05.internal (phl-compute-05.nyi.internal [10.202.2.45]) by mailfout.nyi.internal (Postfix) with ESMTP id 18C3E139006F; Tue, 20 Aug 2024 20:30:23 -0400 (EDT) Original-Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Tue, 20 Aug 2024 20:30:23 -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=fm2; t=1724200222; x=1724286622; bh=C7JOcnaau5 aSy68aB09dYTolDnLZJvEm3XqtL/bbg6Y=; b=E/XBsdwUDpe/jT10viJ/1dVnNH wXF0F6PVPxmPz/af6zVw8/mDRVNrcZnswL3l9HasVCpgZUrfDAkO8lBsScj49Zta OtSeD6XJDnHCC1BLxVxOCiviJTj0tCxo2XZuWLvPR225A/l1QeKa/F4Br/kkQVqV J3UPRxm7wg0Mxj2+Z0LN+nmB1yzt39GsAhzFprLUNP9nFgvnK98D/lXgr05qdsE2 SWdWLTdg25TykYJm5lVWL7dLf7kCQZ+kl5ZaJSgY+YH7z4B3TJqlYbKoFYFwarNC IgVfH86njNEUAEtpX8f744cUz6nchexx8+VA8/eg5KhrQ4dkNNqMcPZhomEw== 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= fm1; t=1724200222; x=1724286622; bh=C7JOcnaau5aSy68aB09dYTolDnLZ JvEm3XqtL/bbg6Y=; b=D8oW8OoEC2v/+/I42in6Upn8HkOqcTbVvxR1cDdOl5kR aW41b+i4u++DiZN2SU7/cQNzL+aXQm6rSChnpMugFdVM3rxLDMV43WPKX8Qini6m AayAR2G8nxPTZWJ1AndnT5EyPgeP3oI9kntUk+hTpNA4kx2DHQMGGO+ttA+fGc3D 60pQv/6tg1/zSl3wYxL5FZjI+6kuNXQXfMZbkYeFN9dWdtmWtdE+/vBX2MagK6Ay TjmIRWc0D4tQ1pCqUe33tRvPaoAIhgbyp1BfNvfjGHuxCgPnXT5x2hs9ZZC+OZVt 3cgbk8Kc+kDTALyVmA9x70KUJDb1stke8W5eylDyxw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddruddujedgfeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeen ucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvg hvqeenucggtffrrghtthgvrhhnpefhleektdfgfedttdeuteeijeevtdffgeekgfethedv vdevhfelleefieeuueehfeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecuvehluh hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehg uhhtohhvrdguvghvpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprh gtphhtthhopehjohgrohhtrghvohhrrgesghhmrghilhdrtghomhdprhgtphhtthhopeej vdejtdehseguvggssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 20 Aug 2024 20:30:20 -0400 (EDT) Content-Language: en-US In-Reply-To: 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:290474 Archived-At: This is a multi-part message in MIME format. --------------vDpKdcKfCe8K1U9PZwR4G8Nc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 20/08/2024 12:40, João Távora wrote: > On Tue, Aug 20, 2024 at 3:08 AM Dmitry Gutov wrote: > >> So far I've tested with gopls and clangd (when writing the new tests), >> typescript-language-server and rust-analyzer. > > That's pretty good. If you could add pylsp or pyright (basedpyright), > I'd feel even more confident. Installed pylsp with apt - the basic things I tested seem to work too. > I don't have time to spend examining these details, just the final > outcome is relevant: partial completions cannot be inserted, but > fragments of a completion can be completed to a fully formed > completion (eventually running exit-function then). And only fragments that prefix-match all completions as prefix. exit-function seems to function. >> The report that's referenced in the 3 commits your mentioned does seem >> to have regressed is https://github.com/joaotavora/eglot/issues/1339 >> not to the original behavior (exit-function still works), but C-M-i >> changes buffer text to >> >> v.call1234.1234567890 > > I don't have time to investigate right now, but indeed that issue there were > two consecutive fixes: the first one (which you say "still works") and a second > one which I eventually reverted because it fixes some things and broke > others. Now that I've looked at them a few more times - all 3 changes were in the completion table, whereas I'm altering the completion style here. And indeed what seems to be the crux of the previous improvement (working exit-function) stays around. > So is the regression you mention in relation to the current Eglot state or > to that intermediate state? In relation to the current state, but I think I've figured it out - see the new revision attached. So what I think what was happening, is since the style was returning nil when the input has a non-matching suffix, the 'emacs22' style came into play (style which only looks at the prefix) and expanded the input from "c" to "call". Anyway, the attached avoids the failover by returning non-nil in the last clause, if at least the prefix matches the table. That makes "C-M-i" keep the input at "v.c|1234" (with two completions: "match" and "call") - but selecting either of the completions using Company or the mouse, or M-RET, expands each into the corresponding snippet, which seems most optimal all-around. See the new test 'eglot-test-try-completion-inside-symbol' inside the patch. Wasn't sure whether to make it use 'completion-try-completion' or 'completion-at-point', but the former seems more explicit. --------------vDpKdcKfCe8K1U9PZwR4G8Nc Content-Type: text/x-patch; charset=UTF-8; name="eglot--dumb-tryc-more-checks-v2.diff" Content-Disposition: attachment; filename="eglot--dumb-tryc-more-checks-v2.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2VnbG90LmVsIGIvbGlzcC9wcm9nbW9kZXMv ZWdsb3QuZWwKaW5kZXggMzUzODc3ZjYwYzIuLjU5ZDljMzQ2NDI0IDEwMDY0NAotLS0gYS9s aXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbApA QCAtMzE0Miw4ICszMTQyLDE4IEBAIGVnbG90LS1kdW1iLWFsbGMKIChkZWZ1biBlZ2xvdC0t ZHVtYi10cnljIChwYXQgdGFibGUgcHJlZCBwb2ludCkKICAgKGxldCAoKHByb2JlIChmdW5j YWxsIHRhYmxlIHBhdCBwcmVkIG5pbCkpKQogICAgIChjb25kICgoZXEgcHJvYmUgdCkgdCkK LSAgICAgICAgICAocHJvYmUgKGNvbnMgcHJvYmUgKGxlbmd0aCBwcm9iZSkpKQotICAgICAg ICAgICh0IChjb25zIHBhdCBwb2ludCkpKSkpCisgICAgICAgICAgKHByb2JlCisgICAgICAg ICAgIChpZiAoYW5kIChub3QgKGVxdWFsIHByb2JlIHBhdCkpCisgICAgICAgICAgICAgICAg ICAgIChjbC1ldmVyeQorICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocykgKHN0cmlu Zy1wcmVmaXgtcCBwcm9iZSBzIGNvbXBsZXRpb24taWdub3JlLWNhc2UpKQorICAgICAgICAg ICAgICAgICAgICAgKGZ1bmNhbGwgdGFibGUgcGF0IHByZWQgdCkpKQorICAgICAgICAgICAg ICAgKGNvbnMgcHJvYmUgKGxlbmd0aCBwcm9iZSkpCisgICAgICAgICAgICAgKGNvbnMgcGF0 IHBvaW50KSkpCisgICAgICAgICAgKHQKKyAgICAgICAgICAgOzsgTWF0Y2ggaWdub3Jpbmcg c3VmZml4OiBpZiB0aGVyZSBhcmUgYW55IGNvbXBsZXRpb25zIGZvcgorICAgICAgICAgICA7 OyB0aGUgY3VycmVudCBwcmVmaXggYXQgbGVhc3QsIGtlZXAgdGhlIGN1cnJlbnQgaW5wdXQu CisgICAgICAgICAgIChhbmQgKGZ1bmNhbGwgdGFibGUgKHN1YnN0cmluZyBwYXQgMCBwb2lu dCkgcHJlZCB0KQorICAgICAgICAgICAgICAgIChjb25zIHBhdCBwb2ludCkpKSkpKQogCiAo YWRkLXRvLWxpc3QgJ2NvbXBsZXRpb24tY2F0ZWdvcnktZGVmYXVsdHMgJyhlZ2xvdC1jYXBm IChzdHlsZXMgZWdsb3QtLWR1bWItZmxleCkpKQogKGFkZC10by1saXN0ICdjb21wbGV0aW9u LXN0eWxlcy1hbGlzdCAnKGVnbG90LS1kdW1iLWZsZXggZWdsb3QtLWR1bWItdHJ5YyBlZ2xv dC0tZHVtYi1hbGxjKSkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvZWdsb3Qt dGVzdHMuZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL2VnbG90LXRlc3RzLmVsCmluZGV4IDUz NGM0N2IyNjQ2Li40Zjc0NWIyNmI0MiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rl cy9lZ2xvdC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL2VnbG90LXRlc3Rz LmVsCkBAIC02MDAsNiArNjAwLDIwIEBAIGVnbG90LXRlc3QtYmFzaWMtY29tcGxldGlvbnMK ICAgICAgIChtZXNzYWdlIChidWZmZXItc3RyaW5nKSkKICAgICAgIChzaG91bGQgKGxvb2tp bmctYmFjayAiZnByaW50Zi4/IikpKSkpCiAKKyhlcnQtZGVmdGVzdCBlZ2xvdC10ZXN0LWNv bW1vbi1wcmVmaXgtY29tcGxldGlvbiAoKQorICAiVGVzdCBjb21wbGV0aW9uIGFwcGVuZGlu ZyB0aGUgY29tbW9uIHByZWZpeC4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5k ICJjbGFuZ2QiKSkKKyAgKGVnbG90LS13aXRoLWZpeHR1cmUKKyAgICAgIGAoKCJwcm9qZWN0 IiAuICgoImNvaXNvLmMiIC4KKyAgICAgICAgICAgICAgICAgICAgICAgLChjb25jYXQgImlu dCBmb29fYmFyOyBpbnQgZm9vX2Jhcl9iYXo7IgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiaW50IG1haW4oKSB7Zm9vIikpKSkpCisgICAgKHdpdGgtY3VycmVudC1idWZm ZXIKKyAgICAgICAgKGVnbG90LS1maW5kLWZpbGUtbm9zZWxlY3QgInByb2plY3QvY29pc28u YyIpCisgICAgICAoZWdsb3QtLXdhaXQtZm9yLWNsYW5nZCkKKyAgICAgIChnb3RvLWNoYXIg KHBvaW50LW1heCkpCisgICAgICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgICAgIChzaG91 bGQgKGxvb2tpbmctYmFjayAie2Zvb19iYXIiKSkpKSkKKwogKGVydC1kZWZ0ZXN0IGVnbG90 LXRlc3Qtbm9uLXVuaXF1ZS1jb21wbGV0aW9ucyAoKQogICAiVGVzdCBjb21wbGV0aW9uIHJl c3VsdGluZyBpbiAnQ29tcGxldGUsIGJ1dCBub3QgdW5pcXVlJy4iCiAgIChza2lwLXVubGVz cyAoZXhlY3V0YWJsZS1maW5kICJjbGFuZ2QiKSkKQEAgLTYxOSw2ICs2MzMsNTUgQEAgZWds b3QtdGVzdC1ub24tdW5pcXVlLWNvbXBsZXRpb25zCiAgICAgICAgIChmb3J3YXJkLWxpbmUg LTEpCiAgICAgICAgIChzaG91bGQgKGxvb2tpbmctYXQgIkNvbXBsZXRlLCBidXQgbm90IHVu aXF1ZSIpKSkpKSkpCiAKKyhlcnQtZGVmdGVzdCBlZ2xvdC10ZXN0LXN0b3AtY29tcGxldGlv bi1vbi1ub25wcmVmaXggKCkKKyAgIlRlc3QgY29tcGxldGlvbiBhbHNvIHJlc3VsdGluZyBp biAnQ29tcGxldGUsIGJ1dCBub3QgdW5pcXVlJy4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0 YWJsZS1maW5kICJjbGFuZ2QiKSkKKyAgKGVnbG90LS13aXRoLWZpeHR1cmUKKyAgICAgIGAo KCJwcm9qZWN0IiAuICgoImNvaXNvLmMiIC4KKyAgICAgICAgICAgICAgICAgICAgICAgLChj b25jYXQgImludCBmb290OyBpbnQgZm9vdGVyOyBpbnQgZm9fb2JhcjsiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJpbnQgbWFpbigpIHtmb28iKSkpKSkKKyAgICAod2l0 aC1jdXJyZW50LWJ1ZmZlcgorICAgICAgICAoZWdsb3QtLWZpbmQtZmlsZS1ub3NlbGVjdCAi cHJvamVjdC9jb2lzby5jIikKKyAgICAgIChlZ2xvdC0td2FpdC1mb3ItY2xhbmdkKQorICAg ICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKKyAgICAgIChjb21wbGV0aW9uLWF0LXBvaW50 KQorICAgICAgKHNob3VsZCAobG9va2luZy1iYWNrICJmb28iKSkpKSkKKworKGVydC1kZWZ0 ZXN0IGVnbG90LXRlc3QtdHJ5LWNvbXBsZXRpb24tbm9tYXRjaCAoKQorICAiVGVzdCBjb21w bGV0aW9uIHRhYmxlIHdpdGggbm9uLW1hdGNoaW5nIGlucHV0LCByZXR1cm5pbmcgbmlsLiIK KyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgImNsYW5nZCIpKQorICAoZWdsb3Qt LXdpdGgtZml4dHVyZQorICAgICAgYCgoInByb2plY3QiIC4gKCgiY29pc28uYyIgLgorICAg ICAgICAgICAgICAgICAgICAgICAsKGNvbmNhdCAiaW50IG1haW4oKSB7YWJjIikpKSkpCisg ICAgKHdpdGgtY3VycmVudC1idWZmZXIKKyAgICAgICAgKGVnbG90LS1maW5kLWZpbGUtbm9z ZWxlY3QgInByb2plY3QvY29pc28uYyIpCisgICAgICAoZWdsb3QtLXdhaXQtZm9yLWNsYW5n ZCkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCisgICAgICAoc2hvdWxkCisgICAg ICAgKG51bGwKKyAgICAgICAgKGNvbXBsZXRpb24tdHJ5LWNvbXBsZXRpb24KKyAgICAgICAg ICJhYmMiCisgICAgICAgICAobnRoIDIgKGVnbG90LWNvbXBsZXRpb24tYXQtcG9pbnQpKSBu aWwgMykpKSkpKQorCisoZXJ0LWRlZnRlc3QgZWdsb3QtdGVzdC10cnktY29tcGxldGlvbi1p bnNpZGUtc3ltYm9sICgpCisgICJUZXN0IGNvbXBsZXRpb24gdGFibGUgaW5zaWRlIHN5bWJv bCwgd2l0aCBvbmx5IHByZWZpeCBtYXRjaGluZy4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0 YWJsZS1maW5kICJjbGFuZ2QiKSkKKyAgKGVnbG90LS13aXRoLWZpeHR1cmUKKyAgICAgIGAo KCJwcm9qZWN0IiAuICgoImNvaXNvLmMiIC4KKyAgICAgICAgICAgICAgICAgICAgICAgLChj b25jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaW50IGZvb2JhcjsiCisgICAgICAg ICAgICAgICAgICAgICAgICAgImludCBtYWluKCkge2ZvbzEyMyIpKSkpKQorICAgICh3aXRo LWN1cnJlbnQtYnVmZmVyCisgICAgICAgIChlZ2xvdC0tZmluZC1maWxlLW5vc2VsZWN0ICJw cm9qZWN0L2NvaXNvLmMiKQorICAgICAgKGVnbG90LS13YWl0LWZvci1jbGFuZ2QpCisgICAg ICAoZ290by1jaGFyICgtIChwb2ludC1tYXgpIDMpKQorICAgICAgKHNob3VsZAorICAgICAg IChlcXVhbAorICAgICAgICAnKCJmb28xMjMiIC4gMykKKyAgICAgICAgKGNvbXBsZXRpb24t dHJ5LWNvbXBsZXRpb24KKyAgICAgICAgICJmb28xMjMiCisgICAgICAgICAobnRoIDIgKGVn bG90LWNvbXBsZXRpb24tYXQtcG9pbnQpKSBuaWwgMykpKSkpKQorCiAoZXJ0LWRlZnRlc3Qg ZWdsb3QtdGVzdC1iYXNpYy14cmVmICgpCiAgICJUZXN0IGJhc2ljIHhyZWYgZnVuY3Rpb25h bGl0eSBpbiBhIGNsYW5nZCBMU1AuIgogICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmlu ZCAiY2xhbmdkIikpCg== --------------vDpKdcKfCe8K1U9PZwR4G8Nc--