From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitrii Kuragin via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#57434: 28.1.91; Terminal Emacs Mac OS flickering. Date: Tue, 30 Aug 2022 09:34:24 -0700 Message-ID: References: <83edx1znjl.fsf@gnu.org> <83czclzms4.fsf@gnu.org> <83ler7vx3o.fsf@gnu.org> <838rn6x4h2.fsf@gnu.org> <834jxux3kd.fsf@gnu.org> <831qsyx2lr.fsf@gnu.org> <83wnaqugvh.fsf@gnu.org> Reply-To: Dmitrii Kuragin Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000ae02b805e777f4a9" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19279"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Gerd =?UTF-8?Q?M=C3=B6llmann?= , 57434@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Aug 30 19:06:53 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oT4hP-0004kx-17 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 30 Aug 2022 19:06:51 +0200 Original-Received: from localhost ([::1]:48882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oT4hN-0001sP-Td for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 30 Aug 2022 13:06:49 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44308) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oT4Cc-0007Ml-Rb for bug-gnu-emacs@gnu.org; Tue, 30 Aug 2022 12:35:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oT4Cc-0004sS-E0 for bug-gnu-emacs@gnu.org; Tue, 30 Aug 2022 12:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oT4Cc-0007l0-27 for bug-gnu-emacs@gnu.org; Tue, 30 Aug 2022 12:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitrii Kuragin Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 30 Aug 2022 16:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 57434 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 57434-submit@debbugs.gnu.org id=B57434.166187728929796 (code B ref 57434); Tue, 30 Aug 2022 16:35:02 +0000 Original-Received: (at 57434) by debbugs.gnu.org; 30 Aug 2022 16:34:49 +0000 Original-Received: from localhost ([127.0.0.1]:37287 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oT4CO-0007kW-Rj for submit@debbugs.gnu.org; Tue, 30 Aug 2022 12:34:49 -0400 Original-Received: from mail-yb1-f176.google.com ([209.85.219.176]:38435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oT4CH-0007kD-Ks for 57434@debbugs.gnu.org; Tue, 30 Aug 2022 12:34:47 -0400 Original-Received: by mail-yb1-f176.google.com with SMTP id c9so324779ybf.5 for <57434@debbugs.gnu.org>; Tue, 30 Aug 2022 09:34:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=gdkTi3PciLHaYjfjfrFEdlSo96yxpRDhcIwTmbFhn1o=; b=ZRL4DxLvfz/erhct3VnVD732FsMr7+NotqImUxMWAg2kND3OmKnasWrhyoaTHPSykB b8NGkwca8BnOzwex8N/21EZO8swLoEcihB75uRxyvs04dEsIX46L8/idZxzdBu9fka4g dGnPEX0v0B19HIIhTrKirlwoImeeGRZFsWUaDLfzWhBrMqzxM6T7NDeBUtBqdGP2yB1T WrIsaZ6jINwIulBpFKe1xnRxctbcs7gdc9urhe6ITYFHlczFd7DT7zojO+xgzDIAFRAb kUSrsMzcEjMsaFAfPMcgQ8wNopcBUmFFTLvJGR4S0ztIBGW0ZYRpq/9UICWYjh0E45wR 9SoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=gdkTi3PciLHaYjfjfrFEdlSo96yxpRDhcIwTmbFhn1o=; b=c/iqBBIOot1wFG70UAOXZa7vyp57h05c7wqG0Y9OsJVqjnEFERIzQZ2Hz/8eOMRD7F coj6sXlAxcUza5aNndn4rjucPZ/Cx3ig84JK0Pb353ibi6re5qSm1mJWfXIsh2pNoXHX HZJixj1CrpMIjl9h0E+h6UYlB73iOmw1xh7QHbAK5fO6HQAjNXB9M4qXkeqhcQxbPBs5 tEdheZitAa21RrxIneXsPU1j19MKw+dt0RpxLF2u9Fbm1A3vocinAzSWrPZTv/CmmGXO IEwCGE7vf+ozf0NntDYarb08Cp0Jp2nXaCoAgQGhBoF2KjKrWBEg051+YGLWCidJA1T1 oCGQ== X-Gm-Message-State: ACgBeo0g0adUHi/RrhtbXGX9FSR9yLRWJb7/o2ELm3TdG7aw9uW2RNsl Zm5+Oz5LXOphpSVztSnNQY4OUu0yfjdKcG+Jz4UHGg== X-Google-Smtp-Source: AA6agR5rKORGiamfsTTwllbM6I5MEvlIHR39oVq7rSjs5Fzbh/qdRWl8C94NY8Lmeg/ZygfzvHs3xkRZI+cmwBumbo4= X-Received: by 2002:a25:c1c6:0:b0:66f:5acc:7fb8 with SMTP id r189-20020a25c1c6000000b0066f5acc7fb8mr12383062ybf.634.1661877275687; Tue, 30 Aug 2022 09:34:35 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:241147 Archived-At: --000000000000ae02b805e777f4a9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Aug 30, 2022 at 9:19 AM Dmitrii Kuragin wrote: > `tty->TS_ins_line` (al) is supprted. > `tty->TS_ins_multi_lines` (AL) is supprted. > `tty->TS_del_line` (dl) is supprted. > `tty->TS_del_multi_lines` (DL) is supprted. > > to verify that I used `tput `. > > I think, that is sufficient for `tty->line_ins_del_ok` to be true, but fo > completeness: > > `tty->TS_fwd_scroll` (sf) is supprted. > `tty->TS_rev_scroll` (sr) is supprted. > > > `tty->TS_set_window` (wi) is NOT supprted. > `tty->TS_set_scroll_region` (cs) is supprted. > `tty->TS_set_scroll_region_1` (cS) is NOT supprted. > > BUt I do not know how to verify `tty->Wcm->cm_abs`. > > > ``` > tty->scroll_region_ok > =3D (tty->Wcm->cm_abs > && (tty->TS_set_window || tty->TS_set_scroll_region || > tty->TS_set_scroll_region_1)); > ``` > > > ``` > tty->line_ins_del_ok > =3D (((tty->TS_ins_line || tty->TS_ins_multi_lines) > && (tty->TS_del_line || tty->TS_del_multi_lines)) > || (tty->scroll_region_ok > && tty->TS_fwd_scroll && tty->TS_rev_scroll)); > ``` > > BTW, here's a video with what I have with "-Q", it still flickers: > https://drive.google.com/file/d/1Yq2QFWHR6CHkoM4buEokV6p3a1uOI8ao/view?us= p=3Dsharing > > On Tue, Aug 30, 2022 at 4:09 AM Eli Zaretskii wrote: > >> > From: Gerd M=C3=B6llmann >> > Cc: Eli Zaretskii , 57434@debbugs.gnu.org >> > Date: Tue, 30 Aug 2022 08:09:33 +0200 >> > >> > Dmitrii Kuragin writes: >> > >> > > So far: >> > > ``` >> > > :~/Desktop% tput al; echo $? >> > > 0 >> > > :~/Desktop% tput AL; echo $? >> > > 1%dL0 >> > > :~/Desktop% tput dl; echo $? >> > > 0 >> > > :~/Desktop% tput DL; echo $? >> > > 1%dM0 >> > > :~/Desktop% tput sf; echo $? >> > > >> > > 0 >> > > 0~/Desktop% tput sr; echo $? >> > > :~/Desktop% tput wi; echo $? >> > > tput: unknown terminfo capability 'wi' >> > > 4 >> > > :~/Desktop% tput cs; echo $? >> > > %p1%d;%p2%dr0 >> > > :~/Desktop% tput cS; echo $? >> > > tput: unknown terminfo capability 'cS' >> > > 4 >> > > ``` >> > >> > Same here. >> >> Thanks. >> >> But I'm quite confused by all of this, because you don't show all the >> relevant capabilities, AFAICT. >> >> We have in term.c: >> >> tty->scroll_region_ok >> =3D (tty->Wcm->cm_abs >> && (tty->TS_set_window || tty->TS_set_scroll_region || >> tty->TS_set_scroll_region_1)); >> >> tty->line_ins_del_ok >> =3D (((tty->TS_ins_line || tty->TS_ins_multi_lines) >> && (tty->TS_del_line || tty->TS_del_multi_lines)) >> || (tty->scroll_region_ok >> && tty->TS_fwd_scroll && tty->TS_rev_scroll)); >> >> Please try all of the relevant capabilities and tell me which ones are >> supported and which aren't. (Please also mention both the capability >> string and its term.c flag name, so that I shouldn't need to jump >> back-and-forth in the source looking up each one to understand what it >> means.) >> >> Then we have in dispnew.c: >> >> /* If we cannot insert/delete lines, it's no use trying it. */ >> if (!FRAME_LINE_INS_DEL_OK (f)) >> inhibit_id_p =3D 1; >> [...] >> /* Try doing i/d line, if not yet inhibited. */ >> if (!inhibit_id_p && i < desired_matrix->nrows) >> force_p |=3D scrolling (f); >> >> Which means that 'scrolling', and thus 'scrolling_1' (where the >> problem happens) will not be called if the line_ins_del_ok flag is not >> set. >> >> Furthermore, we have in scrolling_1: >> >> if (FRAME_SCROLL_REGION_OK (frame)) >> { >> calculate_direct_scrolling (frame, matrix, window_size, >> unchanged_at_bottom, >> draw_cost, old_draw_cost, >> old_hash, new_hash, free_at_end); >> do_direct_scrolling (frame, frame->current_matrix, >> matrix, window_size, unchanged_at_top); >> } >> else >> { >> calculate_scrolling (frame, matrix, window_size, >> unchanged_at_bottom, >> draw_cost, old_hash, new_hash, >> free_at_end); >> do_scrolling (frame, >> frame->current_matrix, matrix, window_size, >> unchanged_at_top); >> } >> >> which means do_direct_scrolling (which causes the problem) will not be >> called if the terminal's scroll_region_ok flag is not set. >> >> So given all of this, can you tell whether Emacs does TRT here? That >> is: >> > Sorry, what does TRT mean? > >> . are all the capabilities that are supposed to be available for >> these two flags are indeed available? >> > How can I verify it? > . do we need to check any additional capabilities, which are in fact >> used in the problematic scenario, but not tested as part of >> setting these two flags? >> > It makes sense to me, but since the output is still correct after the glitch, doesn't it mean that capabilities work correctly? > >> Assuming that Emacs does TRT, i.e. sets the flags correctly and uses >> only the capabilities that are conditions for the flags set, then the >> next important question is: why doesn't Gerd see the flickering on a >> very similar system and the same terminal emulator? Is it possible >> that some other local software configuration on Dmitrii's machine >> causes this, directly or indirectly? E.g., Dmitrii, do you have some >> display-related software/driver that has some "optimization" features >> turned on? If so, can you turn them off and try again? >> >> Thanks. >> > > > -- > *If you get an email from me outside of the 9-5 it is *not* because I'm > always on or expect an immediate response from you; it is because of work > flexibility > > . Evening and weekend emails are a sign I allocated some regular working > hours for other things (such as family, gym, friends,...). And I encoura= ge > you to feel free to do the same. > > --=20 *If you get an email from me outside of the 9-5 it is *not* because I'm always on or expect an immediate response from you; it is because of work flexibility . Evening and weekend emails are a sign I allocated some regular working hours for other things (such as family, gym, friends,...). And I encourage you to feel free to do the same. --000000000000ae02b805e777f4a9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Tue, Aug 30, 2022 at 9:19= AM Dmitrii Kuragin <kuragin@google.com> wrote:
`tty->TS_ins_line` (al) is supprted.
`tty->TS_i= ns_multi_lines` (AL) is supprted.
`tty->TS_del_line` (dl) is supprted= .
`tty->TS_del_multi_lines` (DL) is supprted.

to verify that = I used `tput <cap_name>`.

I think, that is sufficient for `tty= ->line_ins_del_ok` to be true, but fo completeness:

`tty->TS_f= wd_scroll` (sf) is supprted.
`tty->TS_rev_scroll` (sr) is supprted. =


`tty->TS_set_window` (wi) is NOT supprted.
`tty->TS_s= et_scroll_region` (cs) is supprted.
`tty->TS_set_scroll_region_1` (c= S) is NOT supprted.

BUt I do not know how to verify `tty->Wcm-&g= t;cm_abs`.


```
tty->scroll_region_ok
=C2=A0 =C2=A0 =3D = (tty->Wcm->cm_abs
=C2=A0 =C2=A0 =C2=A0 =C2=A0&& (tty->T= S_set_window || tty->TS_set_scroll_region || tty->TS_set_scroll_regio= n_1));
```


```
tty->line_ins_del_ok
=C2=A0 =C2=A0 = =3D (((tty->TS_ins_line || tty->TS_ins_multi_lines)
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 && (tty->TS_del_line || tty->TS_del_multi_lines= ))
=C2=A0 =C2=A0 =C2=A0 =C2=A0|| (tty->scroll_region_ok
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&& tty->TS_fwd_scroll && = tty->TS_rev_scroll));
```

BTW, here's a video with what I have with "-Q", it s= till flickers:=C2=A0https://drive.g= oogle.com/file/d/1Yq2QFWHR6CHkoM4buEokV6p3a1uOI8ao/view?usp=3Dsharing

On Tue, Aug 30, 2022 at 4:09 AM Eli Zaretskii <eliz@gnu.org> wrote:
> From: Gerd M=C3=B6llmann <= gerd.moellman= n@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>,=C2=A0 57434@debbugs.gnu.org
> Date: Tue, 30 Aug 2022 08:09:33 +0200
>
> Dmitrii Kuragin <kuragin@google.com> writes:
>
> > So far:
> > ```
> > :~/Desktop% tput al; echo $?
> > 0
> > :~/Desktop% tput AL; echo $?
> > 1%dL0
> > :~/Desktop% tput dl; echo $?
> > 0
> > :~/Desktop% tput DL; echo $?
> > 1%dM0
> > :~/Desktop% tput sf; echo $?
> >
> > 0
> > 0~/Desktop% tput sr; echo $?
> > :~/Desktop% tput wi; echo $?
> > tput: unknown terminfo capability 'wi'
> > 4
> > :~/Desktop% tput cs; echo $?
> > %p1%d;%p2%dr0
> > :~/Desktop% tput cS; echo $?
> > tput: unknown terminfo capability 'cS'
> > 4
> > ```
>
> Same here.

Thanks.

But I'm quite confused by all of this, because you don't show all t= he
relevant capabilities, AFAICT.

We have in term.c:

=C2=A0 tty->scroll_region_ok
=C2=A0 =C2=A0 =3D (tty->Wcm->cm_abs
=C2=A0 =C2=A0 =C2=A0 =C2=A0&& (tty->TS_set_window || tty->TS_= set_scroll_region || tty->TS_set_scroll_region_1));

=C2=A0 tty->line_ins_del_ok
=C2=A0 =C2=A0 =3D (((tty->TS_ins_line || tty->TS_ins_multi_lines)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 && (tty->TS_del_line || tty->TS_d= el_multi_lines))
=C2=A0 =C2=A0 =C2=A0 =C2=A0|| (tty->scroll_region_ok
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&& tty->TS_fwd_scroll &= amp;& tty->TS_rev_scroll));

Please try all of the relevant capabilities and tell me which ones are
supported and which aren't.=C2=A0 (Please also mention both the capabil= ity
string and its term.c flag name, so that I shouldn't need to jump
back-and-forth in the source looking up each one to understand what it
means.)

Then we have in dispnew.c:

=C2=A0 /* If we cannot insert/delete lines, it's no use trying it.=C2= =A0 */
=C2=A0 if (!FRAME_LINE_INS_DEL_OK (f))
=C2=A0 =C2=A0 inhibit_id_p =3D 1;
=C2=A0 [...]
=C2=A0 /* Try doing i/d line, if not yet inhibited.=C2=A0 */
=C2=A0 if (!inhibit_id_p && i < desired_matrix->nrows)
=C2=A0 =C2=A0 force_p |=3D scrolling (f);

Which means that 'scrolling', and thus 'scrolling_1' (where= the
problem happens) will not be called if the line_ins_del_ok flag is not
set.

Furthermore, we have in scrolling_1:

=C2=A0 if (FRAME_SCROLL_REGION_OK (frame))
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 calculate_direct_scrolling (frame, matrix, window_size= ,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 unchanged_at_bottom,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 draw_cost, old_draw_cost,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 old_hash, new_hash, free_at_e= nd);
=C2=A0 =C2=A0 =C2=A0 do_direct_scrolling (frame, frame->current_matrix,<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0matrix, window_size, unchanged_at_top);
=C2=A0 =C2=A0 }
=C2=A0 else
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 calculate_scrolling (frame, matrix, window_size, uncha= nged_at_bottom,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0draw_cost, old_hash, new_hash,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0free_at_end);
=C2=A0 =C2=A0 =C2=A0 do_scrolling (frame,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame= ->current_matrix, matrix, window_size,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uncha= nged_at_top);
=C2=A0 =C2=A0 }

which means do_direct_scrolling (which causes the problem) will not be
called if the terminal's scroll_region_ok flag is not set.

So given all of this, can you tell whether Emacs does TRT here?=C2=A0 That<= br> is:
Sorry, what does TRT mean?<= /span>=C2=A0

=C2=A0 . are all the capabilities that are supposed to be available for
=C2=A0 =C2=A0 these two flags are indeed available?
<= /blockquote>
How can I verify it?=C2=A0
=C2=A0 . do we need to check any additional capabilities, which are in fact=
=C2=A0 =C2=A0 used in the problematic scenario, but not tested as part of =C2=A0 =C2=A0 setting these two flags?
<= div>It makes sense to me, but since the output is still correct after t= he glitch, doesn't it mean that capabilities work correctly?=C2= =A0

Assuming that Emacs does TRT, i.e. sets the flags correctly and uses
only the capabilities that are conditions for the flags set, then the
next important question is: why doesn't Gerd see the flickering on a very similar system and the same terminal emulator?=C2=A0 Is it possible that some other local software configuration on Dmitrii's machine
causes this, directly or indirectly?=C2=A0 E.g., Dmitrii, do you have some<= br> display-related software/driver that has some "optimization" feat= ures
turned on?=C2=A0 If so, can you turn them off and try again?

Thanks.


--
*If yo= u get an email from me outside of the 9-5 it is=C2=A0not=C2=A0becaus= e I'm always on or expect an immediate response from you; it is because= of=C2=A0work flexibility.=C2= =A0=C2=A0Evening and weekend emails= are a sign I allocated some regular working hours for other things (such a= s family, gym, friends,...).=C2=A0 And I encourage you to feel free to do t= he same.



--
*If yo= u get an email from me outside of the 9-5 it is=C2=A0not=C2=A0becaus= e I'm always on or expect an immediate response from you; it is because= of=C2=A0work flexibility.=C2= =A0=C2=A0Evening and weekend emails= are a sign I allocated some regular working hours for other things (such a= s family, gym, friends,...).=C2=A0 And I encourage you to feel free to do t= he same.

--000000000000ae02b805e777f4a9--