GNU bug report logs - #61436
Emacs Freezing With Java Files

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Hank Greenburg <hank.greenburg@HIDDEN>; Done: Alan Mackenzie <acm@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 17 Apr 2024 13:22:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 17 09:22:40 2024
Received: from localhost ([127.0.0.1]:46077 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rx5FH-0001DN-3e
	for submit <at> debbugs.gnu.org; Wed, 17 Apr 2024 09:22:40 -0400
Received: from mail.muc.de ([193.149.48.3]:40515)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <acm@HIDDEN>) id 1rx5FD-0001C8-E0
 for 61436 <at> debbugs.gnu.org; Wed, 17 Apr 2024 09:22:37 -0400
Received: (qmail 81841 invoked by uid 3782); 17 Apr 2024 15:22:16 +0200
Received: from muc.de (pd953ac81.dip0.t-ipconnect.de [217.83.172.129]) (using
 STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP;
 Wed, 17 Apr 2024 15:22:16 +0200
Received: (qmail 7831 invoked by uid 1000); 17 Apr 2024 13:22:16 -0000
Date: Wed, 17 Apr 2024 13:22:16 +0000
To: 61436 <at> debbugs.gnu.org
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <Zh_NCNXE7bkgwezF@ACM>
References: <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
 <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM>
 <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
 <ZS1DIGWbZCTGKkXQ@ACM> <878r7voc6k.fsf@HIDDEN>
 <ZTUubFvcv4LMfIW3@ACM> <87il6yzid4.fsf@HIDDEN>
 <CA+OMD9hgM_NX7GmeW8ph5fBW6SkFGogf4W4JOO5o62H3X15WHw@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CA+OMD9hgM_NX7GmeW8ph5fBW6SkFGogf4W4JOO5o62H3X15WHw@HIDDEN>
X-Submission-Agent: TMDA/1.3.x (Ph3nix)
From: Alan Mackenzie <acm@HIDDEN>
X-Primary-Address: acm@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hello, Bob.

On Tue, Apr 16, 2024 at 21:35:59 -0400, Robert Weiner wrote:
>    Hi Alan:
>    I just re-read this whole thread and realized you resolved the problem
>    for the Java defun-prompt-regexp but not the C++
>    defun-prompt-regexp in Hyperbole's hui-select.el:L404 (probably were
>    just tired after all of that).
>    Today, someone else reported that the C++ regexp was hanging their
>    Emacs.  Do you think you could pick this back up and rework the C++
>    regexp as you did the Java one?  It would be a big help; otherwise, I
>    think we'll just have to disable that functionality in Hyperbole.
>    Best regards,
>    Bob
>    On Sun, Oct 22, 2023 at 1:18â¯PM Mats Lidell
>    <[1]mats.lidell@HIDDEN> wrote:

Yes, I'll happily finish off that C++ regexp.  I made considerable
progress with it back in October, getting smething basically working but
with some rough edges.  One problem is that the regexp was ~1600
characters long.  I don't know if this might make the program slow -
possibly not.

I've found the .el file I was working in, and located my notes from
October.  It's going to take longer than a day or two, but hopefully
less than a week or two.

[ .... ]

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.
bug unarchived. Request was from Alan Mackenzie <acm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
bug archived. Request was from Debbugs Internal Request <help-debbugs@HIDDEN> to internal_control <at> debbugs.gnu.org. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 22 Oct 2023 17:18:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 22 13:18:37 2023
Received: from localhost ([127.0.0.1]:48011 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1quc61-0002QQ-K4
	for submit <at> debbugs.gnu.org; Sun, 22 Oct 2023 13:18:37 -0400
Received: from smtp.egensajt.se ([194.68.80.251]:33880)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mats.lidell@HIDDEN>) id 1quc5y-0002QC-RM
 for 61436-done <at> debbugs.gnu.org; Sun, 22 Oct 2023 13:18:36 -0400
Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 (Authenticated sender: mats.lidell@HIDDEN)
 by smtp.egensajt.se (Postfix) with ESMTPSA id 03F69204A9;
 Sun, 22 Oct 2023 19:17:59 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim;
 t=1697995080; bh=orW3T8uCW6vh1OL2r+ixy5Pz3zgpx3WzP7t3m59JD+g=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=txKdQUs6ua85+/Fwnhf5eg8+NPeQFLAWCxsWjoHUKBirN4FpyJsr+aHmxzfgdl47w
 HQppjSrB7DIWm2TsMHeQRVqeYBNUIQP5K3eFZszfxbkreOYjquVLu07AByu3grBb71
 m+5TNo8UtT7WU3vcPAqVIKQyv/70FUAYre7Igxvk=
From: Mats Lidell <mats.lidell@HIDDEN>
To: Alan Mackenzie <acm@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
In-Reply-To: <ZTUubFvcv4LMfIW3@ACM> (Alan Mackenzie's message of "Sun, 22 Oct
 2023 14:15:08 +0000")
References: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
 <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM>
 <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
 <ZS1DIGWbZCTGKkXQ@ACM> <878r7voc6k.fsf@HIDDEN>
 <ZTUubFvcv4LMfIW3@ACM>
Date: Sun, 22 Oct 2023 19:17:59 +0200
Message-ID: <87il6yzid4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 61436-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Robert Weiner <rswgnu@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Alan,

> Alan Mackenzie writes:
> Can I ask you to delete that buggy version and try the following
> instead?  Thanks!

Looks good to me. With the regexp and using Emacs 30.0.50 I moved around,
jumping from function to function back and forth. I tested that with a few
java files including the one submitted with the initial bug report. During the
testing I did not experience any noticeable freeze.

%% Mats




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 22 Oct 2023 14:15:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 22 10:15:52 2023
Received: from localhost ([127.0.0.1]:47883 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1quZFA-0004nU-Bp
	for submit <at> debbugs.gnu.org; Sun, 22 Oct 2023 10:15:52 -0400
Received: from mail.muc.de ([193.149.48.3]:43817)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <acm@HIDDEN>) id 1quZF4-0004n6-Gv
 for 61436-done <at> debbugs.gnu.org; Sun, 22 Oct 2023 10:15:50 -0400
Received: (qmail 67533 invoked by uid 3782); 22 Oct 2023 16:15:11 +0200
Received: from acm.muc.de (p4fe15a7d.dip0.t-ipconnect.de [79.225.90.125])
 (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP;
 Sun, 22 Oct 2023 16:15:10 +0200
Received: (qmail 21494 invoked by uid 1000); 22 Oct 2023 14:15:08 -0000
Date: Sun, 22 Oct 2023 14:15:08 +0000
To: Mats Lidell <mats.lidell@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <ZTUubFvcv4LMfIW3@ACM>
References: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
 <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM>
 <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
 <ZS1DIGWbZCTGKkXQ@ACM> <878r7voc6k.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <878r7voc6k.fsf@HIDDEN>
X-Submission-Agent: TMDA/1.3.x (Ph3nix)
From: Alan Mackenzie <acm@HIDDEN>
X-Primary-Address: acm@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 61436-done <at> debbugs.gnu.org, acm@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 Robert Weiner <rswgnu@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hello, Mats.

On Sun, Oct 22, 2023 at 00:14:43 +0200, Mats Lidell wrote:
> Hi Alan,

> Sorry for coming back late to this issue but today I tried to use the
> suggested regexp and got into some problems doing that.

Sorry about that.

> > Alan Mackenzie writes:
> > Here's the regexp.  Would people please try it out and let me know how
> > well it works.  
> >
> > (defconst java-defun-prompt-regexp
> >   (let ((space* "[ \t\n\r\f]*")
> >         (space+ "[ \t\n\r\f]+")
> >         (modifier*
> >          (concat "\\(?:"
> >                  (regexp-opt '("abstract" "const" "default" "final" "native"
> >                                "private" "protected" "public" "static"
> >                                "strictfp" "synchronized" "threadsafe"
> >                                "transient" "volatile")
> >                              'words)    ; Compatible with XEmacs
> >                  space+ "\\)*"))
> >         (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*")
> >         (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*")
> >         (paren-exp "([^);{}]*)")
> >         (generic-exp "<[^(){};]*>"))
> >     (concat "^[ \t]*"
> >             modifier*
> >             "\\(?:" generic-exp space* "\\)?"
> >             ids-with-dot-\[\] space+                ; first part of type
> >             "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type.
> >             "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*"    ; defun name
> >                 "\\|" ids-with-dot*
> >             "\\)" space*
> >             paren-exp
> >             "\\(?:" space* "]\\)*"      ; What's this for?
> >             "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s*
> >                   "\\(?:," space* ids-with-dot-\[\]s* "\\)*"
> >             "\\)?"
> >             space*)))

> Can there be some typos in there or missing lines? I get a compiler warning
> for space+ being used in the let, should it be a let*? ids-with-dots is
> reported as not used. Can it be meant to be ids-with-dot*?
> ids-with-dot-\[\]s* is undefined!?

No, the regexp just wasn't tested right.  I made the mistake in
"testing" it of having all the things like space+ already defined as
defconsts.  So I failed to pick up the let which should have been let*
and giving all the uses of the bound variables their actual names.  :-(

Can I ask you to delete that buggy version and try the following
instead?  Thanks!

(defconst java-defun-prompt-regexp
  (let* ((space* "[ \t\n\r\f]*")
         (space+ "[ \t\n\r\f]+")
         (modifier*
          (concat "\\(?:"
                  (regexp-opt '("abstract" "const" "default" "final" "native"
                                "private" "protected" "public" "static"
                                "strictfp" "synchronized" "threadsafe"
                                "transient" "volatile")
                              'words)   ; Compatible with XEmacs
                  space+ "\\)*"))
         (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*")
         (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*")
         (paren-exp "([^);{}]*)")
         (generic-exp "<[^(){};]*>"))
    (concat "^[ \t]*"
            modifier*
            "\\(?:" generic-exp space* "\\)?"
            ids-with-dot-\[\] space+                ; first part of type
            "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type.
            "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*"    ; defun name
                "\\|" ids-with-dots
            "\\)" space*
            paren-exp
            "\\(?:" space* "]\\)*"      ; What's this for?
            "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]
                  "\\(?:," space* ids-with-dot-\[\] "\\)*"
            "\\)?"
            space*)))

> Yours
> -- 
> %% Mats

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 21 Oct 2023 22:15:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 21 18:15:27 2023
Received: from localhost ([127.0.0.1]:45203 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1quKFf-0000uk-TS
	for submit <at> debbugs.gnu.org; Sat, 21 Oct 2023 18:15:27 -0400
Received: from smtp.egensajt.se ([194.68.80.251]:54842)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mats.lidell@HIDDEN>) id 1quKFa-0000uU-S9
 for 61436-done <at> debbugs.gnu.org; Sat, 21 Oct 2023 18:15:23 -0400
Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 (Authenticated sender: mats.lidell@HIDDEN)
 by smtp.egensajt.se (Postfix) with ESMTPSA id 5B3F420259;
 Sun, 22 Oct 2023 00:14:44 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim;
 t=1697926484; bh=HfHDRKdFE+db0zZzLusjMaZlndYw5PxDBvEg0BqeTic=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=T38DEBMhnJFoiOqDEMWz57L8vucPK3Xtjt8LQUhthi3KjQ++r1qlHFXcUBpPQIuyt
 8GS8zvpJpBpiZS6YIH4u2kso6zoO48vfzrwSblCV87qoeHvnoLqsAWq0QYIJi9jA+H
 W4ZDCZa/oJuopSqSTBBqpni/XsltGdX98UwbwoiA=
From: Mats Lidell <mats.lidell@HIDDEN>
To: Alan Mackenzie <acm@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
In-Reply-To: <ZS1DIGWbZCTGKkXQ@ACM> (Alan Mackenzie's message of "Mon, 16 Oct
 2023 14:05:20 +0000")
References: <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
 <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM>
 <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
 <ZS1DIGWbZCTGKkXQ@ACM>
Date: Sun, 22 Oct 2023 00:14:43 +0200
Message-ID: <878r7voc6k.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 61436-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Robert Weiner <rswgnu@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Alan,

Sorry for coming back late to this issue but today I tried to use the
suggested regexp and got into some problems doing that.

> Alan Mackenzie writes:
> Here's the regexp.  Would people please try it out and let me know how
> well it works.  
>
> (defconst java-defun-prompt-regexp
>   (let ((space* "[ \t\n\r\f]*")
>         (space+ "[ \t\n\r\f]+")
>         (modifier*
>          (concat "\\(?:"
>                  (regexp-opt '("abstract" "const" "default" "final" "native"
>                                "private" "protected" "public" "static"
>                                "strictfp" "synchronized" "threadsafe"
>                                "transient" "volatile")
>                              'words)    ; Compatible with XEmacs
>                  space+ "\\)*"))
>         (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*")
>         (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*")
>         (paren-exp "([^);{}]*)")
>         (generic-exp "<[^(){};]*>"))
>     (concat "^[ \t]*"
>             modifier*
>             "\\(?:" generic-exp space* "\\)?"
>             ids-with-dot-\[\] space+                ; first part of type
>             "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type.
>             "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*"    ; defun name
>                 "\\|" ids-with-dot*
>             "\\)" space*
>             paren-exp
>             "\\(?:" space* "]\\)*"      ; What's this for?
>             "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s*
>                   "\\(?:," space* ids-with-dot-\[\]s* "\\)*"
>             "\\)?"
>             space*)))

Can there be some typos in there or missing lines? I get a compiler warning
for space+ being used in the let, should it be a let*? ids-with-dots is
reported as not used. Can it be meant to be ids-with-dot*?
ids-with-dot-\[\]s* is undefined!?

Yours
-- 
%% Mats




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 16 Oct 2023 19:11:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 16 15:11:05 2023
Received: from localhost ([127.0.0.1]:58029 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qsSzW-0007Xi-L9
	for submit <at> debbugs.gnu.org; Mon, 16 Oct 2023 15:11:05 -0400
Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:40199)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rswgnu@HIDDEN>) id 1qsSzQ-0007X7-TB
 for 61436-done <at> debbugs.gnu.org; Mon, 16 Oct 2023 15:11:00 -0400
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4053e6e8ca7so16443005e9.1
 for <61436-done <at> debbugs.gnu.org>; Mon, 16 Oct 2023 12:10:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1697483426; x=1698088226; darn=debbugs.gnu.org;
 h=to:in-reply-to:cc:references:message-id:date:subject:mime-version
 :from:content-transfer-encoding:from:to:cc:subject:date:message-id
 :reply-to; bh=Truq3eY3pji/kkBQ1pXY+2p+Pji1iKi1U6Yjkd0lMIo=;
 b=cKhIcPWTOhT+6Bd4duY/VgQZeCR/zpTE2hZz9A8ji4rnTnc2rYZ8RZbs/qld0SUoBL
 RaVaBO+5d9spPYef2K+Sp2JFhy6WVFbvpmuQzwBXMCF3XKhIyFYoamLg7iTrJWtQcBbI
 GFfM+qeKL9Jh73Kih3ro4e96bfbQTNc//D8ffM7Ci/si5p3HPvCFqQpfe7A4TgKU7Udj
 LmM2Ab+Wdib9wsVFgOHfyz2rHNpEuutxQeISw+K5sdD3I7xdgMCm04bfAKEoJkpiujqG
 qw8XaPDEBiD2jdtPF+7bm3QVAxWUi/Aos9NTjeYDy36R3h4/NLzJi578pccQEPcxeEvU
 qSzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1697483426; x=1698088226;
 h=to:in-reply-to:cc:references:message-id:date:subject:mime-version
 :from:content-transfer-encoding:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=Truq3eY3pji/kkBQ1pXY+2p+Pji1iKi1U6Yjkd0lMIo=;
 b=tZQXRK+06N0dUs5nu6GxCMlPI6lo4BbrvE+vJNQxSzu8AU6YQK90cprnfskyxWsxd3
 +EbNqVkuaXdSaAsocGoUyzsaKCkQjbtXbYJpTLFjM1LhuG2Xw4tnzsnjhfZdaz1pKBJ1
 UIw0EWtRU69RW/b/N9ggeOzOK9/nPCbC+Nx9uDPmpMa6sxPKWvOx0DaRz4uvGXUc+1IV
 vTj5+iaTLZCjbqXiXcctlK49WwDXE9A3nQ5GqoBYaD7Ia+hXtoEoCEF9X50UPCiESxTm
 bSz0Y9cgRXYMbeRsSyikViShIMYdTn5ugH90akhQsvc9f4JBpCEgzsUs3PRM9vZRrRKM
 cHdw==
X-Gm-Message-State: AOJu0Yx9cfLNp88hjMsbzcRQrLGlhSL1wu0EbEcf8YhWZr+FK2xuAVAQ
 J14Uw08wULUh1il85//9Zqs=
X-Google-Smtp-Source: AGHT+IGfyySBTg97UWKt+ArPJYr+Y4J1YHeWdnHpv6GWd4cFx4QoXELHic1aaPHldYkNbOXdyl0zDA==
X-Received: by 2002:adf:b305:0:b0:32d:b9c5:82fd with SMTP id
 j5-20020adfb305000000b0032db9c582fdmr211825wrd.7.1697483425531; 
 Mon, 16 Oct 2023 12:10:25 -0700 (PDT)
Received: from smtpclient.apple ([94.4.55.6]) by smtp.gmail.com with ESMTPSA id
 u12-20020adff88c000000b0032d9a1f2ec3sm8968044wrp.27.2023.10.16.12.10.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Oct 2023 12:10:25 -0700 (PDT)
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Robert Weiner <rswgnu@HIDDEN>
Mime-Version: 1.0 (1.0)
Subject: Re: bug#61436: Emacs Freezing With Java Files
Date: Mon, 16 Oct 2023 20:10:14 +0100
Message-Id: <787A7578-55E3-4FED-8FA8-1DD0EA47FC65@HIDDEN>
References: <ZS1DIGWbZCTGKkXQ@ACM>
In-Reply-To: <ZS1DIGWbZCTGKkXQ@ACM>
To: Alan Mackenzie <acm@HIDDEN>
X-Mailer: iPhone Mail (20H30)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, 61436-done <at> debbugs.gnu.org,
 Eli Zaretskii <eliz@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Nice job, Alan.  Thanks, look forward to trying it out.

-- Bob

> On Oct 16, 2023, at 3:05 PM, Alan Mackenzie <acm@HIDDEN> wrote:
>=20
> =EF=BB=BFHello, Bob.
>=20
>> On Sun, Oct 15, 2023 at 06:20:15 -0400, Robert Weiner wrote:
>> Hi Alan:
>=20
>> Would be great if you can improve those two regexps.  The only
>> requirement is that they be able to recognize all defuns in the two
>> languages as best a regexp can, so that the whole defun can be
>> selected based on finding the opening brace regardless of coding
>> style.
>=20
> So far, I've only looked at the Java regexp.  It had some serious
> deficiencies, notably:
> (i) It used "\\s-" (space syntax) a lot.  This fails to mach \n, which in
> Java mode has comment-end syntax.
> (ii) The bit for the parenthesis expression was in an optional part of
> the regexp with the result that it would match "almost anything" rather
> than a defun start.
>=20
> In the following regexp these faults are fixed.  Additionally, I've
> included more modifiers (things like private, volatile) which Java seems
> to have gathered over the years.  I've also attempted to match generic
> functions.  I don't know how well this will work out.
>=20
> Here's the regexp.  Would people please try it out and let me know how
> well it works. =20
>=20
> (defconst java-defun-prompt-regexp
>  (let ((space* "[ \t\n\r\f]*")
>        (space+ "[ \t\n\r\f]+")
>        (modifier*
>         (concat "\\(?:"
>                 (regexp-opt '("abstract" "const" "default" "final" "native=
"
>                               "private" "protected" "public" "static"
>                               "strictfp" "synchronized" "threadsafe"
>                               "transient" "volatile")
>                             'words)    ; Compatible with XEmacs
>                 space+ "\\)*"))
>        (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*")
>        (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*")
>        (paren-exp "([^);{}]*)")
>        (generic-exp "<[^(){};]*>"))
>    (concat "^[ \t]*"
>            modifier*
>            "\\(?:" generic-exp space* "\\)?"
>            ids-with-dot-\[\] space+                ; first part of type
>            "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part o=
f type.
>            "\\(?:[_a-zA-Z][^][ \t:;.,{}()=3D<>]*"    ; defun name
>                "\\|" ids-with-dot*
>            "\\)" space*
>            paren-exp
>            "\\(?:" space* "]\\)*"      ; What's this for?
>            "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s*
>                  "\\(?:," space* ids-with-dot-\[\]s* "\\)*"
>            "\\)?"
>            space*)))
>=20
>> Thanks.
>=20
>> -- Bob
>=20
>>> On Oct 14, 2023, at 8:41 PM, Alan Mackenzie <acm@HIDDEN> wrote:
>=20
> [ .... ]
>=20
>>> Mats, I'm willing to work on that regular expression, and also the one
>>> for C++.  As I mentioned earlier, I've got some tools which work on
>>> regexps, in particular pp-regexp, which prints a regexp more readably on=

>>> several lines, and fix-re, which rewrites a regexp when it is
>>> ill-conditioned in certain ways.
>=20
>>> I foresee reverse engineering the regexps into more readable forms built=

>>> up by concatenating basic blocks.  For example for the java regexp I
>>> would define
>=20
>>>   (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*")
>=20
>>> , and use this id in a largish concat form.
>=20
>>> I'm also willing to share pp-regexp and fix-re with you(r team), if that=

>>> might help, on the understanding that neither is of release quality.
>=20
> --=20
> Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 16 Oct 2023 14:06:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 16 10:06:01 2023
Received: from localhost ([127.0.0.1]:57445 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qsOEK-0002y9-PJ
	for submit <at> debbugs.gnu.org; Mon, 16 Oct 2023 10:06:01 -0400
Received: from mail.muc.de ([193.149.48.3]:14536)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <acm@HIDDEN>) id 1qsOEE-0002xm-Q1
 for 61436-done <at> debbugs.gnu.org; Mon, 16 Oct 2023 10:05:58 -0400
Received: (qmail 80511 invoked by uid 3782); 16 Oct 2023 16:05:23 +0200
Received: from acm.muc.de (pd953a1c7.dip0.t-ipconnect.de [217.83.161.199])
 (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP;
 Mon, 16 Oct 2023 16:05:22 +0200
Received: (qmail 8699 invoked by uid 1000); 16 Oct 2023 14:05:20 -0000
Date: Mon, 16 Oct 2023 14:05:20 +0000
To: Robert Weiner <rswgnu@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <ZS1DIGWbZCTGKkXQ@ACM>
References: <87il7ew5wx.fsf@HIDDEN> <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
 <8734yew8yr.fsf@HIDDEN> <ZSru9aiO614QDrR5@ACM>
 <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
X-Submission-Agent: TMDA/1.3.x (Ph3nix)
From: Alan Mackenzie <acm@HIDDEN>
X-Primary-Address: acm@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, 61436-done <at> debbugs.gnu.org, acm@HIDDEN,
 Eli Zaretskii <eliz@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hello, Bob.

On Sun, Oct 15, 2023 at 06:20:15 -0400, Robert Weiner wrote:
> Hi Alan:

> Would be great if you can improve those two regexps.  The only
> requirement is that they be able to recognize all defuns in the two
> languages as best a regexp can, so that the whole defun can be
> selected based on finding the opening brace regardless of coding
> style.

So far, I've only looked at the Java regexp.  It had some serious
deficiencies, notably:
(i) It used "\\s-" (space syntax) a lot.  This fails to mach \n, which in
Java mode has comment-end syntax.
(ii) The bit for the parenthesis expression was in an optional part of
the regexp with the result that it would match "almost anything" rather
than a defun start.

In the following regexp these faults are fixed.  Additionally, I've
included more modifiers (things like private, volatile) which Java seems
to have gathered over the years.  I've also attempted to match generic
functions.  I don't know how well this will work out.

Here's the regexp.  Would people please try it out and let me know how
well it works.  

(defconst java-defun-prompt-regexp
  (let ((space* "[ \t\n\r\f]*")
        (space+ "[ \t\n\r\f]+")
        (modifier*
         (concat "\\(?:"
                 (regexp-opt '("abstract" "const" "default" "final" "native"
                               "private" "protected" "public" "static"
                               "strictfp" "synchronized" "threadsafe"
                               "transient" "volatile")
                             'words)    ; Compatible with XEmacs
                 space+ "\\)*"))
        (ids-with-dots "[_$a-zA-Z][_$.a-zA-Z0-9]*")
        (ids-with-dot-\[\] "[[_$a-zA-Z][][_$.a-zA-Z0-9]*")
        (paren-exp "([^);{}]*)")
        (generic-exp "<[^(){};]*>"))
    (concat "^[ \t]*"
            modifier*
            "\\(?:" generic-exp space* "\\)?"
            ids-with-dot-\[\] space+                ; first part of type
            "\\(?:" ids-with-dot-\[\] space+ "\\)?" ; optional second part of type.
            "\\(?:[_a-zA-Z][^][ \t:;.,{}()=<>]*"    ; defun name
                "\\|" ids-with-dot*
            "\\)" space*
            paren-exp
            "\\(?:" space* "]\\)*"      ; What's this for?
            "\\(?:" space* "\\<throws\\>" space* ids-with-dot-\[\]s*
                  "\\(?:," space* ids-with-dot-\[\]s* "\\)*"
            "\\)?"
            space*)))

> Thanks.

> -- Bob

> > On Oct 14, 2023, at 8:41 PM, Alan Mackenzie <acm@HIDDEN> wrote:

[ .... ]

> > Mats, I'm willing to work on that regular expression, and also the one
> > for C++.  As I mentioned earlier, I've got some tools which work on
> > regexps, in particular pp-regexp, which prints a regexp more readably on
> > several lines, and fix-re, which rewrites a regexp when it is
> > ill-conditioned in certain ways.

> > I foresee reverse engineering the regexps into more readable forms built
> > up by concatenating basic blocks.  For example for the java regexp I
> > would define

> >    (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*")

> > , and use this id in a largish concat form.

> > I'm also willing to share pp-regexp and fix-re with you(r team), if that
> > might help, on the understanding that neither is of release quality.

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 15 Oct 2023 10:21:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 15 06:21:17 2023
Received: from localhost ([127.0.0.1]:51266 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qryFI-0005zp-JK
	for submit <at> debbugs.gnu.org; Sun, 15 Oct 2023 06:21:16 -0400
Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]:40181)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rswgnu@HIDDEN>) id 1qryFE-0005zb-IX
 for 61436-done <at> debbugs.gnu.org; Sun, 15 Oct 2023 06:21:15 -0400
Received: by mail-ot1-x331.google.com with SMTP id
 46e09a7af769-6bf106fb6a0so770651a34.0
 for <61436-done <at> debbugs.gnu.org>; Sun, 15 Oct 2023 03:20:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1697365242; x=1697970042; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=DelfcIMYUymT/6tEdEh8PmsQsVh2bREoDMjsnJkezko=;
 b=EwPsDKonSJS8iR68sIhOz/NEGn7A2NI9Flc8OBLaM6ppZFUe7Xqv7iopNgX791ZUu0
 Mk+kkHS9XkmWIyxJQ0BIy7rYxu38ka/V00gf3FQnyxc8WdrzC9t5bVeByUUYliygT7fy
 AC3nKgmWiO796cOnazc21vAdYAcC0JiJOz0egZ+NsYJTcZtnf1yX7oXt/kQB3oDGQDlH
 Msxc8FZsifMfx+NDT39N1UegG+zKgBKOs9H8XM+uMsPr/czjvnWCA4tPb/TWI1UBhaAu
 Dr9W02Dp9rwqm/MRkdao++hhFAHbXt2weJmT5/I1FE/AtAkayizyVZR0w3bcP1UWlzmv
 XHWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1697365242; x=1697970042;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=DelfcIMYUymT/6tEdEh8PmsQsVh2bREoDMjsnJkezko=;
 b=FTD74SFz+Peac716XbAQ8M/kduFEWo81Fyb397fD8OnGzSx+teW2XNLUUfifWnP9F9
 DqXkH4waEXjdZfgOOX9koBkbJoKN1i+2Mp2igduPvTZNauBjtmT80fMXFd11ZbaCcg3S
 fjlXhR3wu4W8qmb8cB2Bo5X8m6KfmOCs5zIwPUcgxB/3gYbw3qGVWEcfAAdh5DtVz7R3
 lilDYSu93eA7NiCCX5LilrTggfZ6FIwpMq47mZQK/CgCRvUEvMkWrSBKNPTYSLUMxpmv
 H+qqU5OE0Y+gQ3M85DDndyTyPMNiJs0IJXDeO5MdaFC4vwIIITNze4sXV2mhSRepQ6tj
 lLMQ==
X-Gm-Message-State: AOJu0YxpPj4gYn8FA+e9sVw92YdCYQvZhHccCXCIrZz05qrTlB4lDvsW
 jaWoaW5gVGUDoR1o2G0Mf4Hg4N8eG8zbFa7gpvY=
X-Google-Smtp-Source: AGHT+IGaepYLYIA5gLwa8zoN2dSUpyrR+R/CN5tQBPFAw8eVPqrsnp7OngJ6iq/R0yuGZilGEbC/5O9BGcZYo+u0P0o=
X-Received: by 2002:a4a:b588:0:b0:578:c2af:45b5 with SMTP id
 t8-20020a4ab588000000b00578c2af45b5mr28948807ooo.0.1697365242602; Sun, 15 Oct
 2023 03:20:42 -0700 (PDT)
MIME-Version: 1.0
References: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN>
 <ZSk7FS-pS2Euz1aA@ACM> <8734yew8yr.fsf@HIDDEN>
 <ZSru9aiO614QDrR5@ACM>
In-Reply-To: <ZSru9aiO614QDrR5@ACM>
From: Robert Weiner <rswgnu@HIDDEN>
Date: Sun, 15 Oct 2023 06:20:15 -0400
Message-ID: <CA+OMD9iMzSxj36xHOw993oo+YcmenUwR8dgzsf_jWUgwjAbHDg@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
To: Alan Mackenzie <acm@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, 61436-done <at> debbugs.gnu.org,
 Eli Zaretskii <eliz@HIDDEN>, Jens Schmidt <jschmidt4gnu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Alan:

Would be great if you can improve those two regexps.  The only
requirement is that they be able to recognize all defuns in the two
languages as best a regexp can, so that the whole defun can be
selected based on finding the opening brace regardless of coding
style.

Thanks.

-- Bob

> On Oct 14, 2023, at 8:41 PM, Alan Mackenzie <acm@HIDDEN> wrote:
>
> =EF=BB=BFHello, Jens and Mats.

>
>> On Fri, Oct 13, 2023 at 22:42:04 +0200, Jens Schmidt wrote:
>> Hi Alan,
>
>> Alan Mackenzie <acm@HIDDEN> writes:
>
>>> To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that
>>> it only stops at a debug-prompt-regexp position when it also found a {.
>>> Otherwise it will keep looping until it finds a better position or BOB.
>
>> Thanks.
>
>>> Then please confirm that the bug is indeed fixed.
>
>> For the fun of it I tried Hank's initial testcase as well, which is a
>> bit less straight-forward to set up.  The freezes are indeed gone with
>> your patch.
>
> Thanks for the testing.  Seeing as how both of you confirm the original
> bug is fixed with the patch, I'm closing it with this post.
>
>> But I noticed that which-function-mode, when rapidly moving through
>> the file, cannot always determine the current function name, then
>> displaying "[n/a]" in the mode line.
>
>> And indeed, when executing the simplified test case
>
>>  ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java
>
>> and then immediately hitting C-M-a, point jumps to the beginning of the
>> preceeding catch clause (point=3D5779 of 18142) instead of BOD.
>
> I can't reproduce this, even when setting defun-prompt-regexp to the
> original large regexp from hui-select.el.
>
>> This behavior is again tied to the `defun-prompt-regexp' used by
>> Hyperbole - without that regexp C-M-a jumps to the real BOD.
>
> Mats, I'm willing to work on that regular expression, and also the one
> for C++.  As I mentioned earlier, I've got some tools which work on
> regexps, in particular pp-regexp, which prints a regexp more readably on
> several lines, and fix-re, which rewrites a regexp when it is
> ill-conditioned in certain ways.
>
> I foresee reverse engineering the regexps into more readable forms built
> up by concatenating basic blocks.  For example for the java regexp I
> would define
>
>    (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*")
>
> , and use this id in a largish concat form.
>
> I'm also willing to share pp-regexp and fix-re with you(r team), if that
> might help, on the understanding that neither is of release quality.
>
> --
> Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436-done <at> debbugs.gnu.org:


Received: (at 61436-done) by debbugs.gnu.org; 14 Oct 2023 19:42:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 14 15:42:24 2023
Received: from localhost ([127.0.0.1]:50581 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qrkWl-0007qT-MM
	for submit <at> debbugs.gnu.org; Sat, 14 Oct 2023 15:42:24 -0400
Received: from mail.muc.de ([193.149.48.3]:50126)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <acm@HIDDEN>) id 1qrkWh-0007qE-Q8
 for 61436-done <at> debbugs.gnu.org; Sat, 14 Oct 2023 15:42:22 -0400
Received: (qmail 5221 invoked by uid 3782); 14 Oct 2023 21:41:50 +0200
Received: from acm.muc.de (pd953a921.dip0.t-ipconnect.de [217.83.169.33])
 (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP;
 Sat, 14 Oct 2023 21:41:48 +0200
Received: (qmail 11201 invoked by uid 1000); 14 Oct 2023 19:41:41 -0000
Date: Sat, 14 Oct 2023 19:41:41 +0000
To: Jens Schmidt <jschmidt4gnu@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <ZSru9aiO614QDrR5@ACM>
References: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
 <8734yew8yr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <8734yew8yr.fsf@HIDDEN>
X-Submission-Agent: TMDA/1.3.x (Ph3nix)
From: Alan Mackenzie <acm@HIDDEN>
X-Primary-Address: acm@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436-done
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 61436-done <at> debbugs.gnu.org, acm@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 rswgnu@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hello, Jens and Mats.

On Fri, Oct 13, 2023 at 22:42:04 +0200, Jens Schmidt wrote:
> Hi Alan,

> Alan Mackenzie <acm@HIDDEN> writes:

> > To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that
> > it only stops at a debug-prompt-regexp position when it also found a {.
> > Otherwise it will keep looping until it finds a better position or BOB.

> Thanks.

> > Then please confirm that the bug is indeed fixed.

> For the fun of it I tried Hank's initial testcase as well, which is a
> bit less straight-forward to set up.  The freezes are indeed gone with
> your patch.

Thanks for the testing.  Seeing as how both of you confirm the original
bug is fixed with the patch, I'm closing it with this post.

> But I noticed that which-function-mode, when rapidly moving through
> the file, cannot always determine the current function name, then
> displaying "[n/a]" in the mode line.

> And indeed, when executing the simplified test case

>   ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java

> and then immediately hitting C-M-a, point jumps to the beginning of the
> preceeding catch clause (point=5779 of 18142) instead of BOD.

I can't reproduce this, even when setting defun-prompt-regexp to the
original large regexp from hui-select.el.

> This behavior is again tied to the `defun-prompt-regexp' used by
> Hyperbole - without that regexp C-M-a jumps to the real BOD.

Mats, I'm willing to work on that regular expression, and also the one
for C++.  As I mentioned earlier, I've got some tools which work on
regexps, in particular pp-regexp, which prints a regexp more readably on
several lines, and fix-re, which rewrites a regexp when it is
ill-conditioned in certain ways.

I foresee reverse engineering the regexps into more readable forms built
up by concatenating basic blocks.  For example for the java regexp I
would define

    (defconst id "[a-zA-Z][][_$.a-zA-Z0-9]*")

, and use this id in a largish concat form.

I'm also willing to share pp-regexp and fix-re with you(r team), if that
might help, on the understanding that neither is of release quality.

-- 
Alan Mackenzie (Nuremberg, Germany).




Notification sent to Hank Greenburg <hank.greenburg@HIDDEN>:
bug acknowledged by developer. Full text available.
Reply sent to Alan Mackenzie <acm@HIDDEN>:
You have taken responsibility. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 13 Oct 2023 20:43:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 13 16:43:05 2023
Received: from localhost ([127.0.0.1]:47483 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qrOzx-0005hd-9Z
	for submit <at> debbugs.gnu.org; Fri, 13 Oct 2023 16:43:05 -0400
Received: from mr3.vodafonemail.de ([145.253.228.163]:46592)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jschmidt4gnu@HIDDEN>) id 1qrOzs-0005h3-1b
 for 61436 <at> debbugs.gnu.org; Fri, 13 Oct 2023 16:43:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de;
 s=vfde-mb-mr2-23sep; t=1697229751;
 bh=FA6YQSQcX6SQUkQ6xxj+yjCRvPeiyzRxMuiLO6lN/88=;
 h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent:
 Content-Type:From;
 b=CH09edxamF760elNvYdF1U3JEZR89YG+NdAVaxudBMDCJ/+QKwquv6K2lktntR6po
 6txoN0IqQ8n4xou7RoAlbASdf5jtjGhXSi3E2nd6qHR3oUpIxrzwPoUVWy2/Hyueay
 jRwL5YuJZ1UkOixyKltJ3LbAFXN5PxNSDfUSmBOU=
Received: from smtp.vodafone.de (unknown [10.0.0.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by mr3.vodafonemail.de (Postfix) with ESMTPS id 4S6djg2gPjz1yhl;
 Fri, 13 Oct 2023 20:42:31 +0000 (UTC)
Received: from sappc2 (port-92-194-124-224.dynamic.as20676.net
 [92.194.124.224])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (No client certificate requested)
 by smtp.vodafone.de (Postfix) with ESMTPSA id 4S6djD5B6czMks9;
 Fri, 13 Oct 2023 20:42:05 +0000 (UTC)
From: Jens Schmidt <jschmidt4gnu@HIDDEN>
To: Alan Mackenzie <acm@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
Date: Fri, 13 Oct 2023 22:42:04 +0200
In-Reply-To: <ZSk7FS-pS2Euz1aA@ACM> (Alan Mackenzie's message of "Fri, 13 Oct
 2023 12:41:57 +0000")
Message-ID: <8734yew8yr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-purgate-type: clean
X-purgate: clean
X-purgate-size: 1056
X-purgate-ID: 155817::1697229747-55FF9E6D-37EA2CAC/0/0
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Alan,

Alan Mackenzie <acm@HIDDEN> writes:

> To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that
> it only stops at a debug-prompt-regexp position when it also found a {.
> Otherwise it will keep looping until it finds a better position or BOB.

Thanks.

> Then please confirm that the bug is
> indeed fixed.

For the fun of it I tried Hank's initial testcase as well, which is a
bit less straight-forward to set up.  The freezes are indeed gone with
your patch.  But I noticed that which-function-mode, when rapidly moving
through the file, cannot always determine the current function name,
then displaying "[n/a]" in the mode line.

And indeed, when executing the simplified test case

  ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java

and then immediately hitting C-M-a, point jumps to the beginning of the
preceeding catch clause (point=5779 of 18142) instead of BOD.

This behavior is again tied to the `defun-prompt-regexp' used by
Hyperbole - without that regexp C-M-a jumps to the real BOD.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 13 Oct 2023 18:03:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 13 14:03:17 2023
Received: from localhost ([127.0.0.1]:47389 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qrMVI-0000Ui-Sj
	for submit <at> debbugs.gnu.org; Fri, 13 Oct 2023 14:03:17 -0400
Received: from smtp.egensajt.se ([194.68.80.251]:54484)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mats.lidell@HIDDEN>) id 1qrMVD-0000UO-LQ
 for 61436 <at> debbugs.gnu.org; Fri, 13 Oct 2023 14:03:15 -0400
Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 (Authenticated sender: mats.lidell@HIDDEN)
 by smtp.egensajt.se (Postfix) with ESMTPSA id D90B32014C;
 Fri, 13 Oct 2023 20:02:41 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim;
 t=1697220162; bh=tvmbngYH7Zq9sVCLla6nl6fMHAnWNzM/mRqY/ncYPG4=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=tVB2S26WBnS2wRbLZDL1NMtzvI+3efXc78B5WdM8SzzK7/M/eQEbYfS9S/J7Dvyf6
 WurhUPpeuXj4XHal1J2fJ7BPY6C0yg44CEaZEcFyRkEteMWjzsoXkVA42YhF6YV8C0
 AlwPzHXzahrAabAPR+D1r/fR+fBnuSMqwlh68jT0=
From: Mats Lidell <mats.lidell@HIDDEN>
To: Alan Mackenzie <acm@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
In-Reply-To: <ZSk7FS-pS2Euz1aA@ACM> (Alan Mackenzie's message of "Fri, 13 Oct
 2023 12:41:57 +0000")
References: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN> <ZSk7FS-pS2Euz1aA@ACM>
Date: Fri, 13 Oct 2023 20:02:40 +0200
Message-ID: <87cyxi764f.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN,
 Jens Schmidt <jschmidt4gnu@HIDDEN>, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Alan,

> Alan Mackenzie writes:
> Would all concerned please apply the attached patch to the Emacs master
> branch, directory lisp/progmodes.  Then please byte compile CC Mode in
> full (a macro has been changed), and try the result on your real Java
> code.  (If anybody wants any help applying the patch or byte compiling,
> feel free to send me private mail.)  Then please confirm that the bug is
> indeed fixed.  Thanks!

I have verified that there is no freeze with the patch applied for the test
case with the P1.java file. Latest master as of today with native byte
compilation.  (Commit = baf778c7caa) Without the patch the freeze is there. So
is looking good. :-)

Yours
-- 
%% Mats




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 13 Oct 2023 12:42:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 13 08:42:34 2023
Received: from localhost ([127.0.0.1]:45444 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qrHUv-0003hn-US
	for submit <at> debbugs.gnu.org; Fri, 13 Oct 2023 08:42:34 -0400
Received: from mail.muc.de ([193.149.48.3]:51784)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <acm@HIDDEN>) id 1qrHUr-0003hU-9L
 for 61436 <at> debbugs.gnu.org; Fri, 13 Oct 2023 08:42:32 -0400
Received: (qmail 7041 invoked by uid 3782); 13 Oct 2023 14:42:00 +0200
Received: from acm.muc.de (pd953a199.dip0.t-ipconnect.de [217.83.161.153])
 (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP;
 Fri, 13 Oct 2023 14:41:58 +0200
Received: (qmail 3694 invoked by uid 1000); 13 Oct 2023 12:41:57 -0000
Date: Fri, 13 Oct 2023 12:41:57 +0000
To: Jens Schmidt <jschmidt4gnu@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <ZSk7FS-pS2Euz1aA@ACM>
References: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
 <875y3bbokx.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="Hf/FvbKl43qLgJz6"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <875y3bbokx.fsf@HIDDEN>
X-Submission-Agent: TMDA/1.3.x (Ph3nix)
From: Alan Mackenzie <acm@HIDDEN>
X-Primary-Address: acm@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--Hf/FvbKl43qLgJz6
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Hello, Jens.

On Thu, Oct 12, 2023 at 21:58:06 +0200, Jens Schmidt wrote:
> Hi Alan,

> Alan Mackenzie <acm@HIDDEN> writes:

[ .... ]

> >> That always freezes Emacs (29 and master) even before it has a chance to
> >> display P1.java.  The freeze happens in function
> >> `c-get-fallback-scan-pos', where the while loop inf-loops.

Yes.

> > c-get-fallback-scan-pos tries to move to the beginning of a function.
> > This probably involves defun-prompt-regexp when it is non-nil.  :-(

> Otherwise we would see hangs or exponential behavior (?) somewhere in
> the Emacs regexp machinerie, but they take place in that while loop.  So
> I guess that there must be some other, additional quality that this
> regexp fulfills.  Like: "matches the empty string" (which it does not,
> as far as I can tell) or: "must only match before curlies" or whatnot.

> Unfortunately, the doc string/info doc of `defun-prompt-regexp´ provides
> only exactly that latter criterion:

>   That is to say, a defun begins on a line that starts with a match for
>   this regular expression, followed by a character with open-parenthesis
>   syntax.

> I guess that only pruning that regexp until things start unfreezing
> could give an answer here.  Or more tracing to see how point moves in
> `c-get-fallback-scan-pos'.  But I need some tracing break here ...


> ... or so I thought, I just couldn't resist:

> I expanded and instrumented that function from emacs-29 as follows,
> (hopefully) not changing any of its logic:

> ------------------------- snip -------------------------
> (defun c-get-fallback-scan-pos (here)
>   ;; Return a start position for building `c-state-cache' from scratch.  This
>   ;; will be at the top level, 2 defuns back.  Return nil if we don't find
>   ;; these defun starts a reasonable way back.
>   (message "c-get-fallback-scan-pos")
>   (save-excursion
>     (save-restriction
>       (when (> here (* 10 c-state-cache-too-far))
> 	(narrow-to-region (- here (* 10 c-state-cache-too-far)) here))
>       ;; Go back 2 bods, but ignore any bogus positions returned by
>       ;; beginning-of-defun (i.e. open paren in column zero).
>       (goto-char here)
>       (let ((cnt 2))
> 	(message "beginning-of-defun-loop-00: %d %d" cnt (point))
> 	(while (not (or (bobp) (zerop cnt)))
> 	  (message "beginning-of-defun-loop-01: %d" (point))
> 	  (let (beginning-of-defun-function end-of-defun-function)
> 	    (beginning-of-defun))
> 	  (and defun-prompt-regexp
> 	       (looking-at defun-prompt-regexp)
> 	       (message "beginning-of-defun-loop-02: %d" (point))
> 	       (goto-char (match-end 0)))
> 	  (message "beginning-of-defun-loop-03: %d" (point))
> 	  (if (eq (char-after) ?\{)
> 	      (setq cnt (1- cnt)))))
>       (and (not (bobp))
> 	   (point)))))
> ------------------------- snip -------------------------

> That results in the message triple

> ------------------------- snip -------------------------
> beginning-of-defun-loop-01: 5879
> beginning-of-defun-loop-02: 5801
> beginning-of-defun-loop-03: 5879
> beginning-of-defun-loop-01: 5879
> beginning-of-defun-loop-02: 5801
> beginning-of-defun-loop-03: 5879
> ...
> ------------------------- snip -------------------------

> inf-looping.  These points are (|: 5801, ^: 5879) here in P1.java:

> ------------------------- snip -------------------------
> 178    } catch (Exception e) {
> 179|      error("symTable.addDecl", "unexpected error with a single HashMap " + e)^;
> 180    }
> 181
> ------------------------- snip -------------------------

> So the catch-block just before line 181 is recognized as a potential BOD
> (previous trailing open curly?).  But then `defun-prompt-regexp' matches
> the function call in the catch-block as defun prompt regexp (which it
> better should not?), taking point back to where, on next BOD search, the
> exact previous BOD is found again.

> So probably there are really two issues here:

> 1. The `defun-prompt-regexp' used by Hyperbole, which matches too
>    broadly, and

> 2. function `c-get-fallback-scan-pos', which could try harder to avoid
>    inf-loops when such things happen.

> But that's where I *really* stop here :-)

You've diagnosed the bug completely.  Thanks!  The hang was caused
entirely by the loop in c-get-fallback-scan-pos, not the deficiencies in
that long regexp.

defun-prompt-regexp, when appended with a \\s( (as is done in
beginning-of-defun-raw) matches the "      error(" on L179 of P1.java.
The bare defun-prompt-regexp (as used in CC Mode) matches the entire
line except the terminating ;.  This regexp could do with some
amendment, but it is not the main cause of the bug.

To solve the bug, I'm amending the macro c-beginning-of-defun-1 so that
it only stops at a debug-prompt-regexp position when it also found a {.
Otherwise it will keep looping until it finds a better position or BOB.

Would all concerned please apply the attached patch to the Emacs master
branch, directory lisp/progmodes.  Then please byte compile CC Mode in
full (a macro has been changed), and try the result on your real Java
code.  (If anybody wants any help applying the patch or byte compiling,
feel free to send me private mail.)  Then please confirm that the bug is
indeed fixed.  Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).


--Hf/FvbKl43qLgJz6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="diff.20231013.diff"

diff -r b680bbba3141 cc-defs.el
--- a/cc-defs.el	Fri Sep 29 11:15:58 2023 +0000
+++ b/cc-defs.el	Fri Oct 13 12:23:11 2023 +0000
@@ -944,7 +944,8 @@
      (when dest (goto-char dest) t)))
 
 (defmacro c-beginning-of-defun-1 ()
-  ;; Wrapper around beginning-of-defun.
+  ;; Wrapper around beginning-of-defun.  Note that the return value from this
+  ;; macro has no significance.
   ;;
   ;; NOTE: This function should contain the only explicit use of
   ;; beginning-of-defun in CC Mode.  Eventually something better than
@@ -957,44 +958,49 @@
   ;; `c-parse-state'.
 
   `(progn
-     (if (and ,(fboundp 'buffer-syntactic-context-depth)
-	      c-enable-xemacs-performance-kludge-p)
-	 ,(when (fboundp 'buffer-syntactic-context-depth)
-	    ;; XEmacs only.  This can improve the performance of
-	    ;; c-parse-state to between 3 and 60 times faster when
-	    ;; braces are hung.  It can also degrade performance by
-	    ;; about as much when braces are not hung.
-	    '(let (beginning-of-defun-function end-of-defun-function
-					       pos)
-	       (while (not pos)
-		 (save-restriction
-		   (widen)
-		   (setq pos (c-safe-scan-lists
-			      (point) -1 (buffer-syntactic-context-depth))))
-		 (cond
-		  ((bobp) (setq pos (point-min)))
-		  ((not pos)
-		   (let ((distance (skip-chars-backward "^{")))
-		     ;; unbalanced parenthesis, while invalid C code,
-		     ;; shouldn't cause an infloop!  See unbal.c
-		     (when (zerop distance)
-		       ;; Punt!
-		       (beginning-of-defun)
-		       (setq pos (point)))))
-		  ((= pos 0))
-		  ((not (eq (char-after pos) ?{))
-		   (goto-char pos)
-		   (setq pos nil))
-		  ))
-	       (goto-char pos)))
-       ;; Emacs, which doesn't have buffer-syntactic-context-depth
-       (let (beginning-of-defun-function end-of-defun-function)
-	 (beginning-of-defun)))
-     ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the
-     ;; open brace.
-     (and defun-prompt-regexp
-	  (looking-at defun-prompt-regexp)
-	  (goto-char (match-end 0)))))
+     (while
+	 (progn
+	   (if (and ,(fboundp 'buffer-syntactic-context-depth)
+		    c-enable-xemacs-performance-kludge-p)
+	       ,(when (fboundp 'buffer-syntactic-context-depth)
+		  ;; XEmacs only.  This can improve the performance of
+		  ;; c-parse-state to between 3 and 60 times faster when
+		  ;; braces are hung.  It can also degrade performance by
+		  ;; about as much when braces are not hung.
+		  '(let (beginning-of-defun-function end-of-defun-function
+						     pos)
+		     (while (not pos)
+		       (save-restriction
+			 (widen)
+			 (setq pos (c-safe-scan-lists
+				    (point) -1 (buffer-syntactic-context-depth))))
+		       (cond
+			((bobp) (setq pos (point-min)))
+			((not pos)
+			 (let ((distance (skip-chars-backward "^{")))
+			   ;; unbalanced parenthesis, while invalid C code,
+			   ;; shouldn't cause an infloop!  See unbal.c
+			   (when (zerop distance)
+			     ;; Punt!
+			     (beginning-of-defun)
+			     (setq pos (point)))))
+			((= pos 0))
+			((not (eq (char-after pos) ?{))
+			 (goto-char pos)
+			 (setq pos nil))
+			))
+		     (goto-char pos)))
+	     ;; Emacs, which doesn't have buffer-syntactic-context-depth
+	     (let (beginning-of-defun-function end-of-defun-function)
+	       (beginning-of-defun)))
+	   (and (not (bobp))
+		;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at
+		;; the open brace.
+		defun-prompt-regexp
+		(looking-at (concat defun-prompt-regexp "\\s("))
+		(or (not (eq (char-before (match-end 0)) ?{))
+		    (progn (goto-char (1- (match-end 0)))
+			   nil)))))))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

--Hf/FvbKl43qLgJz6--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Oct 2023 19:59:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 12 15:59:07 2023
Received: from localhost ([127.0.0.1]:44328 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qr1pr-0002AQ-Dt
	for submit <at> debbugs.gnu.org; Thu, 12 Oct 2023 15:59:07 -0400
Received: from mr5.vodafonemail.de ([145.253.228.165]:34608)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jschmidt4gnu@HIDDEN>) id 1qr1pm-00029a-33
 for 61436 <at> debbugs.gnu.org; Thu, 12 Oct 2023 15:59:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de;
 s=vfde-mb-mr2-21dec; t=1697140714;
 bh=AMps77Trf0zmFk5p7XIee+hJtP7QyIVCAnYFTD0Dlf8=;
 h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent:
 Content-Type:From;
 b=TdQ5zvmJpsGdZwmH56VYybPyZj3nDuPi9iKbPWO/NIvpluXMboBAwD8iYyGTONvsf
 zBudEF6dPRgZyBxkSYmj/pOW3BRsZyq94v2KiBeXQHOTokc/ib9GdM1/TmwQvQHRld
 e/0Bgn5WvX494uPn/UYvH5RKwcMPNy9D+GRuepAs=
Received: from smtp.vodafone.de (unknown [10.0.0.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by mr5.vodafonemail.de (Postfix) with ESMTPS id 4S60nP62Lxz1y9J;
 Thu, 12 Oct 2023 19:58:33 +0000 (UTC)
Received: from sappc2 (port-92-194-185-170.dynamic.as20676.net
 [92.194.185.170])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (No client certificate requested)
 by smtp.vodafone.de (Postfix) with ESMTPSA id 4S60my5jK2z9s6R;
 Thu, 12 Oct 2023 19:58:07 +0000 (UTC)
From: Jens Schmidt <jschmidt4gnu@HIDDEN>
To: Alan Mackenzie <acm@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN> <ZScbmT8PV6ucBGwA@ACM>
Date: Thu, 12 Oct 2023 21:58:06 +0200
In-Reply-To: <ZScbmT8PV6ucBGwA@ACM> (Alan Mackenzie's message of "Wed, 11 Oct
 2023 22:03:05 +0000")
Message-ID: <875y3bbokx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-type: clean
X-purgate: clean
X-purgate-size: 4583
X-purgate-ID: 155817::1697140709-F97F97FF-1EB2DCC7/0/0
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Alan,

Alan Mackenzie <acm@HIDDEN> writes:

> It may well be that persevering with this regexp is a lost cause, and
> you'd do better to construct a new regexp from scratch using more
> structured methods (perhaps something similar to what's in cc-awk.el).
> In fact the regexp looks horribly like one in the CC Mode manual which
> was explicitly designated unsupported.  ;-(

and thanks for your analysis.  I felt as well that this regexp looks,
well, funny, but what intrigues me is that it cannot (only) be the
complexity and ill-conditioned-ness of that regexp that lets Emacs
freeze.

>> That always freezes Emacs (29 and master) even before it has a chance to
>> display P1.java.  The freeze happens in function
>> `c-get-fallback-scan-pos', where the while loop inf-loops.
>
> c-get-fallback-scan-pos tries to move to the beginning of a function.
> This probably involves defun-prompt-regexp when it is non-nil.  :-(

Otherwise we would see hangs or exponential behavior (?) somewhere in
the Emacs regexp machinerie, but they take place in that while loop.  So
I guess that there must be some other, additional quality that this
regexp fulfills.  Like: "matches the empty string" (which it does not,
as far as I can tell) or: "must only match before curlies" or whatnot.

Unfortunately, the doc string/info doc of `defun-prompt-regexp=C2=B4 provid=
es
only exactly that latter criterion:

  That is to say, a defun begins on a line that starts with a match for
  this regular expression, followed by a character with open-parenthesis
  syntax.

I guess that only pruning that regexp until things start unfreezing
could give an answer here.  Or more tracing to see how point moves in
`c-get-fallback-scan-pos'.  But I need some tracing break here ...


... or so I thought, I just couldn't resist:

I expanded and instrumented that function from emacs-29 as follows,
(hopefully) not changing any of its logic:

------------------------- snip -------------------------
(defun c-get-fallback-scan-pos (here)
  ;; Return a start position for building `c-state-cache' from scratch.  Th=
is
  ;; will be at the top level, 2 defuns back.  Return nil if we don't find
  ;; these defun starts a reasonable way back.
  (message "c-get-fallback-scan-pos")
  (save-excursion
    (save-restriction
      (when (> here (* 10 c-state-cache-too-far))
	(narrow-to-region (- here (* 10 c-state-cache-too-far)) here))
      ;; Go back 2 bods, but ignore any bogus positions returned by
      ;; beginning-of-defun (i.e. open paren in column zero).
      (goto-char here)
      (let ((cnt 2))
	(message "beginning-of-defun-loop-00: %d %d" cnt (point))
	(while (not (or (bobp) (zerop cnt)))
	  (message "beginning-of-defun-loop-01: %d" (point))
	  (let (beginning-of-defun-function end-of-defun-function)
	    (beginning-of-defun))
	  (and defun-prompt-regexp
	       (looking-at defun-prompt-regexp)
	       (message "beginning-of-defun-loop-02: %d" (point))
	       (goto-char (match-end 0)))
	  (message "beginning-of-defun-loop-03: %d" (point))
	  (if (eq (char-after) ?\{)
	      (setq cnt (1- cnt)))))
      (and (not (bobp))
	   (point)))))
------------------------- snip -------------------------

That results in the message triple

------------------------- snip -------------------------
beginning-of-defun-loop-01: 5879
beginning-of-defun-loop-02: 5801
beginning-of-defun-loop-03: 5879
beginning-of-defun-loop-01: 5879
beginning-of-defun-loop-02: 5801
beginning-of-defun-loop-03: 5879
...
------------------------- snip -------------------------

inf-looping.  These points are (|: 5801, ^: 5879) here in P1.java:

------------------------- snip -------------------------
178    } catch (Exception e) {
179|      error("symTable.addDecl", "unexpected error with a single HashMap=
 " + e)^;
180    }
181
------------------------- snip -------------------------

So the catch-block just before line 181 is recognized as a potential BOD
(previous trailing open curly?).  But then `defun-prompt-regexp' matches
the function call in the catch-block as defun prompt regexp (which it
better should not?), taking point back to where, on next BOD search, the
exact previous BOD is found again.

So probably there are really two issues here:

1. The `defun-prompt-regexp' used by Hyperbole, which matches too
   broadly, and

2. function `c-get-fallback-scan-pos', which could try harder to avoid
   inf-loops when such things happen.

But that's where I *really* stop here :-)




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 22:03:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 18:03:39 2023
Received: from localhost ([127.0.0.1]:40195 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqhIp-0001SF-93
	for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 18:03:39 -0400
Received: from mail.muc.de ([193.149.48.3]:39662)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <acm@HIDDEN>) id 1qqhIm-0001Rs-GT
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 18:03:37 -0400
Received: (qmail 59748 invoked by uid 3782); 12 Oct 2023 00:03:07 +0200
Received: from acm.muc.de (pd953a848.dip0.t-ipconnect.de [217.83.168.72])
 (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP;
 Thu, 12 Oct 2023 00:03:06 +0200
Received: (qmail 5786 invoked by uid 1000); 11 Oct 2023 22:03:05 -0000
Date: Wed, 11 Oct 2023 22:03:05 +0000
To: Jens Schmidt <jschmidt4gnu@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <ZScbmT8PV6ucBGwA@ACM>
References: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
In-Reply-To: <87r0m1t0el.fsf@HIDDEN>
X-Submission-Agent: TMDA/1.3.x (Ph3nix)
From: Alan Mackenzie <acm@HIDDEN>
X-Primary-Address: acm@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hello, Jens.

On Wed, Oct 11, 2023 at 21:38:26 +0200, Jens Schmidt wrote:
> Hi Alan,

> could you please have a look as well?  This seems to be related to
> cc-mode/java-mode.  New, complete reproducer at the very bottom of this
> mail.

> Thanks!

> Hi Robert & Mats,

> Robert Weiner <rsw@HIDDEN> writes:

> > Jens wrote:

> >> That always freezes Emacs (29 and master) even before it has a chance =
to
> >> display P1.java.  The freeze happens in function
> >> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:

> >> If you uncomment the line setting `hkey-init' to nil in init.el and
> >> repeat: No freeze.

> > As you note above, the infinite loop is coming from a Lisp function in
> > Emacs core, not from Hyperbole.  A Hyperbole setting may help you to
> > see a state reached in that function that you otherwise would not, but
> > it is not a Hyperbole bug; it is an unhandled state outside of
> > Hyperbole.

> Well, yes and no.  The next closest culprit seems to be this hook
> addition from function `hui-select-initialize':

>   ;; These hooks let you select C++ and Java methods and classes by
>   ;; double-clicking on the first character of a definition or on its
>   ;; opening or closing brace.  This is all necessary since some
>   ;; programmers don't put their function braces in the first column.
>   (var:add-and-run-hook
>    'java-mode-hook
>    (lambda ()
>      (setq defun-prompt-regexp
> 	   "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|sy=
nchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)=
\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\=
)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_=
a-zA-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(=
([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-z=
A-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*")))

> I (very generally) think that Emacs does not have to grok every regexp
> in every context, but I leave that concrete case for Alan and/or others
> to decide.

I think that that regexp might be the source of the hang.  It is
ill-conditioned.  (I've elided all of the keywords between "public" and
"volatile" to try and make it more readable):

"^[ \t]*\\(\\(\\(public\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-=
Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\))\\s-+\\)\\)? \\(\\([[a-zA-Z]=
[][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()^?=3D]*\\|\\([=
_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\=
<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"

The first problem seems to be just after "volatile\\)\\s-+\\)*", where you'=
ve got:

[[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]
                         ^                ^

, in other words [...]*[...]+, where the ...s match largely the same
characters.  In the event of a failure to match, the Emacs regexp engine
will try every possible combination of these.  This isn't all that bad,
but in a string of N matching characters inside a global mismatch, it
will try out all N-1 ways of splitting up the string between those two
regexp fragments.  In fact, here, the [...]* is entirely redundant (as
well as being harmful) and could be removed.

Another problem is right near the end of the regexp where there is:

\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+

, or rewriting it in an easier to read fashion on several lines:

\\(                                            \\)+ =20
   \\(                         \\)[, \t\n\r\f]*
      [_$a-zA-Z][_$.a-zA-Z0-9]*
      1111111111111111111111111   2222222222222


=2E  Here, if you have a sequence of identifier characters, which are
inside a global mismatch, they can all be matched by 1.  However, they
can also be matched by 1, with any number (especially an infinite number)
of zero length strings matching 2.  In this case, the regexp engine will
try out all the ways of matching, an infinite number of them, before
giving up.  Here might be one of the places in the regexp which is
hanging.  It might well be that the second * in that expression should be
a +.

Earlier on in the regexp, I can see \\s-*\\)\\s-+, a possibly zero-length
sequence of space-syntax characters, followed by a non-empty sequence of
them.  I haven't analysed this in detail, but it smells like trouble.

It may well be that persevering with this regexp is a lost cause, and
you'd do better to construct a new regexp from scratch using more
structured methods (perhaps something similar to what's in cc-awk.el).
In fact the regexp looks horribly like one in the CC Mode manual which
was explicitly designated unsupported.  ;-(

Just as a matter of interest, I wrote a tool quite a few years ago to
diagnose and rewrite ill-conditioned regexps, but never got it to release
quality.  I tried out this tool on the regexp, but its output regexp hung
in Java Mode just as much as the original.  But this tool did help me
spot some of the solecisms which I analysed above.


> > On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@lidell=
s.se> wrote:
> >
> >  Thanks for the report.

> Actually, not mine.  I'm just the messenger who did some root-cause
> analysis.

> >  Note: I don't know what P1.java means here. I have picked a java file
> >  at random that I had on my machine that is large. Is P1.java a
> >  specific file that has been shared earlier?

> The OP has provided that, see below.

> >  Hyperbole has its own tracker.
> >
> >  https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole

> Ok, thanks.  As soon as we know whose bug this is we could forward or
> not.


> Now for the next reproducer (Hyperbole no longer required, but still
> present through its regexp :-):

> - Save the following to ~/tmp/init.el:

> ------------------------- snip -------------------------
> (add-hook
>  'java-mode-hook
>  (lambda ()
>    (setq defun-prompt-regexp
> 	 "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|sync=
hronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\=
s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\=
\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-=
zA-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([=
^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-=
Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*")))
> ------------------------- snip -------------------------

> - Save attachment P1.java from the initial message

>   https://yhetil.org/emacs-bugs/ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkI=
B3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=3D@proto=
nmail.com/

>   to ~/tmp/P1.java.

> - Start Emacs as

>   ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java

> That always freezes Emacs (29 and master) even before it has a chance to
> display P1.java.  The freeze happens in function
> `c-get-fallback-scan-pos', where the while loop inf-loops.

c-get-fallback-scan-pos tries to move to the beginning of a function.
This probably involves defun-prompt-regexp when it is non-nil.  :-(

--=20
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 21:43:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 17:43:44 2023
Received: from localhost ([127.0.0.1]:40176 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqgzY-0000Xk-5H
	for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 17:43:44 -0400
Received: from smtp.egensajt.se ([193.42.159.246]:42844)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mats.lidell@HIDDEN>) id 1qqgzK-0000Wr-K3
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 17:43:34 -0400
Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 (Authenticated sender: mats.lidell@HIDDEN)
 by smtp.egensajt.se (Postfix) with ESMTPSA id B9408202AB;
 Wed, 11 Oct 2023 23:43:02 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim;
 t=1697060582; bh=AxH6AfZu2tD4Xd/OtY9kmOiWcszVBPQaqzBxw535/V8=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=WhcuDCn4tGklCnmXPqmA67hUpaySWbm38cYlswc1eso5hH574IlGzd+W05X7mvfqf
 ZiFClFLTROrvde3s38v6c+dPBlzeoR2zLrMjXEK8xoEcAO0Xtn8qntuulzag+wy1zR
 1mOou0/X2E1urZtOSn1XPsKd654GdLHTKKNDMslE=
From: Mats Lidell <mats.lidell@HIDDEN>
To: Jens Schmidt <jschmidt4gnu@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
In-Reply-To: <87r0m1t0el.fsf@HIDDEN> (Jens Schmidt's message of
 "Wed, 11 Oct 2023 21:38:26 +0200")
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 <87r0m1t0el.fsf@HIDDEN>
Date: Wed, 11 Oct 2023 23:43:02 +0200
Message-ID: <877cnsn8d5.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Alan Mackenzie <acm@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, rswgnu@HIDDEN,
 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi,

> Jens Schmidt writes:
> Now for the next reproducer (Hyperbole no longer required, but still
> present through its regexp :-):

I can confirm that I get a harder freeze this time using the submitted P1.j=
ava
file.  I now get the reported behavior of not even displaying the file.

I've tried at occasions, over the last years, to use Emacs for coding java =
in
my day job. It has always ended in some freeze that feels quite like this. I
bet it is this. Would be a fun irony if it is Hyperboles regexp that has
caused it, and it is about to be solved now when I'm not coding java! =F0=
=9F=A4=A3

Anyway, I will take a look too. With the clear description and easy to
reproduce it could be possible to solve! ;-)=20

%% Mats




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 20:07:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 16:07:53 2023
Received: from localhost ([127.0.0.1]:40115 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqfUm-0004EU-Pt
	for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 16:07:53 -0400
Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:41041)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rswgnu@HIDDEN>) id 1qqfUk-0004EB-6O
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 16:07:51 -0400
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-405e48d8e72so687355e9.0
 for <61436 <at> debbugs.gnu.org>; Wed, 11 Oct 2023 13:07:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1697054842; x=1697659642; darn=debbugs.gnu.org;
 h=to:in-reply-to:cc:references:message-id:date:subject:mime-version
 :from:content-transfer-encoding:from:to:cc:subject:date:message-id
 :reply-to; bh=7CGny5FV3Xsu8s5zgwfchKMVLBmRJVxPmgPPrDs6GBg=;
 b=XveuuGGVGP2o08XV4q5ghEYiUTgGcHEKqANnXY53Fgss7wMKfP+hoakYYnA+FAWXp2
 thzRjaLrXMIYS5NatTDKEZSLsa4WKbw1Zd5eqST5mPpZke62+FJGUs6K+2qk7dO2c21D
 4dUKjyTvByOmLooyZRTbDtbV+Lze1sMElNNhYJpYIz1v9kkVTJjDll3Acu7E7j3eCwtL
 6rSiEKggI8pGmTioDS+dRReXd43ZcNk65oIe+tVpc+geF7DXgz9c/YJrHifvstGpDSKB
 IPO+YUAbVZCFEW6EDzzythtVicL1C2MMFoaG4+naUXMG0Rf9MvXfKaDnS4KgdBwL5eLw
 vM3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1697054842; x=1697659642;
 h=to:in-reply-to:cc:references:message-id:date:subject:mime-version
 :from:content-transfer-encoding:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=7CGny5FV3Xsu8s5zgwfchKMVLBmRJVxPmgPPrDs6GBg=;
 b=TDvfr+HArLQ3K6sFunB7Z8eySZc11DPX+9vRwE2nawGwgYRScUbWDjQp0cIsszEV3x
 CimX5ajgJGUe29yjH13RTR2ZM4kcIAcPNBihBrBgn21Wm6VN2xV/uNGpxiWpGnYgeu5o
 d+Qdww8U8iJ/xuL+/45npXekalp7kNabhrxLZ3rlazpOAkj9heI3XQck6WdqnY+sg7gt
 gy94VDlpWMbnyBLHXUJ1zh4lYTNC+H6D60+uzPtR2OKFCAiiAqafSaCDrcmMdWyGXhzH
 JL4hEqU+sjl94YOMszErHTOtT5utS0Fv9ktmtQYInHt08o56FByw7tQOYXR6yzniMwt6
 0sYQ==
X-Gm-Message-State: AOJu0YyktfiFUbrEaJ6HxJjTx6hFIzBI510P8TXyeflDehsDqwOU5hIX
 Mdz7V/yDVCl6RAnCLee+UOXngF45Z6A2Vg==
X-Google-Smtp-Source: AGHT+IGhy5oWXFVj2cBc4jAziZcS9ewM3d4AD89+0nsb6le/Bm1z1n3OfV7tnIXQUm7+nqKi8SrJ+w==
X-Received: by 2002:a05:600c:1d18:b0:404:72f9:d59a with SMTP id
 l24-20020a05600c1d1800b0040472f9d59amr19899634wms.0.1697054841977; 
 Wed, 11 Oct 2023 13:07:21 -0700 (PDT)
Received: from smtpclient.apple ([94.4.55.6]) by smtp.gmail.com with ESMTPSA id
 m6-20020adfa3c6000000b0032d8034724esm4034220wrb.94.2023.10.11.13.07.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Oct 2023 13:07:21 -0700 (PDT)
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Robert Weiner <rswgnu@HIDDEN>
Mime-Version: 1.0 (1.0)
Subject: Re: bug#61436: Emacs Freezing With Java Files
Date: Wed, 11 Oct 2023 21:07:10 +0100
Message-Id: <BBEA5381-21D1-44F4-B5F3-2762D9086080@HIDDEN>
References: <87r0m1t0el.fsf@HIDDEN>
In-Reply-To: <87r0m1t0el.fsf@HIDDEN>
To: Jens Schmidt <jschmidt4gnu@HIDDEN>
X-Mailer: iPhone Mail (20H19)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, Alan Mackenzie <acm@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Those are some pretty old regexps in Hyperbole that we have not updated in m=
any years.  Maybe we just need to cross-check them against what is currently=
 in Emacs to resolve this.  I will have a look.  Thanks for tracing through t=
his.

-- rsw

> On Oct 11, 2023, at 8:38 PM, Jens Schmidt <jschmidt4gnu@HIDDEN> w=
rote:
>=20
> =EF=BB=BFHi Alan,
>=20
> could you please have a look as well?  This seems to be related to
> cc-mode/java-mode.  New, complete reproducer at the very bottom of this
> mail.
>=20
> Thanks!
>=20
> Hi Robert & Mats,
>=20
> Robert Weiner <rsw@HIDDEN> writes:
>=20
>> Jens wrote:
>>=20
>>> That always freezes Emacs (29 and master) even before it has a chance to=

>>> display P1.java.  The freeze happens in function
>>> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:
>>>=20
>>> If you uncomment the line setting `hkey-init' to nil in init.el and
>>> repeat: No freeze.
>>=20
>> As you note above, the infinite loop is coming from a Lisp function in
>> Emacs core, not from Hyperbole.  A Hyperbole setting may help you to
>> see a state reached in that function that you otherwise would not, but
>> it is not a Hyperbole bug; it is an unhandled state outside of
>> Hyperbole.
>=20
> Well, yes and no.  The next closest culprit seems to be this hook
> addition from function `hui-select-initialize':
>=20
>  ;; These hooks let you select C++ and Java methods and classes by
>  ;; double-clicking on the first character of a definition or on its
>  ;; opening or closing brace.  This is all necessary since some
>  ;; programmers don't put their function braces in the first column.
>  (var:add-and-run-hook
>   'java-mode-hook
>   (lambda ()
>     (setq defun-prompt-regexp
>       "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|s=
ynchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)=
\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)=
\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-=
zA-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^=
);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0=
-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*")))
>=20
> I (very generally) think that Emacs does not have to grok every regexp
> in every context, but I leave that concrete case for Alan and/or others
> to decide.
>=20
>> On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@lidells.=
se> wrote:
>>=20
>> Thanks for the report.
>=20
> Actually, not mine.  I'm just the messenger who did some root-cause
> analysis.
>=20
>> Note: I don't know what P1.java means here. I have picked a java file
>> at random that I had on my machine that is large. Is P1.java a
>> specific file that has been shared earlier?
>=20
> The OP has provided that, see below.
>=20
>> Hyperbole has its own tracker.
>>=20
>> https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole
>=20
> Ok, thanks.  As soon as we know whose bug this is we could forward or
> not.
>=20
>=20
> Now for the next reproducer (Hyperbole no longer required, but still
> present through its regexp :-):
>=20
> - Save the following to ~/tmp/init.el:
>=20
> ------------------------- snip -------------------------
> (add-hook
> 'java-mode-hook
> (lambda ()
>   (setq defun-prompt-regexp
>     "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|syn=
chronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\=
s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\=
s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA=
-Z][^][ \t:;.,{}()=7F=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);=
{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9=
]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*")))
> ------------------------- snip -------------------------
>=20
> - Save attachment P1.java from the initial message
>=20
>  https://yhetil.org/emacs-bugs/ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3=
dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=3D@protonma=
il.com/
>=20
>  to ~/tmp/P1.java.
>=20
> - Start Emacs as
>=20
>  ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java
>=20
> That always freezes Emacs (29 and master) even before it has a chance to
> display P1.java.  The freeze happens in function
> `c-get-fallback-scan-pos', where the while loop inf-loops.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 19:39:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 15:39:27 2023
Received: from localhost ([127.0.0.1]:40094 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqf3H-0002yN-5h
	for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 15:39:27 -0400
Received: from mr6.vodafonemail.de ([145.253.228.166]:35496)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jschmidt4gnu@HIDDEN>) id 1qqf3B-0002y5-HI
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 15:39:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de;
 s=vfde-mb-mr2-21dec; t=1697053133;
 bh=ACIu1WSOmcH0W1FZKR4ENmd1hiBf6Jpf8s4A6Ou8x0Q=;
 h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent:
 Content-Type:From;
 b=Yi/C3S8h8Ibyowoz4q+FMbMl8ZeH7oNxOUn6yoCQG+On2CPXUHgq7RUWYUzivau3X
 2x3lU+UizlRgi5J0O/K6rSA2LpBQ7y6HoESkAcgpfgftXQYluHPhjyoP5YI4WqICbl
 61ki01kn9njZ36m2sIYJ8eANKCc001muhug6SA5M=
Received: from smtp.vodafone.de (unknown [10.0.0.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by mr6.vodafonemail.de (Postfix) with ESMTPS id 4S5NP92jDBz1xsb;
 Wed, 11 Oct 2023 19:38:53 +0000 (UTC)
Received: from sappc2 (port-92-194-230-114.dynamic.as20676.net
 [92.194.230.114])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (No client certificate requested)
 by smtp.vodafone.de (Postfix) with ESMTPSA id 4S5NNk3fvgzHnHf;
 Wed, 11 Oct 2023 19:38:27 +0000 (UTC)
From: Jens Schmidt <jschmidt4gnu@HIDDEN>
To: Alan Mackenzie <acm@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
 <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
Date: Wed, 11 Oct 2023 21:38:26 +0200
In-Reply-To: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
 (Robert Weiner's message of "Wed, 11 Oct 2023 06:17:50 -0400")
Message-ID: <87r0m1t0el.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-type: clean
X-purgate: clean
X-purgate-size: 3977
X-purgate-ID: 155817::1697053129-BE7FD94E-0D39D584/0/0
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Robert Weiner <rsw@HIDDEN>, Hank Greenburg <hank.greenburg@HIDDEN>,
 Mats Lidell <mats.lidell@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 rswgnu@HIDDEN, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Alan,

could you please have a look as well?  This seems to be related to
cc-mode/java-mode.  New, complete reproducer at the very bottom of this
mail.

Thanks!

Hi Robert & Mats,

Robert Weiner <rsw@HIDDEN> writes:

> Jens wrote:
>
>> That always freezes Emacs (29 and master) even before it has a chance to
>> display P1.java.  The freeze happens in function
>> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:
>>
>> If you uncomment the line setting `hkey-init' to nil in init.el and
>> repeat: No freeze.
>
> As you note above, the infinite loop is coming from a Lisp function in
> Emacs core, not from Hyperbole.  A Hyperbole setting may help you to
> see a state reached in that function that you otherwise would not, but
> it is not a Hyperbole bug; it is an unhandled state outside of
> Hyperbole.

Well, yes and no.  The next closest culprit seems to be this hook
addition from function `hui-select-initialize':

  ;; These hooks let you select C++ and Java methods and classes by
  ;; double-clicking on the first character of a definition or on its
  ;; opening or closing brace.  This is all necessary since some
  ;; programmers don't put their function braces in the first column.
  (var:add-and-run-hook
   'java-mode-hook
   (lambda ()
     (setq defun-prompt-regexp
	   "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|sync=
hronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\=
s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\=
\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-=
zA-Z][^][ \t:;.,{}()=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^)=
;{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0=
-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*")))

I (very generally) think that Emacs does not have to grok every regexp
in every context, but I leave that concrete case for Alan and/or others
to decide.

> On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@lidells.=
se> wrote:
>
>  Thanks for the report.

Actually, not mine.  I'm just the messenger who did some root-cause
analysis.

>  Note: I don't know what P1.java means here. I have picked a java file
>  at random that I had on my machine that is large. Is P1.java a
>  specific file that has been shared earlier?

The OP has provided that, see below.

>  Hyperbole has its own tracker.
>
>  https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole

Ok, thanks.  As soon as we know whose bug this is we could forward or
not.


Now for the next reproducer (Hyperbole no longer required, but still
present through its regexp :-):

- Save the following to ~/tmp/init.el:

------------------------- snip -------------------------
(add-hook
 'java-mode-hook
 (lambda ()
   (setq defun-prompt-regexp
	 "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchr=
onized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-=
+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s=
-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA=
-Z][^][ \t:;.,{}()=3D]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{=
}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9=
]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*")))
------------------------- snip -------------------------

- Save attachment P1.java from the initial message

  https://yhetil.org/emacs-bugs/ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3=
dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=3D@protonm=
ail.com/

  to ~/tmp/P1.java.

- Start Emacs as

  ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java

That always freezes Emacs (29 and master) even before it has a chance to
display P1.java.  The freeze happens in function
`c-get-fallback-scan-pos', where the while loop inf-loops.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 10:18:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 06:18:50 2023
Received: from localhost ([127.0.0.1]:37543 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqWIk-0005FM-1T
	for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 06:18:50 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:51624)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rsw@HIDDEN>) id 1qqWIf-0005F3-5M
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 06:18:48 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rsw@HIDDEN>) id 1qqWID-0001BY-GU
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 06:18:17 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=To:Subject:Date:From:In-Reply-To:References:
 MIME-Version; bh=W6t1JrSVxMwE/2qVitgjqK6OwIkL8xmvZfIhNQRnQYs=; b=Sk1sYiPUlTSc
 cHcxL2hVdHKov0Y88Lr9DFSlM6ykz0X68MP98PP8faa07TqIarRTeAHfooE84tZ1OzBb+M9+yIPuJ
 pET/uK1naLQz709/37UWBsmxBIqd+HvzSS6QTtW5RZV1FgTnTAn5FfVE/l4cKgjZLpPhRbxkFBfzZ
 XI0U9m/v0m4ltXPqWpk6BXlmEkCsmCmO7xlFixnXxTePlSH+7bhFlY9yfSgrMoN0MwjH77Iy6oVWG
 UORB28uhWoa57fOw6kk2bbDOv77d6meO5Aw2QUue/0FtrTQDx6H4tgJGxeUWte5CoCUwE2C3Gdqjb
 sb5ekk83+U03IR/0AMR25g==;
X-Gm-Message-State: AOJu0YxXh+G8eyvzIMPQ4jOzmMFOXNHFBpQKW4twg3wf6+dT8bMreuN/
 D6i9/9E+97nvAUCwVEY7cA3RFmDyyNipxsWpFrs=
X-Google-Smtp-Source: AGHT+IHbo8foko55S3lI2GeS+gsus2dw26LADqt5SL2I8rsJV+zbD8Pf2kw8Al5En4dnp7P7ooWY/W24rdFkEYRWxYI=
X-Received: by 2002:a67:ead5:0:b0:452:5a06:b6ae with SMTP id
 s21-20020a67ead5000000b004525a06b6aemr11675406vso.2.1697019496528; Wed, 11
 Oct 2023 03:18:16 -0700 (PDT)
MIME-Version: 1.0
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
 <87il7dbosk.fsf@HIDDEN>
In-Reply-To: <87il7dbosk.fsf@HIDDEN>
From: Robert Weiner <rsw@HIDDEN>
Date: Wed, 11 Oct 2023 06:17:50 -0400
X-Gmail-Original-Message-ID: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
Message-ID: <CA+OMD9gOThCGeTQMG4oeCcVo0TA+ckQ_bgDrUWNFp9M0GaxZTQ@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
To: Mats Lidell <mats.lidell@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000448fe006076e24a4"
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 61436
Cc: Hank Greenburg <hank.greenburg@HIDDEN>,
 Jens Schmidt <jschmidt4gnu@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Reply-To: rswgnu@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

--000000000000448fe006076e24a4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Jens wrote:

> That always freezes Emacs (29 and master) even before it has a chance to
> display P1.java.  The freeze happens in function
> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:
>
> If you uncomment the line setting `hkey-init' to nil in init.el and
> repeat: No freeze.

As you note above, the infinite loop is coming from a Lisp function in
Emacs core, not from Hyperbole.  A Hyperbole setting may help you to see a
state reached in that function that you otherwise would not, but it is not
a Hyperbole bug; it is an unhandled state outside of Hyperbole.  When the
issue is found, we will have to work around it in Hyperbole since we
support Emacs versions back to 27.1 but that is another matter.  Thanks for
pointing it out.

-- rsw


On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell <mats.lidell@HIDDEN=
> wrote:

> Hi Jens,
>
> Thanks for the report. Seems non trivial.
>
> > Jens Schmidt writes:
> > Jens Schmidt <jschmidt4gnu@HIDDEN> writes:
> >
> > >   Ensure package "hyperbole" is installed.  (Its only role in this
> > >   issue seems to be a "background load generator", but I'm not 100%
> > >   sure here.)
> >
> > The second part above is not true!  Hyperbole mode is the culprit,
> > unless proven otherwise.  Here is a 100%-freezing reproducer (with
> > P1.java as from the initial post):
> >
> > ------------------------- init.el -------------------------
> > (require 'package)
> > (add-to-list 'package-archives
> >            '("melpa" . "https://melpa.org/packages/"))
> > (add-to-list 'package-archives
> >            '("gnu" . "https://elpa.gnu.org/packages/"))
> > (package-initialize)
> > ;(setq hkey-init nil)
> > (hyperbole-mode 1)
> > ------------------------- init.el -------------------------
> >
> > Execute Emacs as:
> >
> >   ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java
> >
> > That always freezes Emacs (29 and master) even before it has a chance t=
o
> > display P1.java.  The freeze happens in function
> > `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:
> >
> > If you uncomment the line setting `hkey-init' to nil in init.el and
> > repeat: No freeze.
>
> I have tried to recreate the freezing (with 29.1 running docker) and I
> don't
> see the exact same behavior. For me P1.java is displayed and there us no
> freeze but when I try to go to top or bottom of file it freezes and I hav=
e
> to
> hit C-g. After that it seems to work. This is just an observation. There
> can
> be more things affected of course.
>
> I have tried both with the hyperbole stable and devel packages and get th=
e
> same behavior.
>
> Note: I don't know what P1.java means here. I have picked a java file at
> random that I had on my machine that is large. Is P1.java a specific file
> that
> has been shared earlier?
>
> > Not sure how to continue here - since this is a GNU ELPA package, it ca=
n
> > be further handled on Emacs debbugs, no?  Mats, Bob?
>
> Hyperbole has its own tracker.
>
> https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole
>
> %% Mats
>

--000000000000448fe006076e24a4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e,monospace">Jens wrote:</div><div class=3D"gmail_default" style=3D"font-fa=
mily:monospace,monospace"><br></div><div class=3D"gmail_default" style=3D"f=
ont-family:monospace,monospace">&gt; That always freezes Emacs (29 and mast=
er) even before it has a chance to<br>
&gt; display P1.java.=C2=A0 The freeze happens in function<br>
&gt; `c-get-fallback-scan-pos&#39;, where the while loop inf-loops, BUT:<br=
>
&gt;<br>
&gt; If you uncomment the line setting `hkey-init&#39; to nil in init.el an=
d<br>
&gt; repeat: No freeze.</div><div class=3D"gmail_default" style=3D"font-fam=
ily:monospace,monospace"><br></div><div class=3D"gmail_default" style=3D"fo=
nt-family:monospace,monospace">As you note above, the infinite loop is comi=
ng from a Lisp function in Emacs core, not from Hyperbole.=C2=A0 A Hyperbol=
e setting may help you to see a state reached in that function that you oth=
erwise would not, but it is not a Hyperbole bug; it is an unhandled state o=
utside of Hyperbole.=C2=A0 When the issue is found, we will have to work ar=
ound it in Hyperbole since we support Emacs versions back to 27.1 but that =
is another matter.=C2=A0 Thanks for pointing it out.</div><div class=3D"gma=
il_default" style=3D"font-family:monospace,monospace"><br></div><div class=
=3D"gmail_default" style=3D"font-family:monospace,monospace">-- rsw</div><d=
iv class=3D"gmail_default" style=3D"font-family:monospace,monospace"><br></=
div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at=
tr">On Wed, Oct 11, 2023 at 3:29=E2=80=AFAM Mats Lidell &lt;<a href=3D"mail=
to:mats.lidell@HIDDEN">mats.lidell@HIDDEN</a>&gt; wrote:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">Hi Jens,<br>
<br>
Thanks for the report. Seems non trivial.<br>
<br>
&gt; Jens Schmidt writes:<br>
&gt; Jens Schmidt &lt;<a href=3D"mailto:jschmidt4gnu@HIDDEN" targe=
t=3D"_blank">jschmidt4gnu@HIDDEN</a>&gt; writes:<br>
&gt;<br>
&gt; &gt;=C2=A0 =C2=A0Ensure package &quot;hyperbole&quot; is installed.=C2=
=A0 (Its only role in this<br>
&gt; &gt;=C2=A0 =C2=A0issue seems to be a &quot;background load generator&q=
uot;, but I&#39;m not 100%<br>
&gt; &gt;=C2=A0 =C2=A0sure here.)<br>
&gt;<br>
&gt; The second part above is not true!=C2=A0 Hyperbole mode is the culprit=
,<br>
&gt; unless proven otherwise.=C2=A0 Here is a 100%-freezing reproducer (wit=
h<br>
&gt; P1.java as from the initial post):<br>
&gt;<br>
&gt; ------------------------- init.el -------------------------<br>
&gt; (require &#39;package)<br>
&gt; (add-to-list &#39;package-archives<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#39;(&quot;melpa&quot; . &qu=
ot;<a href=3D"https://melpa.org/packages/" rel=3D"noreferrer" target=3D"_bl=
ank">https://melpa.org/packages/</a>&quot;))<br>
&gt; (add-to-list &#39;package-archives<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#39;(&quot;gnu&quot; . &quot=
;<a href=3D"https://elpa.gnu.org/packages/" rel=3D"noreferrer" target=3D"_b=
lank">https://elpa.gnu.org/packages/</a>&quot;))<br>
&gt; (package-initialize)<br>
&gt; ;(setq hkey-init nil)<br>
&gt; (hyperbole-mode 1)<br>
&gt; ------------------------- init.el -------------------------<br>
&gt;<br>
&gt; Execute Emacs as:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java<br>
&gt;<br>
&gt; That always freezes Emacs (29 and master) even before it has a chance =
to<br>
&gt; display P1.java.=C2=A0 The freeze happens in function<br>
&gt; `c-get-fallback-scan-pos&#39;, where the while loop inf-loops, BUT:<br=
>
&gt;<br>
&gt; If you uncomment the line setting `hkey-init&#39; to nil in init.el an=
d<br>
&gt; repeat: No freeze.<br>
<br>
I have tried to recreate the freezing (with 29.1 running docker) and I don&=
#39;t<br>
see the exact same behavior. For me P1.java is displayed and there us no<br=
>
freeze but when I try to go to top or bottom of file it freezes and I have =
to<br>
hit C-g. After that it seems to work. This is just an observation. There ca=
n<br>
be more things affected of course.<br>
<br>
I have tried both with the hyperbole stable and devel packages and get the<=
br>
same behavior. <br>
<br>
Note: I don&#39;t know what P1.java means here. I have picked a java file a=
t<br>
random that I had on my machine that is large. Is P1.java a specific file t=
hat<br>
has been shared earlier?<br>
<br>
&gt; Not sure how to continue here - since this is a GNU ELPA package, it c=
an<br>
&gt; be further handled on Emacs debbugs, no?=C2=A0 Mats, Bob?<br>
<br>
Hyperbole has its own tracker.<br>
<br>
<a href=3D"https://debbugs.gnu.org/cgi/pkgreport.cgi?package=3Dhyperbole" r=
el=3D"noreferrer" target=3D"_blank">https://debbugs.gnu.org/cgi/pkgreport.c=
gi?package=3Dhyperbole</a><br>
<br>
%% Mats<br>
</blockquote></div>

--000000000000448fe006076e24a4--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 11 Oct 2023 07:29:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 11 03:29:31 2023
Received: from localhost ([127.0.0.1]:37392 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqTet-000874-Iz
	for submit <at> debbugs.gnu.org; Wed, 11 Oct 2023 03:29:31 -0400
Received: from smtp.egensajt.se ([193.42.159.246]:34396)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mats.lidell@HIDDEN>) id 1qqTep-00086n-KO
 for 61436 <at> debbugs.gnu.org; Wed, 11 Oct 2023 03:29:30 -0400
Received: from ethel (c80-217-132-174.bredband.tele2.se [80.217.132.174])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 (Authenticated sender: mats.lidell@HIDDEN)
 by smtp.egensajt.se (Postfix) with ESMTPSA id 4231820107;
 Wed, 11 Oct 2023 09:29:00 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lidells.se; s=dkim;
 t=1697009340; bh=ht4HSeTL80ToNKSIGzHSIONnvqHcVpY0rzBvuyV+dyY=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=cO3fFAxE2sqtDXK8VTOz4/xPD6tLlkpa0fc6vGXOxv4hW2IGabxcTkUESqdUrNHAc
 aVUiCp46cctgnzzUNIsqNoPbmAs8T8jtg6m1d3eR+Snhd+7M5cSwmK0u37zmVr13F9
 QIym6LVr/mUifTuDL5Y2beYLo8QeDhpj8CwIuQXU=
From: Mats Lidell <mats.lidell@HIDDEN>
To: Jens Schmidt <jschmidt4gnu@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
In-Reply-To: <87il7ew5wx.fsf@HIDDEN> (Jens Schmidt's message of
 "Tue, 10 Oct 2023 22:58:54 +0200")
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN> <87il7ew5wx.fsf@HIDDEN>
Date: Wed, 11 Oct 2023 09:28:59 +0200
Message-ID: <87il7dbosk.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Hank Greenburg <hank.greenburg@HIDDEN>, 61436 <at> debbugs.gnu.org,
 Eli Zaretskii <eliz@HIDDEN>, Bob Weiner <rsw@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Jens,

Thanks for the report. Seems non trivial.

> Jens Schmidt writes:
> Jens Schmidt <jschmidt4gnu@HIDDEN> writes:
>
> >   Ensure package "hyperbole" is installed.  (Its only role in this
> >   issue seems to be a "background load generator", but I'm not 100%
> >   sure here.)
>
> The second part above is not true!  Hyperbole mode is the culprit,
> unless proven otherwise.  Here is a 100%-freezing reproducer (with
> P1.java as from the initial post):
>
> ------------------------- init.el -------------------------
> (require 'package)
> (add-to-list 'package-archives
> 	     '("melpa" . "https://melpa.org/packages/"))
> (add-to-list 'package-archives
> 	     '("gnu" . "https://elpa.gnu.org/packages/"))
> (package-initialize)
> ;(setq hkey-init nil)
> (hyperbole-mode 1)
> ------------------------- init.el -------------------------
>
> Execute Emacs as:
>
>   ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java
>
> That always freezes Emacs (29 and master) even before it has a chance to
> display P1.java.  The freeze happens in function
> `c-get-fallback-scan-pos', where the while loop inf-loops, BUT:
>
> If you uncomment the line setting `hkey-init' to nil in init.el and
> repeat: No freeze.

I have tried to recreate the freezing (with 29.1 running docker) and I don't
see the exact same behavior. For me P1.java is displayed and there us no
freeze but when I try to go to top or bottom of file it freezes and I have to
hit C-g. After that it seems to work. This is just an observation. There can
be more things affected of course.

I have tried both with the hyperbole stable and devel packages and get the
same behavior. 

Note: I don't know what P1.java means here. I have picked a java file at
random that I had on my machine that is large. Is P1.java a specific file that
has been shared earlier?

> Not sure how to continue here - since this is a GNU ELPA package, it can
> be further handled on Emacs debbugs, no?  Mats, Bob?

Hyperbole has its own tracker.

https://debbugs.gnu.org/cgi/pkgreport.cgi?package=hyperbole

%% Mats




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 10 Oct 2023 20:59:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 10 16:59:49 2023
Received: from localhost ([127.0.0.1]:36997 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qqJpV-0003Hv-DT
	for submit <at> debbugs.gnu.org; Tue, 10 Oct 2023 16:59:49 -0400
Received: from mr4.vodafonemail.de ([145.253.228.164]:37434)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jschmidt4gnu@HIDDEN>) id 1qqJpP-0003HU-NJ
 for 61436 <at> debbugs.gnu.org; Tue, 10 Oct 2023 16:59:47 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de;
 s=vfde-mb-mr2-21dec; t=1696971556;
 bh=tDMFk+BEIOeEAMyzFMEFEJLbdpiZcorhxut7vIK3XPs=;
 h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent:
 Content-Type:From;
 b=LUkwjYJYRbzpJ2bUljhO7AdO+dv0m41MtqX/1rOag6NnubmYJhU/SAeNn3esJgqo2
 WSwpqP+HTtTETXj85sqo2iG5CG0fzebYOg6bVnnYHyWPZm2zETLJetgYBEhbS8gSS9
 LEyAsNXE6gDf5jqBUvJW9ZQFEMIdKy5SQLxZyYVo=
Received: from smtp.vodafone.de (unknown [10.0.0.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by mr4.vodafonemail.de (Postfix) with ESMTPS id 4S4pDN0C6gz1yD5;
 Tue, 10 Oct 2023 20:59:15 +0000 (UTC)
Received: from sappc2 (port-92-194-29-92.dynamic.as20676.net [92.194.29.92])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (No client certificate requested)
 by smtp.vodafone.de (Postfix) with ESMTPSA id 4S4pD32HpFz9s5p;
 Tue, 10 Oct 2023 20:58:56 +0000 (UTC)
From: Jens Schmidt <jschmidt4gnu@HIDDEN>
To: Hank Greenburg <hank.greenburg@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 <87bkd7fsp4.fsf@HIDDEN>
Date: Tue, 10 Oct 2023 22:58:54 +0200
In-Reply-To: <87bkd7fsp4.fsf@HIDDEN> (Jens Schmidt's message of
 "Mon, 09 Oct 2023 22:26:31 +0200")
Message-ID: <87il7ew5wx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-type: clean
X-purgate: clean
X-purgate-size: 2088
X-purgate-ID: 155817::1696971551-B8FF67FF-D2938192/0/0
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org,
 Mats Lidell <mats.lidell@HIDDEN>, Bob Weiner <rsw@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jens Schmidt <jschmidt4gnu@HIDDEN> writes:

>   Ensure package "hyperbole" is installed.  (Its only role in this
>   issue seems to be a "background load generator", but I'm not 100%
>   sure here.)

The second part above is not true!  Hyperbole mode is the culprit,
unless proven otherwise.  Here is a 100%-freezing reproducer (with
P1.java as from the initial post):

------------------------- init.el -------------------------
(require 'package)
(add-to-list 'package-archives
	     '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives
	     '("gnu" . "https://elpa.gnu.org/packages/"))
(package-initialize)
;(setq hkey-init nil)
(hyperbole-mode 1)
------------------------- init.el -------------------------

Execute Emacs as:

  ./src/emacs -Q -l ~/tmp/init.el +181 ~/tmp/P1.java

That always freezes Emacs (29 and master) even before it has a chance to
display P1.java.  The freeze happens in function
`c-get-fallback-scan-pos', where the while loop inf-loops, BUT:

If you uncomment the line setting `hkey-init' to nil in init.el and
repeat: No freeze.

Not sure how to continue here - since this is a GNU ELPA package, it can
be further handled on Emacs debbugs, no?  Mats, Bob?

Disclaimer: I do not use Hyperbole as a regular user, I installed it
through `package-install' just for the purpose of this bug, as follows:

------------------------- snip -------------------------
Package hyperbole is installed.

     Status: Installed in =E2=80=98hyperbole-8.0.0/=E2=80=99. Delete
    Version: 8.0.0
     Commit: 4214716e06920a3e10db5811bd22a343ad6435d9
    Summary: GNU Hyperbole: The Everyday Hypertextual Information Manager
   Requires: emacs-27.0
    Website: https://www.gnu.org/software/hyperbole
   Keywords: comm convenience files frames hypermedia languages mail matchi=
ng mouse multimedia outlines tools wp
 Maintainer: Bob Weiner <rsw@HIDDEN>, Mats Lidell <matsl@HIDDEN>
     Author: Bob Weiner
Other versions: 8.0.0 (gnu).
------------------------- snip -------------------------




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.
bug Marked as found in versions 30.0.50. Request was from Jens Schmidt <jschmidt4gnu@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
bug Marked as found in versions 29.1.50. Request was from Jens Schmidt <jschmidt4gnu@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 9 Oct 2023 20:27:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 09 16:27:24 2023
Received: from localhost ([127.0.0.1]:33462 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qpwqX-0003IU-Nt
	for submit <at> debbugs.gnu.org; Mon, 09 Oct 2023 16:27:24 -0400
Received: from mr5.vodafonemail.de ([145.253.228.165]:45362)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jschmidt4gnu@HIDDEN>)
 id 1qpwqR-0003I6-Ns; Mon, 09 Oct 2023 16:27:19 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vodafonemail.de;
 s=vfde-mb-mr2-21dec; t=1696883209;
 bh=Dmh4sfvZeSN3Wfo73M1TpasSg/VQhYA6/zCJ7rPdi2A=;
 h=From:To:Subject:References:Date:In-Reply-To:Message-ID:User-Agent:
 Content-Type:From;
 b=Vv7vnGV+CnfyRhvH+hnqFQ4Ag2FZ39jZwkG5k7Dh2scLu4dDgMGONr7SBljNi9YKj
 95YtLuIFDVE/+SOibglvYY/pscq5Yz9iHVL77OVEYfRHyu4UMQ4puQVMpK+ilDjRs1
 Te0ez5kmoi9YHFbqms6SfjoKf72z0xZkRUlvn3lA=
Received: from smtp.vodafone.de (unknown [10.0.0.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by mr5.vodafonemail.de (Postfix) with ESMTPS id 4S49YP3QFTz1y7F;
 Mon,  9 Oct 2023 20:26:49 +0000 (UTC)
Received: from sappc2 (port-92-194-109-97.dynamic.as20676.net [92.194.109.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (No client certificate requested)
 by smtp.vodafone.de (Postfix) with ESMTPSA id 4S49Y74bN0zHpxd;
 Mon,  9 Oct 2023 20:26:32 +0000 (UTC)
From: Jens Schmidt <jschmidt4gnu@HIDDEN>
To: Hank Greenburg <hank.greenburg@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
 <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
Date: Mon, 09 Oct 2023 22:26:31 +0200
In-Reply-To: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
 (Hank Greenburg's message of "Sun, 12 Feb 2023 17:11:22 +0000")
Message-ID: <87bkd7fsp4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-purgate-type: clean
X-purgate: clean
X-purgate-size: 1591
X-purgate-ID: 155817::1696883205-60FF418D-BAA7DA78/0/0
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 61436
Cc: Eli Zaretskii <eliz@HIDDEN>, 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

found 61436 29.1.50
found 61436 30.0.50
thanks

Hank Greenburg <hank.greenburg@HIDDEN> writes:
> This works just fine until which-function-mode is
> activated. After that is activated I can scroll through maybe
> twice before it freezes.

I can confirm both on emacs-29 and on master.  (Actually, I was hoping
for another case of my bug#60768 wracking havoc, but this issue is
actually something different.  Even though `beginning-of-defun' is also
involved here through `which-function' calls ...)

A slightly easier to follow reproducer:

- Ensure package "hyperbole" is installed.  (Its only role in this issue
  seems to be a "background load generator", but I'm not 100% sure
  here.)

- Save Hank's Java source P1.java to ~/tmp.

- Save the following to ~/tmp/init.el:

------------------------- snip -------------------------
(require 'package)
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives
             '("gnu" . "https://elpa.gnu.org/packages/"))
(package-initialize)
(hyperbole-mode 1)
(which-function-mode 1)
------------------------- snip -------------------------

- Start emacs as

  ./src/emacs -Q -l ~/tmp/init.el ~/tmp/P1.java

  and wait for the compiler warnings to calm down.

- As Hank has recommended, forward/backward paragraph through P1.java.
  Rather soon it should hang.

And yes, it's which-function-mode which at some level inf-loops.  Maybe
the timer itself, maybe some upper layer.  If I'll find time I could try
digging into this.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 17:11:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 12:11:40 2023
Received: from localhost ([127.0.0.1]:46552 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pRFt4-00026Q-TX
	for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:11:40 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:32061)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <hank.greenburg@HIDDEN>) id 1pRFt1-00026A-R7
 for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:11:37 -0500
Date: Sun, 12 Feb 2023 17:11:22 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1676221888; x=1676481088;
 bh=3F1RnbAZohIQwupOfe75G3sZXoTt6EFjZRowlxCCkSA=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=zENi9lDv0dmX8xuEGaPVqZkyzPJxp1g1f6aK2vwnOtXN/5ws1woIRZ6rAcekJdCOu
 jM24zJZTfRQqua5Xzm2TfYocSNoLTPYY3YYIiTh+GEeD8fzuS8zEovuoT+RoVypxD0
 5PGnHNhwIL5hxIzC37rz8ouct6dko70XWotXYGPSusTkZqfON9w9CqoJJLwhj9RUiM
 kS2g++f62byVDJEOE4SNcEVlRGfBRyJO3V+GZObahDRrK3bA0j/Ul/UZV3i9B3HQWH
 5tZWlVHruNlMKzMi5MeLzpFZN2oRUEsv0N41NEjyAxvC6Qi22HK0ViY5yvYs872wll
 aYSkfvvJRwOfQ==
To: Eli Zaretskii <eliz@HIDDEN>
From: Hank Greenburg <hank.greenburg@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <JxMj7e6Mni2Tip2ai8YbbrHSHQq08CrNbMlphJT5bZ-WeD1gsgNYP8LaSzPp9jiU1G2N-QLBudWsaKVhhYT-1zuT0uwpaxJpW_P4sCIo5t4=@protonmail.com>
In-Reply-To: <835yc6hl0c.fsf@HIDDEN>
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 <835yc6hl0c.fsf@HIDDEN>
Feedback-ID: 10943770:user:proton
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436
Cc: 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.

--b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Sorry, by blocks I mean the org-mode code blocks that are under the headers=
 "Repos (Elpa and Melpa)" and "Hyperbole" in the init.org file I sent with =
my first email. I've attached it again here.

Underneath those headers is an org-mode source block, if you go inside of t=
he block and run "org-babel-execute-src-block" then say yes when it asks if=
 you want to run the code. If you do that for Repos and Hyperbole blocks th=
en follow the steps below.


Go to the Java file. Hold CTRL + Up/Down Arrow keys to quickly move through=
 the file.

This works just fine until which-function-mode is activated. After that is =
activated I can scroll through maybe twice before it freezes.

It almost always happens after hitting the end of the file, and the first j=
ump up after that. Or at least it has happened 4/5 times by doing that. The=
 other time I avoided the end of the file to see if that was the trigger an=
d it still froze.



------- Original Message -------
On Sunday, February 12th, 2023 at 11:05 AM, Eli Zaretskii <eliz@HIDDEN> wr=
ote:


>=20
>=20
> > Date: Sun, 12 Feb 2023 16:52:51 +0000
>=20
> > From: Hank Greenburg hank.greenburg@HIDDEN
> > Cc: 61436 <at> debbugs.gnu.org
> >=20
> > Launch with emacs -Q
> >=20
> > org-babel-execute-src-block for the Repos block and Hyperbole. The Hype=
rbole block won't work unless you do the Repos block first.
>=20
>=20
> Sorry, I don't understand: what is "the Repos block", and what is the
> "Hyperbole block"? What do I need to do after starting "emacs -Q" to
> reproduce what you describe above? which commands to type?
--b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww
Content-Type: text/org; name=init.org
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=init.org

CiogUmVwb3MgKEVscGEgYW5kIE1lbHBhKQojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGFj
a2FnZSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkgICAgICcoIm1lbHBhIiAuICJo
dHRwczovL21lbHBhLm9yZy9wYWNrYWdlcy8iKSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hp
dmVzCgkgICAgICcoImdudSIgLiAiaHR0cHM6Ly9lbHBhLmdudS5vcmcvcGFja2FnZXMvIikpCihw
YWNrYWdlLWluaXRpYWxpemUpCiMrRU5EX1NSQwoKKiBEaXJ2aXNoCiMrQkVHSU5fU1JDIGVsaXNw
Cih1c2UtcGFja2FnZSBkaXJ2aXNoCiAgOmluaXQKICAoZGlydmlzaC1vdmVycmlkZS1kaXJlZC1t
b2RlKQogIDpjdXN0b20KICA7OyBHbyBiYWNrIGhvbWU/IEp1c3QgcHJlc3MgYGJoJwogIChkaXJ2
aXNoLWJvb2ttYXJrLWVudHJpZXMKICAgJygoImgiICJ+LyIgICAgICAgICAgICAgICAgICAgICAg
ICAgICJIb21lIikKICAgICAoImQiICJ+L0Rvd25sb2Fkcy8iICAgICAgICAgICAgICAgICJEb3du
bG9hZHMiKQogICAgICgibSIgIi9tbnQvIiAgICAgICAgICAgICAgICAgICAgICAgIkRyaXZlcyIp
CiAgICAgKCJ0IiAifi8ubG9jYWwvc2hhcmUvVHJhc2gvZmlsZXMvIiAiVHJhc2hDYW4iKSkpCiAg
OzsgKGRpcnZpc2gtaGVhZGVyLWxpbmUtZm9ybWF0ICcoOmxlZnQgKHBhdGgpIDpyaWdodCAoZnJl
ZS1zcGFjZSkpKQogIChkaXJ2aXNoLW1vZGUtbGluZS1mb3JtYXQgOyBpdCdzIG9rIHRvIHBsYWNl
IHN0cmluZyBpbnNpZGUKICAgJyg6bGVmdCAoc29ydCBmaWxlLXRpbWUgIiAiIGZpbGUtc2l6ZSBz
eW1saW5rKSA6cmlnaHQgKG9taXQgeWFuayBpbmRleCkpKQogIDs7IERvbid0IHdvcnJ5LCBEaXJ2
aXNoIGlzIHN0aWxsIHBlcmZvcm1hbnQgZXZlbiB5b3UgZW5hYmxlIGFsbCB0aGVzZSBhdHRyaWJ1
dGVzCiAgKGRpcnZpc2gtYXR0cmlidXRlcyAnKGFsbC10aGUtaWNvbnMgZmlsZS1zaXplIGNvbGxh
cHNlIHN1YnRyZWUtc3RhdGUgdmMtc3RhdGUgZ2l0LW1zZykpCiAgOzsgTWF5YmUgdGhlIGljb25z
IGFyZSB0b28gYmlnIHRvIHlvdXIgZXllcwogIDs7IChkaXJ2aXNoLWFsbC10aGUtaWNvbnMtaGVp
Z2h0IDAuOCkKICA7OyBJbiBjYXNlIHlvdSB3YW50IHRoZSBkZXRhaWxzIGF0IHN0YXJ0dXAgbGlr
ZSBgZGlyZWQnCiAgOzsgKGRpcnZpc2gtaGlkZS1kZXRhaWxzIG5pbCkKICA6Y29uZmlnCiAgKGRp
cnZpc2gtcGVlay1tb2RlKQogIDs7IERpcmVkIG9wdGlvbnMgYXJlIHJlc3BlY3RlZCBleGNlcHQg
YSBmZXcgZXhjZXB0aW9ucywgc2VlICpJbiByZWxhdGlvbiB0byBEaXJlZCogc2VjdGlvbiBhYm92
ZQogIChzZXRxIGRpcmVkLWR3aW0tdGFyZ2V0IHQpCiAgKHNldHEgZGVsZXRlLWJ5LW1vdmluZy10
by10cmFzaCB0KQogIDs7IEVuYWJsZSBtb3VzZSBkcmFnLWFuZC1kcm9wIGZpbGVzIHRvIG90aGVy
IGFwcGxpY2F0aW9ucwogIChzZXRxIGRpcmVkLW1vdXNlLWRyYWctZmlsZXMgdCkgICAgICAgICAg
ICAgICAgICAgOyBhZGRlZCBpbiBFbWFjcyAyOQogIChzZXRxIG1vdXNlLWRyYWctYW5kLWRyb3At
cmVnaW9uLWNyb3NzLXByb2dyYW0gdCkgOyBhZGRlZCBpbiBFbWFjcyAyOQogIDs7IE1ha2Ugc3Vy
ZSB0byB1c2UgdGhlIGxvbmcgbmFtZSBvZiBmbGFncyB3aGVuIGV4aXN0cwogIDs7IGVnLiB1c2Ug
Ii0tYWxtb3N0LWFsbCIgaW5zdGVhZCBvZiAiLUEiCiAgOzsgT3RoZXJ3aXNlIHNvbWUgY29tbWFu
ZHMgd29uJ3Qgd29yayBwcm9wZXJseQogIChzZXRxIGRpcmVkLWxpc3Rpbmctc3dpdGNoZXMKICAg
ICAgICAiLWwgLS1hbG1vc3QtYWxsIC0taHVtYW4tcmVhZGFibGUgLS10aW1lLXN0eWxlPWxvbmct
aXNvIC0tZ3JvdXAtZGlyZWN0b3JpZXMtZmlyc3QgLS1uby1ncm91cCIpCiAgOmJpbmQKICA7OyBC
aW5kIGBkaXJ2aXNofGRpcnZpc2gtc2lkZXxkaXJ2aXNoLWR3aW0nIGFzIHlvdSBzZWUgZml0CiAg
KCgiQy1jIGYiIC4gZGlydmlzaC1mZCkKICAgOm1hcCBkaXJlZC1tb2RlLW1hcCA7IERpcnZpc2gg
cmVzcGVjdHMgYWxsIHRoZSBrZXliaW5kaW5ncyBpbiB0aGlzIG1hcAogICAoIjxwcmlvcj4iIC4g
ZGlyZWQtdXAtZGlyZWN0b3J5KQogICA7OyAoImoiIC4gZGlyZWQtbmV4dC1saW5lKQogICA7OyAo
ImsiIC4gZGlyZWQtcHJldmlvdXMtbGluZSkKICAgOzsgKCJsIiAuIGRpcmVkLWZpbmQtZmlsZSkK
ICAgOzsgKCJpIiAuIHdkaXJlZC1jaGFuZ2UtdG8td2RpcmVkLW1vZGUpCiAgIDs7ICgiLiIgLiBk
aXJlZC1vbWl0LW1vZGUpCiAgICgiYiIgICAuIGRpcnZpc2gtYm9va21hcmstanVtcCkKICAgKCJm
IiAgIC4gZGlydmlzaC1maWxlLWluZm8tbWVudSkKICAgKCJ5IiAgIC4gZGlydmlzaC15YW5rLW1l
bnUpCiAgICgiTiIgICAuIGRpcnZpc2gtbmFycm93KQogICAoIl4iICAgLiBkaXJ2aXNoLWhpc3Rv
cnktbGFzdCkKICAgKCJzIiAgIC4gZGlydmlzaC1xdWlja3NvcnQpIDsgcmVtYXBwZWQgYGRpcmVk
LXNvcnQtdG9nZ2xlLW9yLWVkaXQnCiAgICgiPyIgICAuIGRpcnZpc2gtZGlzcGF0Y2gpICA7IHJl
bWFwcGVkIGBkaXJlZC1zdW1tYXJ5JwogICAoIlRBQiIgLiBkaXJ2aXNoLXN1YnRyZWUtdG9nZ2xl
KQogICAoIlNQQyIgLiBkaXJ2aXNoLWhpc3RvcnktanVtcCkKICAgKCJNLW4iIC4gZGlydmlzaC1o
aXN0b3J5LWdvLWZvcndhcmQpCiAgICgiTS1wIiAuIGRpcnZpc2gtaGlzdG9yeS1nby1iYWNrd2Fy
ZCkKICAgKCJNLWwiIC4gZGlydmlzaC1scy1zd2l0Y2hlcy1tZW51KQogICAoIk0tbSIgLiBkaXJ2
aXNoLW1hcmstbWVudSkKICAgKCJNLWYiIC4gZGlydmlzaC10b2dnbGUtZnVsbHNjcmVlbikKICAg
KCJNLXMiIC4gZGlydmlzaC1zZXR1cC1tZW51KQogICAoIk0tZSIgLiBkaXJ2aXNoLWVtZXJnZS1t
ZW51KQogICAoIk0taiIgLiBkaXJ2aXNoLWZkLWp1bXApKSkKIytFTkRfU1JDCgoqIFlhc25pcHBl
dApBbHNvIG1ha2Ugc3VyZSB0byBsb29rdXAgeWFzbmlwcGV0LXNuaXBwZXRzIHdoaWNoIGhhcyBh
IGdyZWF0IGNvbGxlY3Rpb24gb2Ygc25pcHBldHMKaHR0cHM6Ly9naXRodWIuY29tL0FuZHJlYUNy
b3R0aS95YXNuaXBwZXQtc25pcHBldHMKCml2eS15YXNuaXBwZXQgd2lsbCBzaG93IHlvdSB0aGUg
YXZhaWxhYmxlIHNuaXBwZXRzIGZvciB0aGUgY3VycmVudCBtYWpvciBtb2RlIHlvdSBhcmUgaW4K
YW5kIHdpbGwgaW5zZXJ0IHRoZW0uCiMrQkVHSU5fU1JDIGVsaXNwCihyZXF1aXJlICd5YXNuaXBw
ZXQpCih5YXMtZ2xvYmFsLW1vZGUgMSkKKHNldHEgeWFzLWluZGVudC1saW5lIG5pbCkKKGdsb2Jh
bC1zZXQta2V5IChrYmQgIkMtYyBpIikgJ2l2eS15YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBPcmcg
Um9hbQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2Ugb3JnLXJvYW0KCSAgICAgOmVuc3Vy
ZSB0CgkgICAgIDpjdXN0b20KCSAgICAgKG9yZy1yb2FtLWRpcmVjdG9yeSAoZmlsZS10cnVlbmFt
ZSAifi9Eb2N1bWVudHMvcm9hbS1ub3RlcyIpKQoJICAgICA6YmluZCAoKCJDLWMgbiBsIiAuIG9y
Zy1yb2FtLWJ1ZmZlci10b2dnbGUpCgkJICAgICgiQy1jIG4gZiIgLiBvcmctcm9hbS1ub2RlLWZp
bmQpCgkJICAgICgiQy1jIG4gZyIgLiBvcmctcm9hbS1ncmFwaCkKCQkgICAgKCJDLWMgbiBpIiAu
IG9yZy1yb2FtLW5vZGUtaW5zZXJ0KQoJCSAgICAoIkMtYyBuIGMiIC4gb3JnLXJvYW0tY2FwdHVy
ZSkKCQkgICAgOztEYWlseQoJCSAgICAoIkMtYyBuIGoiIC4gb3JnLXJvYW0tZGFpbGllcy1jYXB0
dXJlLXRvZGF5KSkKCSAgICAgOmNvbmZpZwoJICAgICAoc2V0cSBvcmctcm9hbS1ub2RlLWRpc3Bs
YXktdGVtcGxhdGUgKGNvbmNhdCAiJHt0aXRsZToqfSAiIChwcm9wZXJ0aXplICIke3RhZ3M6MTB9
IiAnZmFjZSAnb3JnLXRhZykpKQoJICAgICAob3JnLXJvYW0tZGItYXV0b3N5bmMtbW9kZSkKCSAg
ICAgKHJlcXVpcmUgJ29yZy1yb2FtLXByb3RvY29sKSkKIytFTkRfU1JDCgoqIE1pc2NlbGxhbmVv
dXMgT3JnIFN0dWZmCiMrQkVHSU5fU1JDIGVsaXNwCihzZXRxIG9yZy1zcmMtcHJlc2VydmUtaW5k
ZW50YXRpb24gdCkKCjsgb3JnLWZyYWd0b2cgbWFrZXMgaXQgc28geW91IGNhbiBhdXRvbWF0aWNh
bGx5IHByZXZpZXcgTGFUZVggd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcKKGFkZC1ob29r
ICdvcmctbW9kZS1ob29rICdvcmctZnJhZ3RvZy1tb2RlKQo7KHBsaXN0LXB1dCBvcmctZm9ybWF0
LWxhdGV4LW9wdGlvbnMgOnNjYWxlIDIpCjsoYWZ0ZXIhIG9yZyAocGxpc3QtcHV0IG9yZy1mb3Jt
YXQtbGF0ZXgtb3B0aW9ucyA6c2NhbGUgMS41KSkKKGZvbnQtbG9jay1hZGQta2V5d29yZHMgJ29y
Zy1tb2RlCgkJCScoKCJeICpcXChbLV1cXCkgIgoJCQkgICAoMCAocHJvZzEgKCkgKGNvbXBvc2Ut
cmVnaW9uIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSAi4oCiIikpKSkpKQoocmVx
dWlyZSAnb3JnLXN1cGVyc3RhcikKKGFkZC1ob29rICdvcmctbW9kZS1ob29rIChsYW1iZGEgKCkg
KG9yZy1zdXBlcnN0YXItbW9kZSAxKSkpCjs7aGlkZXMgbWFya3VwIGVtcGhhc2lzIGxpa2UgKmRk
Kgooc2V0cSBvcmctaGlkZS1lbXBoYXNpcy1tYXJrZXJzIHQpCjs7IEFnZW5kYQooc2V0cSBvcmct
YWdlbmRhLWZpbGVzICJ+L0RvY3VtZW50cy9BZ2VuZGEvYWdlbmRhLm9yZyIpCiMrRU5EX1NSQwoK
KiBGbHlzcGVsbAojK0JFR0lOX1NSQyBlbGlzcAooZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICd0
ZXh0LW1vZGUtaG9vayAnZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICdwcm9nLW1vZGUtaG9vayAn
Zmx5c3BlbGwtcHJvZy1tb2RlKQojK0VORF9TUkMKKiBIeXBlcmJvbGUKIytCRUdJTl9TUkMgZWxp
c3AKKGh5cGVyYm9sZS1tb2RlIDEpCiMrRU5EX1NSQwoKKiBFbGZlZWQKIytCRUdJTl9TUkMgZWxp
c3AKKHNldHEgZWxmZWVkLWZlZWRzCiAgICAgICcoKCJodHRwczovL29vb2hzcG9va3kubGlic3lu
LmNvbS9yc3MiIEFkYW1Lbm94KQoJKCJodHRwczovL2dvZG90ZW5naW5lLm9yZy9yc3MueG1sIiBH
b2RvdCkKCSgiaHR0cHM6Ly9zdGFja2FidXNlLmNvbS9yc3MvIiBTdGFja0FidXNlKQoJKCJodHRw
czovL29wZW5zb3VyY2UuY29tL2ZlZWQiIE9wZW5Tb3VyY2UpCgkoImh0dHBzOi8vZGF2ZXJ1cGVy
dC5jb20vYXRvbS54bWwiIERhdmVSdXBlcnQpCgkoImh0dHBzOi8vZmVlZC5wb2RiZWFuLmNvbS9t
YXRlaXRzYXN1cmV0aGluZy9mZWVkLnhtbCIgV29sZmUpCgkoImh0dHBzOi8vd3d3Lm9tbnljb250
ZW50LmNvbS9kL3BsYXlsaXN0L2U3M2M5OThlLTZlNjAtNDMyZi04NjEwLWFlMjEwMTQwYzViMS8w
YzZmYzk0NC1lYWE1LTQwMjItOGU3Ny1hZTMzMDAzNDZkNzYvNDVhNzM1YjYtZTFiOC00OWY5LWE1
OTUtYWUzMzAwMzQ2ZDg0L3BvZGNhc3QucnNzIiBTY3J1YnMpKSkKCihyZXF1aXJlICdlbGZlZWQt
b3JnKQoocmVxdWlyZSAnZWxmZWVkLWdvb2RpZXMpCihlbGZlZWQtZ29vZGllcy9zZXR1cCkKCihn
bG9iYWwtc2V0LWtleSAoa2JkICJDLXggdyIpICdlbGZlZWQpCihlbGZlZWQtb3JnKQooc2V0cSBy
bWgtZWxmZWVkLW9yZy1maWxlcyAobGlzdCAifi8uZW1hY3MuZC9lbGZlZWQtZGFzaGJvYXJkLm9y
ZyIpKQoKKHVzZS1wYWNrYWdlIGVsZmVlZC1kYXNoYm9hcmQKICA6ZW5zdXJlIHQKICA6Y29uZmln
CiAgKHNldHEgZWxmZWVkLWRhc2hib2FyZC1maWxlICJ+L2VsZmVlZC1kYXNoYm9hcmQub3JnIikK
ICA7OyB1cGRhdGUgZmVlZCBjb3VudHMgb24gZWxmZWVkLXF1aXQKICAoYWR2aWNlLWFkZCAnZWxm
ZWVkLXNlYXJjaC1xdWl0LXdpbmRvdyA6YWZ0ZXIgIydlbGZlZWQtZGFzaGJvYXJkLXVwZGF0ZS1s
aW5rcykpCgo7OzsgZyA9IHJlZnJlc2ggdmlldwo7OzsgRyA9IGZldGNoIGZlZWQgdXBkYXRlcwo7
OzsgcyA9IFVwZGF0ZSBzZWFyY2ggZmlsdGVyCjs7OyBjID0gY2xlYXIgc2VhcmNoIGZpbHRlcgoj
K0VORF9TUkMKCiogRU1NUwojK0JFR0lOX1NSQyBlbGlzcAo7IGh0dHBzOi8vd3d3LmRyYWtldG8u
ZGUvc29mdHdhcmUvZW1hY3MtdGlwcHMjZWxmZWVkLWVtbXMKKHVzZS1wYWNrYWdlIGVtbXMKICA6
ZW5zdXJlIHQKICA6Y29uZmlnKQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy14IHAiKSAnaXZ5LWVt
bXMpCihyZXF1aXJlICdlbW1zLXNldHVwKQoocmVxdWlyZSAnZW1tcy1wbGF5ZXItbXBsYXllcikK
KGVtbXMtYWxsKQooc2V0cSBlbW1zLXBsYXllci1saXN0ICcoCgkJCSBlbW1zLXBsYXllci1tcGcz
MjEKCQkJIGVtbXMtcGxheWVyLW9nZzEyMwoJCQkgZW1tcy1wbGF5ZXItbXBsYXllcikpCihkZWZ1
biBlbW1zLXBsYXllci1tcGxheWVyLXZvbHVtZShhbW91bnQpCiAgKHByb2Nlc3Mtc2VuZC1zdHJp
bmcKICAgZW1tcy1wbGF5ZXItc2ltcGxlLXByb2Nlc3MtbmFtZQogICAoZm9ybWF0ICJ2b2x1bWUg
JWRcbiIgYW1vdW50KSkpCihzZXRxIGVtbXMtdm9sdW1lLWNoYW5nZS1mdW5jdGlvbiAnZW1tcy1w
bGF5ZXItbXBsYXllci12b2x1bWUpCihlbW1zLWRlZmF1bHQtcGxheWVycykKOyhlbW1zLWFkZC1k
aXJlY3RvcnktdHJlZSAifi9NdXNpYy8iKQo7KGVtbXMtYWRkLWRpcmVjdG9yeS10cmVlICJ+L0Rv
d25sb2Fkcy8iKQojK0VORF9TUkMKCiogTWVvdyAoTW9kYWwgRWRpdGluZykKIytCRUdJTl9TUkMg
ZWxpc3AKKGRlZnVuIG1lb3ctc2V0dXAgKCkKICAoc2V0cSBtZW93LWNoZWF0c2hlZXQtbGF5b3V0
IG1lb3ctY2hlYXRzaGVldC1sYXlvdXQtcXdlcnR5KQogIChtZW93LW1vdGlvbi1vdmVyd3JpdGUt
ZGVmaW5lLWtleQogICAnKCJrIiAuIG1lb3ctbmV4dCkKICAgJygiaiIgLiBtZW93LXByZXYpCiAg
ICcoIjxlc2NhcGU+IiAuIGlnbm9yZSkpCiAgKG1lb3ctbGVhZGVyLWRlZmluZS1rZXkKICAgOzsg
U1BDIGovayB3aWxsIHJ1biB0aGUgb3JpZ2luYWwgY29tbWFuZCBpbiBNT1RJT04gc3RhdGUuCiAg
ICcoImoiIC4gIkgtaiIpCiAgICcoImsiIC4gIkgtayIpCiAgIDs7IFVzZSBTUEMgKDAtOSkgZm9y
IGRpZ2l0IGFyZ3VtZW50cy4KICAgJygiMSIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIy
IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjMiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkK
ICAgJygiNCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCI1IiAuIG1lb3ctZGlnaXQtYXJn
dW1lbnQpCiAgICcoIjYiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiNyIgLiBtZW93LWRp
Z2l0LWFyZ3VtZW50KQogICAnKCI4IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjkiIC4g
bWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiMCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAn
KCIvIiAuIG1lb3cta2V5cGFkLWRlc2NyaWJlLWtleSkKICAgJygiPyIgLiBtZW93LWNoZWF0c2hl
ZXQpKQogIChtZW93LW5vcm1hbC1kZWZpbmUta2V5CiAgICcoIjAiIC4gbWVvdy1leHBhbmQtMCkK
ICAgJygiOSIgLiBtZW93LWV4cGFuZC05KQogICAnKCI4IiAuIG1lb3ctZXhwYW5kLTgpCiAgICco
IjciIC4gbWVvdy1leHBhbmQtNykKICAgJygiNiIgLiBtZW93LWV4cGFuZC02KQogICAnKCI1IiAu
IG1lb3ctZXhwYW5kLTUpCiAgICcoIjQiIC4gbWVvdy1leHBhbmQtNCkKICAgJygiMyIgLiBtZW93
LWV4cGFuZC0zKQogICAnKCIyIiAuIG1lb3ctZXhwYW5kLTIpCiAgICcoIjEiIC4gbWVvdy1leHBh
bmQtMSkKICAgJygiLSIgLiBuZWdhdGl2ZS1hcmd1bWVudCkKICAgJygiOyIgLiBtZW93LXJldmVy
c2UpCiAgICcoIiwiIC4gbWVvdy1pbm5lci1vZi10aGluZykKICAgJygiLiIgLiBtZW93LWJvdW5k
cy1vZi10aGluZykKICAgJygiWyIgLiBtZW93LWJlZ2lubmluZy1vZi10aGluZykKICAgJygiXSIg
LiBtZW93LWVuZC1vZi10aGluZykKICAgJygiYSIgLiBtZW93LWFwcGVuZCkKICAgJygiQSIgLiBt
ZW93LW9wZW4tYmVsb3cpCiAgICcoImIiIC4gbWVvdy1iYWNrLXdvcmQpCiAgICcoIkIiIC4gbWVv
dy1iYWNrLXN5bWJvbCkKICAgJygiYyIgLiBtZW93LWNoYW5nZSkKICAgJygiZCIgLiBtZW93LWRl
bGV0ZSkKICAgJygiRCIgLiBtZW93LWJhY2t3YXJkLWRlbGV0ZSkKICAgJygiZSIgLiBtZW93LW5l
eHQtd29yZCkKICAgJygiRSIgLiBtZW93LW5leHQtc3ltYm9sKQogICAnKCJmIiAuIG1lb3ctZmlu
ZCkKICAgJygiZyIgLiBtZW93LWNhbmNlbC1zZWxlY3Rpb24pCiAgICcoIkciIC4gbWVvdy1ncmFi
KQogICAnKCJoIiAuIG1lb3ctbGVmdCkKICAgJygiSCIgLiBtZW93LWxlZnQtZXhwYW5kKQogICAn
KCJpIiAuIG1lb3ctaW5zZXJ0KQogICAnKCJJIiAuIG1lb3ctb3Blbi1hYm92ZSkKICAgJygiaiIg
LiBtZW93LW5leHQpCiAgICcoIkoiIC4gbWVvdy1uZXh0LWV4cGFuZCkKICAgJygiayIgLiBtZW93
LXByZXYpCiAgICcoIksiIC4gbWVvdy1wcmV2LWV4cGFuZCkKICAgJygibCIgLiBtZW93LXJpZ2h0
KQogICAnKCJMIiAuIG1lb3ctcmlnaHQtZXhwYW5kKQogICAnKCJtIiAuIG1lb3ctam9pbikKICAg
JygibiIgLiBtZW93LXNlYXJjaCkKICAgJygibyIgLiBtZW93LWJsb2NrKQogICAnKCJPIiAuIG1l
b3ctdG8tYmxvY2spCiAgICcoInAiIC4gbWVvdy15YW5rKQogICAnKCJxIiAuIG1lb3ctcXVpdCkK
ICAgJygiUSIgLiBtZW93LWdvdG8tbGluZSkKICAgJygiciIgLiBtZW93LXJlcGxhY2UpCiAgICco
IlIiIC4gbWVvdy1zd2FwLWdyYWIpCiAgICcoInMiIC4gbWVvdy1raWxsKQogICAnKCJ0IiAuIG1l
b3ctdGlsbCkKICAgJygidSIgLiBtZW93LXVuZG8pCiAgICcoIlUiIC4gbWVvdy11bmRvLWluLXNl
bGVjdGlvbikKICAgJygidiIgLiBtZW93LXZpc2l0KQogICAnKCJ3IiAuIG1lb3ctbWFyay13b3Jk
KQogICAnKCJXIiAuIG1lb3ctbWFyay1zeW1ib2wpCiAgICcoIngiIC4gbWVvdy1saW5lKQogICAn
KCJYIiAuIG1lb3ctZ290by1saW5lKQogICAnKCJ5IiAuIG1lb3ctc2F2ZSkKICAgJygiWSIgLiBt
ZW93LXN5bmMtZ3JhYikKICAgJygieiIgLiBtZW93LXBvcC1zZWxlY3Rpb24pCiAgICcoIiciIC4g
cmVwZWF0KQogICAnKCI8ZXNjYXBlPiIgLiBpZ25vcmUpKSkKCihzZXRxIG1lb3ctY3Vyc29yLXR5
cGUtbm9ybWFsICdoYmFyKQooc2V0cSBtZW93LWN1cnNvci10eXBlLWluc2VydCAnYm94KQoKKHJl
cXVpcmUgJ21lb3cpCihtZW93LXNldHVwKQoobWVvdy1nbG9iYWwtbW9kZSAxKQojK0VORF9TUkMK
KiA6VE9ETzogU2V0dXAgTVU0RQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
bXU0ZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsoYWRkLXRvLWxpc3QgJ2xv
YWQtcGF0aCAiL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9zaXRlLWxpc3AvbXU0ZSIpCjsocmVxdWly
ZSAnbXU0ZSkKCjsobXU0ZS1hbGVydC1zZXQtZGVmYXVsdC1zdHlsZSAnbGlibm90aWZ5KQo7KGFk
ZC1ob29rICdhZnRlci1pbml0LWhvb2sgJ211NGUtYWxlcnQtZW5hYmxlLW5vdGlmaWNhdGlvbnMp
CjsobXU0ZS1hbGVydC1ub3RpZmljYXRpb25zKQojK0VORF9TUkMKCiogUmFuZG9tIFN0dWZmClNo
aWZ0IGFuZCBhcnJvdyBrZXkgY2hhbmdlcyB3aW5kb3dzCiMrQkVHSU5fU1JDIGVsaXNwCih3aGVu
IChmYm91bmRwICd3aW5kbW92ZS1kZWZhdWx0LWtleWJpbmRpbmdzKQogICh3aW5kbW92ZS1kZWZh
dWx0LWtleWJpbmRpbmdzKSkKIytFTkRfU1JDCgpLaWxscyB0aGUgc2NyYXRjaCBidWZmZXIgb24g
bGF1bmNoIGFuZCBjaGFuZ2VzIGEgZmV3IFVJIHRoaW5ncy4KIytCRUdJTl9TUkMgZWxpc3AKKGtp
bGwtYnVmZmVyICIqc2NyYXRjaCoiKQo7KHNldHEgaW5oaWJpdC1zcGxhc2gtc2NyZWVuIHQpCihz
ZXRxIGluaGliaXQtc3RhcnR1cC1zY3JlZW4gdCkKKHNjcm9sbC1iYXItbW9kZSAtMSkKKG1lbnUt
YmFyLW1vZGUgLTEpCih0b29sLWJhci1tb2RlIC0xKQooZGlzcGxheS10aW1lLW1vZGUgdCkKOztH
ZXR0aW5nIHJpZCBvZiBsaW5lIHdyYXBwaW5nLgooc2V0LWRlZmF1bHQgJ3RydW5jYXRlLWxpbmVz
IHQpCjs7Ozs7Ozs7Ozs7Ozs7OyB0dXJuIG9mZiB0aGUgYmVlcGluZyA7Ozs7Ozs7Ozs7Owooc2V0
cSB2aXNpYmxlLWJlbGwgMSkKCjs7KGdsb2JhbC1saW51bS1tb2RlIHQpCjs7IHJlcGxhY2luZyBs
aW51bS1tb2RlIHdpdGggZGlzcGxheS1saW5lLW1vZGUgYXMgaXQgZm9sbG93cyB0aGUgdGhlbWUK
KGdsb2JhbC1kaXNwbGF5LWxpbmUtbnVtYmVycy1tb2RlIHQpCihnbG9iYWwtc2V0LWtleSAoa2Jk
ICJDLXggaSIpIChsYW1iZGEgKCkgKGludGVyYWN0aXZlKShmaW5kLWZpbGUgIn4vLmVtYWNzLmQv
aW5pdC5vcmciKSkpCiMrRU5EX1NSQwoKKiBEaWFyeQojK0JFR0lOX1NSQyBlbGlzcAo7ZGVza3Rv
cCBub3RpZmljYXRpb25zCihyZXF1aXJlICdub3RpZmljYXRpb25zKQoKKGRlZmN1c3RvbSBhcHB0
LW5vdGlmaWNhdGlvbi1idXMgOnNlc3Npb24KICAiZGJ1cyBub3RpZmljYXRpb25zIgogIDp2ZXJz
aW9uICIyOS4wNSIKICA6Z3JvdXAgJ2FwcHQtbm90aWZpY2F0aW9uCiAgOnR5cGUgJyhjaG9pY2Ug
KGNvbnN0IDp0YWcgIlNlc3Npb24gYnVzIiA6c2Vzc2lvbikgc3RyaW5nKSkKCihkZWZ1biB1c2Vy
L2FwcHQtZGlzcGxheSAobWluLXRvLWFwcCBuZXctdGltZSBtc2cpCiAgInNlbmRzIG5vdGlmaWNh
dGlvbnMiCiAgKG5vdGlmaWNhdGlvbnMtbm90aWZ5IDpidXMgYXBwdC1ub3RpZmljYXRpb24tYnVz
CgkJCTp0aXRsZSAoZm9ybWF0ICJBcHBvaW50bWVudCBpbiAlcyBtaW51dGVzIiBtaW4tdG8tYXBw
KQoJCQk6Ym9keSAoZm9ybWF0ICIlcyIgbXNnKQoJCQk6cmVwbGFjZXMtaWQgbmlsCgkJCTphcHAt
aWNvbiBub3RpZmljYXRpb25zLWFwcGxpY2F0aW9uLWljb24KCQkJOnRpbWVvdXQgODAwMAoJCQk6
ZGVza3RvcC1lbnRyeSAiZGlhcnkiKSkKCihzZXRxIGFwcHQtZGlzcC13aW5kb3ctZnVuY3Rpb24g
KGZ1bmN0aW9uIHVzZXIvYXBwdC1kaXNwbGF5KSkKCihzZXRxLWRlZmF1bHQgZGlhcnktZmlsZSAi
fi8uZW1hY3MuZC9kaWFyeSIKCSAgICAgIGFwcHQtZGlzcGxheS1mb3JtYXQgJ3dpbmRvdwoJICAg
ICAgYXBwdC1kaXNwbGF5LWR1cmF0aW9uIDYwCgkgICAgICBhcHB0LWF1ZGlibGUgdAoJICAgICAg
YXBwdC1kaXNwbGF5LWludGVydmFsIDE1CgkgICAgICBhcHB0LW1lc3NhZ2Utd2FybmluZy10aW1l
IDE1CgkgICAgICBkaXNwbGF5LXRpbWUtMjRoci1mb3JtYXQgdAoJICAgICAgZGlzcGxheS10aW1l
LWRheS1hbmQtZGF0ZSB0KQoKKGFwcHQtYWN0aXZhdGUgdCkKCjtpbXBvcnRzIGljYWwgZmlsZSwg
dGFrZXMgYSBsb25nIHRpbWUgc2luY2UgbXkgaWNhbCBpcyBodWdlIGZyb20gb2xkIGV2ZW50cwo7
KGljYWxlbmRhci1pbXBvcnQtZmlsZSAifi8ubG9jYWwvc2hhcmUvZXZvbHV0aW9uL2NhbGVuZGFy
L3N5c3RlbS9jYWxlbmRhci5pY3MiCjsJCSAgICAgICAifi8uZW1hY3MuZC9kaWFyeSIpCgojK0VO
RF9TUkMKCiogRW1vamlmeQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7ZGlzcGxheXMgZW1vamlzIGZv
ciB3ZWF0aGVyCihlbW9qaWZ5LW1vZGUgMSkKKGVtb2ppZnktbW9kZS1saW5lLW1vZGUgMSkKIytF
TkRfU1JDCiogRGFzaGJvYXJkCiMrQkVHSU5fU1JDIGVsaXNwCjs7IFNldCB0aGUgdGl0bGUKKHJl
cXVpcmUgJ2Rhc2hib2FyZCkKKHNldHEgZGFzaGJvYXJkLXdlZWstYWdlbmRhIHQpCihzZXRxIGRh
c2hib2FyZC1iYW5uZXItbG9nby10aXRsZSAiSSdtIHVzaW5nIExpbnV4LiBBIGxpYnJhcnkgdGhh
dCBlbWFjcyB1c2VzIHRvIGNvbW11bmljYXRlIHdpdGggSW50ZWwgaGFyZHdhcmUuIikgCjsoc2V0
cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vRG93bmxvYWRzL3Jzel9lbWFjcy1jb2xvcmZ1
bC5wbmciKQooc2V0cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vUGljdHVyZXMvZW1hY3Mt
Y29sb3JmdWwucG5nIikKOyhzZXRxIGRhc2hib2FyZC1zdGFydHVwLWJhbm5lciAnb2ZmaWNpYWwp
CihzZXRxIGRhc2hib2FyZC1zZXQtaGVhZGluZy1pY29ucyB0KQooc2V0cSBkYXNoYm9hcmQtc2V0
LWZpbGUtaWNvbnMgdCkKKHNldHEgZGFzaGJvYXJkLXNldC1uYXZpZ2F0b3IgdCkKKHNldHEgZGFz
aGJvYXJkLWNlbnRlci1jb250ZW50IHQpCjs7IFRvIGRpc2FibGUgc2hvcnRjdXQgImp1bXAiIGlu
ZGljYXRvcnMgZm9yIGVhY2ggc2VjdGlvbiwgc2V0CihzZXRxIGRhc2hib2FyZC1zaG93LXNob3J0
Y3V0cyBuaWwpCgooZGFzaGJvYXJkLXNldHVwLXN0YXJ0dXAtaG9vaykKCihhdXRvLWltYWdlLWZp
bGUtbW9kZSAxKQoKKHVzZS1wYWNrYWdlIHBhZ2UtYnJlYWstbGluZXMKICA6ZW5zdXJlIHQKICA6
ZGVtYW5kIHQpCgooZ2xvYmFsLXBhZ2UtYnJlYWstbGluZXMtbW9kZSAxKQojK0VORF9TUkMKCiog
U1ZHIFRhZwojK0JFR0lOX1NSQyBlbGlzcAooZGVmY29uc3QgZGF0ZS1yZSAiWzAtOV1cXHs0XFx9
LVswLTldXFx7MlxcfS1bMC05XVxcezJcXH0iKQooZGVmY29uc3QgdGltZS1yZSAiWzAtOV1cXHsy
XFx9OlswLTldXFx7MlxcfSIpCihkZWZjb25zdCBkYXktcmUgIltBLVphLXpdXFx7M1xcfSIpCihk
ZWZjb25zdCBkYXktdGltZS1yZSAoZm9ybWF0ICJcXCglc1xcKT8gP1xcKCVzXFwpPyIgZGF5LXJl
IHRpbWUtcmUpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1wZXJjZW50ICh2YWx1ZSkKICAoc3ZnLWlt
YWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChzdmctbGliLXByb2dyZXNzLWJhciAo
LyAoc3RyaW5nLXRvLW51bWJlciB2YWx1ZSkgMTAwLjApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmlsIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5nIDIgOndp
ZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyAoY29uY2F0IHZhbHVlICIlIikKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmlsIDpzdHJva2UgMCA6bWFyZ2luIDApKSA6YXNjZW50
ICdjZW50ZXIpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1jb3VudCAodmFsdWUpCiAgKGxldCogKChz
ZXEgKG1hcGNhciAjJ3N0cmluZy10by1udW1iZXIgKHNwbGl0LXN0cmluZyB2YWx1ZSAiLyIpKSkK
ICAgICAgICAgKGNvdW50IChmbG9hdCAoY2FyIHNlcSkpKQogICAgICAgICAodG90YWwgKGZsb2F0
IChjYWRyIHNlcSkpKSkKICAoc3ZnLWltYWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAg
IChzdmctbGliLXByb2dyZXNzLWJhciAoLyBjb3VudCB0b3RhbCkgbmlsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRk
aW5nIDIgOndpZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyB2YWx1ZSBuaWwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOnN0cm9rZSAwIDptYXJnaW4gMCkpIDphc2NlbnQgJ2Nl
bnRlcikpKQoKO1NldHRpbmcgbXkgb3duIGZhY2UKOyhkZWZmYWNlIG15ZmFjZSAnKCh0ICg6aW5o
ZXJpdCBvcmctdG9kbykgOmhlaWdodCAxLjAgOmJhY2tncm91bmQgIiM5NTdEQUQiKSkgIkZhY2Ug
Zm9yIHRvZG8iKQooZGVmZmFjZSBwYXN0ZWxwdXJwbGUgJygodCAoOmluaGVyaXQgb3JnLXRvZG8g
OmhlaWdodCAyLjAgOmZvcmVncm91bmQgIiM5NTdEQUQiKSkpICJGYWNlIGZvciB0b2RvIikKKGRl
ZmZhY2UgcGFzdGVsZ3JlZW4gJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhlaWdodCAyLjAgOmZv
cmVncm91bmQgIiNCMEVCOTMiKSkpICJGYWNlIGZvciBXSVAiKQooZGVmZmFjZSBwYXN0ZWxibHVl
ICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4wIDpmb3JlZ3JvdW5kICIjQjNFM0RB
IikpKSAiRmFjZSBmb3IgRE9ORSIpCihkZWZmYWNlIHBhc3RlbHJlZCAnKCh0ICg6aW5oZXJpdCBv
cmctdG9kbyA6aGVpZ2h0IDIuMCA6Zm9yZWdyb3VuZCAiI0Y5ODI4NCIpKSkgIkZhY2UgZm9yIHRh
Z3MiKQooZGVmZmFjZSBwYXN0ZWxwaW5rICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQg
Mi4wIDpmb3JlZ3JvdW5kICIjRkVBQUU0IikpKSAiRmFjZSBmb3IgRGF0ZSIpCgoKKHNldHEgc3Zn
LXRhZy10YWdzCiAgICAgIGAoCiAgICAgICAgOzsgT3JnIHRhZ3MgOlRISVM6CiAgICAgICAgKCJc
XCg6W0EtWmEtejAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlIHRhZyA6
YmVnIDEgOmVuZCAtMSA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxyZWQpKSkpCgkKCTsoMSkKCTso
IlwoWzAtOzlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICA7ICAgICAgICAgICAg
ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyAxMikp
KSkKCgk7KDA5KQogICAgICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVwpIiAuICgobGFt
YmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2
Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyA4KSkpKQoKCTsoMDA3KQogICAg
ICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVswLTlhLXpBLVpdXCkiIC4gKChsYW1iZGEg
KHRhZykKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRh
Zy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6cmFkaXVzIDgpKSkpCgoJO1Vuc3VyZT8KCTsoInxb
MC05YS16QS1aLSBdKz98IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZh
Y2UKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXJn
aW4gMCA6YmVnIDEgOmVuZCAtMSkpKSkKCQogICAgICAgIDs7IFRhc2sgcHJpb3JpdHkgWyNhXQog
ICAgICAgICgiXFxbI1thLXpBLVpdXFxdIiAuICggKGxhbWJkYSAodGFnKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6ZmFjZSAnb3JnLXByaW9yaXR5IAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgMiA6ZW5kIC0x
IDptYXJnaW4gMCA6aW52ZXJzZSB0KSkpKQoKICAgICAgICA7OyBQcm9ncmVzcyBbMS8zXSBvciBb
NDUlXQogICAgICAgICgiXFwoXFxbWzAtOV1cXHsxLDNcXH0lXFxdXFwpIiAuICgobGFtYmRhICh0
YWcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy1wcm9n
cmVzcy1wZXJjZW50IChzdWJzdHJpbmcgdGFnIDEgLTIpKSkpKQogICAgICAgICgiXFwoXFxbWzAt
OV0rL1swLTldK1xcXVxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3ZnLXByb2dyZXNzLWNvdW50IChzdWJzdHJpbmcgdGFnIDEg
LTEpKSkpKQogICAgICAgIAogICAgICAgIDs7IE9yZyBUQUdTCiAgICAgICAgKCI6VE9ETzoiIC4g
KChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVE9ETyIgOmludmVyc2UgdCA6ZmFjZSAncGFz
dGVscHVycGxlKSkpKQogICAgICAgICgiOldJUDoiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWct
bWFrZSAiV0lQIiA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxncmVlbikpKSkKICAgICAgICAoIjpE
T05FOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJET05FIiA6aW52ZXJzZSB0IDpm
YWNlICdwYXN0ZWxibHVlKSkpKQogICAgICAgICgiOk5PVEU6IiAuICgobGFtYmRhICh0YWcpIChz
dmctdGFnLW1ha2UgIk5PVEUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10b2RvKSkpKQogICAgICAg
ICgiU0NIRURVTEVEOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJTQ0hFRFVMRUQi
IDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCJERUFETElORToiIC4gKChs
YW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiREVBRExJTkUiIDppbnZlcnNlIHQgOmZhY2UgJ29y
Zy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU5fU1JDIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFn
LW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK0VO
RF9TUkMiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiRU5EIiA6aW52ZXJzZSB0IDpm
YWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK1JFU1VMVFM6IiAuICgobGFtYmRhICh0YWcpIChz
dmctdGFnLW1ha2UgIlJFU1VMVFMiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAg
ICAgKCIrdGl0bGUiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVElUTEUiIDppbnZl
cnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU46IiAuICgobGFtYmRhICh0
YWcpIChzdmctdGFnLW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQog
ICAgICAgICgiK0NBUFRJT046IiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIkNBUFRJ
T04iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrRU5EOiIgLiAoKGxh
bWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJFTkQiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcp
KSkpCgkoIjpYIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIltYXSIgOmludmVyc2Ug
dCA6ZmFjZSAnb3JnLXRvZG8pKSkpCiAgICAgICAgKCI6LSIgLiAoKGxhbWJkYSAodGFnKSAoc3Zn
LXRhZy1tYWtlICJbLV0iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCgkKICAgICAgICA7
OyBDaXRhdGlvbiBvZiB0aGUgZm9ybSBbY2l0ZTpAS251dGg6MTk4NF0gCiAgICAgICAgKCJcXChc
XFtjaXRlOkBbQS1aYS16XSs6XFwpIiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmludmVyc2UgdAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcg
NyA6ZW5kIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOmNyb3AtcmlnaHQgdCkpKSkKICAgICAgICAoIlxcW2NpdGU6QFtBLVphLXpdKzpc
XChbMC05XStcXF1cXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIC0xCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmNyb3AtbGVmdCB0KSkpKQoKCgk7OzsgV29ya3MgZm9yIHN0dWZmIGxpa2UgOlhYWHxZWVk6
CgkoIlxcKDpbQS1aXStcXClcfFthLXpBLVojMC05XSs6IiAuICgobGFtYmRhICh0YWcpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6
YmVnIDEgOmludmVyc2UgdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLXJpZ2h0IHQpKSkpICAgICAgICAKCiAg
ICAgICAgKCI6W0EtWl0rXFwoXHxbYS16QS1aIzAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0
YWcgOmJlZyAxIDplbmQgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLWxlZnQgdCkpKSkKCTs7IEFjdGl2ZSBk
YXRlICh3aXRoIG9yIHdpdGhvdXQgZGF5IG5hbWUsIHdpdGggb3Igd2l0aG91dCB0aW1lKQogICAg
ICAgICgsKGZvcm1hdCAiXFwoPCVzPlxcKSIgZGF0ZS1yZSkgLgogICAgICAgICAoKGxhbWJkYSAo
dGFnKQogICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2lu
IDAgOmZhY2UgJ3Bhc3RlbHBpbmsgOmludmVyc2UgdCkpKSkKICAgICAgICAoLChmb3JtYXQgIlxc
KDwlcyBcXCklcz4iIGRhdGUtcmUgZGF5LXRpbWUtcmUpIC4KICAgICAgICAgKChsYW1iZGEgKHRh
ZykKICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDppbnZlcnNlIHQgOmNyb3At
cmlnaHQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpCiAgICAgICAgKCwoZm9ybWF0
ICI8JXMgXFwoJXM+XFwpIiBkYXRlLXJlIGRheS10aW1lLXJlKSAuCiAgICAgICAgICgobGFtYmRh
ICh0YWcpCiAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnIDplbmQgLTEgOmludmVyc2Ugbmls
IDpjcm9wLWxlZnQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpKSkKCiAgICAgICAg
OzsgSW5hY3RpdmUgZGF0ZSAgKHdpdGggb3Igd2l0aG91dCBkYXkgbmFtZSwgd2l0aCBvciB3aXRo
b3V0IHRpbWUpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcKFxcWyVzXFxdXFwpIiBkYXRlLXJlKSAu
CiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1tYWtlIHRh
ZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAgOmZhY2UgJ29yZy1kYXRlKSkpKQogICAgICAgICA7
KCwoZm9ybWF0ICJcXChcXFslcyBcXCklc1xcXSIgZGF0ZS1yZSBkYXktdGltZS1yZSkgLgogICAg
ICAgICA7ICgobGFtYmRhICh0YWcpCiAgICAgICAgIDsgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJl
ZyAxIDppbnZlcnNlIG5pbCA6Y3JvcC1yaWdodCB0IDptYXJnaW4gMCA6ZmFjZSAnb3JnLWRhdGUp
KSkpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcWyVzIFxcKCVzXFxdXFwpIiBkYXRlLXJlIGRheS10
aW1lLXJlKSAuCiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRh
Zy1tYWtlIHRhZyA6ZW5kIC0xIDppbnZlcnNlIHQgOmNyb3AtbGVmdCB0IDptYXJnaW4gMCA6ZmFj
ZSAnb3JnLWRhdGUpKSkpKSkKCihyZXF1aXJlICdzdmctdGFnLW1vZGUpCihnbG9iYWwtc3ZnLXRh
Zy1tb2RlIDEpCih1c2UtcGFja2FnZSBzdmctbGliKQojK0VORF9TUkMKCiogSXZ5LCBTbWV4LCBP
cmRlcmxlc3MgYW5kIFN3aXBlcgojK0JFR0lOX1NSQyBlbGlzcAooaXZ5LW1vZGUgMSkKCihyZXF1
aXJlICdzbWV4KQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiTS14IikgJ3NtZXgpCgooZ2xvYmFsLXNl
dC1rZXkgKGtiZCAiQy1zIikgJ3N3aXBlcikKCgoodXNlLXBhY2thZ2Ugb3JkZXJsZXNzCiAgOmVu
c3VyZSB0CiAgOmN1c3RvbQogIChjb21wbGV0aW9uLXN0eWxlcyAnKG9yZGVybGVzcyBiYXNpYykp
CiAgKGNvbXBsZXRpb24tY2F0ZWdvcnktb3ZlcnJpZGVzICcoKGZpbGUgKHN0eWxlcyBiYXNpYyBw
YXJ0aWFsLWNvbXBsZXRpb24pKSkpKQoKKHNldHEgaXZ5LXJlLWJ1aWxkZXJzLWFsaXN0ICcoKHQg
LiBvcmRlcmxlc3MtaXZ5LXJlLWJ1aWxkZXIpKSkKKGFkZC10by1saXN0ICdpdnktaGlnaGxpZ2h0
LWZ1bmN0aW9ucy1hbGlzdCAnKG9yZGVybGVzcy1pdnktcmUtYnVpbGRlciAuIG9yZGVybGVzcy1p
dnktaGlnaGxpZ2h0KSkKCiMrRU5EX1NSQwoqIENlbnRhdXIgVGFicwojK0JFR0lOX1NSQyBlbGlz
cAoodXNlLXBhY2thZ2UgY2VudGF1ci10YWJzCiAgOmRlbWFuZAogIDpjb25maWcKICAoY2VudGF1
ci10YWJzLW1vZGUgdCkKICA6YmluZAogICgiQy08cHJpb3I+IiAuIGNlbnRhdXItdGFicy1iYWNr
d2FyZCkKICAoIkMtPG5leHQ+IiAuIGNlbnRhdXItdGFicy1mb3J3YXJkKSkKKGNlbnRhdXItdGFi
cy1oZWFkbGluZS1tYXRjaCkKKHNldHEgY2VudGF1ci10YWJzLXN0eWxlICJiYXIiKQooc2V0cSBj
ZW50YXVyLXRhYnMtaGVpZ2h0IDEyKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LWljb25zIHQpCihz
ZXRxIGNlbnRhdXItdGFicy1jbG9zZS1idXR0b24gIlgiKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0
LW1vZGlmaWVkLW1hcmtlciB0KQooc2V0cSBjZW50YXVyLXRhYnMtbW9kaWZpZWQtbWFya2VyICIq
IikKKHNldHEgY2VudGF1ci10YWJzLXNldC1iYXIgJ2xlZnQpCiMrRU5EX1NSQwoKKiBMU1AtTW9k
ZSAoRGV2ZWxvcG1lbnQgaW4gZ2VuZXJhbCkKQ29tbWVudGluZyBvdXQgdGhlIGxpbmVzIHdpdGgg
YSBudW1iZXIgYWZ0ZXJ3YXJkcyBiZWNhdXNlIEkgYW0gdHJ5aW5nIHRvIHN3aXRjaAp0byBMU1At
QnJpZGdlIHRvIHNlZSBpZiBpdCBzb2x2ZXMgdGhlIGlzc3VlIG9mIG15IEVtYWNzIGZyZWV6aW5n
LgojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgcHJvamVjdGlsZSkKKHVzZS1wYWNrYWdl
IGZseWNoZWNrIDplbnN1cmUgdCA6aW5pdCAoZ2xvYmFsLWZseWNoZWNrLW1vZGUpKQoodXNlLXBh
Y2thZ2UgeWFzbmlwcGV0IDpjb25maWcgKHlhcy1nbG9iYWwtbW9kZSkpCjsodXNlLXBhY2thZ2Ug
bHNwLXVpKSAxCih1c2UtcGFja2FnZSB3aGljaC1rZXkgOmNvbmZpZyAod2hpY2gta2V5LW1vZGUp
KQo7OyBMU1AtSmF2YSBmcmVlemVzIG15IG1hY2hpbmUgc28gaXQncyBjdXJyZW50bHkgY29tbWVu
dGVkIG91dAo7KHVzZS1wYWNrYWdlIGxzcC1qYXZhIDpjb25maWcgKGFkZC1ob29rICdqYXZhLW1v
ZGUtaG9vayAnbHNwKSkKOyh1c2UtcGFja2FnZSBkYXAtbW9kZSA6YWZ0ZXIgbHNwLW1vZGUgOmNv
bmZpZyAoZGFwLWF1dG8tY29uZmlndXJlLW1vZGUpKSAxCgo7Oyh1c2UtcGFja2FnZSBsc3AtbW9k
ZSAxCjs7ICA6aG9vayAoKGxzcC1tb2RlIC4gbHNwLWVuYWJsZS13aGljaC1rZXktaW50ZWdyYXRp
b24pKQo7OyAgOmNvbmZpZwo7OyAgKHNldHEKOzsgICBsc3AtZW5hYmxlLWZpbGUtd2F0Y2hlcnMg
bmlsCjs7ICAgbHNwLWhlYWRlcmxpbmUtYnJlYWRjcnVtYi1lbmFibGUgbmlsCjs7ICAgKQo7OyAg
OzsgUGVyZm9ybWFuY2UgdHdlYWtzLCBzZWUKOzsgIDs7IGh0dHBzOi8vZ2l0aHViLmNvbS9lbWFj
cy1sc3AvbHNwLW1vZGUjcGVyZm9ybWFuY2UKOzsgIChzZXRxIGdjLWNvbnMtdGhyZXNob2xkIDEw
MDAwMDAwMCkKOzsgIChzZXRxIHJlYWQtcHJvY2Vzcy1vdXRwdXQtbWF4ICgqIDEwMjQgMTAyNCkp
IDs7IDFtYgo7OyAgKHNldHEgbHNwLWlkbGUtZGVsYXkgMC41MDApCjs7ICApCgoocmVxdWlyZSAn
Z28tbW9kZSkKCjsocmVxdWlyZSAnY29tcGFueSkgMQoKOyhhZGQtaG9vayAnYWZ0ZXItaW5pdC1o
b29rICdnbG9iYWwtY29tcGFueS1tb2RlKSAxCgo7KHVzZS1wYWNrYWdlIGNvbXBhbnktYm94IDEK
OyAgOmhvb2sgKGNvbXBhbnktbW9kZSAuIGNvbXBhbnktYm94LW1vZGUpKQoKOzsgbHNwIGV4dHJh
cyAxCjs7KHNldHEgbHNwLXVpLXNpZGVsaW5lLWVuYWJsZSB0Cjs7ICAgICAgbHNwLXVpLXNpZGVs
aW5lLXNob3ctc3ltYm9sIHQKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1ob3ZlciB0Cjs7
ICAgICAgbHNwLXVpLXNpZGVsaW5lLXNob3ctZmx5Y2hlY2sgdAo7OyAgICAgIGxzcC11aS1zaWRl
bGluZS1zaG93LWNvZGUtYWN0aW9ucyBuaWwKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1k
aWFnbm9zdGljcyBuaWwpCgoKOzsgRWxweQoodXNlLXBhY2thZ2UgZWxweQogIDplbnN1cmUgdAog
IDppbml0CiAgKGVscHktZW5hYmxlKSkKCjs7IFRhYk5pbmUgaW50ZWdyYXRpb24gZm9yIGNvZGUg
Y29tcGxldGlvbgo7Oyh1c2UtcGFja2FnZSBjb21wYW55LXRhYm5pbmUgOmVuc3VyZSB0KSAxCjs7
KHJlcXVpcmUgJ2NvbXBhbnktdGFibmluZSkgMQo7OyhhZGQtdG8tbGlzdCAnY29tcGFueS1iYWNr
ZW5kcyAjJ2NvbXBhbnktdGFibmluZSkgMQo7OyBUcmlnZ2VyIGNvbXBsZXRpb24gaW1tZWRpYXRl
bHkuCjs7KHNldHEgY29tcGFueS1pZGxlLWRlbGF5IDAuMTUpIDEKCjs7IE51bWJlciB0aGUgY2Fu
ZGlkYXRlcyAodXNlIE0tMSwgTS0yIGV0YyB0byBzZWxlY3QgY29tcGxldGlvbnMpLgo7OyhzZXRx
IGNvbXBhbnktc2hvdy1udW1iZXJzIHQpIDEKCjs7IEpTIGRldmVsb3BtZW50Cjs7KHVzZS1wYWNr
YWdlIGZyb250c2lkZS1qYXZhc2NyaXB0IDEKOzsgIDppbml0IChmcm9udHNpZGUtamF2YXNjcmlw
dCkpCgojK0VORF9TUkMKKiBGb250CiMrQkVHSU5fU1JDIGVsaXNwCjtXb3JrcyB3aXRoIE9wdGlv
bnMtPlNldCBEZWZhdWx0IEZvbnQKKHNldC1mYWNlLWF0dHJpYnV0ZSAnZGVmYXVsdCBuaWwgOmZh
bWlseSAiSW9zZXZrYSIpCjsoc2V0LWZyYW1lLWZvbnQgIklvc2V2a2EgMTgiIG5pbCB0KQojK0VO
RF9TUkMKCiogR29sZGVuIFJhdGlvCk1ha2VzIGl0IHNvIHRoZSBidWZmZXIgeW91IGFyZSBmb2N1
c2VkIG9uIGlzIGxhcmdlciB0aGFuIHRoZSBvbmVzIG5vdCBmb2N1c2VkIG9uLgojK0JFR0lOX1NS
QyBlbGlzcAo7IGh0dHBzOi8vZ2l0aHViLmNvbS9yb21hbi9nb2xkZW4tcmF0aW8uZWwKKGdvbGRl
bi1yYXRpby1tb2RlIDEpCiMrRU5EX1NSQwoqIEJhYmVsCiMrQkVHSU5fU1JDIGVsaXNwCjs7IE9y
ZyBCYWJlbAo7KGxvYWQtbGlicmFyeSAnb2ItcnVzdCkKKG9yZy1iYWJlbC1kby1sb2FkLWxhbmd1
YWdlcwogJ29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcwogJygocHl0aG9uIC4gdCkpKQo7ICAgKG9j
dGF2ZSAuIHQpCjsgICAocnVzdCAuIHQpKSkKIytFTkRfU1JDCiogWWFzbmlwcGV0CiMrQkVHSU5f
U1JDIGVsaXNwCihyZXF1aXJlICd5YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBQZXJzcGVjdGl2ZQoj
K0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGVyc3BlY3RpdmUpCihnbG9iYWwtc2V0LWtleSAo
a2JkICJDLXggQy1iIikgJ3BlcnNwLWxpc3QtYnVmZmVycykKKGdsb2JhbC1zZXQta2V5IChrYmQg
IkMteCBDLXAiKSAncGVyc3Atc3dpdGNoKQooY3VzdG9taXplLXNldC12YXJpYWJsZSAncGVyc3At
bW9kZS1wcmVmaXgta2V5IChrYmQgIkMtYyBNLXAiKSkKKHBlcnNwLW1vZGUpCiMrRU5EX1NSQwoK
KiBNYXJnaW5hbGlhCiMrQkVHSU5fU1JDIGVsaXNwCihtYXJnaW5hbGlhLW1vZGUgMSkKIytFTkRf
U1JDCiogRG9vbSBNb2RlbGluZQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgZG9vbS1t
b2RlbGluZQogIDplbnN1cmUgdAogIDppbml0IChkb29tLW1vZGVsaW5lLW1vZGUgMSkpCiMrRU5E
X1NSQwoqIENlbnRlcmVkIEN1cnNvciBNb2RlCiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2Fn
ZSBjZW50ZXJlZC1jdXJzb3ItbW9kZQogIDpkZW1hbmQKICA6Y29uZmlnCiAgOzsgT3B0aW9uYWws
IGVuYWJsZXMgY2VudGVyZWQtY3Vyc29yLW1vZGUgaW4gYWxsIGJ1ZmZlcnMuCiAgKGdsb2JhbC1j
ZW50ZXJlZC1jdXJzb3ItbW9kZSkpCiMrRU5EX1NSQwoqIEJ1aWx0LUluIGZ1bmN0aW9ucyAoRWxl
Y3RyaWMgcGFpciBhbmQgd2hpY2ggZnVuY3Rpb24pCj1zaG93LXBhcmVuLWNvbnRleHQtd2hlbi1v
ZmZzY3JlZW49IGlzIGEgZnVuY3Rpb24gdG8gY3VzdG9taXplIHdoaWNoIG1ha2VzIGl0CnNvIHRo
YXQgeW91IGNhbiBzZWUgd2hhdCBmdW5jdGlvbiB5b3VyIGN1cnJlbnQgYnJhY2UvcGFyZW4gaXMg
bWF0Y2hpbmcgd2hlbgp0aGF0IGZ1bmN0aW9uIGlzIG9mZnNjcmVlbi4gVGhpcyBvbmx5IHdvcmtz
IG9uIEVtYWNzIDI5IGFuZCBuZXdlciB0aG91Z2guCiMrQkVHSU5fU1JDIGVsaXNwCjs7OyBFbGVj
dHJpYy1wYWlyIG1vZGUgKE1hdGNoZXMgcGFyZW5zIGFuZCBicmFja2V0cykKKGVsZWN0cmljLXBh
aXItbW9kZSAxKQooc2V0cSBzaG93LXBhcmVuLWNvbnRleHQtd2hlbi1vZmZzY3JlZW4gJ292ZXJs
YXkpCjs7IHRvcC1iYXIgd2hpY2ggZnVuY3Rpb24geW91J3JlIGN1aXJyZW50bHkgaW4KOzsod2hp
Y2gtZnVuY3Rpb24tbW9kZSkKIytFTkRfU1JDCgoqIFJhaW5ib3cgRGVsaW1pdGVyIE1vZGUKUmFp
bmJvdyBkZWxpbWl0ZXIgbW9kZSBjaGFuZ2VzIGNvbG9ycyBvZiBkZWxpbWl0ZXMgdG8gbWF0Y2gg
dGhlaXIgcGFydG5lcgojK0JFR0lOX1NSQyBlbGlzcAooYWRkLWhvb2sgJ3Byb2ctbW9kZS1ob29r
ICMncmFpbmJvdy1kZWxpbWl0ZXJzLW1vZGUpCiMrRU5EX1NSQwoqIExpbmUtUmVtaW5kZXIgTW9k
ZQpMaW5lLXJlbWluZGVyLW1vZGUsIGJhc2ljYWxseSBzaG93cyB3aGF0IHlvdSd2ZSBjaGFuZ2Vk
IGluIHlvdXIgY3VycmVudCBzZXNzaW9uCgpPbmUgdGhpbmcgdG8gbm90ZSB0aG91Z2ggaXMgdGhh
dCB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHNldHVwLCB0aGVyZSBpcyBhbiBpc3N1ZQp3aXRoIHNl
ZWluZyB0aGUgeWVsbG93IG1hcmtlciBzbyBJIGNoYW5nZWQgdGhhdCB2YWx1ZSB0byBiZSAjRERF
MTY1LiBJdCBpcyBhcHBhcmVudGx5CmJlaW5nIHdvcmtlZCBvbiB1cHN0cmVhbSBpbiB0aGUgdGhl
bWUsIGJ1dCBoYXNuJ3QgYmVlbiBmaW5pc2hlZCB5ZXQuCgo6VE9ETzogRmlndXJlIG91dCBob3cg
dG8gY2hhbmdlIHRoZSBpZGVudGlmaWVyIHRvIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIGZy
aW5nZT8/PwojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAnaW5kaWNhdG9ycykKKHVzZS1wYWNr
YWdlIGxpbmUtcmVtaW5kZXIKICA6ZW5zdXJlIHQKICA6aW5pdAogIChzZXRxIGxpbmUtcmVtaW5k
ZXItc2hvdy1vcHRpb24gJ2luZGljYXRvcnMpCiAgOzsgQ3VzdG9taXplIHRoZSBtb2RpZmllZCBz
aWduLgogIDs7KHNldHEgbGluZS1yZW1pbmRlci1tb2RpZmllZC1zaWduICLilpAiKSAgOyBub3Qg
bmVlZGVkCiAgOztDdXN0b21pemUgdGhlIHNhdmVkIHNpZ24uCiAgOzsoc2V0cSBsaW5lLXJlbWlu
ZGVyLXNhdmVkLXNpZ24gIuKWkCIpICA7IG5vdCBuZWVkZWQKICA7O0N1c3RvbWl6ZSBzdHJpbmcg
b24gdGhlIHJpZ2h0L2xlZnQgc2lkZSBvZiB0aGUgbGluZSBudW1iZXIuCiAgKHNldHEgbGluZS1y
ZW1pbmRlci1saW51bS1sZWZ0LXN0cmluZyAiIikKICAoc2V0cSBsaW5lLXJlbWluZGVyLWxpbnVt
LXJpZ2h0LXN0cmluZyAiICIpCiAgOmNvbmZpZwogIChhZGQtaG9vayAncHJvZy1tb2RlLWhvb2sK
ICAgICAgICAgICAgKGZ1bmN0aW9uCiAgICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAg
ICAgIChsaW5lLXJlbWluZGVyLW1vZGUgdCkKICAgICAgICAgICAgICAgKHNldHEgbGluZS1yZW1p
bmRlci1zaG93LW9wdGlvbiAnaW5kaWNhdG9ycykpKSkpCihnbG9iYWwtbGluZS1yZW1pbmRlci1t
b2RlIHQpCiMrRU5EX1NSQwoK

--b1_0RivMYcIFzDWLX2R6VxDjfZjRkHocvgBoHn7ostww--





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 17:06:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 12:06:15 2023
Received: from localhost ([127.0.0.1]:46547 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pRFnr-0001yP-2c
	for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:06:15 -0500
Received: from eggs.gnu.org ([209.51.188.92]:46238)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pRFno-0001y8-Jh
 for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 12:06:13 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pRFnj-0002Ve-Cz; Sun, 12 Feb 2023 12:06:07 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=+QQ0VNSlEi0kY9IV9Xi+tVuhdDRGUETorjFpyT+t8kM=; b=Lqto98rFnCpv
 cGJJqHxikJIzcw5IdX1Ty5dHFUHkgrVgCij4YA1/XjwN12Nd44C2BSYF75N38CVpLYF6UhfpuFQcx
 GwxwqWWNi9MpL+WfNINbtZKIMhDnuuvvghhk4L0iwnZ4nqnjUlglSJ9hr6aUdGwFvP5PQ98NrBetl
 4X8Ca3HJStJBByzy9ukCbPDXR7eVAB7AJhpczGuS8pbhKV0Tw765VmiqEKhoISncfM8P07XTEqAj2
 oxbL/HFriqHT/LXhlqHXymf1cwI3l2bZDzxWs7ZNKiEOnbZpOPXwX/vsymOm5D8kHjWZRkeldZLdB
 3aPcowskQv1j0iHx/E/3zg==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pRFni-0005bA-Sh; Sun, 12 Feb 2023 12:06:07 -0500
Date: Sun, 12 Feb 2023 19:05:39 +0200
Message-Id: <835yc6hl0c.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Hank Greenburg <hank.greenburg@HIDDEN>
In-Reply-To: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
 (message from Hank Greenburg on Sun, 12 Feb 2023 16:52:51 +0000)
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
 <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 61436
Cc: 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Sun, 12 Feb 2023 16:52:51 +0000
> From: Hank Greenburg <hank.greenburg@HIDDEN>
> Cc: 61436 <at> debbugs.gnu.org
> 
> Launch with emacs -Q
> 
> org-babel-execute-src-block for the Repos block and Hyperbole. The Hyperbole block won't work unless you do the Repos block first.

Sorry, I don't understand: what is "the Repos block", and what is the
"Hyperbole block"?  What do I need to do after starting "emacs -Q" to
reproduce what you describe above? which commands to type?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 16:53:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 11:53:12 2023
Received: from localhost ([127.0.0.1]:46532 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pRFbD-0001bN-M4
	for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 11:53:12 -0500
Received: from mail-40134.protonmail.ch ([185.70.40.134]:24331)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <hank.greenburg@HIDDEN>) id 1pRFbA-0001b8-NE
 for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 11:53:09 -0500
Date: Sun, 12 Feb 2023 16:52:51 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1676220782; x=1676479982;
 bh=F6e4RPUnHTb4CCx/RQnYdhqxPDdhq+lYV03unL2O0xQ=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=GDnhQ49ZvKv38ZhvrxcSY7h2coh8fLhj5Kw7KzQDvgiXE1s/9vWpZYyeF7XE/fkwe
 ETPT9dzex0aUuLLL64T6/0gdtXIRSgwGRHntWEoaT5LnlePTzSTdN1xuHQmE+vhWrs
 zK60pId42ZRvgDIHL3eLdIgvaiIh3EkQRCraAbtL5lkIJy4wTqF04Zn/rToQ7ruE1O
 PldWgzNEaF87XBHYmco/B18feEVs8f8gPu7oixBA6dJzTwpHbPWQoHhKU1L03tZbMY
 VUh9T9lsLbZ8W/a2cem1/F0WC28Hcof0bVzLubLznr38tJ4nxf9fyBlHsFon1bpDMf
 Zajy/CD6CX77w==
To: Eli Zaretskii <eliz@HIDDEN>
From: Hank Greenburg <hank.greenburg@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <vfiI9hMSpNMuBK4OLTir9wZgrKj5hwQ26K3WF8osp-C_Cvl-1l01qzU6X6hAgrf93nHiyaQOeQsiC8bXC8luACu5Y0iqMApPRns_akIvuJE=@protonmail.com>
In-Reply-To: <83cz6fiefb.fsf@HIDDEN>
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 <83cz6fiefb.fsf@HIDDEN>
Feedback-ID: 10943770:user:proton
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61436
Cc: 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

I was just able to reproduce this 5 times in a row with doing the steps bel=
ow.=20

Launch with emacs -Q

org-babel-execute-src-block for the Repos block and Hyperbole. The Hyperbol=
e block won't work unless you do the Repos block first.

Go to the Java file. Hold CTRL + Up/Down Arrow keys to quickly move through=
 the file.=20

This works just fine until which-function-mode is activated. After that is =
activated I can scroll through maybe twice before it freezes.=20

It almost always happens after hitting the end of the file, and the first j=
ump up after that. Or at least it has happened 4/5 times by doing that. The=
 other time I avoided the end of the file to see if that was the trigger an=
d it still froze.=20



------- Original Message -------
On Sunday, February 12th, 2023 at 12:30 AM, Eli Zaretskii <eliz@HIDDEN> wr=
ote:


>=20
>=20
> > Cc: 61436 <at> debbugs.gnu.org
>=20
> > Date: Sun, 12 Feb 2023 00:24:49 +0000
> > From: Hank Greenburg via "Bug reports for GNU Emacs,
> > the Swiss army knife of text editors" bug-gnu-emacs@HIDDEN
> >=20
> > To follow up on this, somehow disabling which-function-mode from my con=
fig has solved the problem. That
> > doesn't make sense though because I didn't add that until after it had =
frozen in the first place. I know that for
> > certain because I had to use IntelliJ and got the idea for using which-=
function-mode from IntelliJ.
> >=20
> > To clarify, this froze every single time I tried to edit the file no ma=
tter what modes I had turned on or off. It
> > happened at least 40 times in total and never once was I able to actual=
ly edit the file within Emacs. After
> > disabling which-function-mode though I have restarted Emacs a few times=
, written in the file, scrolled though
> > it all without a single hiccup.
> >=20
> > So my problem is seemingly solved but there is an underlying bug somewh=
ere that I'm not really able to
> > isolate aside from disabling which-function-mode.
>=20
>=20
> If I visit the file you posted, and then turn on which-function-mode
> in it, I cannot reproduce the freezes. Scrolling through the file
> becomes slower, but nowhere near "freezing".
>=20
> Do you see something different when you enable just
> which-function-mode in "emacs -Q"?
> 




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 06:30:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 01:30:53 2023
Received: from localhost ([127.0.0.1]:43888 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pR5sz-0004NE-9Y
	for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:30:53 -0500
Received: from eggs.gnu.org ([209.51.188.92]:55562)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pR5sw-0004Mz-VD
 for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:30:52 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pR5sq-00018P-W7; Sun, 12 Feb 2023 01:30:45 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=9cLogEUf8CPKuA0nvkZbC+SkJiMf0C0VA7CacW+Qvn4=; b=g7EYQm/ntKqh
 X70qdZLgOiubJ1rVbuUoaK34G7KNtmRWbvFAzd9UxWQ85G7zLHlPrg64F2g8X4V6W4qLEkGeGqkbt
 jEjmUGUyWoXoVaPIa72XFM0Rt3CN6gxu2n0a1jTQvTUjiL1uoRHrWUr1KwzpX4/zsS0eNOl/90xL3
 ZU0f7+vGstBPWvOWU2IDVMXI+uuyaysWJN+rUc6ZSurfTRXQrM56Fi7x4P7cHiS4+oGZIZq+7auOO
 lPTKq5yiv+jJkPcJ3mU5dSlEpQp9gV6+Y9yvn5l50iSzE5/O/tDRorEA5BVr9sBuwEeb5cG1JHrjT
 KTV+2gU0ZUUbu4YtWM5cEQ==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pR5sp-0002GR-Q7; Sun, 12 Feb 2023 01:30:44 -0500
Date: Sun, 12 Feb 2023 08:30:16 +0200
Message-Id: <83cz6fiefb.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Hank Greenburg <hank.greenburg@HIDDEN>
In-Reply-To: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
 (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 61436
Cc: 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 61436 <at> debbugs.gnu.org
> Date: Sun, 12 Feb 2023 00:24:49 +0000
> From:  Hank Greenburg via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> To follow up on this, somehow disabling which-function-mode from my config has solved the problem. That
> doesn't make sense though because I didn't add that until after it had frozen in the first place. I know that for
> certain because I had to use IntelliJ and got the idea for using which-function-mode from IntelliJ. 
> 
> To clarify, this froze every single time I tried to edit the file no matter what modes I had turned on or off. It
> happened at least 40 times in total and never once was I able to actually edit the file within Emacs. After
> disabling which-function-mode though I have restarted Emacs a few times, written in the file, scrolled though
> it all without a single hiccup. 
> 
> So my problem is seemingly solved but there is an underlying bug somewhere that I'm not really able to
> isolate aside from disabling which-function-mode. 

If I visit the file you posted, and then turn on which-function-mode
in it, I cannot reproduce the freezes.  Scrolling through the file
becomes slower, but nowhere near "freezing".

Do you see something different when you enable just
which-function-mode in "emacs -Q"?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 06:00:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 01:00:56 2023
Received: from localhost ([127.0.0.1]:43856 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pR5Pz-0003Oh-UI
	for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:00:56 -0500
Received: from eggs.gnu.org ([209.51.188.92]:57426)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pR5Pw-0003OT-KR
 for 61436 <at> debbugs.gnu.org; Sun, 12 Feb 2023 01:00:54 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pR5Pn-0002Am-G6; Sun, 12 Feb 2023 01:00:44 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=Nnwm0ld/WBcAQh00hNFh2PrdnOsYD2Yz/We2B+jCklM=; b=E8LwxNeqjZ7k
 nrw9kmBztcigkgALuZB0i1cOSvAyTz4wD9QO+HLCKHt3gsW6Y0LNlfYRvzji98ObxfCMZbtFmmNDP
 0cqp9j2+O0v//C4d9ux0Ihblf6B9zFRmHtyybLMFWmUO7Pyt40yu3uHz4IEssygX59xC9V33l2EZq
 63wRY6ScUnK7yQWaV4ks9sCequnxmQftkxgZTiyT1lK1x1egbaE626cVTOM1noCH0Fk/HocMkG3G6
 oAI9EWP6MT1QFXraYYCI1FfrMWlGXnt1pFT+6RMsG27mHvNS/1LKh/Fpo9sMhQmoJ3usBI369Gkzl
 uo8UYK9RYUhBovyEiNgeUw==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pR5Pb-0003lv-UN; Sun, 12 Feb 2023 01:00:38 -0500
Date: Sun, 12 Feb 2023 08:00:04 +0200
Message-Id: <83k00niftn.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Hank Greenburg <hank.greenburg@HIDDEN>
In-Reply-To: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
 (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#61436: Emacs Freezing With Java Files
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 61436
Cc: 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Sat, 11 Feb 2023 18:16:41 +0000
> From:  Hank Greenburg via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> I have a few Java files that are about 500 lines of code and I can't move around in them much before Emacs
> freezes. I first thought it was java-lsp but it still happened after disabling and uninstalling it. I also uninstalled
> lsp-mode as well, but that didn't change anything. 
> 
> I started doing CPU profiles of it and found that which-function-mode was taking up 67% of my CPU usage.
> While this is happening all I was doing was holding the down arrow until it froze about 350 lines in. Didn't
> press any other buttons. 
> 
> So I disabled which-function-mode and moved around the buffer just fine! Though when trying to edit the file
> (just hit enter), it froze again. This time it seems like electric-indent-mode was taking up close to 50% of my
> CPU usage. 
> 
> I disabled that and tried again and then it froze again with c-indent-line-or-region eating up 63% of my CPU
> when I use TAB.
> 
> While using debug-on-quit I get the below output. Any idea what's happening here and how it can be
> addressed? I do know though that if I launch emacs with the -Q argument, then there aren't any problems at
> all. I tried large files of other types and it only seems to happen with Java files. I attached screenshots of the
> CPU profiler outputs for each of the three scenarios. Attached is also the Java file as well as my init file. 
> 
> I am using emacs version 28.2 on EndeavorOS, but reproduced the results using both emacs 29 and the
> master branch. 

I confirm that the issue doesn't happen with "emacs -Q" and the file
you posted.  So some of your customizations trigger the problem, and
we must find out which one(s).  Can you try selectively enabling only
parts of your init files to find which customizations are the reason?
If your customizations are not too many, starting "emacs -Q" and then
evaluating the customizations one by one could be a good way of
finding the culprit(s).  Another possibility is bisecting:
successively divide the init file in two halves and see which half
causes the problem, then divide that half in tow, etc. etc., until you
get to a small enough part you can post here (or figure out yourself).

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at 61436 <at> debbugs.gnu.org:


Received: (at 61436) by debbugs.gnu.org; 12 Feb 2023 05:38:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 12 00:38:58 2023
Received: from localhost ([127.0.0.1]:43832 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pR54g-0002jp-Ti
	for submit <at> debbugs.gnu.org; Sun, 12 Feb 2023 00:38:58 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:53869)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <hank.greenburg@HIDDEN>) id 1pR0Aw-0000bb-Ey
 for 61436 <at> debbugs.gnu.org; Sat, 11 Feb 2023 19:25:06 -0500
Date: Sun, 12 Feb 2023 00:24:49 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1676161495; x=1676420695;
 bh=26uyH0qh/6ue0EKzkAnN1EfL4Pbq4GmO/E3Z6CMqNjo=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector;
 b=zRBt2MbUNUARInenvsnuTyJbahiujNYF1NNLPVB9+R5dY9AFNQOc49KxxuoH421Xn
 +gZm3a9vsAjUgeqf8Kez5TdRFrGuKk9S9WgMhtF8xHATaQuXerZNIaM3aFAAQJwL20
 m9uEZLFvzAa56d4a+PKwzbSbS6TTckK/BjDGIWNk02F0mI4K+rCb/p6eIoJlVNK3Dv
 uP86siTtOtbs4YeeQGqCs5HIx0kESUd3VftuT2rfycHNPzrYfSehW/BfuO6BPrCbEA
 H3jFSajimiGMnZdpreZAF9zVHqzevAcN6S4myRgse9O6r9keRtC9PkUwmTiHVG8Ses
 7Uu66DU9YxsCA==
To: Hank Greenburg <hank.greenburg@HIDDEN>
From: Hank Greenburg <hank.greenburg@HIDDEN>
Subject: Re: bug#61436: Emacs Freezing With Java Files
Message-ID: <eAr0bSlFsZ5nFgKlAYhJrJ4NuO1HZP6DXqeCwlQrsij4RezeCFGZQEojuhZJI4gPm7YuC5ub-YXn3-YTwsdSkkS0gtt4Z4bwtz2Pv2G1LQU=@protonmail.com>
In-Reply-To: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
References: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
Feedback-ID: 10943770:user:proton
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 61436
X-Mailman-Approved-At: Sun, 12 Feb 2023 00:38:53 -0500
Cc: 61436 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.

--b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

VG8gZm9sbG93IHVwIG9uIHRoaXMsIHNvbWVob3cgZGlzYWJsaW5nIHdoaWNoLWZ1bmN0aW9uLW1v
ZGUgZnJvbSBteSBjb25maWcgaGFzIHNvbHZlZCB0aGUgcHJvYmxlbS4gVGhhdCBkb2Vzbid0IG1h
a2Ugc2Vuc2UgdGhvdWdoIGJlY2F1c2UgSSBkaWRuJ3QgYWRkIHRoYXQgdW50aWwgYWZ0ZXIgaXQg
aGFkIGZyb3plbiBpbiB0aGUgZmlyc3QgcGxhY2UuIEkga25vdyB0aGF0IGZvciBjZXJ0YWluIGJl
Y2F1c2UgSSBoYWQgdG8gdXNlIEludGVsbGlKIGFuZCBnb3QgdGhlIGlkZWEgZm9yIHVzaW5nIHdo
aWNoLWZ1bmN0aW9uLW1vZGUgZnJvbSBJbnRlbGxpSi4KClRvIGNsYXJpZnksIHRoaXMgZnJvemUg
ZXZlcnkgc2luZ2xlIHRpbWUgSSB0cmllZCB0byBlZGl0IHRoZSBmaWxlIG5vIG1hdHRlciB3aGF0
IG1vZGVzIEkgaGFkIHR1cm5lZCBvbiBvciBvZmYuIEl0IGhhcHBlbmVkIGF0IGxlYXN0IDQwIHRp
bWVzIGluIHRvdGFsIGFuZCBuZXZlciBvbmNlIHdhcyBJIGFibGUgdG8gYWN0dWFsbHkgZWRpdCB0
aGUgZmlsZSB3aXRoaW4gRW1hY3MuIEFmdGVyIGRpc2FibGluZyB3aGljaC1mdW5jdGlvbi1tb2Rl
IHRob3VnaCBJIGhhdmUgcmVzdGFydGVkIEVtYWNzIGEgZmV3IHRpbWVzLCB3cml0dGVuIGluIHRo
ZSBmaWxlLCBzY3JvbGxlZCB0aG91Z2ggaXQgYWxsIHdpdGhvdXQgYSBzaW5nbGUgaGljY3VwLgoK
U28gbXkgcHJvYmxlbSBpcyBzZWVtaW5nbHkgc29sdmVkIGJ1dCB0aGVyZSBpcyBhbiB1bmRlcmx5
aW5nIGJ1ZyBzb21ld2hlcmUgdGhhdCBJJ20gbm90IHJlYWxseSBhYmxlIHRvIGlzb2xhdGUgYXNp
ZGUgZnJvbSBkaXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZS4KCi0tLS0tLS0gT3JpZ2luYWwg
TWVzc2FnZSAtLS0tLS0tCk9uIFNhdHVyZGF5LCBGZWJydWFyeSAxMXRoLCAyMDIzIGF0IDEyOjE2
IFBNLCBIYW5rIEdyZWVuYnVyZyB2aWEgIkJ1ZyByZXBvcnRzIGZvciBHTlUgRW1hY3MsIHRoZSBT
d2lzcyBhcm15IGtuaWZlIG9mIHRleHQgZWRpdG9ycyIgPGJ1Zy1nbnUtZW1hY3NAZ251Lm9yZz4g
d3JvdGU6Cgo+IEkgaGF2ZSBhIGZldyBKYXZhIGZpbGVzIHRoYXQgYXJlIGFib3V0IDUwMCBsaW5l
cyBvZiBjb2RlIGFuZCBJIGNhbid0IG1vdmUgYXJvdW5kIGluIHRoZW0gbXVjaCBiZWZvcmUgRW1h
Y3MgZnJlZXplcy4gSSBmaXJzdCB0aG91Z2h0IGl0IHdhcyBqYXZhLWxzcCBidXQgaXQgc3RpbGwg
aGFwcGVuZWQgYWZ0ZXIgZGlzYWJsaW5nIGFuZCB1bmluc3RhbGxpbmcgaXQuIEkgYWxzbyB1bmlu
c3RhbGxlZCBsc3AtbW9kZSBhcyB3ZWxsLCBidXQgdGhhdCBkaWRuJ3QgY2hhbmdlIGFueXRoaW5n
Lgo+Cj4gSSBzdGFydGVkIGRvaW5nIENQVSBwcm9maWxlcyBvZiBpdCBhbmQgZm91bmQgdGhhdCB3
aGljaC1mdW5jdGlvbi1tb2RlIHdhcyB0YWtpbmcgdXAgNjclIG9mIG15IENQVSB1c2FnZS4gV2hp
bGUgdGhpcyBpcyBoYXBwZW5pbmcgYWxsIEkgd2FzIGRvaW5nIHdhcyBob2xkaW5nIHRoZSBkb3du
IGFycm93IHVudGlsIGl0IGZyb3plIGFib3V0IDM1MCBsaW5lcyBpbi4gRGlkbid0IHByZXNzIGFu
eSBvdGhlciBidXR0b25zLgo+Cj4gU28gSSBkaXNhYmxlZCB3aGljaC1mdW5jdGlvbi1tb2RlIGFu
ZCBtb3ZlZCBhcm91bmQgdGhlIGJ1ZmZlciBqdXN0IGZpbmUhIFRob3VnaCB3aGVuIHRyeWluZyB0
byBlZGl0IHRoZSBmaWxlIChqdXN0IGhpdCBlbnRlciksIGl0IGZyb3plIGFnYWluLiBUaGlzIHRp
bWUgaXQgc2VlbXMgbGlrZSBlbGVjdHJpYy1pbmRlbnQtbW9kZSB3YXMgdGFraW5nIHVwIGNsb3Nl
IHRvIDUwJSBvZiBteSBDUFUgdXNhZ2UuCj4KPiBJIGRpc2FibGVkIHRoYXQgYW5kIHRyaWVkIGFn
YWluIGFuZCB0aGVuIGl0IGZyb3plIGFnYWluIHdpdGggYy1pbmRlbnQtbGluZS1vci1yZWdpb24g
ZWF0aW5nIHVwIDYzJSBvZiBteSBDUFUgd2hlbiBJIHVzZSBUQUIuCj4KPiBXaGlsZSB1c2luZyBk
ZWJ1Zy1vbi1xdWl0IEkgZ2V0IHRoZSBiZWxvdyBvdXRwdXQuIEFueSBpZGVhIHdoYXQncyBoYXBw
ZW5pbmcgaGVyZSBhbmQgaG93IGl0IGNhbiBiZSBhZGRyZXNzZWQ/IEkgZG8ga25vdyB0aG91Z2gg
dGhhdCBpZiBJIGxhdW5jaCBlbWFjcyB3aXRoIHRoZSAtUSBhcmd1bWVudCwgdGhlbiB0aGVyZSBh
cmVuJ3QgYW55IHByb2JsZW1zIGF0IGFsbC4gSSB0cmllZCBsYXJnZSBmaWxlcyBvZiBvdGhlciB0
eXBlcyBhbmQgaXQgb25seSBzZWVtcyB0byBoYXBwZW4gd2l0aCBKYXZhIGZpbGVzLiBJIGF0dGFj
aGVkIHNjcmVlbnNob3RzIG9mIHRoZSBDUFUgcHJvZmlsZXIgb3V0cHV0cyBmb3IgZWFjaCBvZiB0
aGUgdGhyZWUgc2NlbmFyaW9zLiBBdHRhY2hlZCBpcyBhbHNvIHRoZSBKYXZhIGZpbGUgYXMgd2Vs
bCBhcyBteSBpbml0IGZpbGUuCj4KPiBJIGFtIHVzaW5nIGVtYWNzIHZlcnNpb24gMjguMiBvbiBF
bmRlYXZvck9TLCBidXQgcmVwcm9kdWNlZCB0aGUgcmVzdWx0cyB1c2luZyBib3RoIGVtYWNzIDI5
IGFuZCB0aGUgbWFzdGVyIGJyYW5jaC4KPgo+IERlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6
IChxdWl0KQo+IGJlZ2lubmluZy1vZi1kZWZ1bigpCj4gYy1nZXQtZmFsbGJhY2stc2Nhbi1wb3Mo
MTc3OTQpCj4gYy1wYXJzZS1zdGF0ZS1nZXQtc3RyYXRlZ3koMTc3OTQgMSkKPiBjLXBhcnNlLXN0
YXRlLTEoKQo+IGMtcGFyc2Utc3RhdGUoKQo+IGMtZ3Vlc3MtYmFzaWMtc3ludGF4KCkKPiBjLWlu
ZGVudC1saW5lKCkKPiAjZihjb21waWxlZC1mdW5jdGlvbiAoKSAoaW50ZXJhY3RpdmUgbmlsKSAj
PGJ5dGVjb2RlIDB4MTgwMjQ4ZGNjYTFjYzU3ZT4pKCkKPiBjLWluZGVudC1jb21tYW5kKG5pbCkK
PiBjLWluZGVudC1saW5lLW9yLXJlZ2lvbihuaWwgbmlsKQo+IGZ1bmNhbGwtaW50ZXJhY3RpdmVs
eShjLWluZGVudC1saW5lLW9yLXJlZ2lvbiBuaWwgbmlsKQo+IGNhbGwtaW50ZXJhY3RpdmVseShj
LWluZGVudC1saW5lLW9yLXJlZ2lvbiBuaWwgbmlsKSBjb21tYW5kLWV4ZWN1dGUoYy1pbmRlbnQt
bGluZS1vci1yZWdpb24p

--b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0
cHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5UbyBmb2xsb3cgdXAgb24gdGhpcywgc29tZWhvdyBk
aXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZSBmcm9tIG15IGNvbmZpZyBoYXMgc29sdmVkIHRo
ZSBwcm9ibGVtLiBUaGF0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0aG91Z2ggYmVjYXVzZSBJIGRpZG4n
dCBhZGQgdGhhdCB1bnRpbCBhZnRlciBpdCBoYWQgZnJvemVuIGluIHRoZSBmaXJzdCBwbGFjZS4g
SSBrbm93IHRoYXQgZm9yIGNlcnRhaW4gYmVjYXVzZSBJIGhhZCB0byB1c2UgSW50ZWxsaUogYW5k
IGdvdCB0aGUgaWRlYSBmb3IgdXNpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZSBmcm9tIEludGVsbGlK
LiA8YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBm
b250LXNpemU6IDE0cHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij48YnI+PC9kaXY+PGRpdiBzdHls
ZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGNvbG9y
OiByZ2IoMCwgMCwgMCk7Ij5UbyBjbGFyaWZ5LCB0aGlzIGZyb3plIGV2ZXJ5IHNpbmdsZSB0aW1l
IEkgdHJpZWQgdG8gZWRpdCB0aGUgZmlsZSBubyBtYXR0ZXIgd2hhdCBtb2RlcyBJIGhhZCB0dXJu
ZWQgb24gb3Igb2ZmLiBJdCBoYXBwZW5lZCBhdCBsZWFzdCA0MCB0aW1lcyBpbiB0b3RhbCBhbmQg
bmV2ZXIgb25jZSB3YXMgSSBhYmxlIHRvIGFjdHVhbGx5IGVkaXQgdGhlIGZpbGUgd2l0aGluIEVt
YWNzLiBBZnRlciBkaXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZSB0aG91Z2ggSSBoYXZlIHJl
c3RhcnRlZCBFbWFjcyBhIGZldyB0aW1lcywgd3JpdHRlbiBpbiB0aGUgZmlsZSwgc2Nyb2xsZWQg
dGhvdWdoIGl0IGFsbCB3aXRob3V0IGEgc2luZ2xlIGhpY2N1cC4gPGJyPjwvZGl2PjxkaXYgc3R5
bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xv
cjogcmdiKDAsIDAsIDApOyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlh
bCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+U28g
bXkgcHJvYmxlbSBpcyBzZWVtaW5nbHkgc29sdmVkIGJ1dCB0aGVyZSBpcyBhbiB1bmRlcmx5aW5n
IGJ1ZyBzb21ld2hlcmUgdGhhdCBJJ20gbm90IHJlYWxseSBhYmxlIHRvIGlzb2xhdGUgYXNpZGUg
ZnJvbSBkaXNhYmxpbmcgd2hpY2gtZnVuY3Rpb24tbW9kZS4gPGJyPjwvZGl2PjxkaXYgc3R5bGU9
ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjog
cmdiKDAsIDAsIDApOyI+PGJyPjwvZGl2Pg0KPGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1
cmVfYmxvY2sgcHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stZW1wdHkiIHN0eWxlPSJmb250LWZh
bWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KICAgIDxkaXYgY2xh
c3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXVzZXIgcHJvdG9ubWFpbF9zaWduYXR1cmVf
YmxvY2stZW1wdHkiPg0KICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgIA0KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stcHJvdG9uIHByb3Rv
bm1haWxfc2lnbmF0dXJlX2Jsb2NrLWVtcHR5Ij4NCiAgICAgICAgDQogICAgICAgICAgICA8L2Rp
dj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBm
b250LXNpemU6IDE0cHg7Ij48YnI+PC9kaXY+PGRpdiBjbGFzcz0icHJvdG9ubWFpbF9xdW90ZSI+
DQogICAgICAgIC0tLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLS0tPGJyPg0KICAgICAgICBP
biBTYXR1cmRheSwgRmVicnVhcnkgMTF0aCwgMjAyMyBhdCAxMjoxNiBQTSwgSGFuayBHcmVlbmJ1
cmcgdmlhICJCdWcgcmVwb3J0cyBmb3IgR05VIEVtYWNzLCB0aGUgU3dpc3MgYXJteSBrbmlmZSBv
ZiB0ZXh0IGVkaXRvcnMiICZsdDtidWctZ251LWVtYWNzQGdudS5vcmcmZ3Q7IHdyb3RlOjxicj48
YnI+DQogICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJwcm90b25tYWlsX3F1b3RlIiB0eXBlPSJj
aXRlIj4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1z
ZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+PHNwYW4+SQ0KIGhhdmUgYSBmZXcgSmF2YSBmaWxlcyB0
aGF0IGFyZSBhYm91dCA1MDAgbGluZXMgb2YgY29kZSBhbmQgSSBjYW4ndCBtb3ZlDQogYXJvdW5k
IGluIHRoZW0gbXVjaCBiZWZvcmUgRW1hY3MgZnJlZXplcy4gSSBmaXJzdCB0aG91Z2h0IGl0IHdh
cw0KamF2YS1sc3AgYnV0IGl0IHN0aWxsIGhhcHBlbmVkIGFmdGVyIGRpc2FibGluZyBhbmQgdW5p
bnN0YWxsaW5nIGl0LiBJDQphbHNvIHVuaW5zdGFsbGVkIGxzcC1tb2RlIGFzIHdlbGwsIGJ1dCB0
aGF0IGRpZG4ndCBjaGFuZ2UgYW55dGhpbmcuIDwvc3Bhbj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkN
CiBzdGFydGVkIGRvaW5nIENQVSBwcm9maWxlcyBvZiBpdCBhbmQgZm91bmQgdGhhdCB3aGljaC1m
dW5jdGlvbi1tb2RlIHdhcw0KIHRha2luZyB1cCA2NyUgb2YgbXkgQ1BVIHVzYWdlLiBXaGlsZSB0
aGlzIGlzIGhhcHBlbmluZyBhbGwgSSB3YXMgZG9pbmcNCndhcyBob2xkaW5nIHRoZSBkb3duIGFy
cm93IHVudGlsIGl0IGZyb3plIGFib3V0IDM1MCBsaW5lcyBpbi4gRGlkbid0DQpwcmVzcyBhbnkg
b3RoZXIgYnV0dG9ucy4gPGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U28NCiBJIGRpc2Fi
bGVkIHdoaWNoLWZ1bmN0aW9uLW1vZGUgYW5kIG1vdmVkIGFyb3VuZCB0aGUgYnVmZmVyIGp1c3Qg
ZmluZSENClRob3VnaCB3aGVuIHRyeWluZyB0byBlZGl0IHRoZSBmaWxlIChqdXN0IGhpdCBlbnRl
ciksIGl0IGZyb3plIGFnYWluLg0KVGhpcyB0aW1lIGl0IHNlZW1zIGxpa2UgZWxlY3RyaWMtaW5k
ZW50LW1vZGUgd2FzIHRha2luZyB1cCBjbG9zZSB0byA1MCUNCm9mIG15IENQVSB1c2FnZS4gPGJy
PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBkaXNhYmxlZCB0aGF0IGFuZCB0cmllZCBhZ2Fp
biBhbmQgdGhlbiBpdCBmcm96ZSBhZ2FpbiB3aXRoIGMtaW5kZW50LWxpbmUtb3ItcmVnaW9uIGVh
dGluZyB1cCA2MyUgb2YgbXkgQ1BVIHdoZW4gSSB1c2UgVEFCLjwvZGl2PjxkaXY+PGJyPjwvZGl2
PjxkaXY+V2hpbGUNCiB1c2luZyBkZWJ1Zy1vbi1xdWl0IEkgZ2V0IHRoZSBiZWxvdyBvdXRwdXQu
IEFueSBpZGVhIHdoYXQncyBoYXBwZW5pbmcNCmhlcmUgYW5kIGhvdyBpdCBjYW4gYmUgYWRkcmVz
c2VkPyBJIGRvIGtub3cgdGhvdWdoIHRoYXQgaWYgSSBsYXVuY2ggZW1hY3MNCndpdGggdGhlIC1R
IGFyZ3VtZW50LCB0aGVuIHRoZXJlIGFyZW4ndCBhbnkgcHJvYmxlbXMgYXQgYWxsLiBJIHRyaWVk
IGxhcmdlIGZpbGVzIG9mIG90aGVyIHR5cGVzIGFuZA0KIGl0IG9ubHkgc2VlbXMgdG8gaGFwcGVu
IHdpdGggSmF2YSBmaWxlcy4gSSBhdHRhY2hlZCBzY3JlZW5zaG90cyBvZiB0aGUNCkNQVSBwcm9m
aWxlciBvdXRwdXRzIGZvciBlYWNoIG9mIHRoZSB0aHJlZSBzY2VuYXJpb3MuIEF0dGFjaGVkIGlz
IGFsc28gdGhlIEphdmEgZmlsZSBhcyB3ZWxsIGFzIG15IGluaXQgZmlsZS4gPGJyPjwvZGl2Pjxk
aXY+PGJyPjwvZGl2PjxkaXY+SSBhbSB1c2luZyBlbWFjcyB2ZXJzaW9uIDI4LjIgb24gRW5kZWF2
b3JPUywgYnV0IHJlcHJvZHVjZWQgdGhlIHJlc3VsdHMgdXNpbmcgYm90aCBlbWFjcyAyOSBhbmQg
dGhlIG1hc3RlciBicmFuY2guIDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxzcGFuPkRl
YnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6IChxdWl0KTwvc3Bhbj48ZGl2PjxzcGFuPiZuYnNw
OyBiZWdpbm5pbmctb2YtZGVmdW4oKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLWdl
dC1mYWxsYmFjay1zY2FuLXBvcygxNzc5NCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsg
Yy1wYXJzZS1zdGF0ZS1nZXQtc3RyYXRlZ3koMTc3OTQgMSk8L3NwYW4+PC9kaXY+PGRpdj48c3Bh
bj4mbmJzcDsgYy1wYXJzZS1zdGF0ZS0xKCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsg
Yy1wYXJzZS1zdGF0ZSgpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7IGMtZ3Vlc3MtYmFz
aWMtc3ludGF4KCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgYy1pbmRlbnQtbGluZSgp
PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7ICNmKGNvbXBpbGVkLWZ1bmN0aW9uICgpIChp
bnRlcmFjdGl2ZSBuaWwpICMmbHQ7Ynl0ZWNvZGUgMHgxODAyNDhkY2NhMWNjNTdlJmd0OykoKTwv
c3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLWluZGVudC1jb21tYW5kKG5pbCk8L3NwYW4+
PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgYy1pbmRlbnQtbGluZS1vci1yZWdpb24obmlsIG5pbCk8
L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgZnVuY2FsbC1pbnRlcmFjdGl2ZWx5KGMtaW5k
ZW50LWxpbmUtb3ItcmVnaW9uIG5pbCBuaWwpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7
IGNhbGwtaW50ZXJhY3RpdmVseShjLWluZGVudC1saW5lLW9yLXJlZ2lvbiBuaWwgbmlsKTwvc3Bh
bj48L2Rpdj48c3Bhbj48c3Bhbj4mbmJzcDsgY29tbWFuZC1leGVjdXRlKGMtaW5kZW50LWxpbmUt
b3ItcmVnaW9uKTwvc3Bhbj48L3NwYW4+PC9kaXY+PGJyPjwvZGl2Pg0KPGRpdiBzdHlsZT0iZm9u
dC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IiBjbGFzcz0icHJv
dG9ubWFpbF9zaWduYXR1cmVfYmxvY2sgcHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stZW1wdHki
Pg0KICAgIDxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXVzZXIgcHJvdG9u
bWFpbF9zaWduYXR1cmVfYmxvY2stZW1wdHkiPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAg
ICAgICAgICAgPGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stcHJvdG9uIHBy
b3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLWVtcHR5Ij4NCg0KICAgICAgICAgICAgPC9kaXY+DQo8
L2Rpdj4NCg0KICAgICAgICA8L2Jsb2NrcXVvdGU+PGJyPg0KICAgIDwvZGl2Pg==


--b1_mITuvyJsiOhpmDnbWFQzhlum1fa0ly6SkEuJp6jV7I--





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 11 Feb 2023 20:46:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 11 15:46:06 2023
Received: from localhost ([127.0.0.1]:43315 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pQwl4-0002rE-Dw
	for submit <at> debbugs.gnu.org; Sat, 11 Feb 2023 15:46:06 -0500
Received: from lists.gnu.org ([209.51.188.17]:33064)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <hank.greenburg@HIDDEN>) id 1pQuQq-0006pE-AJ
 for submit <at> debbugs.gnu.org; Sat, 11 Feb 2023 13:17:04 -0500
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 <hank.greenburg@HIDDEN>)
 id 1pQuQq-0008JK-0g
 for bug-gnu-emacs@HIDDEN; Sat, 11 Feb 2023 13:17:04 -0500
Received: from mail-40131.protonmail.ch ([185.70.40.131])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <hank.greenburg@HIDDEN>)
 id 1pQuQk-0003Ag-6k
 for bug-gnu-emacs@HIDDEN; Sat, 11 Feb 2023 13:17:03 -0500
Date: Sat, 11 Feb 2023 18:16:41 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1676139412; x=1676398612;
 bh=5SLGnbMNZUpuro5HS3KleolWugWGsPdZqgae9SaewFY=;
 h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
 b=Pqtaundxk8/fIlP33CJ44H30O7To/3AInYqMXIDCxWBEY+N2FDWia19uNCVGOnnnQ
 /FY9W1sw21nkHVpQP9bMJR1uzxnIDvds0nTeeEf4vCvaQVhBFTQtWX+ZctbjUlLVNl
 Codx+qz+UAGM5vwGZnsw7VMY/V6Son7vYHik/3Ka1xm56rBHqDP/31aRn0iF1XMcG5
 EIkAfWkMw1OWJ1XfdQlvIs6OCpqAr3y/NQlMX+37l4dYRfZQefGPyRxE8dea736vqB
 xwS4lsQLP2h7amKN5gb4fzOeLkpI/w6nGxGczhtNXQaJjHPAnmob1Uftb0Wg8Oevnh
 ofXt8lZO3xj5Q==
To: "bug-gnu-emacs@HIDDEN" <bug-gnu-emacs@HIDDEN>
From: Hank Greenburg <hank.greenburg@HIDDEN>
Subject: Emacs Freezing With Java Files
Message-ID: <ZPOcahP9yPJ-kLcgipM3-l0jatXJSQWKPfObrlOkIB3dagud85x2DGXGhPpQn1QNqNksVmPIRc1intyW_Cx1Z9ou2vBZ5QLDpLTi_VFVYyg=@protonmail.com>
Feedback-ID: 10943770:user:proton
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys"
Received-SPF: pass client-ip=185.70.40.131;
 envelope-from=hank.greenburg@HIDDEN; helo=mail-40131.protonmail.ch
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 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, FILL_THIS_FORM=0.001,
 FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, 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-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Sat, 11 Feb 2023 15:46:05 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

This is a multi-part message in MIME format.

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: multipart/alternative;
 boundary="b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys"

--b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

SSBoYXZlIGEgZmV3IEphdmEgZmlsZXMgdGhhdCBhcmUgYWJvdXQgNTAwIGxpbmVzIG9mIGNvZGUg
YW5kIEkgY2FuJ3QgbW92ZSBhcm91bmQgaW4gdGhlbSBtdWNoIGJlZm9yZSBFbWFjcyBmcmVlemVz
LiBJIGZpcnN0IHRob3VnaHQgaXQgd2FzIGphdmEtbHNwIGJ1dCBpdCBzdGlsbCBoYXBwZW5lZCBh
ZnRlciBkaXNhYmxpbmcgYW5kIHVuaW5zdGFsbGluZyBpdC4gSSBhbHNvIHVuaW5zdGFsbGVkIGxz
cC1tb2RlIGFzIHdlbGwsIGJ1dCB0aGF0IGRpZG4ndCBjaGFuZ2UgYW55dGhpbmcuCgpJIHN0YXJ0
ZWQgZG9pbmcgQ1BVIHByb2ZpbGVzIG9mIGl0IGFuZCBmb3VuZCB0aGF0IHdoaWNoLWZ1bmN0aW9u
LW1vZGUgd2FzIHRha2luZyB1cCA2NyUgb2YgbXkgQ1BVIHVzYWdlLiBXaGlsZSB0aGlzIGlzIGhh
cHBlbmluZyBhbGwgSSB3YXMgZG9pbmcgd2FzIGhvbGRpbmcgdGhlIGRvd24gYXJyb3cgdW50aWwg
aXQgZnJvemUgYWJvdXQgMzUwIGxpbmVzIGluLiBEaWRuJ3QgcHJlc3MgYW55IG90aGVyIGJ1dHRv
bnMuCgpTbyBJIGRpc2FibGVkIHdoaWNoLWZ1bmN0aW9uLW1vZGUgYW5kIG1vdmVkIGFyb3VuZCB0
aGUgYnVmZmVyIGp1c3QgZmluZSEgVGhvdWdoIHdoZW4gdHJ5aW5nIHRvIGVkaXQgdGhlIGZpbGUg
KGp1c3QgaGl0IGVudGVyKSwgaXQgZnJvemUgYWdhaW4uIFRoaXMgdGltZSBpdCBzZWVtcyBsaWtl
IGVsZWN0cmljLWluZGVudC1tb2RlIHdhcyB0YWtpbmcgdXAgY2xvc2UgdG8gNTAlIG9mIG15IENQ
VSB1c2FnZS4KCkkgZGlzYWJsZWQgdGhhdCBhbmQgdHJpZWQgYWdhaW4gYW5kIHRoZW4gaXQgZnJv
emUgYWdhaW4gd2l0aCBjLWluZGVudC1saW5lLW9yLXJlZ2lvbiBlYXRpbmcgdXAgNjMlIG9mIG15
IENQVSB3aGVuIEkgdXNlIFRBQi4KCldoaWxlIHVzaW5nIGRlYnVnLW9uLXF1aXQgSSBnZXQgdGhl
IGJlbG93IG91dHB1dC4gQW55IGlkZWEgd2hhdCdzIGhhcHBlbmluZyBoZXJlIGFuZCBob3cgaXQg
Y2FuIGJlIGFkZHJlc3NlZD8gSSBkbyBrbm93IHRob3VnaCB0aGF0IGlmIEkgbGF1bmNoIGVtYWNz
IHdpdGggdGhlIC1RIGFyZ3VtZW50LCB0aGVuIHRoZXJlIGFyZW4ndCBhbnkgcHJvYmxlbXMgYXQg
YWxsLiBJIHRyaWVkIGxhcmdlIGZpbGVzIG9mIG90aGVyIHR5cGVzIGFuZCBpdCBvbmx5IHNlZW1z
IHRvIGhhcHBlbiB3aXRoIEphdmEgZmlsZXMuIEkgYXR0YWNoZWQgc2NyZWVuc2hvdHMgb2YgdGhl
IENQVSBwcm9maWxlciBvdXRwdXRzIGZvciBlYWNoIG9mIHRoZSB0aHJlZSBzY2VuYXJpb3MuIEF0
dGFjaGVkIGlzIGFsc28gdGhlIEphdmEgZmlsZSBhcyB3ZWxsIGFzIG15IGluaXQgZmlsZS4KCkkg
YW0gdXNpbmcgZW1hY3MgdmVyc2lvbiAyOC4yIG9uIEVuZGVhdm9yT1MsIGJ1dCByZXByb2R1Y2Vk
IHRoZSByZXN1bHRzIHVzaW5nIGJvdGggZW1hY3MgMjkgYW5kIHRoZSBtYXN0ZXIgYnJhbmNoLgoK
RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKHF1aXQpCmJlZ2lubmluZy1vZi1kZWZ1bigp
CmMtZ2V0LWZhbGxiYWNrLXNjYW4tcG9zKDE3Nzk0KQpjLXBhcnNlLXN0YXRlLWdldC1zdHJhdGVn
eSgxNzc5NCAxKQpjLXBhcnNlLXN0YXRlLTEoKQpjLXBhcnNlLXN0YXRlKCkKYy1ndWVzcy1iYXNp
Yy1zeW50YXgoKQpjLWluZGVudC1saW5lKCkKI2YoY29tcGlsZWQtZnVuY3Rpb24gKCkgKGludGVy
YWN0aXZlIG5pbCkgIzxieXRlY29kZSAweDE4MDI0OGRjY2ExY2M1N2U+KSgpCmMtaW5kZW50LWNv
bW1hbmQobmlsKQpjLWluZGVudC1saW5lLW9yLXJlZ2lvbihuaWwgbmlsKQpmdW5jYWxsLWludGVy
YWN0aXZlbHkoYy1pbmRlbnQtbGluZS1vci1yZWdpb24gbmlsIG5pbCkKY2FsbC1pbnRlcmFjdGl2
ZWx5KGMtaW5kZW50LWxpbmUtb3ItcmVnaW9uIG5pbCBuaWwpIGNvbW1hbmQtZXhlY3V0ZShjLWlu
ZGVudC1saW5lLW9yLXJlZ2lvbik=

--b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0
cHg7Ij48c3Bhbj5JDQogaGF2ZSBhIGZldyBKYXZhIGZpbGVzIHRoYXQgYXJlIGFib3V0IDUwMCBs
aW5lcyBvZiBjb2RlIGFuZCBJIGNhbid0IG1vdmUNCiBhcm91bmQgaW4gdGhlbSBtdWNoIGJlZm9y
ZSBFbWFjcyBmcmVlemVzLiBJIGZpcnN0IHRob3VnaHQgaXQgd2FzDQpqYXZhLWxzcCBidXQgaXQg
c3RpbGwgaGFwcGVuZWQgYWZ0ZXIgZGlzYWJsaW5nIGFuZCB1bmluc3RhbGxpbmcgaXQuIEkNCmFs
c28gdW5pbnN0YWxsZWQgbHNwLW1vZGUgYXMgd2VsbCwgYnV0IHRoYXQgZGlkbid0IGNoYW5nZSBh
bnl0aGluZy4gPC9zcGFuPjxkaXY+PGJyPjwvZGl2PjxkaXY+SQ0KIHN0YXJ0ZWQgZG9pbmcgQ1BV
IHByb2ZpbGVzIG9mIGl0IGFuZCBmb3VuZCB0aGF0IHdoaWNoLWZ1bmN0aW9uLW1vZGUgd2FzDQog
dGFraW5nIHVwIDY3JSBvZiBteSBDUFUgdXNhZ2UuIFdoaWxlIHRoaXMgaXMgaGFwcGVuaW5nIGFs
bCBJIHdhcyBkb2luZw0Kd2FzIGhvbGRpbmcgdGhlIGRvd24gYXJyb3cgdW50aWwgaXQgZnJvemUg
YWJvdXQgMzUwIGxpbmVzIGluLiBEaWRuJ3QNCnByZXNzIGFueSBvdGhlciBidXR0b25zLiA8YnI+
PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Tbw0KIEkgZGlzYWJsZWQgd2hpY2gtZnVuY3Rpb24t
bW9kZSBhbmQgbW92ZWQgYXJvdW5kIHRoZSBidWZmZXIganVzdCBmaW5lIQ0KVGhvdWdoIHdoZW4g
dHJ5aW5nIHRvIGVkaXQgdGhlIGZpbGUgKGp1c3QgaGl0IGVudGVyKSwgaXQgZnJvemUgYWdhaW4u
DQpUaGlzIHRpbWUgaXQgc2VlbXMgbGlrZSBlbGVjdHJpYy1pbmRlbnQtbW9kZSB3YXMgdGFraW5n
IHVwIGNsb3NlIHRvIDUwJQ0Kb2YgbXkgQ1BVIHVzYWdlLiA8YnI+PC9kaXY+PGRpdj48YnI+PC9k
aXY+PGRpdj5JIGRpc2FibGVkIHRoYXQgYW5kIHRyaWVkIGFnYWluIGFuZCB0aGVuIGl0IGZyb3pl
IGFnYWluIHdpdGggYy1pbmRlbnQtbGluZS1vci1yZWdpb24gZWF0aW5nIHVwIDYzJSBvZiBteSBD
UFUgd2hlbiBJIHVzZSBUQUIuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5XaGlsZQ0KIHVzaW5n
IGRlYnVnLW9uLXF1aXQgSSBnZXQgdGhlIGJlbG93IG91dHB1dC4gQW55IGlkZWEgd2hhdCdzIGhh
cHBlbmluZw0KaGVyZSBhbmQgaG93IGl0IGNhbiBiZSBhZGRyZXNzZWQ/IEkgZG8ga25vdyB0aG91
Z2ggdGhhdCBpZiBJIGxhdW5jaCBlbWFjcw0Kd2l0aCB0aGUgLVEgYXJndW1lbnQsIHRoZW4gdGhl
cmUgYXJlbid0IGFueSBwcm9ibGVtcyBhdCBhbGwuIEkgdHJpZWQgbGFyZ2UgZmlsZXMgb2Ygb3Ro
ZXIgdHlwZXMgYW5kDQogaXQgb25seSBzZWVtcyB0byBoYXBwZW4gd2l0aCBKYXZhIGZpbGVzLiBJ
IGF0dGFjaGVkIHNjcmVlbnNob3RzIG9mIHRoZQ0KQ1BVIHByb2ZpbGVyIG91dHB1dHMgZm9yIGVh
Y2ggb2YgdGhlIHRocmVlIHNjZW5hcmlvcy4gQXR0YWNoZWQgaXMgYWxzbyB0aGUgSmF2YSBmaWxl
IGFzIHdlbGwgYXMgbXkgaW5pdCBmaWxlLiA8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5J
IGFtIHVzaW5nIGVtYWNzIHZlcnNpb24gMjguMiBvbiBFbmRlYXZvck9TLCBidXQgcmVwcm9kdWNl
ZCB0aGUgcmVzdWx0cyB1c2luZyBib3RoIGVtYWNzIDI5IGFuZCB0aGUgbWFzdGVyIGJyYW5jaC4g
PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PHNwYW4+RGVidWdnZXIgZW50ZXJlZC0tTGlz
cCBlcnJvcjogKHF1aXQpPC9zcGFuPjxkaXY+PHNwYW4+Jm5ic3A7IGJlZ2lubmluZy1vZi1kZWZ1
bigpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+Jm5ic3A7IGMtZ2V0LWZhbGxiYWNrLXNjYW4tcG9z
KDE3Nzk0KTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLXBhcnNlLXN0YXRlLWdldC1z
dHJhdGVneSgxNzc5NCAxKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLXBhcnNlLXN0
YXRlLTEoKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLXBhcnNlLXN0YXRlKCk8L3Nw
YW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgYy1ndWVzcy1iYXNpYy1zeW50YXgoKTwvc3Bhbj48
L2Rpdj48ZGl2PjxzcGFuPiZuYnNwOyBjLWluZGVudC1saW5lKCk8L3NwYW4+PC9kaXY+PGRpdj48
c3Bhbj4mbmJzcDsgI2YoY29tcGlsZWQtZnVuY3Rpb24gKCkgKGludGVyYWN0aXZlIG5pbCkgIyZs
dDtieXRlY29kZSAweDE4MDI0OGRjY2ExY2M1N2UmZ3Q7KSgpPC9zcGFuPjwvZGl2PjxkaXY+PHNw
YW4+Jm5ic3A7IGMtaW5kZW50LWNvbW1hbmQobmlsKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPiZu
YnNwOyBjLWluZGVudC1saW5lLW9yLXJlZ2lvbihuaWwgbmlsKTwvc3Bhbj48L2Rpdj48ZGl2Pjxz
cGFuPiZuYnNwOyBmdW5jYWxsLWludGVyYWN0aXZlbHkoYy1pbmRlbnQtbGluZS1vci1yZWdpb24g
bmlsIG5pbCk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj4mbmJzcDsgY2FsbC1pbnRlcmFjdGl2ZWx5
KGMtaW5kZW50LWxpbmUtb3ItcmVnaW9uIG5pbCBuaWwpPC9zcGFuPjwvZGl2PjxzcGFuPjxzcGFu
PiZuYnNwOyBjb21tYW5kLWV4ZWN1dGUoYy1pbmRlbnQtbGluZS1vci1yZWdpb24pPC9zcGFuPjwv
c3Bhbj48L2Rpdj48YnI+PC9kaXY+DQo8ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9i
bG9jayBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSIgc3R5bGU9ImZvbnQtZmFtaWx5
OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQogICAgPGRpdiBjbGFzcz0i
cHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stdXNlciBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9j
ay1lbXB0eSI+DQogICAgICAgIA0KICAgICAgICAgICAgPC9kaXY+DQogICAgDQogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1wcm90b24gcHJvdG9ubWFp
bF9zaWduYXR1cmVfYmxvY2stZW1wdHkiPg0KICAgICAgICANCiAgICAgICAgICAgIDwvZGl2Pg0K
PC9kaXY+DQo=


--b2_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys--

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: image/png; name=emacs-freezing-cpu-profile-indent-mode-off.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=emacs-freezing-cpu-profile-indent-mode-off.png

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

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: image/png; name=emacs-freezing-cpu-profile.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=emacs-freezing-cpu-profile.png

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
VkiXXHH16o2Kylp/tteK5fOxdWPWLe7rU16+nEcmk4Kns9944/Vvv03Q0j53bliHqDPjct7QkOaV
V4LQJ2E5HNaHH8SmXso6djyZSqV4ek5bt3bRizyygfzlIcjkvSNfBYFAnsDwtx1DIH8NXtxhNQQC
gUBeCqAjgUAgEIhBQEcCgUAgEIOAeyQQCAQCMQg4I4FAIBCIQUBHAoFAIBCDgI4EAoFAIAYBHQkE
AoFADAI6EggEAoEYBHQkEAgEAjEI3fFISkqqfj1/ubW1nUwm+/l5rI9damr6+CXVhYUlqZeyhEIx
lWrsz/Zat24Rg2GiJeFcMi8z8/r+fZ9ZWDC1iu7da0pIOCOWSI/8+L9IYDg99RqOTqu++jpuuBh5
CkXvoUOnamrrmUzTzZtW+Pp6aDSaj7d9Y29vM9r4wS8L+rz2o7aucf/+Y56eU7dv2zS+kvEZHBw6
mXghP7+YSDSaOYMTG7vkRX7j2ahoaGj+8l8H9Y/MCADY+eleZ2fH995dO+7G4PyHQiA60eFIGhpb
Dnx/Ytq0yZs3r5J3KdLSs+PiE7/4/AOktKSk6oeE036+HgsXzJLK5Fwuv0Mk+XLXh9i34CkUPVlZ
N6KjIrW8iEajuXw5L/nXDCJRR2wMfL2GM5xVq1ZG9/Q+DnFaU1OfmXkdiVaSl3eruqZ+w4alOTmF
v5zl+vp6NDW1SaXyFcvnj5dVLyO9PX1KpUoiedaxXfN+v5mbe3PpkrkaDUi9lOXi4hgeHvSMbfhr
g/8fCoEMhw5Hcu3abQqFvOOTt5C41iYmtP+eON/W1oEE/b6anW9jM3H79k3IYJDJZBw/ntzY1Oo8
xQGVwOXl0mjUBQsitSSfOHkhN/dmdHSkGZNx5ue0Uek1nOGs8vKahk2WllYxmQxnZ0cAgELRQ6dT
Z88KbWsTIWGFBIIKEokYEOAzLia9pPj7e8Ud3GViole8snGkpqbBxmbismWvAQCaW4S9vQ+fsQF/
efD/QyGQ4dDhSGaEcjj+LKQ3BwA4OtoCAGSybqRDDw72M6HT0CUFN1dnAEBHuwR1JHK54urV/PXr
l6ASUGbNCgme7sdiuWZl3RitXgPBsQrL0NBQcfHdwACf4V4zXlRc6ePjTqdrh+P9u2Furr1i+QwY
GFCj3uvjf7z57A34y4P/HwqBDIcOR6IVQ7e5pR0AYGNrhSTDwwKxpX19DwEA2N6Zy+Xb2VkFBfqo
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

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: image/png; name=emacs-freezing-cpu-profile-no-function-mode.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=emacs-freezing-cpu-profile-no-function-mode.png

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
M0IIIdSP/D8sLk2WTszKxgAAAABJRU5ErkJggg==

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: text/x-java; name=P1.java
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=P1.java

cHVibGljIGNsYXNzIFAxIHsKICAvKgogIFRoaXMgdGVzdHMgdGhlIFN5bSBhbmQgU3ltVGFibGUg
Y2xhc3Nlcy4gVGhlIHRlc3RzIGhhdmUgYmVlbiBicm9rZW4gdXAgaW50bwogIGZpdmUgcHJpdmF0
ZSBoZWxwZXIgbWV0aG9kcyBmb3Igb3JnYW5pemF0aW9uYWwgcHVycG9zZXMuCiAgKi8KCiAgcHVi
bGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgdGVzdFN5bSgpOwogICAg
dGVzdEV4Y2VwdGlvbnMoKTsKICAgIHRlc3RBZGREZWNsKCk7CiAgICB0ZXN0TG9va3VwKCk7CiAg
ICB0ZXN0UHJpbnQoKTsKICB9CgogIC8qCiAgSGVscGVyIG1ldGhvZCB0byBmb3JtYXQgZXJyb3Jz
IHByb3Blcmx5IHdoaWNoIHByaW50cyBvdXQgdG8gc3RkZXJyCiAgKi8KICBwcml2YXRlIHN0YXRp
YyB2b2lkIGVycm9yKFN0cmluZyBtZXRob2QsIFN0cmluZyBtc2cpIHsKICAgIFN5c3RlbS5lcnIu
cHJpbnRsbigiRVJST1I6ICIgKyBtZXRob2QgKyAiOiAiICsgbXNnKTsKICB9CgogIHByaXZhdGUg
c3RhdGljIHZvaWQgdGVzdFN5bSgpIHsKICAgIC8qCiAgICAgIFRlc3Rpbmcgb3VyIFN5bSBtZXRo
b2RzIHVzaW5nIHRoZSBkaWZmZXJlbnQgdmFyaWFibGUgdHlwZXMgKGJvb2wsIGludCwKICAgICAg
c3RyaW5nKQogICAgICovCiAgICBTdHJpbmdbXSB0eXBlTGlzdCA9IHsiYm9vbCIsICJpbnQiLCAi
c3RyaW5nIn07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHR5cGVMaXN0Lmxlbmd0aDsgaSsrKSB7
CiAgICAgIFN5bSBzeW0gPSBuZXcgU3ltKHR5cGVMaXN0W2ldKTsKICAgICAgU3RyaW5nIHR5cGUg
PSBzeW0uZ2V0VHlwZSgpOwoKICAgICAgaWYgKCF0eXBlLmVxdWFscyh0eXBlTGlzdFtpXSkpIHsK
ICAgICAgICBlcnJvcigiU3ltLmdldFR5cGUgZXhwZWN0aW5nICIsIHR5cGUgKyAiLCBidXQgZ290
ICIgKyB0eXBlTGlzdFtpXSk7CiAgICAgIH0KICAgICAgdHlwZSA9IHN5bS50b1N0cmluZygpOwog
ICAgICBpZiAoIXR5cGUuZXF1YWxzKHR5cGVMaXN0W2ldKSkgewogICAgICAgIGVycm9yKCJTeW0u
dG9TdHJpbmcgZXhwZWN0aW5nICIsIHR5cGUgKyAiLCBidXQgZ290ICIgKyB0eXBlTGlzdFtpXSk7
CiAgICAgIH0KICAgIH0KICB9CgogIHByaXZhdGUgc3RhdGljIHZvaWQgdGVzdEV4Y2VwdGlvbnMo
KSB7CiAgICAvKgogICAgVGhpcyBpcyB0ZXN0aW5nIHRoYXQgdGhlIFN5bVRhYmxlIGNsYXNzIHdp
bGwgdGhyb3cgdGhlIEVtcHR5U3ltVGFibGUKICAgIGV4Y2VwdGlvbiB3aGVuIGV4cGVjdGVkIGFz
IHdlbGwgYXMgdGhlIGFiaWxpdHkgdG8gYWRkIGFuZCByZW1vdmUgc2NvcGUsIHRoZQogICAgYWJp
bGl0eSB0byBhZGQgdG8gb3VyIFN5bVRhYmxlIHdpdGggb25lIGFuZCBtdWx0aXBsZSBIYXNoTWFw
cyB3aXRoIGFkZERlY2wKICAgICovCiAgICBTeW1UYWJsZSBzeW1UYWJsZTsKCiAgICAvLyB0ZXN0
aW5nIHJlbW92ZSBhZnRlciBjYWxsaW5nIHRoZSBjb25zdHJ1Y3RvcgogICAgdHJ5IHsKICAgICAg
c3ltVGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgICAgc3ltVGFibGUucmVtb3ZlU2NvcGUoKTsK
ICAgICAgdHJ5IHsKICAgICAgICBzeW1UYWJsZS5yZW1vdmVTY29wZSgpOyAvLyBTaG91bGQgdGhy
b3cgYW4gZXhjZXB0aW9uLgogICAgICAgIGVycm9yKCJTeW1UYWJsZS5yZW1vdmVTY29wZSIsCiAg
ICAgICAgICAgICAgInNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGFuIGVtcHR5IHRhYmxl
Iik7CiAgICAgIH0gY2F0Y2ggKEVtcHR5U3ltVGFibGVFeGNlcHRpb24gZSkgewogICAgICAgIC8v
IEV4cGVjdGluZwogICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgIGVycm9yKCJT
eW1UYWJsZS5yZW1vdmVTY29wZSIsICJ3cm9uZyBleGNlcHRpb24gZm9yIGFuIGVtcHR5IHRhYmxl
Iik7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEVtcHR5U3ltVGFibGVFeGNlcHRpb24gZSkgewogICAg
ICBlcnJvcigiU3ltVGFibGUucmVtb3ZlU2NvcGUiLAogICAgICAgICAgICAiRW1wdHlTeW1UYWJs
ZUV4Y2VwdGlvbiB0aHJvd24gYWZ0ZXIgY2FsbGluZyBTeW1UYWJsZSBjb25zdHJ1Y3RvciIpOwog
ICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxlLnJlbW92ZVNj
b3BlIiwKICAgICAgICAgICAgZSArICIgdGhyb3duIGFmdGVyIGNhbGxpbmcgU3ltVGFibGUgY29u
c3RydWN0b3IiKTsKICAgIH0KCiAgICAvLyB0ZXN0aW5nIHJlbW92ZSBhZnRlciBhZGRpbmcvcmVt
b3ZpbmcgYSBtYXAKICAgIHRyeSB7CiAgICAgIHN5bVRhYmxlID0gbmV3IFN5bVRhYmxlKCk7CiAg
ICAgIHN5bVRhYmxlLmFkZFNjb3BlKCk7CiAgICAgIHN5bVRhYmxlLmFkZFNjb3BlKCk7CiAgICAg
IHN5bVRhYmxlLmFkZFNjb3BlKCk7CgogICAgICB0cnkgewogICAgICAgIHN5bVRhYmxlLnJlbW92
ZVNjb3BlKCk7CiAgICAgICAgc3ltVGFibGUucmVtb3ZlU2NvcGUoKTsKICAgICAgICBzeW1UYWJs
ZS5yZW1vdmVTY29wZSgpOwogICAgICAgIHN5bVRhYmxlLnJlbW92ZVNjb3BlKCk7IC8vIFNob3Vs
ZCBoYXZlIHplcm8gbWFwcyBub3cKCiAgICAgICAgdHJ5IHsKICAgICAgICAgIHN5bVRhYmxlLnJl
bW92ZVNjb3BlKCk7IC8vIFNob3VsZCB0aHJvdyBhbiBlcnJvci4KICAgICAgICAgIGVycm9yKCJT
eW1UYWJsZS5yZW1vdmVTY29wZSIsCiAgICAgICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIGV4
Y2VwdGlvbiBmb3IgYW4gZW1wdHkgdGFibGUiKTsKICAgICAgICB9IGNhdGNoIChFbXB0eVN5bVRh
YmxlRXhjZXB0aW9uIGUpIHsKICAgICAgICAgIC8vIEV4cGVjdGluZwogICAgICAgIH0gY2F0Y2gg
KEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICBlcnJvcigiU3ltVGFibGUucmVtb3ZlU2NvcGUiLCAi
d3JvbmcgZXhjZXB0aW9uIGZvciBhbiBlbXB0eSB0YWJsZSIpOwogICAgICAgIH0KICAgICAgfSBj
YXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICBlcnJvcigiU3ltVGFibGUucmVtb3ZlU2NvcGUi
LAogICAgICAgICAgICAgICJ1bmV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgYSBub24tZW1wdHkgdGFi
bGUgIiArIGUpOwogICAgICB9CiAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICBlcnJv
cigiU3ltVGFibGUuYWRkU2NvcGUiLCAidW5leHBlY3RlZCBleGNlcHRpb24gIiArIGUpOwogICAg
fQoKICAgIC8vIFRlc3RpbmcgdG8gc2VlIGlmIGFkZERlY2wgdGhyb3dzIGFuIEVtcHR5U3ltVGFi
bGVFeGNlcHRpb24KICAgIHRyeSB7CiAgICAgIHN5bVRhYmxlID0gbmV3IFN5bVRhYmxlKCk7CiAg
ICAgIHN5bVRhYmxlLnJlbW92ZVNjb3BlKCk7CgogICAgICB0cnkgewogICAgICAgIHN5bVRhYmxl
LmFkZERlY2woIm5hbWUiLCBuZXcgU3ltKCJ0eXBlIikpOwogICAgICAgIGVycm9yKCJTeW1UYWJs
ZS5hZGREZWNsIiwKICAgICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIEVtcHR5U3ltVGFibGVF
eGNlcHRpb24gZm9yIGFuIGVtcHR5IFN5bVRhYmxlIik7CiAgICAgIH0gY2F0Y2ggKEVtcHR5U3lt
VGFibGVFeGNlcHRpb24gZSkgewogICAgICAgIC8vIEV4cGVjdGluZwogICAgICB9IGNhdGNoIChF
eGNlcHRpb24gZSkgewogICAgICAgIGVycm9yKCJTeW1UYWJsZS5hZGREZWNsIiwgIndyb25nIGV4
Y2VwdGlvbiBmb3IgYW4gZW1wdHkgU3ltVGFibGUiKTsKICAgICAgfQogICAgfSBjYXRjaCAoRXhj
ZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxlLnJlbW92ZVNjb3BlIiwKICAgICAgICAg
ICAgInVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBmb3IgYSBub24tZW1wdHkgdGFibGUgIiAr
IGUpOwogICAgfQoKICAgIC8vIFRlc3RpbmcgdG8gc2VlIGlmIGFkZERlY2wgdGhyb3dzIGFuIE51
bGxQb2ludGVyRXhjZXB0aW9uCiAgICBzeW1UYWJsZSA9IG5ldyBTeW1UYWJsZSgpOwoKICAgIHRy
eSB7CiAgICAgIHN5bVRhYmxlLmFkZERlY2wobnVsbCwgbmV3IFN5bSgidHlwZSIpKTsKICAgICAg
ZXJyb3IoIlN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIE51
bGxQb2ludGVyRXhjZXB0aW9uIGZvciAnYWRkRGVjbChudWxsLCBzeW0pJyIpOwogICAgfSBjYXRj
aCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgewogICAgICAvLyAgRXhwZWN0aW5nCiAgICB9IGNh
dGNoIChFeGNlcHRpb24gZSkgewogICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCIsICIgd3Jv
bmcgZXhjZXB0aW9uIGZvciAnYWRkRGVjbChudWxsLCBzeW0pJyIpOwogICAgfQoKICAgIHRyeSB7
CiAgICAgIHN5bVRhYmxlLmFkZERlY2woIm5hbWUiLCBudWxsKTsKICAgICAgZXJyb3IoIlN5bVRh
YmxlLmFkZERlY2wiLAogICAgICAgICAgICAic2hvdWxkIHRocm93IGFuIE51bGxQb2ludGVyRXhj
ZXB0aW9uIGZvciAnYWRkRGVjbChuYW1lLCBudWxsKSciKTsKICAgIH0gY2F0Y2ggKE51bGxQb2lu
dGVyRXhjZXB0aW9uIGUpIHsKICAgICAgLy8gRXhwZWN0aW5nCiAgICB9IGNhdGNoIChFeGNlcHRp
b24gZSkgewogICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCIsICIgd3JvbmcgZXhjZXB0aW9u
IGZvciAnYWRkRGVjbChuYW1lLCBudWxsKSciKTsKICAgIH0KCiAgICB0cnkgewogICAgICBzeW1U
YWJsZS5hZGREZWNsKG51bGwsIG51bGwpOwogICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCIs
CiAgICAgICAgICAgICJzaG91bGQgdGhyb3cgYW4gTnVsbFBvaW50ZXJFeGNlcHRpb24gZm9yICdh
ZGREZWNsKG51bGwsIG51bGwpJyIpOwogICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24g
ZSkgewogICAgICAvLyBFeHBlY3RpbmcKICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAg
IGVycm9yKCJTeW1UYWJsZS5hZGREZWNsIiwgIiB3cm9uZyBleGNlcHRpb24gZm9yICdhZGREZWNs
KG51bGwsIG51bGwpJyIpOwogICAgfQogIH0KICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RBZGRE
ZWNsKCkgewogICAgLyoKICAgIFRoaXMgaXMgdGVzdGluZyBhZGRpbmcgdG8gb3VyIHRhYmxlIHdp
dGggbm90IG9ubHkgb25lLCBidXQgbXVsdGlwbGUgSGFzaE1hcCwKICAgIGFzIHdlbGwgYXMgd2l0
aCBhbmQgd2l0aG91dCB1bmlxdWUgbmFtZXMsIGFuZCBtYWtlcyBzdXJlIHRoYXQgZHVwbGljYXRl
CiAgICBuYW1lcyB0aHJvdyB0aGUgRHVwbGljYXRlU3ltRXhjZXB0aW9uCiAgICAqLwogICAgU3lt
VGFibGUgc3ltVGFibGU7CiAgICBTdHJpbmcgbmFtZTEgPSAibmFtZTEiLCBuYW1lMiA9ICJuYW1l
MiIsIG5hbWUzID0gIm5hbWUzIjsKICAgIFN5bSBzeW0xID0gbmV3IFN5bSgiYm9vbCIpLCBzeW0y
ID0gbmV3IFN5bSgiaW50Iik7CgogICAgLy8gQWRkIGludG8gc3ltVGFibGUgd2l0aCBhIHNpbmds
ZSBIYXNoTWFwCiAgICB0cnkgewogICAgICBzeW1UYWJsZSA9IG5ldyBTeW1UYWJsZSgpOwogICAg
ICBzeW1UYWJsZS5hZGREZWNsKG5hbWUxLCBzeW0xKTsKICAgICAgc3ltVGFibGUuYWRkRGVjbChu
YW1lMiwgc3ltMik7CiAgICAgIHN5bVRhYmxlLmFkZERlY2wobmFtZTMsIHN5bTEpOwoKICAgICAg
dHJ5IHsKICAgICAgICBzeW1UYWJsZS5hZGREZWNsKG5hbWUxLCBzeW0yKTsKICAgICAgICBlcnJv
cigiU3ltVGFibGUuYWRkRGVjbCIsICJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiBmb3IgZHVwbGlj
YXRlIG5hbWUiKTsKICAgICAgfSBjYXRjaCAoRHVwbGljYXRlU3ltRXhjZXB0aW9uIGUpIHsKICAg
ICAgICAvLyBFeHBlY3RpbmcKICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICBl
cnJvcigiU3ltVGFibGUuYWRkRGVjbCIsICJ3cm9uZyBleGNlcHRpb24gZm9yIGR1cGxpY2F0ZSBu
YW1lIik7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgIGVycm9yKCJz
eW1UYWJsZS5hZGREZWNsIiwgInVuZXhwZWN0ZWQgZXJyb3Igd2l0aCBhIHNpbmdsZSBIYXNoTWFw
ICIgKyBlKTsKICAgIH0KCiAgICAvLyBBZGQgaW50byBzeW1UYWJsZSB3aXRoIG11bHRpcGxlIEhh
c2hNYXAKICAgIHRyeSB7CiAgICAgIHN5bVRhYmxlID0gbmV3IFN5bVRhYmxlKCk7CiAgICAgIHN5
bVRhYmxlLmFkZERlY2wobmFtZTEsIHN5bTEpOwoKICAgICAgc3ltVGFibGUuYWRkU2NvcGUoKTsK
ICAgICAgc3ltVGFibGUuYWRkRGVjbChuYW1lMiwgc3ltMik7CgogICAgICBzeW1UYWJsZS5hZGRT
Y29wZSgpOwogICAgICBzeW1UYWJsZS5hZGREZWNsKG5hbWUzLCBzeW0xKTsKCiAgICAgIHRyeSB7
CiAgICAgICAgc3ltVGFibGUuYWRkRGVjbChuYW1lMSwgc3ltMik7CiAgICAgIH0gY2F0Y2ggKER1
cGxpY2F0ZVN5bUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgZXJyb3IoIlN5bVRhYmxlLmFkZERlY2wi
LAogICAgICAgICAgICAgICJleGNlcHRpb24gdGhyb3duIHdoZW4gbmFtZSBhZGRlZCBpbiBhbm90
aGVyIEhhc2hNYXAiKTsKICAgICAgfQogICAgICB0cnkgewogICAgICAgIHN5bVRhYmxlLmFkZERl
Y2wobmFtZTMsIHN5bTIpOwogICAgICAgIGVycm9yKAogICAgICAgICAgICAiU3ltVGFibGUuYWRk
RGVjbCIsCiAgICAgICAgICAgICJleGNlcHRpb24gbm90IHRocm93biB3aGVuIGR1cGxpY2F0ZSBu
YW1lIGFkZGVkIHdpdGggbXVsdGlwbGUgSGFzaE1hcHMiKTsKICAgICAgfSBjYXRjaCAoRHVwbGlj
YXRlU3ltRXhjZXB0aW9uIGUpIHsKICAgICAgICAvLyBFeHBlY3RpbmcKICAgICAgfSBjYXRjaCAo
RXhjZXB0aW9uIGUpIHsKICAgICAgICBlcnJvcigKICAgICAgICAgICAgIlN5bVRhYmxlLmFkZERl
Y2wiLAogICAgICAgICAgICAid3JvbmcgZXhjZXB0aW9uIHRocm93biB3aGVuIGR1cGxpY2F0ZSBu
YW1lIGFkZGVkIHdpdGggbXVsdGlwbGUgSGFzaE1hcHMiKTsKICAgICAgfQogICAgfSBjYXRjaCAo
RXhjZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAg
ICAidW5leHBlY3RlZCBleGNlcHRpb24gd2l0aCBtdWx0aXBsZSBIYXNoTWFwcyAiICsgZSk7CiAg
ICB9CiAgfQoKICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RMb29rdXAoKSB7CiAgICAvKgogICAg
VGVzdHMgYm90aCB0aGUgbG9jYWwgYW5kIGdsb2JhbCBsb29rdXAgbWV0aG9kcyB3aGVyZSBib3Ro
IHdvdWxkIHN1Y2NlZWQgYW5kCiAgICBmYWlsIHdpdGggb25lIGFuZCBtdWx0aXBsZSBIYXNoTWFw
CiAgICAgKi8KICAgIFN5bSBzeW0sIGludFN5bSA9IG5ldyBTeW0oImludCIpOwogICAgU3ltVGFi
bGUgc3ltVGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgIFN0cmluZyBuYW1lOwoKICAgIC8vICB3
cmFwIHRoZSBtZXRob2QgaW4gYSB0cnktY2F0Y2ggYmxvY2sgc28gd2UgY2FuIGNhdGNoIGFueSBl
eGNlcHRpb25zCiAgICAvLyAgdGhyb3duCiAgICB0cnkgewogICAgICBzeW1UYWJsZSA9IG5ldyBT
eW1UYWJsZSgpOwogICAgICBzeW1UYWJsZS5yZW1vdmVTY29wZSgpOwoKICAgICAgLy8gVGVzdGlu
ZyBsb2NhbCBhbmQgZ2xvYmFsIGxvb2t1cCB3aXRoIG5vIG1hcAogICAgICB0cnkgewogICAgICAg
IGlmIChzeW1UYWJsZS5sb29rdXBMb2NhbCgieHl6IikgIT0gbnVsbCkgewogICAgICAgICAgZXJy
b3IoInN5bVRhYmxlLmxvb2t1cExvY2FsKCd4eXonKSIsCiAgICAgICAgICAgICAgICAiZGlkIG5v
dCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGEgU3ltdGFibGUgd2l0aCBubyBtYXBzIik7CiAgICAg
ICAgfQogICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgIC8vIEV4cGVjdGluZwog
ICAgICB9CiAgICAgIHRyeSB7CiAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbCgieHl6
IikgIT0gbnVsbCkgewogICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvb2t1cEdsb2JhbCgneHl6
JykiLAogICAgICAgICAgICAgICAgImRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBhIFN5
bXRhYmxlIHdpdGggbm8gbWFwcyIpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoRXhjZXB0aW9u
IGUpIHsKICAgICAgICAvLyBFeHBlY3RpbmcKICAgICAgfQoKICAgICAgLy8gVGVzdGluZyBsb2Nh
bCBhbmQgZ2xvYmFsIGxvb2t1cCB3aXRoIGEgc2luZ2xlIG1hcAogICAgICBzeW1UYWJsZSA9IG5l
dyBTeW1UYWJsZSgpOwogICAgICBpZiAoc3ltVGFibGUubG9va3VwTG9jYWwoInh5eiIpICE9IG51
bGwpIHsKICAgICAgICBlcnJvcigic3ltVGFibGUubG9va3VwTG9jYWwoJ3h5eicpIiwKICAgICAg
ICAgICAgICAiZGlkIG5vdCByZXR1cm4gbnVsbCBmb3IgYSBTeW10YWJsZSBsb29rdXAgb2YgeHl6
Iik7CiAgICAgIH0KICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbCgieHl6IikgIT0gbnVs
bCkgewogICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb29rdXBHbG9iYWwoJ3h5eicpIiwKICAgICAg
ICAgICAgICAiZGlkIG5vdCByZXR1cm4gbnVsbCBmb3IgYSBTeW10YWJsZSBsb29rdXAgb2YgeHl6
Iik7CiAgICAgIH0KCiAgICAgIC8vIExvb2t1cCBmb3IgaXRlbXMgdGhhdCBoYXZlIGJlZW4gYWRk
ZWQgdG8gdGhlIHRhYmxlLCBhbmQgbWFrZSBzdXJlCiAgICAgIC8vIHRoZXJlIGlzbid0IGFuIHVu
ZXhwZWN0ZWQgc3VjY2VzcwogICAgICBzeW1UYWJsZS5hZGREZWNsKCJ4eXoiLCBpbnRTeW0pOwog
ICAgICBpZiAoc3ltVGFibGUubG9va3VwTG9jYWwoInh5eiIpID09IG51bGwpIHsKICAgICAgICBl
cnJvcigic3ltVGFibGUubG9jYWxMb29rdXAoJ3h5eicpIiwKICAgICAgICAgICAgICAiZmFpbGVk
IGZvciB0YWJsZSB3aXRoIG9uZSBpdGVtIHVuZXhwZWN0ZWRseSIpOyAvLz8/PwogICAgICB9CiAg
ICAgIGlmIChzeW1UYWJsZS5sb29rdXBHbG9iYWwoInh5eiIpID09IG51bGwpIHsKICAgICAgICBl
cnJvcigic3ltVGFibGUubG9jYWxHbG9iYWwoJ3h5eicpIiwKICAgICAgICAgICAgICAiZmFpbGVk
IGZvciB0YWJsZSB3aXRoIG9uZSBpdGVtIHVuZXhwZWN0ZWRseSIpOyAvLz8/PwogICAgICB9CiAg
ICAgIGlmIChzeW1UYWJsZS5sb29rdXBMb2NhbCgieCIpICE9IG51bGwpIHsKICAgICAgICBlcnJv
cigic3ltVGFibGUubG9jYWxMb29rdXAoJ3gnKSIsCiAgICAgICAgICAgICAgInN1Y2NlZWRlZCBm
b3IgdGFibGUgd2l0aCBvbmUgaXRlbSwgd2hlbiB0aGUgaXRlbSBkb2Vzbid0IGV4aXN0Iik7CiAg
ICAgIH0KICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbCgieCIpICE9IG51bGwpIHsKICAg
ICAgICBlcnJvcigic3ltVGFibGUubG9jYWxHbG9iYWwoJ3gnKSIsCiAgICAgICAgICAgICAgInN1
Y2NlZWRlZCBmb3IgdGFibGUgd2l0aCBvbmUgaXRlbSwgd2hlbiB0aGUgaXRlbSBkb2Vzbid0IGV4
aXN0Iik7CiAgICAgIH0KCiAgICAgIC8vIFRlc3RpbmcgbG9jYWwvZ2xvYmFsIGxvb2t1cCB3aXRo
IG11bHRpcGxlIG1hcHMKICAgICAgc3ltVGFibGUuYWRkU2NvcGUoKTsKICAgICAgc3ltVGFibGUu
YWRkRGVjbCgienl4IiwgaW50U3ltKTsKICAgICAgc3ltVGFibGUuYWRkU2NvcGUoKTsKICAgICAg
U3ltIGRvdWJsZVN5bSA9IG5ldyBTeW0oImRvdWJsZSIpOwogICAgICBzeW1UYWJsZS5hZGREZWNs
KCJhYmMiLCBkb3VibGVTeW0pOwoKICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cExvY2FsKCJ4eXoi
KSAhPSBudWxsKSB7CiAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvb2t1cExvY2FsKCd4eXonKSIs
CiAgICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkIGZvciB2YWx1ZSBsb29rdXAgb2YgJ3h5
eicgaW4gdGhpcmQgbWFwIik7CiAgICAgIH0KICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2Jh
bCgieHl6IikgIT0gaW50U3ltKSB7CiAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICJzeW1UYWJs
ZS5sb29rdXBHbG9iYWwoJ3h5eicpIiwKICAgICAgICAgICAgImluY29ycmVjdCB2YWx1ZSByZXR1
cm5lZCBmb3IgdmFsdWUgbG9va3VwIG9mICd4eXonIGluIHRoaXJkIG1hcCIpOwogICAgICB9CiAg
ICAgIGlmIChzeW1UYWJsZS5sb29rdXBMb2NhbCgienl4IikgIT0gbnVsbCkgewogICAgICAgIGVy
cm9yKCJzeW1UYWJsZS5sb29rdXBMb2NhbCgnenl4JykiLAogICAgICAgICAgICAgICJudWxsIG5v
dCByZXR1cm5lZCBmb3IgdmFsdWUgbG9va3VwIG9mICd6eXgnIGluIHNlY29uZCBtYXAiKTsKICAg
ICAgfQogICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKCJ6eXgiKSAhPSBpbnRTeW0pIHsK
ICAgICAgICBlcnJvcigKICAgICAgICAgICAgInN5bVRhYmxlLmxvb2t1cEdsb2JhbCgnenl4Jyki
LAogICAgICAgICAgICAiaW5jb3JyZWN0IHZhbHVlIHJldHVybmVkIGZvciB2YWx1ZSBsb29rdXAg
b2YgJ3p5eCcgaW4gc2Vjb25kIG1hcCIpOwogICAgICB9CiAgICAgIGlmIChzeW1UYWJsZS5sb29r
dXBMb2NhbCgiYWJjIikgIT0gZG91YmxlU3ltKSB7CiAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxv
b2t1cExvY2FsKCdhYmMnKSIsCiAgICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkIGZvciB2
YWx1ZSBsb29rdXAgb2YgJ2FiYycgaW4gbG9jYWwgbWFwIik7CiAgICAgIH0KICAgICAgaWYgKHN5
bVRhYmxlLmxvb2t1cEdsb2JhbCgiYWJjIikgIT0gZG91YmxlU3ltKSB7CiAgICAgICAgZXJyb3Io
CiAgICAgICAgICAgICJzeW1UYWJsZS5sb29rdXBHbG9iYWwoJ2FiYycpIiwKICAgICAgICAgICAg
ImluY29ycmVjdCB2YWx1ZSByZXR1cm5lZCBmb3IgdmFsdWUgbG9va3VwIG9mICdhYmMnIGluIGxv
Y2FsIG1hcCIpOwogICAgICB9CgogICAgICAvLyB0ZXN0aW5nIGxvY2FsL2dsb2JhbCBhZnRlciBy
ZW1vdmluZyBhIG1hcAogICAgICBzeW1UYWJsZS5yZW1vdmVTY29wZSgpOwogICAgICBpZiAoc3lt
VGFibGUubG9va3VwTG9jYWwoImFiYyIpICE9IG51bGwpIHsKICAgICAgICBlcnJvcigKICAgICAg
ICAgICAgInN5bVRhYmxlLmxvb2t1cExvY2FsKCdhYmMnKSIsCiAgICAgICAgICAgICJudWxsIG5v
dCByZXR1cm5lZCBmb3IgJ2FiYycgbG9va3VwLCBhZnRlciBiZWluZyByZW1vdmVkIGZyb20gdGFi
bGUiKTsKICAgICAgfQogICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKCJhYmMiKSAhPSBu
dWxsKSB7CiAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICJzeW1UYWJsZS5sb29rdXBHbG9iYWwo
J2FiYycpIiwKICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkIGZvciAnYWJjJyBsb29rdXAs
IGFmdGVyIGJlaW5nIHJlbW92ZWQgZnJvbSB0YWJsZSIpOwogICAgICB9CgogICAgICAvLyBBZGRp
bmcgaW4gbXVsdGlwbGUgaXRlbXMsIGxvb2tpbmcgdGhlbSB1cCBsb2NhbHkvZ2xvYmFseSBhZnRl
ciBhZGRpbmcKICAgICAgLy8gYW5kIGFnYWluIGFmdGVyIGFsbCBhcmUgYWRkZWQKICAgICAgc3lt
VGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgICAgbmFtZSA9ICJ4IjsKICAgICAgc3ltID0gbmV3
IFN5bSgiZmxvYXQiKTsKCiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAgICAg
ICAgdHJ5IHsKICAgICAgICAgIHN5bVRhYmxlLmFkZERlY2wobmFtZSwgc3ltKTsKICAgICAgICB9
IGNhdGNoIChEdXBsaWNhdGVTeW1FeGNlcHRpb24gZSkgewogICAgICAgICAgZXJyb3IoCiAgICAg
ICAgICAgICAgInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAgICJEdXBsaWNhdGVTeW1F
eGNlcHRpb24gZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAsIGJ1dCBtdWx0aXBsZSBlbnRyaWVz
Iik7CiAgICAgICAgfSBjYXRjaCAoRW1wdHlTeW1UYWJsZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAg
ICBlcnJvcigKICAgICAgICAgICAgICAic3ltVGFibGUuYWRkRGVjbCIsCiAgICAgICAgICAgICAg
IkVtcHR5U3ltVGFibGVFeGNlcHRpb24gZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAsIGJ1dCBt
dWx0aXBsZSBlbnRyaWVzIik7CiAgICAgICAgfQogICAgICAgIGlmIChzeW1UYWJsZS5sb29rdXBM
b2NhbChuYW1lKSA9PSBudWxsKSB7CiAgICAgICAgICBlcnJvcigic3ltVGFibGUubG9jYWxMb29r
dXAiLAogICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAs
IGJ1dCBtdWx0aXBsZSBlbnRyaWVzIik7CiAgICAgICAgfSBlbHNlIGlmIChzeW1UYWJsZS5sb29r
dXBMb2NhbChuYW1lKSAhPSBzeW0pIHsKICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJz
eW1UYWJsZS5sb2NhbExvb2t1cCIsCiAgICAgICAgICAgICAgIndyb25nIHZhbHVlIHJldHVybmVk
IGZvciB0YWJsZSB3aXRoIG9uZSBIYXNoTWFwLCBidXQgbXVsdGlwbGUgZW50cmllcyIpOwogICAg
ICAgIH0KICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUpID09IG51bGwpIHsK
ICAgICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb2NhbEdsb2JhbCIsCiAgICAgICAgICAgICAgICAi
ZmFpbHVyZSBmb3IgdGFibGUgd2l0aCBvbmUgSGFzaE1hcCwgYnV0IG11bHRpcGxlIGVudHJpZXMi
KTsKICAgICAgICB9IGVsc2UgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbChuYW1lKSAhPSBzeW0p
IHsKICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJzeW1UYWJsZS5sb2NhbEdsb2JhbCIs
CiAgICAgICAgICAgICAgIndyb25nIHZhbHVlIHJldHVybmVkIGZvciB0YWJsZSB3aXRoIG9uZSBI
YXNoTWFwLCBidXQgbXVsdGlwbGUgZW50cmllcyIpOwogICAgICAgIH0KICAgICAgICBuYW1lICs9
ICJ4IjsKICAgICAgfQoKICAgICAgLy8gTG9va3VwIGZvciBpdGVtcyB0aGF0IGhhdmUgYmVlbiBh
ZGRlZCB0byB0aGUgdGFibGUKICAgICAgbmFtZSA9ICJ4IjsKICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCA1OyBpKyspIHsKICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwTG9jYWwobmFtZSkgPT0g
bnVsbCkgewogICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvY2FsTG9va3VwIiwKICAgICAgICAg
ICAgICAgICJmYWlsdXJlIGZvciB0YWJsZSB3aXRoIG9uZSBIYXNoTWFwLCBidXQgbXVsdGlwbGUg
ZW50cmllcyIKICAgICAgICAgICAgICAgICAgICArICJsb29rdXAgYWZ0ZXIgYWRkaW5nIGFsbCB2
YWx1ZXMiKTsKICAgICAgICB9CiAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cEdsb2JhbChuYW1l
KSA9PSBudWxsKSB7CiAgICAgICAgICBlcnJvcigic3ltVGFibGUubG9jYWxHbG9iYWwiLAogICAg
ICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggb25lIEhhc2hNYXAsIGJ1dCBtdWx0
aXBsZSBlbnRyaWVzIgogICAgICAgICAgICAgICAgICAgICsgImxvb2t1cCBhZnRlciBhZGRpbmcg
YWxsIHZhbHVlcyIpOwogICAgICAgIH0KICAgICAgICBuYW1lICs9ICJ4IjsKICAgICAgfQoKICAg
ICAgLyoKICAgICAgQWRkaW5nIGEgc2Vjb25kIEhhc2hNYXAgYW5kIHRha2luZyB0aGUgbmFtZXMg
ZnJvbSB0aGUgZmlyc3QgSGFzaE1hcCBhbmQKICAgICAgcHV0dGluZyB0aGVtIGluIHRoZSBzZWNv
bmQgb25lIGFuZCBtYWtpbmcgc3VyZSB0aGV5IGNhbiBiZSBhZGRlZAogICAgICB3aXRob3V0IGVy
cm9ycyBiZWluZyB0cmlnZ2VyZWQuCiAgICAgICAqLwogICAgICBzeW1UYWJsZS5hZGRTY29wZSgp
OwogICAgICBuYW1lID0gIngiOwogICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUp
ICE9IHN5bSkgewogICAgICAgIGVycm9yKAogICAgICAgICAgICAic3ltVGFibGUubG9jYWxHbG9i
YWwiLAogICAgICAgICAgICAiYmFkIHZhbHVlIHJldHVybmVkIGZvciBuYW1lIGluIG5vbiBsb2Nh
bCBIYXNoTWFwIG9mIHRhYmxlIHdpdGggbXVsdGlwbGUgSGFzaE1hcCIpOwogICAgICB9CiAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1
cExvY2FsKG5hbWUpICE9IG51bGwpIHsKICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJz
eW1UYWJsZS5sb2NhbExvb2t1cCIsCiAgICAgICAgICAgICAgIm51bGwgbm90IHJldHVybmVkLCB3
aGVuIGV4cGVjdGVkLCBmb3IgbmFtZSBpbiBsb2NhbCBIYXNoTWFwIG9mIHRhYmxlIHdpdGggbXVs
dGlwbGUgSGFzaE1hcCIpOwogICAgICAgIH0KICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xv
YmFsKG5hbWUpICE9IHN5bSkgewogICAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICAgInN5bVRh
YmxlLmxvY2FsR2xvYmFsIiwKICAgICAgICAgICAgICAibnVsbCByZXR1cm5lZCwgd2hlbiB1bmV4
cGVjdGVkLCBmb3IgbmFtZSBpbiBub24gbG9jYWwgSGFzaE1hcCBvZiB0YWJsZSB3aXRoIG11bHRp
cGxlIEhhc2hNYXAiKTsKICAgICAgICB9CiAgICAgICAgbmFtZSArPSAieCI7CiAgICAgIH0KCiAg
ICAgIC8vIEFkZGluZyBuYW1lcyBpbnRvIHRoZSBzZWNvbmQgSGFzaE1hcCB0aGF0IGFyZW4ndCBp
biB0aGUgZmlyc3Qgb25lIGFuZAogICAgICAvLyBtYWtpbmcgc3VyZSB0aGF0IHRoZXkgY2FuIGJl
IGZvdW5kCiAgICAgIG5hbWUgPSAieiI7CiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsr
KSB7CiAgICAgICAgc3ltID0gbmV3IFN5bSgiZmxvYXQiKTsKICAgICAgICB0cnkgewogICAgICAg
ICAgc3ltVGFibGUuYWRkRGVjbChuYW1lLCBzeW0pOwogICAgICAgICAgaWYgKHN5bVRhYmxlLmxv
b2t1cExvY2FsKG5hbWUpID09IG51bGwpIHsKICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxv
Y2FsTG9va3VwIiwKICAgICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIGFkZGluZyBuZXcgbmFt
ZSBpbiBzZWNvbmQgSGFzaE1hcCIpOwogICAgICAgICAgfSBlbHNlIGlmIChzeW1UYWJsZS5sb29r
dXBMb2NhbChuYW1lKSAhPSBzeW0pIHsKICAgICAgICAgICAgZXJyb3IoCiAgICAgICAgICAgICAg
ICAic3ltVGFibGUubG9jYWxMb29rdXAiLAogICAgICAgICAgICAgICAgImluY29ycmVjdCB2YWx1
ZSByZXR1cm5lZCBmb3IgYWRkaW5nIG5hbWUgdG8gdGFibGUgd2l0aCBtdWx0aXBsZSBIYXNoTWFw
Iik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUp
ID09IG51bGwpIHsKICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmxvY2FsR2xvYmFsIiwKICAg
ICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIGFkZGluZyBuZXcgbmFtZSBpbiBzZWNvbmQgSGFz
aE1hcCIpOwogICAgICAgICAgfSBlbHNlIGlmIChzeW1UYWJsZS5sb29rdXBHbG9iYWwobmFtZSkg
IT0gc3ltKSB7CiAgICAgICAgICAgIGVycm9yKAogICAgICAgICAgICAgICAgInN5bVRhYmxlLmxv
Y2FsR2xvYmFsIiwKICAgICAgICAgICAgICAgICJpbmNvcnJlY3QgdmFsdWUgcmV0dXJuZWQgZm9y
IGFkZGluZyBuYW1lIHRvIHRhYmxlIHdpdGggbXVsdGlwbGUgSGFzaE1hcCIpOwogICAgICAgICAg
fQoKICAgICAgICB9IGNhdGNoIChEdXBsaWNhdGVTeW1FeGNlcHRpb24gZSkgewogICAgICAgICAg
ZXJyb3IoCiAgICAgICAgICAgICAgInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAgICJE
dXBsaWNhdGVTeW1FeGNlcHRpb24gZm9yIHRhYmxlIHdpdGggbXVsdGlwbGUgSGFzaE1hcCwgbmV3
IG5hbWUiKTsKICAgICAgICB9IGNhdGNoIChFbXB0eVN5bVRhYmxlRXhjZXB0aW9uIGUpIHsKICAg
ICAgICAgIGVycm9yKAogICAgICAgICAgICAgICJzeW1UYWJsZS5hZGREZWNsIiwKICAgICAgICAg
ICAgICAiRW1wdHlTeW1UYWJsZUV4Y2VwdGlvbiBmb3IgdGFibGUgd2l0aCBtdWx0aXBsZSBIYXNo
TWFwLCBuZXcgbmFtZSIpOwogICAgICAgIH0KICAgICAgICBuYW1lICs9ICJ6IjsKICAgICAgfQog
ICAgICAvLyBTeW10YWJsZSB3aXRoIDEwIEhhc2hNYXAgYW5kIDEwIG5hbWVzIGluIGVhY2ggSGFz
aE1hcAogICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKICAgICAgICBJbnRlZ2Vy
IHRhYmxlSW50ID0gSW50ZWdlci52YWx1ZU9mKGkpOwogICAgICAgIHN5bVRhYmxlLmFkZFNjb3Bl
KCk7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDsgaisrKSB7CiAgICAgICAgICBJbnRl
Z2VyIHN5bUludCA9IEludGVnZXIudmFsdWVPZihqKTsKICAgICAgICAgIG5hbWUgPSB0YWJsZUlu
dC50b1N0cmluZygpICsgc3ltSW50LnRvU3RyaW5nKCk7CiAgICAgICAgICBzeW0gPSBuZXcgU3lt
KCJpbnQiKTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHN5bVRhYmxlLmFkZERlY2wobmFt
ZSwgc3ltKTsKICAgICAgICAgICAgaWYgKHN5bVRhYmxlLmxvb2t1cExvY2FsKG5hbWUpICE9IHN5
bSkgewogICAgICAgICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb2NhbExvb2t1cCIsCiAgICAgICAg
ICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggbWFueSBIYXNoTWFwICgxMCkiKTsK
ICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUp
ICE9IHN5bSkgewogICAgICAgICAgICAgIGVycm9yKCJzeW1UYWJsZS5sb2NhbEdsb2JhbCIsCiAg
ICAgICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRhYmxlIHdpdGggbWFueSBIYXNoTWFwICgx
MCkiKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoRHVwbGljYXRlU3ltRXhjZXB0
aW9uIGUpIHsKICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAg
ICAgICAgICAiRHVwbGljYXRlU3ltRXhjZXB0aW9uIGZvciB0YWJsZSB3aXRoIG1hbnkgSGFzaE1h
cCAoMTApIik7CiAgICAgICAgICB9IGNhdGNoIChFbXB0eVN5bVRhYmxlRXhjZXB0aW9uIGUpIHsK
ICAgICAgICAgICAgZXJyb3IoInN5bVRhYmxlLmFkZERlY2wiLAogICAgICAgICAgICAgICAgICAi
RW1wdHlTeW1UYWJsZUV4Y2VwdGlvbiBmb3IgdGFibGUgd2l0aCBtYW55IEhhc2hNYXAgKDEwKSIp
OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gVGVzdGluZyBnbG9iYWwg
bG9va3VwIGZvciBhIG5hbWUgZnJvbSBlYWNoIEhhc2hNYXAKICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCAxMDsgaSsrKSB7CiAgICAgICAgSW50ZWdlciB0YWJsZUludCA9IEludGVnZXIudmFsdWVP
ZihpKTsKICAgICAgICBuYW1lID0gdGFibGVJbnQudG9TdHJpbmcoKSArICIxIjsKICAgICAgICBp
ZiAoc3ltVGFibGUubG9va3VwR2xvYmFsKG5hbWUpID09IG51bGwpIHsKICAgICAgICAgIGVycm9y
KCJzeW1UYWJsZS5nbG9iYWxMb29rdXAiLAogICAgICAgICAgICAgICAgImZhaWx1cmUgZm9yIHRh
YmxlIHdpdGggbWFueSBIYXNoTWFwICgxMCwgYWZ0ZXIgYWxsIGFkZGVkKSIpOwogICAgICAgIH0K
ICAgICAgfQogICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgZXJyb3IoIlN5bVRhYmxl
IiwgInVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlICsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIgdXNpbmcgYWRkRGVjbC9yZW1vdmVTY29wZSB3aGVuIHRlc3RpbmcgbG9va3VwIik7CiAg
ICB9CiAgfQoKICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RQcmludCgpIHsKICAgIC8qCiAgICBU
ZXN0cyB0aGUgcHJpbnQgZnVuY3Rpb24gYnkgY2FsbGluZyBpdCB3aXRoIG5vIEhhc2hNYXAsIGEg
c2luZ2xlIEhhc2hNYXAsCiAgICBhbmQgbXVsdGlwbGUgSGFzaE1hcC4KICAgICAqLwogICAgU3lt
VGFibGUgc3ltVGFibGUgPSBuZXcgU3ltVGFibGUoKTsKICAgIHRyeSB7CiAgICAgIHN5bVRhYmxl
LnByaW50KCk7CiAgICAgIHRyeSB7CiAgICAgICAgc3ltVGFibGUuYWRkRGVjbCgieCIsIG5ldyBT
eW0oImludCIpKTsKICAgICAgICBzeW1UYWJsZS5hZGREZWNsKCJ5IiwgbmV3IFN5bSgiYm9vbCIp
KTsKICAgICAgICBzeW1UYWJsZS5hZGRTY29wZSgpOwogICAgICAgIHN5bVRhYmxlLmFkZERlY2wo
InoiLCBuZXcgU3ltKCJ2b2lkIikpOwogICAgICAgIHN5bVRhYmxlLmFkZFNjb3BlKCk7CiAgICAg
ICAgc3ltVGFibGUuYWRkRGVjbCgicSIsIG5ldyBTeW0oImRvdWJsZSIpKTsKICAgICAgfSBjYXRj
aCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICBlcnJvcigiU3ltVGFibGUuYWRkRGVjbCwgdW5leHBl
Y3RlZCBleGNlcHRpb246ICIsIGUudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgICAgc3ltVGFibGUu
cHJpbnQoKTsKCiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgICAgdHJ5
IHsKICAgICAgICAgIHN5bVRhYmxlLnJlbW92ZVNjb3BlKCk7CiAgICAgICAgfSBjYXRjaCAoRXhj
ZXB0aW9uIGUpIHsKICAgICAgICAgIGVycm9yKCJTeW1UYWJsZS5yZW1vdmVTY29wZSwgdW5leHBl
Y3RlZCBleGNlcHRpb246ICIsIGUudG9TdHJpbmcoKSk7CiAgICAgICAgfQogICAgICAgIHN5bVRh
YmxlLnByaW50KCk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgIGVy
cm9yKCJTeW1UYWJsZS5wcmludCwgdW5leHBlY3RlZCBleGNlcHRpb246ICIsIGUudG9TdHJpbmco
KSk7CiAgICB9CiAgfQp9Cg==

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys
Content-Type: text/org; name=init.org
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=init.org

IytTVEFSVFVQOiBvdmVydmlldyAKIytQUk9QRVJUWTogaGVhZGVyLWFyZ3MgOmNvbW1lbnRzIHll
cyA6cmVzdWx0cyBzaWxlbnQKCiogUmVwb3MgKEVscGEgYW5kIE1lbHBhKQojK0JFR0lOX1NSQyBl
bGlzcAoocmVxdWlyZSAncGFja2FnZSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkg
ICAgICcoIm1lbHBhIiAuICJodHRwczovL21lbHBhLm9yZy9wYWNrYWdlcy8iKSkKKGFkZC10by1s
aXN0ICdwYWNrYWdlLWFyY2hpdmVzCgkgICAgICcoImdudSIgLiAiaHR0cHM6Ly9lbHBhLmdudS5v
cmcvcGFja2FnZXMvIikpCihwYWNrYWdlLWluaXRpYWxpemUpCiMrRU5EX1NSQwoKKiBEaXJ2aXNo
CiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2FnZSBkaXJ2aXNoCiAgOmluaXQKICAoZGlydmlz
aC1vdmVycmlkZS1kaXJlZC1tb2RlKQogIDpjdXN0b20KICA7OyBHbyBiYWNrIGhvbWU/IEp1c3Qg
cHJlc3MgYGJoJwogIChkaXJ2aXNoLWJvb2ttYXJrLWVudHJpZXMKICAgJygoImgiICJ+LyIgICAg
ICAgICAgICAgICAgICAgICAgICAgICJIb21lIikKICAgICAoImQiICJ+L0Rvd25sb2Fkcy8iICAg
ICAgICAgICAgICAgICJEb3dubG9hZHMiKQogICAgICgibSIgIi9tbnQvIiAgICAgICAgICAgICAg
ICAgICAgICAgIkRyaXZlcyIpCiAgICAgKCJ0IiAifi8ubG9jYWwvc2hhcmUvVHJhc2gvZmlsZXMv
IiAiVHJhc2hDYW4iKSkpCiAgOzsgKGRpcnZpc2gtaGVhZGVyLWxpbmUtZm9ybWF0ICcoOmxlZnQg
KHBhdGgpIDpyaWdodCAoZnJlZS1zcGFjZSkpKQogIChkaXJ2aXNoLW1vZGUtbGluZS1mb3JtYXQg
OyBpdCdzIG9rIHRvIHBsYWNlIHN0cmluZyBpbnNpZGUKICAgJyg6bGVmdCAoc29ydCBmaWxlLXRp
bWUgIiAiIGZpbGUtc2l6ZSBzeW1saW5rKSA6cmlnaHQgKG9taXQgeWFuayBpbmRleCkpKQogIDs7
IERvbid0IHdvcnJ5LCBEaXJ2aXNoIGlzIHN0aWxsIHBlcmZvcm1hbnQgZXZlbiB5b3UgZW5hYmxl
IGFsbCB0aGVzZSBhdHRyaWJ1dGVzCiAgKGRpcnZpc2gtYXR0cmlidXRlcyAnKGFsbC10aGUtaWNv
bnMgZmlsZS1zaXplIGNvbGxhcHNlIHN1YnRyZWUtc3RhdGUgdmMtc3RhdGUgZ2l0LW1zZykpCiAg
OzsgTWF5YmUgdGhlIGljb25zIGFyZSB0b28gYmlnIHRvIHlvdXIgZXllcwogIDs7IChkaXJ2aXNo
LWFsbC10aGUtaWNvbnMtaGVpZ2h0IDAuOCkKICA7OyBJbiBjYXNlIHlvdSB3YW50IHRoZSBkZXRh
aWxzIGF0IHN0YXJ0dXAgbGlrZSBgZGlyZWQnCiAgOzsgKGRpcnZpc2gtaGlkZS1kZXRhaWxzIG5p
bCkKICA6Y29uZmlnCiAgKGRpcnZpc2gtcGVlay1tb2RlKQogIDs7IERpcmVkIG9wdGlvbnMgYXJl
IHJlc3BlY3RlZCBleGNlcHQgYSBmZXcgZXhjZXB0aW9ucywgc2VlICpJbiByZWxhdGlvbiB0byBE
aXJlZCogc2VjdGlvbiBhYm92ZQogIChzZXRxIGRpcmVkLWR3aW0tdGFyZ2V0IHQpCiAgKHNldHEg
ZGVsZXRlLWJ5LW1vdmluZy10by10cmFzaCB0KQogIDs7IEVuYWJsZSBtb3VzZSBkcmFnLWFuZC1k
cm9wIGZpbGVzIHRvIG90aGVyIGFwcGxpY2F0aW9ucwogIChzZXRxIGRpcmVkLW1vdXNlLWRyYWct
ZmlsZXMgdCkgICAgICAgICAgICAgICAgICAgOyBhZGRlZCBpbiBFbWFjcyAyOQogIChzZXRxIG1v
dXNlLWRyYWctYW5kLWRyb3AtcmVnaW9uLWNyb3NzLXByb2dyYW0gdCkgOyBhZGRlZCBpbiBFbWFj
cyAyOQogIDs7IE1ha2Ugc3VyZSB0byB1c2UgdGhlIGxvbmcgbmFtZSBvZiBmbGFncyB3aGVuIGV4
aXN0cwogIDs7IGVnLiB1c2UgIi0tYWxtb3N0LWFsbCIgaW5zdGVhZCBvZiAiLUEiCiAgOzsgT3Ro
ZXJ3aXNlIHNvbWUgY29tbWFuZHMgd29uJ3Qgd29yayBwcm9wZXJseQogIChzZXRxIGRpcmVkLWxp
c3Rpbmctc3dpdGNoZXMKICAgICAgICAiLWwgLS1hbG1vc3QtYWxsIC0taHVtYW4tcmVhZGFibGUg
LS10aW1lLXN0eWxlPWxvbmctaXNvIC0tZ3JvdXAtZGlyZWN0b3JpZXMtZmlyc3QgLS1uby1ncm91
cCIpCiAgOmJpbmQKICA7OyBCaW5kIGBkaXJ2aXNofGRpcnZpc2gtc2lkZXxkaXJ2aXNoLWR3aW0n
IGFzIHlvdSBzZWUgZml0CiAgKCgiQy1jIGYiIC4gZGlydmlzaC1mZCkKICAgOm1hcCBkaXJlZC1t
b2RlLW1hcCA7IERpcnZpc2ggcmVzcGVjdHMgYWxsIHRoZSBrZXliaW5kaW5ncyBpbiB0aGlzIG1h
cAogICAoIjxwcmlvcj4iIC4gZGlyZWQtdXAtZGlyZWN0b3J5KQogICA7OyAoImoiIC4gZGlyZWQt
bmV4dC1saW5lKQogICA7OyAoImsiIC4gZGlyZWQtcHJldmlvdXMtbGluZSkKICAgOzsgKCJsIiAu
IGRpcmVkLWZpbmQtZmlsZSkKICAgOzsgKCJpIiAuIHdkaXJlZC1jaGFuZ2UtdG8td2RpcmVkLW1v
ZGUpCiAgIDs7ICgiLiIgLiBkaXJlZC1vbWl0LW1vZGUpCiAgICgiYiIgICAuIGRpcnZpc2gtYm9v
a21hcmstanVtcCkKICAgKCJmIiAgIC4gZGlydmlzaC1maWxlLWluZm8tbWVudSkKICAgKCJ5IiAg
IC4gZGlydmlzaC15YW5rLW1lbnUpCiAgICgiTiIgICAuIGRpcnZpc2gtbmFycm93KQogICAoIl4i
ICAgLiBkaXJ2aXNoLWhpc3RvcnktbGFzdCkKICAgKCJzIiAgIC4gZGlydmlzaC1xdWlja3NvcnQp
IDsgcmVtYXBwZWQgYGRpcmVkLXNvcnQtdG9nZ2xlLW9yLWVkaXQnCiAgICgiPyIgICAuIGRpcnZp
c2gtZGlzcGF0Y2gpICA7IHJlbWFwcGVkIGBkaXJlZC1zdW1tYXJ5JwogICAoIlRBQiIgLiBkaXJ2
aXNoLXN1YnRyZWUtdG9nZ2xlKQogICAoIlNQQyIgLiBkaXJ2aXNoLWhpc3RvcnktanVtcCkKICAg
KCJNLW4iIC4gZGlydmlzaC1oaXN0b3J5LWdvLWZvcndhcmQpCiAgICgiTS1wIiAuIGRpcnZpc2gt
aGlzdG9yeS1nby1iYWNrd2FyZCkKICAgKCJNLWwiIC4gZGlydmlzaC1scy1zd2l0Y2hlcy1tZW51
KQogICAoIk0tbSIgLiBkaXJ2aXNoLW1hcmstbWVudSkKICAgKCJNLWYiIC4gZGlydmlzaC10b2dn
bGUtZnVsbHNjcmVlbikKICAgKCJNLXMiIC4gZGlydmlzaC1zZXR1cC1tZW51KQogICAoIk0tZSIg
LiBkaXJ2aXNoLWVtZXJnZS1tZW51KQogICAoIk0taiIgLiBkaXJ2aXNoLWZkLWp1bXApKSkKIytF
TkRfU1JDCgoqIFlhc25pcHBldApBbHNvIG1ha2Ugc3VyZSB0byBsb29rdXAgeWFzbmlwcGV0LXNu
aXBwZXRzIHdoaWNoIGhhcyBhIGdyZWF0IGNvbGxlY3Rpb24gb2Ygc25pcHBldHMKaHR0cHM6Ly9n
aXRodWIuY29tL0FuZHJlYUNyb3R0aS95YXNuaXBwZXQtc25pcHBldHMKCml2eS15YXNuaXBwZXQg
d2lsbCBzaG93IHlvdSB0aGUgYXZhaWxhYmxlIHNuaXBwZXRzIGZvciB0aGUgY3VycmVudCBtYWpv
ciBtb2RlIHlvdSBhcmUgaW4KYW5kIHdpbGwgaW5zZXJ0IHRoZW0uCiMrQkVHSU5fU1JDIGVsaXNw
Cih5YXMtZ2xvYmFsLW1vZGUgMSkKKHNldHEgeWFzLWluZGVudC1saW5lIG5pbCkKKGdsb2JhbC1z
ZXQta2V5IChrYmQgIkMtYyBpIikgJ2l2eS15YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBPcmcgUm9h
bQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2Ugb3JnLXJvYW0KCSAgICAgOmVuc3VyZSB0
CgkgICAgIDpjdXN0b20KCSAgICAgKG9yZy1yb2FtLWRpcmVjdG9yeSAoZmlsZS10cnVlbmFtZSAi
fi9Eb2N1bWVudHMvcm9hbS1ub3RlcyIpKQoJICAgICA6YmluZCAoKCJDLWMgbiBsIiAuIG9yZy1y
b2FtLWJ1ZmZlci10b2dnbGUpCgkJICAgICgiQy1jIG4gZiIgLiBvcmctcm9hbS1ub2RlLWZpbmQp
CgkJICAgICgiQy1jIG4gZyIgLiBvcmctcm9hbS1ncmFwaCkKCQkgICAgKCJDLWMgbiBpIiAuIG9y
Zy1yb2FtLW5vZGUtaW5zZXJ0KQoJCSAgICAoIkMtYyBuIGMiIC4gb3JnLXJvYW0tY2FwdHVyZSkK
CQkgICAgOztEYWlseQoJCSAgICAoIkMtYyBuIGoiIC4gb3JnLXJvYW0tZGFpbGllcy1jYXB0dXJl
LXRvZGF5KSkKCSAgICAgOmNvbmZpZwoJICAgICAoc2V0cSBvcmctcm9hbS1ub2RlLWRpc3BsYXkt
dGVtcGxhdGUgKGNvbmNhdCAiJHt0aXRsZToqfSAiIChwcm9wZXJ0aXplICIke3RhZ3M6MTB9IiAn
ZmFjZSAnb3JnLXRhZykpKQoJICAgICAob3JnLXJvYW0tZGItYXV0b3N5bmMtbW9kZSkKCSAgICAg
KHJlcXVpcmUgJ29yZy1yb2FtLXByb3RvY29sKSkKIytFTkRfU1JDCgoqIE1pc2NlbGxhbmVvdXMg
T3JnIFN0dWZmCiMrQkVHSU5fU1JDIGVsaXNwCihzZXRxIG9yZy1zcmMtcHJlc2VydmUtaW5kZW50
YXRpb24gdCkKCjsgb3JnLWZyYWd0b2cgbWFrZXMgaXQgc28geW91IGNhbiBhdXRvbWF0aWNhbGx5
IHByZXZpZXcgTGFUZVggd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcKKGFkZC1ob29rICdv
cmctbW9kZS1ob29rICdvcmctZnJhZ3RvZy1tb2RlKQo7KHBsaXN0LXB1dCBvcmctZm9ybWF0LWxh
dGV4LW9wdGlvbnMgOnNjYWxlIDIpCjsoYWZ0ZXIhIG9yZyAocGxpc3QtcHV0IG9yZy1mb3JtYXQt
bGF0ZXgtb3B0aW9ucyA6c2NhbGUgMS41KSkKKGZvbnQtbG9jay1hZGQta2V5d29yZHMgJ29yZy1t
b2RlCgkJCScoKCJeICpcXChbLV1cXCkgIgoJCQkgICAoMCAocHJvZzEgKCkgKGNvbXBvc2UtcmVn
aW9uIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSAi4oCiIikpKSkpKQoocmVxdWly
ZSAnb3JnLXN1cGVyc3RhcikKKGFkZC1ob29rICdvcmctbW9kZS1ob29rIChsYW1iZGEgKCkgKG9y
Zy1zdXBlcnN0YXItbW9kZSAxKSkpCjs7aGlkZXMgbWFya3VwIGVtcGhhc2lzIGxpa2UgKmRkKgoo
c2V0cSBvcmctaGlkZS1lbXBoYXNpcy1tYXJrZXJzIHQpCjs7IEFnZW5kYQooc2V0cSBvcmctYWdl
bmRhLWZpbGVzICJ+L0RvY3VtZW50cy9BZ2VuZGEvYWdlbmRhLm9yZyIpCiMrRU5EX1NSQwoKKiBG
bHlzcGVsbAojK0JFR0lOX1NSQyBlbGlzcAooZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICd0ZXh0
LW1vZGUtaG9vayAnZmx5c3BlbGwtbW9kZSkKKGFkZC1ob29rICdwcm9nLW1vZGUtaG9vayAnZmx5
c3BlbGwtcHJvZy1tb2RlKQojK0VORF9TUkMKKiBIeXBlcmJvbGUKIytCRUdJTl9TUkMgZWxpc3AK
KGh5cGVyYm9sZS1tb2RlIDEpCiMrRU5EX1NSQwoKKiBFbGZlZWQKIytCRUdJTl9TUkMgZWxpc3AK
KHNldHEgZWxmZWVkLWZlZWRzCiAgICAgICcoKCJodHRwczovL29vb2hzcG9va3kubGlic3luLmNv
bS9yc3MiIEFkYW1Lbm94KQoJKCJodHRwczovL2dvZG90ZW5naW5lLm9yZy9yc3MueG1sIiBHb2Rv
dCkKCSgiaHR0cHM6Ly9zdGFja2FidXNlLmNvbS9yc3MvIiBTdGFja0FidXNlKQoJKCJodHRwczov
L29wZW5zb3VyY2UuY29tL2ZlZWQiIE9wZW5Tb3VyY2UpCgkoImh0dHBzOi8vZGF2ZXJ1cGVydC5j
b20vYXRvbS54bWwiIERhdmVSdXBlcnQpCgkoImh0dHBzOi8vZmVlZC5wb2RiZWFuLmNvbS9tYXRl
aXRzYXN1cmV0aGluZy9mZWVkLnhtbCIgV29sZmUpCgkoImh0dHBzOi8vd3d3Lm9tbnljb250ZW50
LmNvbS9kL3BsYXlsaXN0L2U3M2M5OThlLTZlNjAtNDMyZi04NjEwLWFlMjEwMTQwYzViMS8wYzZm
Yzk0NC1lYWE1LTQwMjItOGU3Ny1hZTMzMDAzNDZkNzYvNDVhNzM1YjYtZTFiOC00OWY5LWE1OTUt
YWUzMzAwMzQ2ZDg0L3BvZGNhc3QucnNzIiBTY3J1YnMpKSkKCihyZXF1aXJlICdlbGZlZWQtb3Jn
KQoocmVxdWlyZSAnZWxmZWVkLWdvb2RpZXMpCihlbGZlZWQtZ29vZGllcy9zZXR1cCkKCihnbG9i
YWwtc2V0LWtleSAoa2JkICJDLXggdyIpICdlbGZlZWQpCihlbGZlZWQtb3JnKQooc2V0cSBybWgt
ZWxmZWVkLW9yZy1maWxlcyAobGlzdCAifi8uZW1hY3MuZC9lbGZlZWQtZGFzaGJvYXJkLm9yZyIp
KQoKKHVzZS1wYWNrYWdlIGVsZmVlZC1kYXNoYm9hcmQKICA6ZW5zdXJlIHQKICA6Y29uZmlnCiAg
KHNldHEgZWxmZWVkLWRhc2hib2FyZC1maWxlICJ+L2VsZmVlZC1kYXNoYm9hcmQub3JnIikKICA7
OyB1cGRhdGUgZmVlZCBjb3VudHMgb24gZWxmZWVkLXF1aXQKICAoYWR2aWNlLWFkZCAnZWxmZWVk
LXNlYXJjaC1xdWl0LXdpbmRvdyA6YWZ0ZXIgIydlbGZlZWQtZGFzaGJvYXJkLXVwZGF0ZS1saW5r
cykpCgo7OzsgZyA9IHJlZnJlc2ggdmlldwo7OzsgRyA9IGZldGNoIGZlZWQgdXBkYXRlcwo7Ozsg
cyA9IFVwZGF0ZSBzZWFyY2ggZmlsdGVyCjs7OyBjID0gY2xlYXIgc2VhcmNoIGZpbHRlcgojK0VO
RF9TUkMKCiogRU1NUwojK0JFR0lOX1NSQyBlbGlzcAo7IGh0dHBzOi8vd3d3LmRyYWtldG8uZGUv
c29mdHdhcmUvZW1hY3MtdGlwcHMjZWxmZWVkLWVtbXMKKHVzZS1wYWNrYWdlIGVtbXMKICA6ZW5z
dXJlIHQKICA6Y29uZmlnKQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy14IHAiKSAnaXZ5LWVtbXMp
CihyZXF1aXJlICdlbW1zLXNldHVwKQoocmVxdWlyZSAnZW1tcy1wbGF5ZXItbXBsYXllcikKKGVt
bXMtYWxsKQooc2V0cSBlbW1zLXBsYXllci1saXN0ICcoCgkJCSBlbW1zLXBsYXllci1tcGczMjEK
CQkJIGVtbXMtcGxheWVyLW9nZzEyMwoJCQkgZW1tcy1wbGF5ZXItbXBsYXllcikpCihkZWZ1biBl
bW1zLXBsYXllci1tcGxheWVyLXZvbHVtZShhbW91bnQpCiAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcK
ICAgZW1tcy1wbGF5ZXItc2ltcGxlLXByb2Nlc3MtbmFtZQogICAoZm9ybWF0ICJ2b2x1bWUgJWRc
biIgYW1vdW50KSkpCihzZXRxIGVtbXMtdm9sdW1lLWNoYW5nZS1mdW5jdGlvbiAnZW1tcy1wbGF5
ZXItbXBsYXllci12b2x1bWUpCihlbW1zLWRlZmF1bHQtcGxheWVycykKOyhlbW1zLWFkZC1kaXJl
Y3RvcnktdHJlZSAifi9NdXNpYy8iKQo7KGVtbXMtYWRkLWRpcmVjdG9yeS10cmVlICJ+L0Rvd25s
b2Fkcy8iKQojK0VORF9TUkMKCiogTWVvdyAoTW9kYWwgRWRpdGluZykKIytCRUdJTl9TUkMgZWxp
c3AKKGRlZnVuIG1lb3ctc2V0dXAgKCkKICAoc2V0cSBtZW93LWNoZWF0c2hlZXQtbGF5b3V0IG1l
b3ctY2hlYXRzaGVldC1sYXlvdXQtcXdlcnR5KQogIChtZW93LW1vdGlvbi1vdmVyd3JpdGUtZGVm
aW5lLWtleQogICAnKCJrIiAuIG1lb3ctbmV4dCkKICAgJygiaiIgLiBtZW93LXByZXYpCiAgICco
Ijxlc2NhcGU+IiAuIGlnbm9yZSkpCiAgKG1lb3ctbGVhZGVyLWRlZmluZS1rZXkKICAgOzsgU1BD
IGovayB3aWxsIHJ1biB0aGUgb3JpZ2luYWwgY29tbWFuZCBpbiBNT1RJT04gc3RhdGUuCiAgICco
ImoiIC4gIkgtaiIpCiAgICcoImsiIC4gIkgtayIpCiAgIDs7IFVzZSBTUEMgKDAtOSkgZm9yIGRp
Z2l0IGFyZ3VtZW50cy4KICAgJygiMSIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIyIiAu
IG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjMiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAg
JygiNCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCI1IiAuIG1lb3ctZGlnaXQtYXJndW1l
bnQpCiAgICcoIjYiIC4gbWVvdy1kaWdpdC1hcmd1bWVudCkKICAgJygiNyIgLiBtZW93LWRpZ2l0
LWFyZ3VtZW50KQogICAnKCI4IiAuIG1lb3ctZGlnaXQtYXJndW1lbnQpCiAgICcoIjkiIC4gbWVv
dy1kaWdpdC1hcmd1bWVudCkKICAgJygiMCIgLiBtZW93LWRpZ2l0LWFyZ3VtZW50KQogICAnKCIv
IiAuIG1lb3cta2V5cGFkLWRlc2NyaWJlLWtleSkKICAgJygiPyIgLiBtZW93LWNoZWF0c2hlZXQp
KQogIChtZW93LW5vcm1hbC1kZWZpbmUta2V5CiAgICcoIjAiIC4gbWVvdy1leHBhbmQtMCkKICAg
JygiOSIgLiBtZW93LWV4cGFuZC05KQogICAnKCI4IiAuIG1lb3ctZXhwYW5kLTgpCiAgICcoIjci
IC4gbWVvdy1leHBhbmQtNykKICAgJygiNiIgLiBtZW93LWV4cGFuZC02KQogICAnKCI1IiAuIG1l
b3ctZXhwYW5kLTUpCiAgICcoIjQiIC4gbWVvdy1leHBhbmQtNCkKICAgJygiMyIgLiBtZW93LWV4
cGFuZC0zKQogICAnKCIyIiAuIG1lb3ctZXhwYW5kLTIpCiAgICcoIjEiIC4gbWVvdy1leHBhbmQt
MSkKICAgJygiLSIgLiBuZWdhdGl2ZS1hcmd1bWVudCkKICAgJygiOyIgLiBtZW93LXJldmVyc2Up
CiAgICcoIiwiIC4gbWVvdy1pbm5lci1vZi10aGluZykKICAgJygiLiIgLiBtZW93LWJvdW5kcy1v
Zi10aGluZykKICAgJygiWyIgLiBtZW93LWJlZ2lubmluZy1vZi10aGluZykKICAgJygiXSIgLiBt
ZW93LWVuZC1vZi10aGluZykKICAgJygiYSIgLiBtZW93LWFwcGVuZCkKICAgJygiQSIgLiBtZW93
LW9wZW4tYmVsb3cpCiAgICcoImIiIC4gbWVvdy1iYWNrLXdvcmQpCiAgICcoIkIiIC4gbWVvdy1i
YWNrLXN5bWJvbCkKICAgJygiYyIgLiBtZW93LWNoYW5nZSkKICAgJygiZCIgLiBtZW93LWRlbGV0
ZSkKICAgJygiRCIgLiBtZW93LWJhY2t3YXJkLWRlbGV0ZSkKICAgJygiZSIgLiBtZW93LW5leHQt
d29yZCkKICAgJygiRSIgLiBtZW93LW5leHQtc3ltYm9sKQogICAnKCJmIiAuIG1lb3ctZmluZCkK
ICAgJygiZyIgLiBtZW93LWNhbmNlbC1zZWxlY3Rpb24pCiAgICcoIkciIC4gbWVvdy1ncmFiKQog
ICAnKCJoIiAuIG1lb3ctbGVmdCkKICAgJygiSCIgLiBtZW93LWxlZnQtZXhwYW5kKQogICAnKCJp
IiAuIG1lb3ctaW5zZXJ0KQogICAnKCJJIiAuIG1lb3ctb3Blbi1hYm92ZSkKICAgJygiaiIgLiBt
ZW93LW5leHQpCiAgICcoIkoiIC4gbWVvdy1uZXh0LWV4cGFuZCkKICAgJygiayIgLiBtZW93LXBy
ZXYpCiAgICcoIksiIC4gbWVvdy1wcmV2LWV4cGFuZCkKICAgJygibCIgLiBtZW93LXJpZ2h0KQog
ICAnKCJMIiAuIG1lb3ctcmlnaHQtZXhwYW5kKQogICAnKCJtIiAuIG1lb3ctam9pbikKICAgJygi
biIgLiBtZW93LXNlYXJjaCkKICAgJygibyIgLiBtZW93LWJsb2NrKQogICAnKCJPIiAuIG1lb3ct
dG8tYmxvY2spCiAgICcoInAiIC4gbWVvdy15YW5rKQogICAnKCJxIiAuIG1lb3ctcXVpdCkKICAg
JygiUSIgLiBtZW93LWdvdG8tbGluZSkKICAgJygiciIgLiBtZW93LXJlcGxhY2UpCiAgICcoIlIi
IC4gbWVvdy1zd2FwLWdyYWIpCiAgICcoInMiIC4gbWVvdy1raWxsKQogICAnKCJ0IiAuIG1lb3ct
dGlsbCkKICAgJygidSIgLiBtZW93LXVuZG8pCiAgICcoIlUiIC4gbWVvdy11bmRvLWluLXNlbGVj
dGlvbikKICAgJygidiIgLiBtZW93LXZpc2l0KQogICAnKCJ3IiAuIG1lb3ctbWFyay13b3JkKQog
ICAnKCJXIiAuIG1lb3ctbWFyay1zeW1ib2wpCiAgICcoIngiIC4gbWVvdy1saW5lKQogICAnKCJY
IiAuIG1lb3ctZ290by1saW5lKQogICAnKCJ5IiAuIG1lb3ctc2F2ZSkKICAgJygiWSIgLiBtZW93
LXN5bmMtZ3JhYikKICAgJygieiIgLiBtZW93LXBvcC1zZWxlY3Rpb24pCiAgICcoIiciIC4gcmVw
ZWF0KQogICAnKCI8ZXNjYXBlPiIgLiBpZ25vcmUpKSkKCihzZXRxIG1lb3ctY3Vyc29yLXR5cGUt
bm9ybWFsICdoYmFyKQooc2V0cSBtZW93LWN1cnNvci10eXBlLWluc2VydCAnYm94KQoKKHJlcXVp
cmUgJ21lb3cpCihtZW93LXNldHVwKQoobWVvdy1nbG9iYWwtbW9kZSAxKQojK0VORF9TUkMKKiA6
VE9ETzogU2V0dXAgTVU0RQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bXU0
ZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsoYWRkLXRvLWxpc3QgJ2xvYWQt
cGF0aCAiL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9zaXRlLWxpc3AvbXU0ZSIpCjsocmVxdWlyZSAn
bXU0ZSkKCjsobXU0ZS1hbGVydC1zZXQtZGVmYXVsdC1zdHlsZSAnbGlibm90aWZ5KQo7KGFkZC1o
b29rICdhZnRlci1pbml0LWhvb2sgJ211NGUtYWxlcnQtZW5hYmxlLW5vdGlmaWNhdGlvbnMpCjso
bXU0ZS1hbGVydC1ub3RpZmljYXRpb25zKQojK0VORF9TUkMKCiogUmFuZG9tIFN0dWZmClNoaWZ0
IGFuZCBhcnJvdyBrZXkgY2hhbmdlcyB3aW5kb3dzCiMrQkVHSU5fU1JDIGVsaXNwCih3aGVuIChm
Ym91bmRwICd3aW5kbW92ZS1kZWZhdWx0LWtleWJpbmRpbmdzKQogICh3aW5kbW92ZS1kZWZhdWx0
LWtleWJpbmRpbmdzKSkKIytFTkRfU1JDCgpLaWxscyB0aGUgc2NyYXRjaCBidWZmZXIgb24gbGF1
bmNoIGFuZCBjaGFuZ2VzIGEgZmV3IFVJIHRoaW5ncy4KIytCRUdJTl9TUkMgZWxpc3AKKGtpbGwt
YnVmZmVyICIqc2NyYXRjaCoiKQo7KHNldHEgaW5oaWJpdC1zcGxhc2gtc2NyZWVuIHQpCihzZXRx
IGluaGliaXQtc3RhcnR1cC1zY3JlZW4gdCkKKHNjcm9sbC1iYXItbW9kZSAtMSkKKG1lbnUtYmFy
LW1vZGUgLTEpCih0b29sLWJhci1tb2RlIC0xKQooZGlzcGxheS10aW1lLW1vZGUgdCkKOztHZXR0
aW5nIHJpZCBvZiBsaW5lIHdyYXBwaW5nLgooc2V0LWRlZmF1bHQgJ3RydW5jYXRlLWxpbmVzIHQp
Cjs7Ozs7Ozs7Ozs7Ozs7OyB0dXJuIG9mZiB0aGUgYmVlcGluZyA7Ozs7Ozs7Ozs7Owooc2V0cSB2
aXNpYmxlLWJlbGwgMSkKCjs7KGdsb2JhbC1saW51bS1tb2RlIHQpCjs7IHJlcGxhY2luZyBsaW51
bS1tb2RlIHdpdGggZGlzcGxheS1saW5lLW1vZGUgYXMgaXQgZm9sbG93cyB0aGUgdGhlbWUKKGds
b2JhbC1kaXNwbGF5LWxpbmUtbnVtYmVycy1tb2RlIHQpCihnbG9iYWwtc2V0LWtleSAoa2JkICJD
LXggaSIpIChsYW1iZGEgKCkgKGludGVyYWN0aXZlKShmaW5kLWZpbGUgIn4vLmVtYWNzLmQvaW5p
dC5vcmciKSkpCiMrRU5EX1NSQwoKKiBEaWFyeQojK0JFR0lOX1NSQyBlbGlzcAo7ZGVza3RvcCBu
b3RpZmljYXRpb25zCihyZXF1aXJlICdub3RpZmljYXRpb25zKQoKKGRlZmN1c3RvbSBhcHB0LW5v
dGlmaWNhdGlvbi1idXMgOnNlc3Npb24KICAiZGJ1cyBub3RpZmljYXRpb25zIgogIDp2ZXJzaW9u
ICIyOS4wNSIKICA6Z3JvdXAgJ2FwcHQtbm90aWZpY2F0aW9uCiAgOnR5cGUgJyhjaG9pY2UgKGNv
bnN0IDp0YWcgIlNlc3Npb24gYnVzIiA6c2Vzc2lvbikgc3RyaW5nKSkKCihkZWZ1biB1c2VyL2Fw
cHQtZGlzcGxheSAobWluLXRvLWFwcCBuZXctdGltZSBtc2cpCiAgInNlbmRzIG5vdGlmaWNhdGlv
bnMiCiAgKG5vdGlmaWNhdGlvbnMtbm90aWZ5IDpidXMgYXBwdC1ub3RpZmljYXRpb24tYnVzCgkJ
CTp0aXRsZSAoZm9ybWF0ICJBcHBvaW50bWVudCBpbiAlcyBtaW51dGVzIiBtaW4tdG8tYXBwKQoJ
CQk6Ym9keSAoZm9ybWF0ICIlcyIgbXNnKQoJCQk6cmVwbGFjZXMtaWQgbmlsCgkJCTphcHAtaWNv
biBub3RpZmljYXRpb25zLWFwcGxpY2F0aW9uLWljb24KCQkJOnRpbWVvdXQgODAwMAoJCQk6ZGVz
a3RvcC1lbnRyeSAiZGlhcnkiKSkKCihzZXRxIGFwcHQtZGlzcC13aW5kb3ctZnVuY3Rpb24gKGZ1
bmN0aW9uIHVzZXIvYXBwdC1kaXNwbGF5KSkKCihzZXRxLWRlZmF1bHQgZGlhcnktZmlsZSAifi8u
ZW1hY3MuZC9kaWFyeSIKCSAgICAgIGFwcHQtZGlzcGxheS1mb3JtYXQgJ3dpbmRvdwoJICAgICAg
YXBwdC1kaXNwbGF5LWR1cmF0aW9uIDYwCgkgICAgICBhcHB0LWF1ZGlibGUgdAoJICAgICAgYXBw
dC1kaXNwbGF5LWludGVydmFsIDE1CgkgICAgICBhcHB0LW1lc3NhZ2Utd2FybmluZy10aW1lIDE1
CgkgICAgICBkaXNwbGF5LXRpbWUtMjRoci1mb3JtYXQgdAoJICAgICAgZGlzcGxheS10aW1lLWRh
eS1hbmQtZGF0ZSB0KQoKKGFwcHQtYWN0aXZhdGUgdCkKCjtpbXBvcnRzIGljYWwgZmlsZSwgdGFr
ZXMgYSBsb25nIHRpbWUgc2luY2UgbXkgaWNhbCBpcyBodWdlIGZyb20gb2xkIGV2ZW50cwo7KGlj
YWxlbmRhci1pbXBvcnQtZmlsZSAifi8ubG9jYWwvc2hhcmUvZXZvbHV0aW9uL2NhbGVuZGFyL3N5
c3RlbS9jYWxlbmRhci5pY3MiCjsJCSAgICAgICAifi8uZW1hY3MuZC9kaWFyeSIpCgojK0VORF9T
UkMKCiogRW1vamlmeQojK0JFR0lOX1NSQyBlbGlzcAo7Ozs7ZGlzcGxheXMgZW1vamlzIGZvciB3
ZWF0aGVyCihlbW9qaWZ5LW1vZGUgMSkKKGVtb2ppZnktbW9kZS1saW5lLW1vZGUgMSkKIytFTkRf
U1JDCiogRGFzaGJvYXJkCiMrQkVHSU5fU1JDIGVsaXNwCjs7IFNldCB0aGUgdGl0bGUKKHJlcXVp
cmUgJ2Rhc2hib2FyZCkKKHNldHEgZGFzaGJvYXJkLXdlZWstYWdlbmRhIHQpCihzZXRxIGRhc2hi
b2FyZC1iYW5uZXItbG9nby10aXRsZSAiSSdtIHVzaW5nIExpbnV4LiBBIGxpYnJhcnkgdGhhdCBl
bWFjcyB1c2VzIHRvIGNvbW11bmljYXRlIHdpdGggSW50ZWwgaGFyZHdhcmUuIikgCjsoc2V0cSBk
YXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vRG93bmxvYWRzL3Jzel9lbWFjcy1jb2xvcmZ1bC5w
bmciKQooc2V0cSBkYXNoYm9hcmQtc3RhcnR1cC1iYW5uZXIgIn4vUGljdHVyZXMvZW1hY3MtY29s
b3JmdWwucG5nIikKOyhzZXRxIGRhc2hib2FyZC1zdGFydHVwLWJhbm5lciAnb2ZmaWNpYWwpCihz
ZXRxIGRhc2hib2FyZC1zZXQtaGVhZGluZy1pY29ucyB0KQooc2V0cSBkYXNoYm9hcmQtc2V0LWZp
bGUtaWNvbnMgdCkKKHNldHEgZGFzaGJvYXJkLXNldC1uYXZpZ2F0b3IgdCkKKHNldHEgZGFzaGJv
YXJkLWNlbnRlci1jb250ZW50IHQpCjs7IFRvIGRpc2FibGUgc2hvcnRjdXQgImp1bXAiIGluZGlj
YXRvcnMgZm9yIGVhY2ggc2VjdGlvbiwgc2V0CihzZXRxIGRhc2hib2FyZC1zaG93LXNob3J0Y3V0
cyBuaWwpCgooZGFzaGJvYXJkLXNldHVwLXN0YXJ0dXAtaG9vaykKCihhdXRvLWltYWdlLWZpbGUt
bW9kZSAxKQoKKHVzZS1wYWNrYWdlIHBhZ2UtYnJlYWstbGluZXMKICA6ZW5zdXJlIHQKICA6ZGVt
YW5kIHQpCgooZ2xvYmFsLXBhZ2UtYnJlYWstbGluZXMtbW9kZSAxKQojK0VORF9TUkMKCiogU1ZH
IFRhZwojK0JFR0lOX1NSQyBlbGlzcAooZGVmY29uc3QgZGF0ZS1yZSAiWzAtOV1cXHs0XFx9LVsw
LTldXFx7MlxcfS1bMC05XVxcezJcXH0iKQooZGVmY29uc3QgdGltZS1yZSAiWzAtOV1cXHsyXFx9
OlswLTldXFx7MlxcfSIpCihkZWZjb25zdCBkYXktcmUgIltBLVphLXpdXFx7M1xcfSIpCihkZWZj
b25zdCBkYXktdGltZS1yZSAoZm9ybWF0ICJcXCglc1xcKT8gP1xcKCVzXFwpPyIgZGF5LXJlIHRp
bWUtcmUpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1wZXJjZW50ICh2YWx1ZSkKICAoc3ZnLWltYWdl
IChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChzdmctbGliLXByb2dyZXNzLWJhciAoLyAo
c3RyaW5nLXRvLW51bWJlciB2YWx1ZSkgMTAwLjApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmlsIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5nIDIgOndpZHRo
IDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyAoY29uY2F0IHZhbHVlICIlIikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmlsIDpzdHJva2UgMCA6bWFyZ2luIDApKSA6YXNjZW50ICdj
ZW50ZXIpKQoKKGRlZnVuIHN2Zy1wcm9ncmVzcy1jb3VudCAodmFsdWUpCiAgKGxldCogKChzZXEg
KG1hcGNhciAjJ3N0cmluZy10by1udW1iZXIgKHNwbGl0LXN0cmluZyB2YWx1ZSAiLyIpKSkKICAg
ICAgICAgKGNvdW50IChmbG9hdCAoY2FyIHNlcSkpKQogICAgICAgICAodG90YWwgKGZsb2F0IChj
YWRyIHNlcSkpKSkKICAoc3ZnLWltYWdlIChzdmctbGliLWNvbmNhdAogICAgICAgICAgICAgIChz
dmctbGliLXByb2dyZXNzLWJhciAoLyBjb3VudCB0b3RhbCkgbmlsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDptYXJnaW4gMCA6c3Ryb2tlIDIgOnJhZGl1cyAzIDpwYWRkaW5n
IDIgOndpZHRoIDExKQogICAgICAgICAgICAgIChzdmctbGliLXRhZyB2YWx1ZSBuaWwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOnN0cm9rZSAwIDptYXJnaW4gMCkpIDphc2NlbnQgJ2NlbnRl
cikpKQoKO1NldHRpbmcgbXkgb3duIGZhY2UKOyhkZWZmYWNlIG15ZmFjZSAnKCh0ICg6aW5oZXJp
dCBvcmctdG9kbykgOmhlaWdodCAxLjAgOmJhY2tncm91bmQgIiM5NTdEQUQiKSkgIkZhY2UgZm9y
IHRvZG8iKQooZGVmZmFjZSBwYXN0ZWxwdXJwbGUgJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhl
aWdodCAyLjAgOmZvcmVncm91bmQgIiM5NTdEQUQiKSkpICJGYWNlIGZvciB0b2RvIikKKGRlZmZh
Y2UgcGFzdGVsZ3JlZW4gJygodCAoOmluaGVyaXQgb3JnLXRvZG8gOmhlaWdodCAyLjAgOmZvcmVn
cm91bmQgIiNCMEVCOTMiKSkpICJGYWNlIGZvciBXSVAiKQooZGVmZmFjZSBwYXN0ZWxibHVlICco
KHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4wIDpmb3JlZ3JvdW5kICIjQjNFM0RBIikp
KSAiRmFjZSBmb3IgRE9ORSIpCihkZWZmYWNlIHBhc3RlbHJlZCAnKCh0ICg6aW5oZXJpdCBvcmct
dG9kbyA6aGVpZ2h0IDIuMCA6Zm9yZWdyb3VuZCAiI0Y5ODI4NCIpKSkgIkZhY2UgZm9yIHRhZ3Mi
KQooZGVmZmFjZSBwYXN0ZWxwaW5rICcoKHQgKDppbmhlcml0IG9yZy10b2RvIDpoZWlnaHQgMi4w
IDpmb3JlZ3JvdW5kICIjRkVBQUU0IikpKSAiRmFjZSBmb3IgRGF0ZSIpCgoKKHNldHEgc3ZnLXRh
Zy10YWdzCiAgICAgIGAoCiAgICAgICAgOzsgT3JnIHRhZ3MgOlRISVM6CiAgICAgICAgKCJcXCg6
W0EtWmEtejAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVn
IDEgOmVuZCAtMSA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxyZWQpKSkpCgkKCTsoMSkKCTsoIlwo
WzAtOzlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICA7ICAgICAgICAgICAgICAg
ICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyAxMikpKSkK
Cgk7KDA5KQogICAgICAgIDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVwpIiAuICgobGFtYmRh
ICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10
YWctbWFrZSB0YWcgOmJlZyAxIDplbmQgLTEgOnJhZGl1cyA4KSkpKQoKCTsoMDA3KQogICAgICAg
IDsoIlwoWzAtOWEtekEtWl1bMC05YS16QS1aXVswLTlhLXpBLVpdXCkiIC4gKChsYW1iZGEgKHRh
ZykKICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1t
YWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6cmFkaXVzIDgpKSkpCgoJO1Vuc3VyZT8KCTsoInxbMC05
YS16QS1aLSBdKz98IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmZhY2UgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UK
ICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDptYXJnaW4g
MCA6YmVnIDEgOmVuZCAtMSkpKSkKCQogICAgICAgIDs7IFRhc2sgcHJpb3JpdHkgWyNhXQogICAg
ICAgICgiXFxbI1thLXpBLVpdXFxdIiAuICggKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6ZmFjZSAnb3JnLXByaW9yaXR5IAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgMiA6ZW5kIC0xIDpt
YXJnaW4gMCA6aW52ZXJzZSB0KSkpKQoKICAgICAgICA7OyBQcm9ncmVzcyBbMS8zXSBvciBbNDUl
XQogICAgICAgICgiXFwoXFxbWzAtOV1cXHsxLDNcXH0lXFxdXFwpIiAuICgobGFtYmRhICh0YWcp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy1wcm9ncmVz
cy1wZXJjZW50IChzdWJzdHJpbmcgdGFnIDEgLTIpKSkpKQogICAgICAgICgiXFwoXFxbWzAtOV0r
L1swLTldK1xcXVxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc3ZnLXByb2dyZXNzLWNvdW50IChzdWJzdHJpbmcgdGFnIDEgLTEp
KSkpKQogICAgICAgIAogICAgICAgIDs7IE9yZyBUQUdTCiAgICAgICAgKCI6VE9ETzoiIC4gKChs
YW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVE9ETyIgOmludmVyc2UgdCA6ZmFjZSAncGFzdGVs
cHVycGxlKSkpKQogICAgICAgICgiOldJUDoiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFr
ZSAiV0lQIiA6aW52ZXJzZSB0IDpmYWNlICdwYXN0ZWxncmVlbikpKSkKICAgICAgICAoIjpET05F
OiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJET05FIiA6aW52ZXJzZSB0IDpmYWNl
ICdwYXN0ZWxibHVlKSkpKQogICAgICAgICgiOk5PVEU6IiAuICgobGFtYmRhICh0YWcpIChzdmct
dGFnLW1ha2UgIk5PVEUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10b2RvKSkpKQogICAgICAgICgi
U0NIRURVTEVEOiIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRhZy1tYWtlICJTQ0hFRFVMRUQiIDpp
bnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCJERUFETElORToiIC4gKChsYW1i
ZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiREVBRExJTkUiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10
YWcpKSkpCiAgICAgICAgKCIrQkVHSU5fU1JDIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1h
a2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAgICAgICgiK0VORF9T
UkMiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiRU5EIiA6aW52ZXJzZSB0IDpmYWNl
ICdvcmctdGFnKSkpKQogICAgICAgICgiK1JFU1VMVFM6IiAuICgobGFtYmRhICh0YWcpIChzdmct
dGFnLW1ha2UgIlJFU1VMVFMiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAg
KCIrdGl0bGUiIC4gKChsYW1iZGEgKHRhZykgKHN2Zy10YWctbWFrZSAiVElUTEUiIDppbnZlcnNl
IHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrQkVHSU46IiAuICgobGFtYmRhICh0YWcp
IChzdmctdGFnLW1ha2UgIkJFR0lOIiA6aW52ZXJzZSB0IDpmYWNlICdvcmctdGFnKSkpKQogICAg
ICAgICgiK0NBUFRJT046IiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIkNBUFRJT04i
IDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCiAgICAgICAgKCIrRU5EOiIgLiAoKGxhbWJk
YSAodGFnKSAoc3ZnLXRhZy1tYWtlICJFTkQiIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkp
CgkoIjpYIiAuICgobGFtYmRhICh0YWcpIChzdmctdGFnLW1ha2UgIltYXSIgOmludmVyc2UgdCA6
ZmFjZSAnb3JnLXRvZG8pKSkpCiAgICAgICAgKCI6LSIgLiAoKGxhbWJkYSAodGFnKSAoc3ZnLXRh
Zy1tYWtlICJbLV0iIDppbnZlcnNlIHQgOmZhY2UgJ29yZy10YWcpKSkpCgkKICAgICAgICA7OyBD
aXRhdGlvbiBvZiB0aGUgZm9ybSBbY2l0ZTpAS251dGg6MTk4NF0gCiAgICAgICAgKCJcXChcXFtj
aXRlOkBbQS1aYS16XSs6XFwpIiAuICgobGFtYmRhICh0YWcpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmludmVyc2UgdAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpiZWcgNyA6
ZW5kIC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOmNyb3AtcmlnaHQgdCkpKSkKICAgICAgICAoIlxcW2NpdGU6QFtBLVphLXpdKzpcXChb
MC05XStcXF1cXCkiIC4gKChsYW1iZGEgKHRhZykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIC0xCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OmNyb3AtbGVmdCB0KSkpKQoKCgk7OzsgV29ya3MgZm9yIHN0dWZmIGxpa2UgOlhYWHxZWVk6Cgko
IlxcKDpbQS1aXStcXClcfFthLXpBLVojMC05XSs6IiAuICgobGFtYmRhICh0YWcpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVn
IDEgOmludmVyc2UgdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLXJpZ2h0IHQpKSkpICAgICAgICAKCiAgICAg
ICAgKCI6W0EtWl0rXFwoXHxbYS16QS1aIzAtOV0rOlxcKSIgLiAoKGxhbWJkYSAodGFnKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcg
OmJlZyAxIDplbmQgLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOm1hcmdpbiAwIDpjcm9wLWxlZnQgdCkpKSkKCTs7IEFjdGl2ZSBkYXRl
ICh3aXRoIG9yIHdpdGhvdXQgZGF5IG5hbWUsIHdpdGggb3Igd2l0aG91dCB0aW1lKQogICAgICAg
ICgsKGZvcm1hdCAiXFwoPCVzPlxcKSIgZGF0ZS1yZSkgLgogICAgICAgICAoKGxhbWJkYSAodGFn
KQogICAgICAgICAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAg
OmZhY2UgJ3Bhc3RlbHBpbmsgOmludmVyc2UgdCkpKSkKICAgICAgICAoLChmb3JtYXQgIlxcKDwl
cyBcXCklcz4iIGRhdGUtcmUgZGF5LXRpbWUtcmUpIC4KICAgICAgICAgKChsYW1iZGEgKHRhZykK
ICAgICAgICAgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAxIDppbnZlcnNlIHQgOmNyb3Atcmln
aHQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpCiAgICAgICAgKCwoZm9ybWF0ICI8
JXMgXFwoJXM+XFwpIiBkYXRlLXJlIGRheS10aW1lLXJlKSAuCiAgICAgICAgICgobGFtYmRhICh0
YWcpCiAgICAgICAgICAgIChzdmctdGFnLW1ha2UgdGFnIDplbmQgLTEgOmludmVyc2UgbmlsIDpj
cm9wLWxlZnQgdCA6bWFyZ2luIDAgOmZhY2UgJ3Bhc3RlbHBpbmspKSkpKSkKCiAgICAgICAgOzsg
SW5hY3RpdmUgZGF0ZSAgKHdpdGggb3Igd2l0aG91dCBkYXkgbmFtZSwgd2l0aCBvciB3aXRob3V0
IHRpbWUpCiAgICAgICAgIDsoLChmb3JtYXQgIlxcKFxcWyVzXFxdXFwpIiBkYXRlLXJlKSAuCiAg
ICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1tYWtlIHRhZyA6
YmVnIDEgOmVuZCAtMSA6bWFyZ2luIDAgOmZhY2UgJ29yZy1kYXRlKSkpKQogICAgICAgICA7KCwo
Zm9ybWF0ICJcXChcXFslcyBcXCklc1xcXSIgZGF0ZS1yZSBkYXktdGltZS1yZSkgLgogICAgICAg
ICA7ICgobGFtYmRhICh0YWcpCiAgICAgICAgIDsgICAgKHN2Zy10YWctbWFrZSB0YWcgOmJlZyAx
IDppbnZlcnNlIG5pbCA6Y3JvcC1yaWdodCB0IDptYXJnaW4gMCA6ZmFjZSAnb3JnLWRhdGUpKSkp
CiAgICAgICAgIDsoLChmb3JtYXQgIlxcWyVzIFxcKCVzXFxdXFwpIiBkYXRlLXJlIGRheS10aW1l
LXJlKSAuCiAgICAgICAgIDsgKChsYW1iZGEgKHRhZykKICAgICAgICAgOyAgICAoc3ZnLXRhZy1t
YWtlIHRhZyA6ZW5kIC0xIDppbnZlcnNlIHQgOmNyb3AtbGVmdCB0IDptYXJnaW4gMCA6ZmFjZSAn
b3JnLWRhdGUpKSkpKSkKCihyZXF1aXJlICdzdmctdGFnLW1vZGUpCihnbG9iYWwtc3ZnLXRhZy1t
b2RlIDEpCih1c2UtcGFja2FnZSBzdmctbGliKQojK0VORF9TUkMKCiogSXZ5LCBTbWV4LCBPcmRl
cmxlc3MgYW5kIFN3aXBlcgojK0JFR0lOX1NSQyBlbGlzcAooaXZ5LW1vZGUgMSkKCihyZXF1aXJl
ICdzbWV4KQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiTS14IikgJ3NtZXgpCgooZ2xvYmFsLXNldC1r
ZXkgKGtiZCAiQy1zIikgJ3N3aXBlcikKCgoodXNlLXBhY2thZ2Ugb3JkZXJsZXNzCiAgOmVuc3Vy
ZSB0CiAgOmN1c3RvbQogIChjb21wbGV0aW9uLXN0eWxlcyAnKG9yZGVybGVzcyBiYXNpYykpCiAg
KGNvbXBsZXRpb24tY2F0ZWdvcnktb3ZlcnJpZGVzICcoKGZpbGUgKHN0eWxlcyBiYXNpYyBwYXJ0
aWFsLWNvbXBsZXRpb24pKSkpKQoKKHNldHEgaXZ5LXJlLWJ1aWxkZXJzLWFsaXN0ICcoKHQgLiBv
cmRlcmxlc3MtaXZ5LXJlLWJ1aWxkZXIpKSkKKGFkZC10by1saXN0ICdpdnktaGlnaGxpZ2h0LWZ1
bmN0aW9ucy1hbGlzdCAnKG9yZGVybGVzcy1pdnktcmUtYnVpbGRlciAuIG9yZGVybGVzcy1pdnkt
aGlnaGxpZ2h0KSkKCiMrRU5EX1NSQwoqIENlbnRhdXIgVGFicwojK0JFR0lOX1NSQyBlbGlzcAoo
dXNlLXBhY2thZ2UgY2VudGF1ci10YWJzCiAgOmRlbWFuZAogIDpjb25maWcKICAoY2VudGF1ci10
YWJzLW1vZGUgdCkKICA6YmluZAogICgiQy08cHJpb3I+IiAuIGNlbnRhdXItdGFicy1iYWNrd2Fy
ZCkKICAoIkMtPG5leHQ+IiAuIGNlbnRhdXItdGFicy1mb3J3YXJkKSkKKGNlbnRhdXItdGFicy1o
ZWFkbGluZS1tYXRjaCkKKHNldHEgY2VudGF1ci10YWJzLXN0eWxlICJiYXIiKQooc2V0cSBjZW50
YXVyLXRhYnMtaGVpZ2h0IDEyKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LWljb25zIHQpCihzZXRx
IGNlbnRhdXItdGFicy1jbG9zZS1idXR0b24gIlgiKQooc2V0cSBjZW50YXVyLXRhYnMtc2V0LW1v
ZGlmaWVkLW1hcmtlciB0KQooc2V0cSBjZW50YXVyLXRhYnMtbW9kaWZpZWQtbWFya2VyICIqIikK
KHNldHEgY2VudGF1ci10YWJzLXNldC1iYXIgJ2xlZnQpCiMrRU5EX1NSQwoKKiBMU1AtTW9kZSAo
RGV2ZWxvcG1lbnQgaW4gZ2VuZXJhbCkKQ29tbWVudGluZyBvdXQgdGhlIGxpbmVzIHdpdGggYSBu
dW1iZXIgYWZ0ZXJ3YXJkcyBiZWNhdXNlIEkgYW0gdHJ5aW5nIHRvIHN3aXRjaAp0byBMU1AtQnJp
ZGdlIHRvIHNlZSBpZiBpdCBzb2x2ZXMgdGhlIGlzc3VlIG9mIG15IEVtYWNzIGZyZWV6aW5nLgoj
K0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgcHJvamVjdGlsZSkKKHVzZS1wYWNrYWdlIGZs
eWNoZWNrIDplbnN1cmUgdCA6aW5pdCAoZ2xvYmFsLWZseWNoZWNrLW1vZGUpKQoodXNlLXBhY2th
Z2UgeWFzbmlwcGV0IDpjb25maWcgKHlhcy1nbG9iYWwtbW9kZSkpCjsodXNlLXBhY2thZ2UgbHNw
LXVpKSAxCih1c2UtcGFja2FnZSB3aGljaC1rZXkgOmNvbmZpZyAod2hpY2gta2V5LW1vZGUpKQo7
OyBMU1AtSmF2YSBmcmVlemVzIG15IG1hY2hpbmUgc28gaXQncyBjdXJyZW50bHkgY29tbWVudGVk
IG91dAo7KHVzZS1wYWNrYWdlIGxzcC1qYXZhIDpjb25maWcgKGFkZC1ob29rICdqYXZhLW1vZGUt
aG9vayAnbHNwKSkKOyh1c2UtcGFja2FnZSBkYXAtbW9kZSA6YWZ0ZXIgbHNwLW1vZGUgOmNvbmZp
ZyAoZGFwLWF1dG8tY29uZmlndXJlLW1vZGUpKSAxCgo7Oyh1c2UtcGFja2FnZSBsc3AtbW9kZSAx
Cjs7ICA6aG9vayAoKGxzcC1tb2RlIC4gbHNwLWVuYWJsZS13aGljaC1rZXktaW50ZWdyYXRpb24p
KQo7OyAgOmNvbmZpZwo7OyAgKHNldHEKOzsgICBsc3AtZW5hYmxlLWZpbGUtd2F0Y2hlcnMgbmls
Cjs7ICAgbHNwLWhlYWRlcmxpbmUtYnJlYWRjcnVtYi1lbmFibGUgbmlsCjs7ICAgKQo7OyAgOzsg
UGVyZm9ybWFuY2UgdHdlYWtzLCBzZWUKOzsgIDs7IGh0dHBzOi8vZ2l0aHViLmNvbS9lbWFjcy1s
c3AvbHNwLW1vZGUjcGVyZm9ybWFuY2UKOzsgIChzZXRxIGdjLWNvbnMtdGhyZXNob2xkIDEwMDAw
MDAwMCkKOzsgIChzZXRxIHJlYWQtcHJvY2Vzcy1vdXRwdXQtbWF4ICgqIDEwMjQgMTAyNCkpIDs7
IDFtYgo7OyAgKHNldHEgbHNwLWlkbGUtZGVsYXkgMC41MDApCjs7ICApCgoocmVxdWlyZSAnZ28t
bW9kZSkKCjsocmVxdWlyZSAnY29tcGFueSkgMQoKOyhhZGQtaG9vayAnYWZ0ZXItaW5pdC1ob29r
ICdnbG9iYWwtY29tcGFueS1tb2RlKSAxCgo7KHVzZS1wYWNrYWdlIGNvbXBhbnktYm94IDEKOyAg
Omhvb2sgKGNvbXBhbnktbW9kZSAuIGNvbXBhbnktYm94LW1vZGUpKQoKOzsgbHNwIGV4dHJhcyAx
Cjs7KHNldHEgbHNwLXVpLXNpZGVsaW5lLWVuYWJsZSB0Cjs7ICAgICAgbHNwLXVpLXNpZGVsaW5l
LXNob3ctc3ltYm9sIHQKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1ob3ZlciB0Cjs7ICAg
ICAgbHNwLXVpLXNpZGVsaW5lLXNob3ctZmx5Y2hlY2sgdAo7OyAgICAgIGxzcC11aS1zaWRlbGlu
ZS1zaG93LWNvZGUtYWN0aW9ucyBuaWwKOzsgICAgICBsc3AtdWktc2lkZWxpbmUtc2hvdy1kaWFn
bm9zdGljcyBuaWwpCgoKOzsgRWxweQoodXNlLXBhY2thZ2UgZWxweQogIDplbnN1cmUgdAogIDpp
bml0CiAgKGVscHktZW5hYmxlKSkKCjs7IFRhYk5pbmUgaW50ZWdyYXRpb24gZm9yIGNvZGUgY29t
cGxldGlvbgo7Oyh1c2UtcGFja2FnZSBjb21wYW55LXRhYm5pbmUgOmVuc3VyZSB0KSAxCjs7KHJl
cXVpcmUgJ2NvbXBhbnktdGFibmluZSkgMQo7OyhhZGQtdG8tbGlzdCAnY29tcGFueS1iYWNrZW5k
cyAjJ2NvbXBhbnktdGFibmluZSkgMQo7OyBUcmlnZ2VyIGNvbXBsZXRpb24gaW1tZWRpYXRlbHku
Cjs7KHNldHEgY29tcGFueS1pZGxlLWRlbGF5IDAuMTUpIDEKCjs7IE51bWJlciB0aGUgY2FuZGlk
YXRlcyAodXNlIE0tMSwgTS0yIGV0YyB0byBzZWxlY3QgY29tcGxldGlvbnMpLgo7OyhzZXRxIGNv
bXBhbnktc2hvdy1udW1iZXJzIHQpIDEKCjs7IEpTIGRldmVsb3BtZW50Cjs7KHVzZS1wYWNrYWdl
IGZyb250c2lkZS1qYXZhc2NyaXB0IDEKOzsgIDppbml0IChmcm9udHNpZGUtamF2YXNjcmlwdCkp
CgojK0VORF9TUkMKKiBGb250CiMrQkVHSU5fU1JDIGVsaXNwCjtXb3JrcyB3aXRoIE9wdGlvbnMt
PlNldCBEZWZhdWx0IEZvbnQKKHNldC1mYWNlLWF0dHJpYnV0ZSAnZGVmYXVsdCBuaWwgOmZhbWls
eSAiSW9zZXZrYSIpCjsoc2V0LWZyYW1lLWZvbnQgIklvc2V2a2EgMTgiIG5pbCB0KQojK0VORF9T
UkMKCiogR29sZGVuIFJhdGlvCk1ha2VzIGl0IHNvIHRoZSBidWZmZXIgeW91IGFyZSBmb2N1c2Vk
IG9uIGlzIGxhcmdlciB0aGFuIHRoZSBvbmVzIG5vdCBmb2N1c2VkIG9uLgojK0JFR0lOX1NSQyBl
bGlzcAo7IGh0dHBzOi8vZ2l0aHViLmNvbS9yb21hbi9nb2xkZW4tcmF0aW8uZWwKKGdvbGRlbi1y
YXRpby1tb2RlIDEpCiMrRU5EX1NSQwoqIEJhYmVsCiMrQkVHSU5fU1JDIGVsaXNwCjs7IE9yZyBC
YWJlbAo7KGxvYWQtbGlicmFyeSAnb2ItcnVzdCkKKG9yZy1iYWJlbC1kby1sb2FkLWxhbmd1YWdl
cwogJ29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcwogJygocHl0aG9uIC4gdCkpKQo7ICAgKG9jdGF2
ZSAuIHQpCjsgICAocnVzdCAuIHQpKSkKIytFTkRfU1JDCiogWWFzbmlwcGV0CiMrQkVHSU5fU1JD
IGVsaXNwCihyZXF1aXJlICd5YXNuaXBwZXQpCiMrRU5EX1NSQwoKKiBQZXJzcGVjdGl2ZQojK0JF
R0lOX1NSQyBlbGlzcAoocmVxdWlyZSAncGVyc3BlY3RpdmUpCihnbG9iYWwtc2V0LWtleSAoa2Jk
ICJDLXggQy1iIikgJ3BlcnNwLWxpc3QtYnVmZmVycykKKGdsb2JhbC1zZXQta2V5IChrYmQgIkMt
eCBDLXAiKSAncGVyc3Atc3dpdGNoKQooY3VzdG9taXplLXNldC12YXJpYWJsZSAncGVyc3AtbW9k
ZS1wcmVmaXgta2V5IChrYmQgIkMtYyBNLXAiKSkKKHBlcnNwLW1vZGUpCiMrRU5EX1NSQwoKKiBN
YXJnaW5hbGlhCiMrQkVHSU5fU1JDIGVsaXNwCihtYXJnaW5hbGlhLW1vZGUgMSkKIytFTkRfU1JD
CiogRG9vbSBNb2RlbGluZQojK0JFR0lOX1NSQyBlbGlzcAoodXNlLXBhY2thZ2UgZG9vbS1tb2Rl
bGluZQogIDplbnN1cmUgdAogIDppbml0IChkb29tLW1vZGVsaW5lLW1vZGUgMSkpCiMrRU5EX1NS
QwoqIENlbnRlcmVkIEN1cnNvciBNb2RlCiMrQkVHSU5fU1JDIGVsaXNwCih1c2UtcGFja2FnZSBj
ZW50ZXJlZC1jdXJzb3ItbW9kZQogIDpkZW1hbmQKICA6Y29uZmlnCiAgOzsgT3B0aW9uYWwsIGVu
YWJsZXMgY2VudGVyZWQtY3Vyc29yLW1vZGUgaW4gYWxsIGJ1ZmZlcnMuCiAgKGdsb2JhbC1jZW50
ZXJlZC1jdXJzb3ItbW9kZSkpCiMrRU5EX1NSQwoqIEJ1aWx0LUluIGZ1bmN0aW9ucyAoRWxlY3Ry
aWMgcGFpciBhbmQgd2hpY2ggZnVuY3Rpb24pCiMrQkVHSU5fU1JDIGVsaXNwCjs7OyBFbGVjdHJp
Yy1wYWlyIG1vZGUgKE1hdGNoZXMgcGFyZW5zIGFuZCBicmFja2V0cykKKGVsZWN0cmljLXBhaXIt
bW9kZSAxKQoKOzsgdG9wLWJhciB3aGljaCBmdW5jdGlvbiB5b3UncmUgY3VpcnJlbnRseSBpbgoo
d2hpY2gtZnVuY3Rpb24tbW9kZSkKIytFTkRfU1JDCgoqIFJhaW5ib3cgRGVsaW1pdGVyIE1vZGUK
UmFpbmJvdyBkZWxpbWl0ZXIgbW9kZSBjaGFuZ2VzIGNvbG9ycyBvZiBkZWxpbWl0ZXMgdG8gbWF0
Y2ggdGhlaXIgcGFydG5lcgojK0JFR0lOX1NSQyBlbGlzcAooYWRkLWhvb2sgJ3Byb2ctbW9kZS1o
b29rICMncmFpbmJvdy1kZWxpbWl0ZXJzLW1vZGUpCiMrRU5EX1NSQwoqIExpbmUtUmVtaW5kZXIg
TW9kZQpMaW5lLXJlbWluZGVyLW1vZGUsIGJhc2ljYWxseSBzaG93cyB3aGF0IHlvdSd2ZSBjaGFu
Z2VkIGluIHlvdXIgY3VycmVudCBzZXNzaW9uCgpPbmUgdGhpbmcgdG8gbm90ZSB0aG91Z2ggaXMg
dGhhdCB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHNldHVwLCB0aGVyZSBpcyBhbiBpc3N1ZQp3aXRo
IHNlZWluZyB0aGUgeWVsbG93IG1hcmtlciBzbyBJIGNoYW5nZWQgdGhhdCB2YWx1ZSB0byBiZSAj
RERFMTY1LiBJdCBpcyBhcHBhcmVudGx5CmJlaW5nIHdvcmtlZCBvbiB1cHN0cmVhbSBpbiB0aGUg
dGhlbWUsIGJ1dCBoYXNuJ3QgYmVlbiBmaW5pc2hlZCB5ZXQuCgo6VE9ETzogRmlndXJlIG91dCBo
b3cgdG8gY2hhbmdlIHRoZSBpZGVudGlmaWVyIHRvIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhl
IGZyaW5nZT8/PwojK0JFR0lOX1NSQyBlbGlzcAoocmVxdWlyZSAnaW5kaWNhdG9ycykKKHVzZS1w
YWNrYWdlIGxpbmUtcmVtaW5kZXIKICA6ZW5zdXJlIHQKICA6aW5pdAogIChzZXRxIGxpbmUtcmVt
aW5kZXItc2hvdy1vcHRpb24gJ2luZGljYXRvcnMpCiAgOzsgQ3VzdG9taXplIHRoZSBtb2RpZmll
ZCBzaWduLgogIDs7KHNldHEgbGluZS1yZW1pbmRlci1tb2RpZmllZC1zaWduICLilpAiKSAgOyBu
b3QgbmVlZGVkCiAgOztDdXN0b21pemUgdGhlIHNhdmVkIHNpZ24uCiAgOzsoc2V0cSBsaW5lLXJl
bWluZGVyLXNhdmVkLXNpZ24gIuKWkCIpICA7IG5vdCBuZWVkZWQKICA7O0N1c3RvbWl6ZSBzdHJp
bmcgb24gdGhlIHJpZ2h0L2xlZnQgc2lkZSBvZiB0aGUgbGluZSBudW1iZXIuCiAgKHNldHEgbGlu
ZS1yZW1pbmRlci1saW51bS1sZWZ0LXN0cmluZyAiIikKICAoc2V0cSBsaW5lLXJlbWluZGVyLWxp
bnVtLXJpZ2h0LXN0cmluZyAiICIpCiAgOmNvbmZpZwogIChhZGQtaG9vayAncHJvZy1tb2RlLWhv
b2sKICAgICAgICAgICAgKGZ1bmN0aW9uCiAgICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAg
ICAgICAgIChsaW5lLXJlbWluZGVyLW1vZGUgdCkKICAgICAgICAgICAgICAgKHNldHEgbGluZS1y
ZW1pbmRlci1zaG93LW9wdGlvbiAnaW5kaWNhdG9ycykpKSkpCihnbG9iYWwtbGluZS1yZW1pbmRl
ci1tb2RlIHQpCiMrRU5EX1NSQwoKKiBPcmlnYW1pIG1vZGUKVGhpcyBpcyB1c2VkIGZvciBjb2Rl
IGZvbGRpbmcsIHRob3VnaCBJIGRvIHRoaW5rIFRyZWUtU2l0dGVyIGNhbiBkbyB0aGUgc2FtZSB0
aGluZyBzbyBJIG1heSBnZXQKcmlkIG9mIHRoaXMuIE5vdCBleGFjdGx5IHN1cmUgeWV0IHRob3Vn
aCBzaW5jZSBJIGhhdmVuJ3QgZG9uZSB0aGF0IHlldCB3aXRoIHRyZWUtc2l0dGVyCiMrQkVHSU5f
U1JDIGVsaXNwCjs7KGdsb2JhbC1vcmlnYW1pLW1vZGUgMSkKOzsoZ2xvYmFsLXNldC1rZXkgKGti
ZCAiQy1jIEMtYyIpICdvcmlnYW1pLWNsb3NlLWFsbC1ub2RlcykKOzsoZ2xvYmFsLXNldC1rZXkg
KGtiZCAiQy1jIEMtbyIpICdvcmlnYW1pLW9wZW4tYWxsLW5vZGVzKQo7OyhnbG9iYWwtc2V0LWtl
eSAoa2JkICJDLWMgYyIpICdvcmlnYW1pLWNsb3NlLW5vZGUtcmVjdXJzaXZlbHkpCjs7KGdsb2Jh
bC1zZXQta2V5IChrYmQgIkMtYyBvIikgJ29yaWdhbWktb3Blbi1ub2RlLXJlY3Vyc2l2ZWx5KQoj
K0VORF9TUkMKKiBUcmVlLVNpdHRlciBNb2RlCjpJTVBPUlRBTlQ6IHRvIHZpZXcgQVNUIHJ1biB0
cmVlLXNpdHRlci1kZWJ1Zy1tb2RlCgo6VE9ETzogV29yayB3aXRoIHRyZWUgcXVlcmllcyB3aXRo
IGh0dHBzOi8vZW1hY3MtdHJlZS1zaXR0ZXIuZ2l0aHViLmlvL2dldHRpbmctc3RhcnRlZC8jcGxh
eS1hcm91bmQtd2l0aC10cmVlLXF1ZXJpZXMKcnVuIHRyZWUtc2l0dGVyLXF1ZXJ5LWJ1aWxkZXIg
YW5kIHVzZSBhbiBleGFtcGxlIGZyb20gYmVsb3cKIFB5dGhvbjoKIChjbGFzc19kZWZpbml0aW9u
IChpZGVudGlmaWVyKSBAY2xhc3MpCiAoZnVuY3Rpb25fZGVmaW5pdGlvbiAoaWRlbnRpZmllcikg
QGZ1bmMpCgpSdXN0OgogKGZ1bmN0aW9uX2l0ZW0gKGlkZW50aWZpZXIpIEBmdW5jKQogKGltcGxf
aXRlbSAodHlwZV9pZGVudGlmaWVyKSBAaW1wbCkKCkphdmFzY3JpcHQ6CiAoZnVuY3Rpb25fZGVj
bGFyYXRpb24gKGlkZW50aWZpZXIpIEBmdW5jKQogKHZhcmlhYmxlX2RlY2xhcmF0b3IgKGlkZW50
aWZpZXIpIEB2YXIpCgpHcmVhdCB0YWxrIGZvdW5kIGhlcmUKaHR0cHM6Ly93d3cueW91dHViZS5j
b20vd2F0Y2g/dj1NWlBSX1NDOUx6RQoKIytCRUdJTl9TUkMgZWxpc3AKKHJlcXVpcmUgJ3RyZWUt
c2l0dGVyKQoocmVxdWlyZSAndHJlZS1zaXR0ZXItbGFuZ3MpCgo7OyBUdXJucyBvbiB0cmVlLXNp
dHRlci1tb2RlIGdsb2JhbHkgYW5kIHR1cm5zIG9uIHRoZSBoaWdobGlnaHRpbmcgZm9yIGl0Cihn
bG9iYWwtdHJlZS1zaXR0ZXItbW9kZSkKKGFkZC1ob29rICd0cmVlLXNpdHRlci1hZnRlci1vbi1o
b29rICMndHJlZS1zaXR0ZXItaGwtbW9kZSkKOzsgVG8gY2hlY2sgc3VwcG9ydGVkIG1ham9yIG1v
ZGVzIHJ1biB0cmVlLXNpdHRlci1tYWpvci1tb2RlLWxhbmd1YWdlLWFsaXN0CgoodHJlZS1zaXR0
ZXItcmVxdWlyZSAncnVzdCkKKHRyZWUtc2l0dGVyLXJlcXVpcmUgJ3B5dGhvbikKKHRyZWUtc2l0
dGVyLXJlcXVpcmUgJ2phdmEpCih0cmVlLXNpdHRlci1yZXF1aXJlICdqYXZhc2NyaXB0KQoKOyBD
b2RlIGZvbGRpbmcKKHVzZS1wYWNrYWdlIHRzLWZvbGQKICA6bG9hZC1wYXRoICJ+Ly5lbWFjcy5k
L3RzLWZvbGQiKQoKKHVzZS1wYWNrYWdlIHRzLWZvbGQtaW5kaWNhdG9ycwogICA6bG9hZC1wYXRo
ICJ+Ly5lbWFjcy5kL3RzLWZvbGQiKQoKOzsgSWRlbnRpZmllciBmb3IgZm9sZGluZwo7KHVzZS1w
YWNrYWdlIHRzLWZvbGQtaW5kaWNhdG9ycwo7ICA6c3RyYWlnaHQgKHRzLWZvbGQtaW5kaWNhdG9y
cyA6dHlwZSBnaXQgOmhvc3QgZ2l0aHViIDpyZXBvICJlbWFjcy10cmVlLXNpdHRlci90cy1mb2xk
IikpCjsocmVxdWlyZSAndHMtZm9sZCkKKGdsb2JhbC10cy1mb2xkLW1vZGUgMSkKKGdsb2JhbC10
cy1mb2xkLWluZGljYXRvcnMtbW9kZSAxKQoKKGFkZC1ob29rICd0cmVlLXNpdHRlci1hZnRlci1v
bi1ob29rICMndHMtZm9sZC1pbmRpY2F0b3JzLW1vZGUpCjsoc2V0cSB0cy1mb2xkLWluZGljYXRv
cnMtZnJpbmdlICdyaWdodC1mcmluZ2UpCihzZXRxIHRzLWZvbGQtaW5kaWNhdG9ycy1wcmlvcml0
eSAzMCkKCihzZXRxIHRzLWZvbGQtaW5kaWNhdG9ycy1mYWNlLWZ1bmN0aW9uCiAgICAgIChsYW1i
ZGEgKHBvcyAmcmVzdCBfKQogICAgICAgIDs7IFJldHVybiB0aGUgZmFjZSBvZiBpdCdzIGZ1bmN0
aW9uLgogICAgICAgIChsaW5lLXJlbWluZGVyLS1nZXQtZmFjZSAobGluZS1udW1iZXItYXQtcG9z
IHBvcyB0KSkpKQoKKGFkdmljZS1hZGQgJ2xpbmUtcmVtaW5kZXItdHJhbnNmZXItdG8tc2F2ZWQt
bGluZXMgOmFmdGVyCiAgICAgICAgICAgIDs7IFJlZnJlc2ggaW5kaWNhdG9ycyBmb3IgcGFja2Fn
ZSBgdHMtZm9sZCcuCiAgICAgICAgICAgICMndHMtZm9sZC1pbmRpY2F0b3JzLXJlZnJlc2gpCgo7
OyA6VE9ETzogQXMgaXQgdHVybnMgb3V0LCBtb3N0IG9mIHRoZSBtYWpvciBtb2RlcyBJIHVzZSBo
YXZlIGEga2V5YmluZGluZyBmb3IgYm90aCB0aGUgb3Blbi9jbG9zZS1hbGwgZnVuY3Rpb24KOzsg
YmluZGluZ3MgSSBoYXZlIGJlbG93LgooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy1jIEMtYyIpICd0
cy1mb2xkLWNsb3NlLWFsbCkKKGdsb2JhbC1zZXQta2V5IChrYmQgIkMtYyBDLW8iKSAndHMtZm9s
ZC1vcGVuLWFsbCkKKGdsb2JhbC1zZXQta2V5IChrYmQgIkMtYyBjIikgJ3RzLWZvbGQtY2xvc2Up
CihnbG9iYWwtc2V0LWtleSAoa2JkICJDLWMgbyIpICd0cy1mb2xkLW9wZW4tcmVjdXJzaXZlbHkp
IDs7IG1pZ2h0IGNoYW5nZSB0byB0cy1mb2xkLW9wZW4KCjs7IENvbW1lbnQgc3VtbWFyaWVzIHdo
ZW4gZm9sZGVkCjsoc2V0cSB0cy1mb2xkLXN1bW1hcnktc2hvdyBuaWwpCihzZXRxIHRzLWZvbGQt
c3VtbWFyeS1tYXgtbGVuZ3RoIDYwKQojK0VORF9TUkMKCg==

--b1_y7RMUJQbq8cQjInF89wIkc2jwnXprXpaEMxDNdgys--





Acknowledgement sent to Hank Greenburg <hank.greenburg@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#61436; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 17 Apr 2024 13:30:05 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.