X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 08 Mar 2023 12:18:01 +0000 Resent-Message-ID: <handler.62048.B.167827787130678 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 62048 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.167827787130678 (code B ref -1); Wed, 08 Mar 2023 12:18:01 +0000 Received: (at submit) by debbugs.gnu.org; 8 Mar 2023 12:17:51 +0000 Received: from localhost ([127.0.0.1]:48000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pZsju-0007yj-R0 for submit <at> debbugs.gnu.org; Wed, 08 Mar 2023 07:17:51 -0500 Received: from lists.gnu.org ([209.51.188.17]:44582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1pZsjs-0007yZ-Op for submit <at> debbugs.gnu.org; Wed, 08 Mar 2023 07:17:49 -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 <yantar92@HIDDEN>) id 1pZsjs-0000dN-J0 for bug-gnu-emacs@HIDDEN; Wed, 08 Mar 2023 07:17:48 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <yantar92@HIDDEN>) id 1pZsjp-0000R2-AQ for bug-gnu-emacs@HIDDEN; Wed, 08 Mar 2023 07:17:48 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id C32A0240569 for <bug-gnu-emacs@HIDDEN>; Wed, 8 Mar 2023 13:17:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1678277861; bh=AA/D/TO8kWNbce1Zx9AJ62hpYvyuO4W92LLiY09gXU8=; h=From:To:Subject:Date:From; b=V10QpjDyxp5Y91cSKqY6JuTmjki3yukSsxzFxfdNQGZpm6IazJmVWJ314MGJRGjly tcpX72COgsubLFeytjY3KtiWSwex8qh0Dg/m8wJzYR2i9tFzUsCU/udGUBE5BL8Hu+ PTEkZis+wxr5zcqr/sf0GR+9RgMO5dRFrhYebAvZc0/gf42LI5xBImQWaKZgDYLca5 ZG12GTv+WmcJJAdjBTExUT2nTwfHQLpaQdBot4QAtsrbgzqXqq/QyZkFE2ckBJBrGW 7rnU9IAmNypBQdc4vuQXp9IUhJvOW+m5scokjiNP7E93KWWpauTo6qEasBMuey6XND DgrF9ianz1OgA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PWrtB6lWRz9rxQ for <bug-gnu-emacs@HIDDEN>; Wed, 8 Mar 2023 13:17:37 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> Date: Wed, 08 Mar 2023 12:18:59 +0000 Message-ID: <87ilfbe8r0.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.67.36.65; envelope-from=yantar92@HIDDEN; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) 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: -2.3 (--) Hi, According to 41.11 Line Height section of Elisp manual, A newline can have a =E2=80=98line-height=E2=80=99 text or overlay p= roperty that controls the total height of the display line ending in that newline. The property value can be one of several forms: =20=20=20=20 =E2=80=98t=E2=80=99 If the property value is =E2=80=98t=E2=80=99, the newline characte= r has no effect on the displayed height of the line=E2=80=94the visible contents a= lone determine the height. The =E2=80=98line-spacing=E2=80=99 property= , described below, is also ignored in this case. This is useful for tiling small images (or image slices) without adding blank areas between the images. AFAIU, it implies that buffer-local `line-spacing' value is also ignored. Consider the following minimal example: 1. emacs -Q 2. (setq-default line-spacing 0.15) 3. (with-silent-modifications (insert-sliced-image (create-image "/path/to/= some/image") nil nil 10 nil)) Expected: the spliced image is displayed without gaps. Observed: visible gaps between image rows If I understand correctly, `insert-sliced-image' tries to avoid the gaps by (insert (propertize "\n" 'line-height t)). But it does not seem to be working. Am I missing something? In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.17.6) of 2023-02-13 built on localhost Repository revision: df5c1c9370ca3c6a6e119278ef6bb1e3bca4d578 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Gentoo Linux --=20 Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Ihor Radchenko <yantar92@HIDDEN> Subject: bug#62048: Acknowledgement (30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property) Message-ID: <handler.62048.B.167827787130678.ack <at> debbugs.gnu.org> References: <87ilfbe8r0.fsf@localhost> X-Gnu-PR-Message: ack 62048 X-Gnu-PR-Package: emacs Reply-To: 62048 <at> debbugs.gnu.org Date: Wed, 08 Mar 2023 12:18:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 62048 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 62048: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D62048 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 08 Mar 2023 17:32:01 +0000 Resent-Message-ID: <handler.62048.B62048.16782967179860 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.16782967179860 (code B ref 62048); Wed, 08 Mar 2023 17:32:01 +0000 Received: (at 62048) by debbugs.gnu.org; 8 Mar 2023 17:31:57 +0000 Received: from localhost ([127.0.0.1]:50114 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pZxds-0002Yy-Lt for submit <at> debbugs.gnu.org; Wed, 08 Mar 2023 12:31:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pZxdr-0002Ym-28 for 62048 <at> debbugs.gnu.org; Wed, 08 Mar 2023 12:31:55 -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 1pZxdk-0004nx-4F; Wed, 08 Mar 2023 12:31:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=qBOHt03mrYwfB5pWcf5OJJoNOv1ebSDgQZq6GnG9Gi4=; b=GCEyWb5Hk72lhcJMT0E5 wf4rs01shoEkMBH21xwTKBax6yIj4Z4NhJGgSXy8NCgPo8I4vr7nH3y6CjwmtKtGrLXr4+YwTGegQ SSxbFDHDLmn7sKUMQJlub0Y5BrfkKmMAbE7E3pNxfQrI7Cqx/fQT9seKjPSnUjFMZX2qHWAmmfVZp y9hONSAJ24POBgaTGDXXrIi7Ow6GqyI6Z3Pv+dpBOr2/7LG1wNc4IqRSZXi9+k8tBb7tJ26YDu1H1 BJDWwLhgilVkS3CJF+YC/OoNDAPJtoG7yKSTQUIMKSLiU2Js8rzUvVfADGaL5hhilyQeL0Mx8YOXP kyRiwaQhIus9LQ==; 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 1pZxdh-0004I4-So; Wed, 08 Mar 2023 12:31:46 -0500 Date: Wed, 08 Mar 2023 19:31:44 +0200 Message-Id: <83a60n40an.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87ilfbe8r0.fsf@localhost> (message from Ihor Radchenko on Wed, 08 Mar 2023 12:18:59 +0000) References: <87ilfbe8r0.fsf@localhost> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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 (---) > From: Ihor Radchenko <yantar92@HIDDEN> > Date: Wed, 08 Mar 2023 12:18:59 +0000 > > According to 41.11 Line Height section of Elisp manual, > > A newline can have a ‘line-height’ text or overlay property that > controls the total height of the display line ending in that newline. > The property value can be one of several forms: > > ‘t’ > If the property value is ‘t’, the newline character has no effect > on the displayed height of the line—the visible contents alone > determine the height. The ‘line-spacing’ property, described > below, is also ignored in this case. This is useful for tiling > small images (or image slices) without adding blank areas between > the images. > > AFAIU, it implies that buffer-local `line-spacing' value is also > ignored. > > Consider the following minimal example: > > 1. emacs -Q > 2. (setq-default line-spacing 0.15) > 3. (with-silent-modifications (insert-sliced-image (create-image "/path/to/some/image") nil nil 10 nil)) > > Expected: the spliced image is displayed without gaps. > Observed: visible gaps between image rows > > If I understand correctly, `insert-sliced-image' tries to avoid the gaps > by (insert (propertize "\n" 'line-height t)). But it does not seem to be > working. > > Am I missing something? The above text in the manual is misleading: only the line-spacing property of the same newline is ignored in this case. (It makes no sense to ignore the buffer-local value of line-spacing due to a single newline, because the buffer-local value of line-spacing affects all the lines in the buffer, not just one line.) IOW, the line-height property of the newline overrides the 'line-spacing' property of the same newline. I've updated the manual to be more accurate about this. But other than that, this is not a bug in the code.
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 08 Mar 2023 18:26:02 +0000 Resent-Message-ID: <handler.62048.B62048.167829990615448 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.167829990615448 (code B ref 62048); Wed, 08 Mar 2023 18:26:02 +0000 Received: (at 62048) by debbugs.gnu.org; 8 Mar 2023 18:25:06 +0000 Received: from localhost ([127.0.0.1]:50213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pZyTJ-000416-L4 for submit <at> debbugs.gnu.org; Wed, 08 Mar 2023 13:25:05 -0500 Received: from mout02.posteo.de ([185.67.36.66]:54267) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1pZyTH-00040U-QU for 62048 <at> debbugs.gnu.org; Wed, 08 Mar 2023 13:25:04 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id C2D3F24065F for <62048 <at> debbugs.gnu.org>; Wed, 8 Mar 2023 19:24:55 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1678299897; bh=Z5Mdh76Ni3/ebVJK5bi3gJKfop8RzdvmPQ8bzL1Ktrk=; h=From:To:Cc:Subject:Date:From; b=TROHXzZ+o0I5/pgnx3sJlAmnUkurnvg1JozzHOonGvuVUMseSqzx2aJ0813vsAJ/p zTQes0lklOMTWITlmfS3uZJBPSF3uE1QqcraHkoIqz4ZXhh/Y6kaZZLhmtLCCXe3r5 EL8CIVjSzSDMVSWk89DEq/WyUpSa0c5G2nlajrnQBt2dFJ6CBI/2KkJwDKSJiFLyVp JMtPf/v9i+kO6gg84aGxjGYTA3xLvJOEbZ3ScA64V34UCTTl0YbGQg90RoN2+xOvo9 YvTEESMSBSUYsiGHNpDfu2v5eghImi295PoS2741qK3ttgDB1aDRD9O1h9+Qr5JSxZ KUrWUmTiv4I5w== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PX11y49LYz6tmF; Wed, 8 Mar 2023 19:24:54 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> In-Reply-To: <83a60n40an.fsf@HIDDEN> References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> Date: Wed, 08 Mar 2023 18:26:21 +0000 Message-ID: <87y1o7cd6a.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) 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 (---) Eli Zaretskii <eliz@HIDDEN> writes: > I've updated the manual to be more accurate about this. But other > than that, this is not a bug in the code. Thanks! I agree that the current newline 'line-height property behaviour makes sense. However, I still see `insert-sliced-image' inserting image with gaps as a bug. Would it be possible to change `insert-sliced-image' so that it overrides buffer-local `line-spacing' and forces no gaps? -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 08 Mar 2023 19:51:02 +0000 Resent-Message-ID: <handler.62048.B62048.1678305047804 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.1678305047804 (code B ref 62048); Wed, 08 Mar 2023 19:51:02 +0000 Received: (at 62048) by debbugs.gnu.org; 8 Mar 2023 19:50:47 +0000 Received: from localhost ([127.0.0.1]:50259 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pZzoE-0000Cu-SP for submit <at> debbugs.gnu.org; Wed, 08 Mar 2023 14:50:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pZzoD-0000Cd-Tq for 62048 <at> debbugs.gnu.org; Wed, 08 Mar 2023 14:50:46 -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 1pZzo8-0002kP-MI; Wed, 08 Mar 2023 14:50:40 -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=Hqh4Nq+LX6E2rlKWO0VaTne2aWU91j7xiJZeZZXYw1I=; b=Bg6QzjQk9m1A d/QVczaF5AomaYfAgv8xzaXC/cRpx3TmjjA7M1aeisSzYW0xLDuG51pLrHDx+zTU4CtJgG1GeMqhw cfi/dbiJIy5Yf0Nana+3t6TgfI9zrn5ubrpYaqRX0NnJsXIhY6x5N+kHKavTpCn+R2+IcvAJL/+X2 yqdJBjCpZWCYMeIAAqelN1F2LbhzMIvbijdPFpzUAK/7sJ7UAvc2Fz1Ow5zDuz4X08QtT0GQ8TSnn Fp1DSOyhCLQ5FQUVYFR9UkY1FT5beukz2EMHzgD+jQHtrd20krSIHQAGf5eeHaeTumolGfHp5njVw c1R0ueLBffu7e7/ufvKqWQ==; 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 1pZzo8-00040d-66; Wed, 08 Mar 2023 14:50:40 -0500 Date: Wed, 08 Mar 2023 21:50:40 +0200 Message-Id: <834jqv3tv3.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87y1o7cd6a.fsf@localhost> (message from Ihor Radchenko on Wed, 08 Mar 2023 18:26:21 +0000) References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> X-Spam-Score: -2.3 (--) 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 (---) > From: Ihor Radchenko <yantar92@HIDDEN> > Cc: 62048 <at> debbugs.gnu.org > Date: Wed, 08 Mar 2023 18:26:21 +0000 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > I've updated the manual to be more accurate about this. But other > > than that, this is not a bug in the code. > > Thanks! > > I agree that the current newline 'line-height property behaviour makes sense. > However, I still see `insert-sliced-image' inserting image with gaps as > a bug. Would it be possible to change `insert-sliced-image' so that it > overrides buffer-local `line-spacing' and forces no gaps? Not easily, because the fact that the line-spacing variable affects _all_ lines is deeply entrenched in the implementation: it computes the corresponding metrics once and never changes that through the entire redisplay of the window.
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 08 Mar 2023 20:39:02 +0000 Resent-Message-ID: <handler.62048.B62048.167830788214900 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.167830788214900 (code B ref 62048); Wed, 08 Mar 2023 20:39:02 +0000 Received: (at 62048) by debbugs.gnu.org; 8 Mar 2023 20:38:02 +0000 Received: from localhost ([127.0.0.1]:50299 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pa0Xx-0003sC-OO for submit <at> debbugs.gnu.org; Wed, 08 Mar 2023 15:38:02 -0500 Received: from mout02.posteo.de ([185.67.36.66]:33877) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1pa0Xv-0003rr-K8 for 62048 <at> debbugs.gnu.org; Wed, 08 Mar 2023 15:38:00 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 417BE24018C for <62048 <at> debbugs.gnu.org>; Wed, 8 Mar 2023 21:37:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1678307873; bh=aXlOqYShy2my4gNIBOKITyfKdd2xYEsv97nCKdMWxqI=; h=From:To:Cc:Subject:Date:From; b=Ff4kGWgUiKhIRSnVpUelvWHLUMv7XmyY3rTb62tXjl90ZJXBawc2oGpMuFEVGMA7s R/ZzbVYAkcd+Mr7LocGgCttL/u4K/GWW7URfXMoYuBUr1BQVUihwF0WdZ0GBdoLxQs kl6q716Yz5r6wSUg93w89Dx/KQd2ylFwOHdU/deW2M9si4SBie9CnMTislagOH/iLo +xfHbcZpYE2qo2TrdBoSuCBf/k3+amHxKSAZTzAdK4/jHkjKP0k21xxQZld91dhoCN pzUTUFVG/O/YWpHL8COv9vBPkqed2NzEK4zxe13Bec9biryO/iI8TmdLzIDKQ22ftq kfQmpvj7T48MA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PX3zM3mLyz6tmB; Wed, 8 Mar 2023 21:37:50 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> In-Reply-To: <834jqv3tv3.fsf@HIDDEN> References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> Date: Wed, 08 Mar 2023 20:39:13 +0000 Message-ID: <87v8jbc70u.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) 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 (---) Eli Zaretskii <eliz@HIDDEN> writes: >> However, I still see `insert-sliced-image' inserting image with gaps as >> a bug. Would it be possible to change `insert-sliced-image' so that it >> overrides buffer-local `line-spacing' and forces no gaps? > > Not easily, because the fact that the line-spacing variable affects > _all_ lines is deeply entrenched in the implementation: it computes > the corresponding metrics once and never changes that through the > entire redisplay of the window. I see. The real problem I am trying to solve is scrolling images with large heights. C-n/C-p and default scrolling jumps over the whole images as they appear on a single line. It is annoying, especially when the image is taller than the window height. I was hoping to use `insert-sliced-image', but this `line-spacing' issue makes the idea unreliable. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Mar 2023 06:55:02 +0000 Resent-Message-ID: <handler.62048.B62048.1678344891850 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.1678344891850 (code B ref 62048); Thu, 09 Mar 2023 06:55:02 +0000 Received: (at 62048) by debbugs.gnu.org; 9 Mar 2023 06:54:51 +0000 Received: from localhost ([127.0.0.1]:50728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1paAAs-0000Dd-Rj for submit <at> debbugs.gnu.org; Thu, 09 Mar 2023 01:54:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1paAAq-0000DN-Ag for 62048 <at> debbugs.gnu.org; Thu, 09 Mar 2023 01:54:49 -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 1paAAk-00088E-Sa; Thu, 09 Mar 2023 01:54:42 -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=fczJtsMYodkVGSFZ+iZ4VbxuewnLNguraoXmAT5a3UM=; b=Hw0EkvVtzPKa DYsnNo+mvw7PZAPSH3B0n+yF6gz7u/yE4NuuTDYaaIF1UYINa/BKncueUjVsss/8oIBcfUSVPjg0X gXUCLmo810Q0LFzqKwTOXPSuYEnnKo+2fbC9uVQg53vqXu+md/Tl5ZviAyUpNxdqFCGuWjrE8H5KR PGihrx7Ve8DfEotYQ+h2kESpKfZBqZomAvFUUInuBJ3r9wOxiB616d8nLLaENvcNtpB/ThVz9v2Sr fTNHkKNvh6XfiLkHC2NxpKStGFRrKYsE7eAnhEOp2KjTCczNlaTKDzVL8Jtjo6hBfMEWnwPYAwgtQ VSe4SOr+Gs+18aCofV5p+Q==; 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 1paAAk-0002dg-7e; Thu, 09 Mar 2023 01:54:42 -0500 Date: Thu, 09 Mar 2023 08:54:42 +0200 Message-Id: <83v8ja2z4d.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87v8jbc70u.fsf@localhost> (message from Ihor Radchenko on Wed, 08 Mar 2023 20:39:13 +0000) References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> X-Spam-Score: -2.3 (--) 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 (---) > From: Ihor Radchenko <yantar92@HIDDEN> > Cc: 62048 <at> debbugs.gnu.org > Date: Wed, 08 Mar 2023 20:39:13 +0000 > > The real problem I am trying to solve is scrolling images with large > heights. C-n/C-p and default scrolling jumps over the whole images as > they appear on a single line. It is annoying, especially when the image > is taller than the window height. That shouldn't happen: if an image is taller than the window, then C-n/C-p use window-vscroll to scroll the image only partially, at least as long as line-move-visual is non-nil (which it is by default).
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Mar 2023 09:13:02 +0000 Resent-Message-ID: <handler.62048.B62048.167835312424471 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.167835312424471 (code B ref 62048); Thu, 09 Mar 2023 09:13:02 +0000 Received: (at 62048) by debbugs.gnu.org; 9 Mar 2023 09:12:04 +0000 Received: from localhost ([127.0.0.1]:50887 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1paCJg-0006Lj-2k for submit <at> debbugs.gnu.org; Thu, 09 Mar 2023 04:12:04 -0500 Received: from mout02.posteo.de ([185.67.36.66]:53149) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1paCJd-0006LD-7D for 62048 <at> debbugs.gnu.org; Thu, 09 Mar 2023 04:12:02 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 27D11240458 for <62048 <at> debbugs.gnu.org>; Thu, 9 Mar 2023 10:11:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1678353115; bh=uTNG1TLzOJVxVYgXOD+6FEjKYBhOtfvzs0RIkaHv30k=; h=From:To:Cc:Subject:Date:From; b=oIAQbe/KoegtvkEt23q9L1FfFgAkxjOmHf+JhbhZbgFiEep24B78wxkADg292BnpB uqUIlNV1GmcHaKNN3PmdmFXokwV1mh0jZjXZn6fpLc/GuIOSdXytPiujyLLn8ZvtEI gaMTSHrHoLF2WVbVWHL7CnchMK+teWLV9gPUYgNE9lNqCjuSmrgK1uop0e4RPWSyXT wHdC844YxpdoObk2oSy6JH+HNyG1gvtxQNiZcxKV3NoXDblCqjvNuWePyADRGshgsJ lVDjcHQ5V82Y5Cj0252oD79Yxg2BRf72DyWRh0TM5y6D6bdB3gt3nZbU4swoGeYLla o1FcOur7/Hyxg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PXNjP6dQgz9rxD; Thu, 9 Mar 2023 10:11:51 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> In-Reply-To: <83v8ja2z4d.fsf@HIDDEN> References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> <83v8ja2z4d.fsf@HIDDEN> Date: Thu, 09 Mar 2023 09:13:13 +0000 Message-ID: <87sfeecmom.fsf@localhost> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) 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 (---) --=-=-= Content-Type: text/plain Eli Zaretskii <eliz@HIDDEN> writes: >> The real problem I am trying to solve is scrolling images with large >> heights. C-n/C-p and default scrolling jumps over the whole images as >> they appear on a single line. It is annoying, especially when the image >> is taller than the window height. > > That shouldn't happen: if an image is taller than the window, then > C-n/C-p use window-vscroll to scroll the image only partially, at > least as long as line-move-visual is non-nil (which it is by default). Interesting. I did not notice this because this feature only manifests itself on really tall images. The images that are about screen height still feel jumpy. I have experimented a bit using a very tall image and about a screen-tall image from emacs -Q and recorded screencasts: 1. Scrolling a very tall image with C-n/C-p https://0x0.st/HibG.mkv - Emacs behaves nicely, except at the beginning/end of the image - At the beginning the image suddenly jumps half a screen May this behaviour be somehow customized? - At the end, the image disappears very quickly. Maybe something do to with end of buffer. 2. Scrolling a very tall image with mouse https://0x0.st/Hibk.mkv - Unexpectedly, most of the tall image is skipped upon mouse scroll. Bug? 3. Scrolling a near-screen tall image with C-n/C-p https://0x0.st/Hibn.mkv - Note how the image goes across the screen in just a few "jumps" (C-n strokes). This is the commonly observed behaviour in the images I often deal with. Probably something to do with what initial half-screen jump in (1). I think that jumping half screen at the beginning/end of the image is too drastic, especially for images near as tall as screen height. It would help if this behaviour is fixed or made customizable. For future reference, I did the following in the screencasts: 1. Add several screens of newlines in *scratch* buffer 2. Insert one of the attached images in the middle of the buffer via (with-silent-modifications (insert-sliced-image (create-image "~/Downloads/drawing.svg"))) 3. M-< 4. Scroll with mouse or with C-n/C-p --=-=-= Content-Type: image/svg\+xml; charset=utf-8 Content-Disposition: attachment; filename=drawing.svg Content-Transfer-Encoding: base64 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjwh LS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoK PHN2ZwogICB3aWR0aD0iMzAuOTM1ODg4bW0iCiAgIGhlaWdodD0iOTI4LjA3NjY2bW0iCiAgIHZp ZXdCb3g9IjAgMCAzMC45MzU4ODggOTI4LjA3NjY1IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJz dmc1IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjIuMiAoYjBhODQ4NjU0MSwgMjAyMi0xMi0wMSki CiAgIHNvZGlwb2RpOmRvY25hbWU9ImRyYXdpbmcuc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0 cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBv ZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgog ICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFt ZWR2aWV3NyIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2 NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnNob3dwYWdlc2hhZG93 PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNo ZWNrZXJib2FyZD0iMCIKICAgICBpbmtzY2FwZTpkZXNrY29sb3I9IiNkMWQxZDEiCiAgICAgaW5r c2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtz Y2FwZTp6b29tPSIwLjgyODQ5MzI3IgogICAgIGlua3NjYXBlOmN4PSItNC44MjgwNDE2IgogICAg IGlua3NjYXBlOmN5PSIxMzI4LjkxODUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxODc4 IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijk2NiIKICAgICBpbmtzY2FwZTp3aW5kb3ct eD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMzYiCiAgICAgaW5rc2NhcGU6d2luZG93LW1h eGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiIC8+CiAgPGRl ZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIK ICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJh bnNmb3JtPSJ0cmFuc2xhdGUoLTMyLjQ1OTg0NywzNTQuNDU4NjMpIj4KICAgIDxlbGxpcHNlCiAg ICAgICBzdHlsZT0iZmlsbDojZmYyYTJhO3N0cm9rZTojMDBmZjAwO3N0cm9rZS13aWR0aDo5LjY2 MTQ0O3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsIG1hcmtlcnM7c3RvcC1jb2xvcjojMDAwMDAwIgog ICAgICAgaWQ9InBhdGgyMzQiCiAgICAgICBjeD0iNDcuOTI3NzkyIgogICAgICAgY3k9IjEwOS41 Nzk3IgogICAgICAgcng9IjEwLjYzNzIyNCIKICAgICAgIHJ5PSI0NTkuMjA3NjEiIC8+CiAgPC9n Pgo8L3N2Zz4K --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=wallpaper.png Content-Transfer-Encoding: base64 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 AACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZ cwAACxIAAAsSAdLdfvwAAIAASURBVHja7P3ZjyRZtu/3/dba29w9cqihu8/QPJKoS1K8FwJI6OFK IAQR0LsA/ccCJEEACXGeNBK8vOJwzumuqq7MjMHdzPZaethmFhYRmdlV3dWVmZXfD7KzIz08PDzM PRq91l6DBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn32oZ8AAAAAfhpmP+7/2mXmh37KAICflX/o JwAAAAAAAH4O9UM/AQAAAPxI/o7T/l0VwP6E/53VAfGOKgCKAwDgF4oUAAAAwEfqXaH7Txahvys1 QIPAR+md7wdeLwA/GCkAAACAT9i7wkIz2yJDQsdPy4+d6QAAPxwpAAAAgE9GDw5Tj2P75faHIf2W Bfixof72sOQI/qL+/FCfFwjAj0WKEQAA4GP3KFZMe3Dj48/+4LDwXfe0/FMeDe/yU21qIDUD4M9H FQAAAMAnYwkC7cktD+/zKET806oA+lc9fTS8y48N9Sn4B/Dz4393AAAAPmo9UHwQLvof/79wPyRu f9d9XA9Om0kB/EDvmcvwU32L7bXgRQHwp6EKAAAA4CP1qNR/OZzfhZMhuRS7L/E/6fEfI7r8k/zY FEBmpslSj/522fbxo/trK9AwUyavFIAfixQAAADAx+g+bnRbAr/dp5aw35S5K+vMjNy+6D583OcI Hiz8y3zUXu7uZhYRkix3z+G9Z86ffhzqT6/TxkxmMilzF3S7LS0S/cqYlVL2V1Jxf1Xi4fjGh7UV JlNK+7/TFJKb4lHeJ59c7t4X8gNmN+yTCZ/+6wXgT0cKAAAA4KPzoPh/XwKQqTVUXcJCN9s+DsmW gHCJGf/UcnHrh8zbP9dT6u2WX/wBtJmtGZDoV+L+ergpM9fgv+dN/rTvoYdxfZppfX17/L+8sk8f PqWHr9H2tOkRAPAepAAAAAA+JibZcqxr/vaZ//f37SHifb2ApCWazFRmLrUA+5hwFzc+fdjMvA99 +3ePNLNUPjxslvRLCjUfn/9vKZjMzLTcjuzN3Gw71e+H/+7eL12vntBSqC+tUxW2dMn+ipk9vJ67 1+ItL/f+lrUdYPvAnj7yk5dmLTkA8LkjBQAAAPAx2Z35v3XbX/SQz95y/wdhXg/m16heP7gi4NHd ejz59BF+QfH/Y9tlj4hHofWSH8ns/3D3XgLwzou2pGPyj5QJvOuzazvHlrN5Gv9L2go0cpfc+QW/ QAD+HKQAAAAAPrS3xfP3geiTM97tg7THt0gPzvzj4QSBfFvduN4Rz98vINw+mbt7/kIDzPVi+npZ dr0PKckyZW5WSimlX9IWYesCxe1iPurhf5QFsIfDHR5+68dzH3NbANHD/v1KyO2RbZkRuHz3fF8t AIDPGSkAAACAj8M74n+9NexfI8NH9+8B4fb3Wz/1A57Iw+oDM5da9p4D+1EP9Wl59IO7+6O1iP2D UutW/99ay1wb9m2fL3gSfj98Od7/rbdbwh7ctD3Wlu7Z13r8Ul8XAD8hUgAAAAAf2sPwrw/8N7Mt Ltyf9vsaGdqDcXFrjkCWkZmylHJp338cE67jAN4VjsbumfQHjUi5KXfh5VYd8EtZTbc//9/rqY9+ D3c3y8PhkLa0CSxRtySpPAzC3x+K23teBX/8fniwHTCWVQ2Z2e8ZsZ7/m/V6hAcbBABghxQAAADA xyV2Z/vbmb/WXvQwmdky+O9BVfiudH/7kj+jP/xB5OmmHnCmltmA/QlsC+o/cW89hM9l7P/yqdKL /6uVofbD/9aay7ZxgI+6Kv7oBX9rCmZ/Y9g7n9hbv3ArNKAQAMC7kAIAAAD4kPppv/qRrVnuWsHT 1h3y/cS/39Ftd+Yv7c56Y4kAlVLLTKVLMmU8GCXwKG7fVgDkajnuLsugu7ZsrFdGWCmeysyY29PN Ap9i5PnWmYvbB9Z7ATJlNgxlOB1LKZfpPEULpYq7+f1GgLk9GB6w2jcUPCgTWL/T/VPpdQQqPdez VHz0OovtiZnJFEqZrL+yvtRtmEyRyxOWrHh/Wzz96QB8tkgBAAAAfGBPJ8Y/HQW37v97HGFuy+q0 DaJfvmB56B/+HPYfh7L0RvS+EjBz2z4Ytk6be/K1n+j5cz7Jhmj9d7+xDsMwDHXwaZ5vzzcqvt3Z ZH0dYG6zEh4mEd7jQTrmaSZiTQzd3239qodPULstEPnoE/fvB+J/AJJIAQAAAHwM7mM8u+/8j10d fq4xZ+4O/7eANe6HBdhy6uvLPnqLP7IU8I9GhlvwL18zAr5WKcTjr/00swBb/7/1SQjZuy3c2jxL sjocrg6lmsaWNjTdB9aR2oL/3naRZrF+fqvMf3RZHsx3fFv8n/5oMuEu7Nd9uid9e9rLW2hJG4Qk ZSw/y/JEP+EXCMBPhhQAAADAh/Ronp92UwC2v5dbtEb5T9bLmT3++L6gfa0m3zW3P/yOO2YW6x3C ZH3pgJbigqXNwNTHFaa7Mn4BgwCeXoSeZYkImXmtpVrkPF/m1jIzh8OxZWyH/5L6gsCYm96bUnlU 6/HWGf77+Q5bV4jW19R6m8fjR3uyA8IeziZ40rIB4LNFCgAAAOAD28L7+39uC//scfAfa6X5EuAt Ufo79sDbshTgrZ99+4HwblL9MoAwcylJyLTUkhVYGuD7UfOnnQV42/j8kJQhL3b17Hg8DqGMWW5m 7pEttV4676UZJrN1XOI71/69ay/g05xOfz7LR2tFwDYYYksErAsjTLlmeVzKNDelMpb79DkEH/oy A/gokAIAAAD4CNgW829z/9bYz2z9b1t2Ad5/0f34wKfj6JcP+mO/IwJ8exbALd16cLtEtpJLEdFz ClZMlsUsUqFfwsA5ezplQZJUimW21sxrOR6PkuaMac6M+xyJJEXfDvCWy/uef779zmbSfd/HgxaA 9YXemg52XyLz+ymDa6nIMsPhE31RAPwlkAIAAAD4wLZI/nEKYL8vwO1RGJf7AQH9VLhP6XNlykLq OYTIPiLg/XHgWw+o3V1rVXkubfLLszI3U8ozM20biR+xfe0n1HNusp7ieHT71cuTu9davvjyxV/9 zV+/fPny7u7u2z+8ujtPl3E+n8/zPK8VBO8r/v8hUxhslwPamvqfPpR2KYBt9GBfW5CZSlnIzPx+ ImEqYmsNeDp4EsDnhhQAAADABxa7RYC+dgH0499+opt+P6k+M2M3JqDv68vlNHgp+te6RW45sY/2 /ifw1h6B5cHdeim5SXJbGwFMpjBFWshcbpkZuZXUf1JxpsuKJFNJ07ZQT5YxT8Nx+PWvvvhf/rN/ +s//+T//u//Jb7//7tv/5l/8d//+f/yfvbq+U7bbnLPJzFS8mLXW+vYEWfQZDz/qOmwrBmI39HET tisT2PYx9KyFuVlkSGp9smFubQK5jC5cZzkA+NyRAgAAAPi5bKP1pe38tjfbp5u7p1tI6kf6a7/9 Uoq/TZVPRaatVfr9/L8Hj/V46NvpW2tSKJcsQPRKAreM5bjal6dw3/Ov3S3bw6ZbX4DXn21R/9ql 46BlhLmqxZiKUMY6J0AZud2ziwfN6x/6hXgotlP8lKzIJXPz6epqkMZ/65/9k//j/+F//+/8r//5 b//mN9/87h//5f/wP7861f/zv/d/v37Tnl0d7s5ThplZy+buGVOqWTSFbTsco+W+WUN9ncLDPX/7 V8Hd9zMgtM503O5zv5GxbD+Ey03pfQtA39oYczOpuMJatimyKd/SKiI6BYDPCSkAAACAD6SP6t8+ 6CUAPf73+yb8+wBxu3+fCefrKf2aSvBaIkIRGWuUbQopepVA/NAw774fYatHWA63zfv5uClS2WP8 TCuZmXJbvt8n1QUg9XqJJSvSqy6sePGSav/kX/27f/d/9+/8u//b/82/+nd/e3h29eVgL56d/v67 7//f/+Jf/P3f//3dZZLMhyHC1VqfnmDWMyvLDD4z857U8cch9775opfo9+KONb2zvPq9KmRZzbhv /r9P3CyPEOF97UNP+vST/+jbGz/0NQbwkSAFAAAA8CFtm+H2cV0PB919iwy3FEAP8rS1Bqz3dPfq paVkHrJ8eNae+fY59Y8q1XNtL39wh/uFhUvwuTwHZZplZiktZNGHEGh3yPw0CfAxpgWipzVkRSll yNK91FpOp8Nvf/vbf+Pf+Dd++3f/ShmqovmzZy+a/upvfvvl1786Prs6h9oUc7RsWUqJtmu4WK63 L1P87X6UQ2buq/y3zQK5TnrcDYWwPpoxtSxoTHtQC7BkhdryQG6mvhEg0npiKNc8hJncFfkppWYA /AWQAgAAAPgQ9hXdtm6DXyf89RKAp7villHwdv/P3FUJLDPh7qfKPQn2nsyfewu3/mTu8w73uYle dmBpViRTtgxPWVWRegGCLBVPO9nX1XQfJ4ve/JDr03RXqfb8+fMXL18Ox0OkLvN0soPXOsunaTYz 9+ru7prmiNaGoWa8vdDinSX3ay9AP/lfbnOL7cC/r2bob4alJESWWssNFm4WvT8kU2bZIj0tejNA ZgsVt+wjAsPT9lMbAXxuSAEAAAB8GPdh/MPIfIm613IArcHzEknm48ZyaRn2Pk1TZvY7LFP6W1jk MhDeUtsM+T82pi7XxgTr2wG1Gzco2xbVS6ZIq1KqRLQWaqHdvrpeXr8MrftoswDZu+djHZpnZmbF 7sbLm5vrv//H33/z/au/+vorGw4xzd9+9/3vv/nuzc3N+XIZL7Os1upTm996uv6o9OLtJ/BrQie3 iQ/9Ytka6rv3HY3L3If+ruh1Au5aJg6kWZ/9IDNrrUWmy9JlscsrmeXH+iIA+HmUP/8hAAAA8IPs xwGqR3DeZ+/JzIq7u5mlmxWXu7YRcT0Id/N1EUCv/Dd7sM0+WvR5gdJ64J9LLLkOvFvCP3+YAthK ypfg092Key1eS6nFS1HxYi5TcffiXtzc+xl1Xw7YF9SlUi16IKpUWZ/cFvx/hHsC7qfsy1Ipcy9e ainFa7GWOc+je6nDYRzbv/zv/of/4D/+z/5v/95/8P/9F//tqzc3U0TKMhUtits6iKEpcon+e7Jm eUF2sfd+2l8v91hffblpjfn7y6ziVtyK5/JZM/f+x4ubWywpnp4y6C/zWvCfyujlAaFlceDyVvik tjYA+MlQBQAAAPCB9T7ttarbl9Pgviygx+590p6bZK5ldoAVz8y+hS636E5L/GfrI/dR8irev6zn A/qxvG/ffZtKuNsRsGUB+sY7SR7hue4LzJTSMmXZb8xMj2i1KFJPjrv9I64F8L7+oGcufAmjI7IM h+vr2//oP/2v7s6X//Zf/vdfvHz55vtX/5//+r/5T/6f/6/Xt7fuXkqdx/mtYxa220xFavl0woLu 80Fb68c2BmA5sXfr8b/c0szdYlslsHyJm5nm3JYZulmE9RmNlkqF3JTmcqUikkIA4DNHCgAAAOBn tFsF1y1V+tuSP1/OgZelANJyxr5ry+9n1T0Uj37G25f2ufdEwJYOMDMVcyki9hPplk+9azKcW64Z CRX3Upal9LO0nl1npvUsQKQ8lW7FVXwJZUN9BYF/6Ov9A/S5+T3XUjxlViTP0OtXt198+Wz6w+v/ 8v/xX////uU/9ITLm7u728ulhcY5LuMY4YfDoLDovQC5n7fnpqIn9f/bBIftNeoD/G0b4uDL37a8 GUzu6vv9Mm0tG9nuaYNnxNohkhZm0RdNWkiKzP6KSUvPSQRJAOCzRQoAAADg59KjvlzrsLfG7+Jb U4Aetnn3SLyvhdsqt4t7a22ZM+8WvVDAvYd67m7NsrWI2PcJ3C+Ed+974/epiIdhanit5VDK4CqK kpkZmSoyk2tpSgilR2RLN5eHyTSlrG8hXNrSJfVqgy3o7EPpPvQr8eAH75kV8xJpkktuGqyqVL89 z7X6t9/fvH5z7tv20m1q4xxtaksAP15m2+32y12lfUiZWYrvv93aqJFbPsjXwv4e1ackL95bEWqR W0h9EEC691aM+42AUrqseG+7cEVEpGS1aGpWMiNtXTkRbhmydTXAfqgEmwKAzwQpAAAAgA+v5wLW YNTMl57/tK2afzeUf/24/913B7p7n/xnqXTLMFu79O9ju3UdvfVugnc8mVQuB9HVVdxr6SP+IsLX ggS5uaSwcIupudya+1DbUNVCkdv4gYeP/PHKMHMLmcnSXVZaNgtTky0hc0rFMiMt5KkIs0ylySKL 7os1Un1nwuMX7XGYbbaUTriZLzUU5iYbejFFmPoEQCuu9Y1hZtmrLVbehwKaeSrVrJlnZrNo4el9 IGR/dyXt/8BnjxQAAADAx+LRFsB1IMBSNx4mly1D64srllJvc+/nyenKXYd/LCsEH2YBJK0T++Ph t14CVJP6mX/vPy+exeWmTG+WfcJgD3RtXU8YmZZ2qCUiD0NrkW1WS0mhT6AXINedjOoH8tsBe1hY pkwe1ralfZJly9j3Wzx5HddXUBbKFqmH12HZ3ej+6HVfkgilLL0YxeXutWyzAMPk7ttSwEdfHpl9 kUO6Kc1qUarPjJB8KT9xU/vQVxzAh0MKAAAA4APblwC4PejD3zYCyMy17YTruYA0KX3pLbBUZJrU esPBclj/ZPzetot+rQPfPw31OXaWSwjqlkslgkKy6lpTAH0cgMzTM8P7AbYdhozQ3OYp1CJtWSPY cw0fcwlAKM3CrG6XPTPTMpSRkc3WXvowmbm1VPRFi2t+5WkhfUgpl9puGOKDuy0tAz3hoh62K6VS PN18F//L3Zb9C+oNI+6ebkUWpohlEaP38g7JiltKRet0glQugwM+9JUG8IGRAgAAAPjAlrP0dTrA 9oG59/P/PgtA/njLfO/67n9aZig9pVxH9C/FAevOPzeF9TL/d63n69G+ilstZag+1Cyu4s2U2QcL 6v5BtYw2sMEyUnINpcw1a5XP2wPGg9DYP6pBAMuTlCSZpVl6WZYmZEZvdZAsrUgKk/dy+rUEIKS+ RFFqZhZrn0UfL9ivda+qWJc0Pij02C7M1pTRj/qbspf8eyl9RkC4hanUsswRLMtGwGJe3FpbNw5E Wlp6FLP00NSalC3cXe5pYWZJFgD4vJECAAAA+IhEj87XmfzydXq8P+gR0HqevP0dFt6DyVA/fvc0 RS4jA5ba9G0D3lu+tW3r5WuttZZhKIdDVk+3HvsvNf+Zvn65LQPwQhaWysgy1KjFawnvGwOlJWze f6uPLBFgkmlp8Pc0z7RIhbtLaV56ZkVp6duPbKll3eKSD3lLLYBLUjwu1394wdcFkO5yd/cs1qs5 ejpg6QVwS1epdVnN0DMApbh79tRFpvUXJrRULEiWUqaVyMgWzYrbvKaTAHyuSAEAAAB8FPYlANst +/j/PobsdeC9/79vicv0iFDLTLNUZukL4CyjhbkpbD0Bznd99/t/uHstZajDMOShZPHBl+H2ltmz AP2OS5G5ZcxN2Txk7rXWVkqUornt5s99xDMBlgSHbAuotVT6m0n92tna+W+RzVKxNPuvlzN9ebWe Xtklx/D0Um8pgLXoo5f3m5Vt6aO7qxYVd7dhGJZ8Qv9kKebuZu4eymxhmdmUUliYu7lUSpaWzfbD /wF8zkgBAAAAfGB91F9Z/5l9IoBZmHoVgNZ0wKLPe+tL9zLN3SS1MLNsERa9JN3TQmGPTqHN3jqr v3/f7cM0s+JeS5aiwbJUt4g0ZctZ6rmA9dA7sllGhtKlqiyualZLzm3dcbfuAlzq3T+mEgAtIxZ6 nX+Y3JQWrf+MqSyqPVZPycL6Zer1AJIs+sBFpdZMTQkPyyWjE2u6pE9GvB/dt2YFllGEvgxiSCte SxY39yyexZfVgMU1lO1lSjf3pb1/GA4RERHZIpo0yg/KqSllLWynzzR8Zx8IgM8AKQAAAICfiWuZ orf0fkfaEuSH1EfPy4tbMXe1Hjym9bXwy1lxHdx9LfTuxeIWmZ4uL9l7yMMUqRahVPFiPrcW23H1 MjpuF4tGuLsVb9Ek+fEY1XIoUbJ51OMhq4XJa3XzFpZzKLIXmWuWYi7Fax2up3NYu3p2kiIvRcWV Vn3INheVtBh75N8H5H083KSUW6m1X97MNCulLMfmKYvoLRTrwESzUGamWbjM3CwzQjKLUiIyWy8Y aD1gT19yLtFXA7i7ezWTFxVPt3QLuZdiw6Ech0jzYRiGQUNRcdWiodpQwj2UsU6O0No7cOk9C00t I8Oz1j7xwczaOKWb19rLNJY3QCx5iX0vCYDPBCkAAACAn887wy2LNF8GzuVaX787It6GwJm71nV+ yyq7zIxlXmBKSkvLZRp/ZsvcDoGXuDFz21rX/84+KLD3trvVq6vTs6vh6lRPx3KoWSyVqkUmiyIz ZVqTRbaIlM3Rrg7D85fP5nGKuTVrPli5OlxuJ0kupZpSLkv/KOPNlOTpxZf1BxbWL7kvSxXWpYGW GZIVL7mlcnZzGdzUH8GXKYjeMy5aFzP4fd2/3KwWmXnxcMvqVorXYu5ehjJUPww+1HDTUMpQVYtq 6UsJ+7zAPsCwSZ6WS6rCVNz6RMgWskzviyWXUH9bYwjgs0UKAAAA4GfyaCGcrRUBfSXc/X3WG7eA cVlW726e5tmn821DAfvXS7KyTABIKSLD0nLdDtg7xt2Vyoh9CmA73da6lH44HurxMBwP5TD4UNva D1+HGhHpoUwrirl5WrQ4HI9zzC0zTS4dapmKmpoXm8exykwZ27jBjzAEfbiOIXXfnh9LYmS5RPHw dbyfArhlU/p1tpAppeirGXZ9F/dF+e7mnm4qbsWteq/2t+I+VBuqD9Vq8eKqbqXYUK0Ws/7O2T33 lC/T/3pmodcbmBVXfw8tTz7UO0Ti47v+AH5GpAAAAAA+jF0ZtklyWe8vt1xu7CHpFpTm7txeazC5 pQB62UC63L1lrgXtktQHy/eC/+gr4i1tCxtl0efeRW6DAH2oXqsPtR4Gl8xSxWutrbXmLVtoKVgw V9Q6nG9uItRa85jd04vKoTz78tmr379yK5F9XYCy5cfYhr5G+LllRsyy9/7vpjMur5qpzU0PP7VN atj2OCjW4YH7uQvrC+fu28dyV/F0V3H1BZDVbChWi2rx4lncDnVJEJhMin06qWeLeprBLdPMZe7N 2vLgHpIUmS2UKVIAwOeNFAAAAMDPpJ/8P7pl2xm/faqXl1tKESFzXwYF3o+I3x8mm0VEDwBba9J6 JrxfBeieKfk2GXD71rn/ppLUh88N1QcvQ+3lAFZ8tua1TK2ZmeQ9kjQzr5ZW2zSr+HE4zZattXme 3PWbv/71b5796j/89j9sEVK6aiiUMvf8qDYC7q/U/pVSP/bPHnanHr52a4VGv/L3+ZR1yP/9Vd0q LNZX2dZmATNLX8YuqhaV4rVEcR+qqttQbCgqbrX4UOxQt5dv6xaJCJmsKTNDLbMt+xdtGSopSctk iFCLJQsA4DP2EW9nAQAA+MV51AuQmS4p0rL/kfXT41hC+j7p3XI5Oi7mPQWg3Sn0frBfRLR+7LxV gJt5LX29vK1N4f2rMrOPl+ubBWSy4lZNxbN6VpfLiqt4GarXmqY09cgzlNEL4936s+z7CIeh1urH w/Db3/71P/1n//rpVPtpuLsXL5IyPrL4X1JmKPuP1tfqpall9gP8tc7i/rUrQ621llKWBo3tU27u 3nf79Qn/D2x5ge0zbl6K19ILLuxQ7VDLULO4qsfgWVy1WC29CqAOQz0Mw/FQD0MZqpUH36W/mn0+ QS9hyG1SRIQiojULqgCAzx1VAAAAAD+rR83wmZmRGeve+dSyGiAlmcxND06VLXLdKLeLP92yLwZI mdx9bRmP9Mgqa6nw1pY9dqZ1EkHPIuS6tz6L957zdJsVlpFtdjPJ3Ky11lqLmJtaX0gYyoywOmia Wptjmk/FrPrLw+l/8a//E58sYvaqmJVqZkVypfTRVQGsL0SuGZLMvrtB60TG5UR9H9f3NX6pZXND 77t3l3u6R28HyCXVsnUD5DoNIZTuJjcvrqFYLT5UKyVryWJ9HaCGYqXcf7a3CfSMTWtLwcEcyrll a8qmdJNr7UrIlmqWqRYxt2yhFpJEEgD4jFEFAAAA8MEs6YAWiuy1AIrshQCZWWt191KKLbvpsp/z 62EJwFYFUEqxWvoaeS9lOaZeh8ztxv5pX9O+3dhHBlhxDWa1WPEwhVrLmFpb4//YUhhbRYCk4/F4 Op36FroYpy9ePPtn/+Y//cN3315GHQ5DmqZovU/hUcn9xyLTtjmMT+hh4qZfhO1TC7fsYX/xvlhB u36N/bcKU9M6v8H6YkdLt3BT9ShmQ7VDXYYCHodyWP60tXFE1ksNvG9zvH8K+fCVXb7f2jLQS06I /4HPGykAAADwM9m3r3/o5/Lhr8D9kPkIhRS2/JFvRfxLXXqbIudUk0WfENC/ao6p5Rxq8nz4qOku L5JnmiIi1FQ0DKUcitU+Ti7k6dXCIi2kpphUdLg6DFen4XTsO++0NiN4kRddnQ597WCfNXg/btCs 1ippqNVlL589/2f/5j/9t/+tf6u1drrSzd3kxc29DB9l/ekyQM+2eN6f6MfvYZoz5ox0mzPGNk/R mnLJsEj9nvcvbvG+bXF5w/fJC8UltYw5Wq/Vj2JRTLV4LWUYjlen47OrcjxoKFl9ypgzwuSllFr7 85znubWWmdX8UIf+tA+lDsPQx/65sihjmnNu82W83J1zbppbzM2evA8/9AsA4Gf1Uf4PMQAAwGcl Zf3wv9f/r93+EdEn6HtYP7hZQvw/9nix6zdPU0i95nydRWdh2WcMLov63PvW+nBLj5ZhJhWXp2Rr 94GOx2NrzS0UMbY5Iry4SUV+vr7Ny/nL09Xl7jzU+k/+Z//kV19+9V/+F//V+U5a2tEzc5bk7r0c 4OORmZbmKaXM7/cvvN+j7Qzp9x346WvvRl/x2Bc9uPfZjep9Fe5N6Vr+Jbde+Z/FvRav7kMtff7C Wr5hZqWUzCzufbxfrwt58eLFdHcexzFbKLKkYprH27uDPOaI1jS3jGU1gemP/2gAfsGoAgAAAPjw eql2tnAzl5W+EaCF5X15uh5upN8P88+eQjD1Y+cupLR+4G9ppuK+m2Cn3RA7makWHYZ6GGyopVYv ZdkwL0nh7tW8mh9KHYr58n2iB6Uxt2I2eJnH6e7m/PWLr75++fV/9p/85//9v/x7pQ7Hoa3JjV6+ 8KEv9tuu/q6k/9GQxbfcff2jdUfDVrWhR8X/tjz4/Y2Zak19fINpGUNolsWtT/4bav+g1lprHfp8 RffM7J0dxb1fTet/1gmLxbyYV6VHq6GaVqbQOLfz2MZJLZRppiQDAHzeqAIAAAD4kCyVJrVeru+Z ywF+Zrp5P6WX5Kls0Yv49+3f+6b0ZVlAZJr60r7eZN4f0Yv3Vv9+xJ3rRMBMyaVa7HA4nI6H09GP g2rd2gqq1x5e9pFyfT1BDyR7lfx4med59nEy87/66td/8+u//i/+0//8//p/+r+0SaUso/YlG4Zh Glt+bEvpcpnpJ0sVSbJI86VBICXvsxNyV9K/y7/sMwX9vN+0rAYId2XKZbnLuWyTFLTMX8h1BMOS Aqil3z0yi2Rmta91cO+H//M89/F+yvRISW/evDlYGUotJS9x1hwlzb3Ol9u8TO0yapo1N0lpfaHg h77mAD4cUgAAAAA/k3dGv+lyy3Vye5/Ab9X7MW8+eoy1zN9kjx62nxWbW2a6WygyLM1SKm6ZS5d7 W0bZp7tnP0M2k1k9DGUYaq0hpVoP8Kubm2fM42WWNE+T0i1VZOrbBmWzssi++uJLG8c3//C7/+g/ +I/mm/Gbv3/VI+LWRqXrI+8572f1Lfo5vrLvAXhQEdBbJ5qyX+flC3saxaRYwntfdzH2nov+SvUq D1uG+C/DAkspVsqysrG41hxNZOvphJT3TEQ1L8UswpTuFsUzs7WWlhFRZJKyTTGPOc4+h+aI8zjd nefzRZdJ09yXTciUxkRA4LNGCgAAAOAjkMqI1lrO5qbiRWmttTTPkJulp20V6y1U/P48+X5OvJnZ svh9f4tkZu6WtfQsQJplRl8IuASHtfRt8yG11ly1lFJrLaY+fy7nJmmapt5JOs8tM0OWZl9/+dV3 d//w/avv5lc30x/eTK9vxpscqk1jb4NfnsA0nT/0VX7XxU/1uYxKKd1UloN3ZcrclkoNSW9rE+jF FGHyfk/JzMIfpwD6i9z3MfQ/ZRis1lqr1dpXMKTZlkHwHtj3jQtSNR/b6GbViw8lvLVxmmLKyMPh MJ4v4+Xc7i42tyE953a5uR2vb+e7i+a2vCWk/v0BfM5IAQAAAHwkPFs2Tdkn7FVXL9cPpWdmZEiy VC8SkLs9fQDFW4K83q9ezDJSpbS+td4sTNFL073Uw+Hq6up4PEZxq7UMw3E41FIVc2QWmdfhfD63 aY5QZo7jnD1ZYPbmm+9OKoqcx+lyezffpUvzmNWHlIcy3fIjHAGw6dcsovfuh5tFeC7dFsuBvy2l E71uIpZjfit9XGL/2N1S2WLfKbA9gpn1LE5PEpRSDoeDjoMPg5WiUuRuxdNNUl8GqWVhRDT3Vkq0 Jvel4eB+kaQyWsY8j1Mbp0NTSvPd5e71dbu50zSrNe1O/pfhhAA+V6QAAADAB/OuiWsfXbv4zyNy OfedWxncW2pwhdKVmdlS2Xpjv9dhGzK3306/dg3EEtRaLI/sPWFg1rwV7+vr0y0ipJBJg9XTMDw7 1KthHuz47FhPw+lQM3NuoWzHw+FwOMzzPE1TZq9W6FP9TalnOtjUvv2Hb6c3t7ptajqdTne3Z3ef 5kilQlLKbag+T+1je3VNyn7xWypdHippPcB2ZShdtm5ZWM/zpf06gD6IwfvOREXE/VzGzIhcNgv2 RE5Kbl6LHapqsaFoKCreBwS6WWYWWZFFKltExCyrXiylqbWI1iJbZKYiB/NxasewwYfZWsxjm6bL m5v25kbTrDmUMl8qEET8D3z2SAEAAICfyXYWqifB/2ca8z+8BGa9Hl2amrxEzIOZlaIsPXBsKZNZ 8RZz8Wrp6ifyS6m40pdq88iwVGb0MfFpPssyVLyUw3E4RkyhfoJcigZT0fGLZ8PzU/3i6BbHgyvm vKS7H4ublToMdRgkl5d5HtXiUIcqi7n5JcrtfP3779u3Z50nhWS6PV9KKeN82fZPmUL9PHtNUXwk TOq99C1zGfs3R+QUczuaZXG5SZ6u7HMWM5cvSEk+L3X7ksk9I1IW8jRLs17C0dxrzM3dvZZ0y2iS 7FDrserqoKuhFQuP4qkis76iscnKsdSSfpknG1Nm0Vpmumye52kce6dGm9pzqxHx/ffXN69e+xzT 7fny/WtNs0K9eiHb0sfQhxny6wZ8zkgBAACAD2xbqPY5Rya9Ld9SmelKzS2kKGZDbycvlmG9bj8i Dx4REeHuyq1LXa213aR6mXlv128ZJvNUKNVX0LnJU+6qpkNRMRWFzfIsxeZxNE/zofjgZpnRpjki zudztFZ6dcHc5qnFNNdLjt/cXF7dxt2sJtkypGB9WstZeM8EfJyj6PquPldvi5CZsoUyY26WqVr6 UICUFBkZxSxN/WC/uMduL0MqvT9gca+lZZrM2oO+ABWXu7k3l1xuSlsuiy9jHLK1FnNTqbVWi2yt tWk2s2mclBkRbZyaplZKaXn75jy9ub3+7g+Xm1vNkX3+/xxmrtS2BHDJAuTH+BIA+NmQAgAAAB/S fl5dn5r+oZ/RBxH9SuQ6ly7nWRFSWNQiSSmzcMmjmazUNMuI7BvstofJlNLM3Ey2ll30JgJLhRSS ZMW9WkSRmYp5rVG9mlumt/RaztPFPFWyFKt2mDOn8yWUMU7RWs5pTZqzjW28OZ9vx/N337fbSfPc n+mSAniY0Omvq/+gq/EhpTKjpwE0jqPXUvs1Ld77BUxq7cH6xvXa3797zayU4imXqYQukRZatwbK vZRSStkWB/S9gy6zlEWW4qFsGaEspaj4NI3n8fz86llrLVqzyN4gkNMcU4zffX/7h1fjm2vNTdOs lkrJPSPtbT/gh77GAD4kUgAAAODDs498Y9zPLiOUOU3hSrl5ZtaloT/drKlXmMszpVBaqu+Z265k P5NurWXKJWv9gNncXUMth6Eps00qpdRaBiv9EDzmkt4PwOfU4KWpWGTOLVqraTFHXOaS8mZxmcfr 28ura92dNS9hZ//eekdzRw+RP8IYNPcfLP8xTXNkzlKVLEs/9leqRb/q6s0b5qbMnr+xvhmwD2ws 7pKHT9MkXzY1pEnuXpdHc5lSPRngZrae0vfXbhzHWmtkRERr7XK5tHm2SIu0FiUy53a5uTtf34yv 3ugyyl1TU6RKVaZ9hBcawIdGCgAAAHxI+WR33efYDrBsa1/nxue61a9lWpvHySOsFTtUt+FQfWph 8vQIS0lh8lT60pRubkvBfd/3l+kyy2YqZlaKeXo7DNU0jc1KqcdDGXwYhj5tLoewyDlazjllqVnN rOcFSviQRZlxmabzdL6+uby+0ZuzmpZVeG+L/D/+l/PRc15G90tqISmkWaqZWUopxd1TlilFqoXJ esjvsoxcayDWRYP9mL+4wqVoSplb8X62v898ucxT3ndDjq23T8Tc5lLMzCLd/Xx3V2SeauOc02yR 49355ps/tFc3ur6VpDoo+6yFplhGG6hvJTQmbgCQSAEAAICPxzYU4EM/kQ8h75f5ma392qlsLSdF hNfwzFzWxkdkhsVWSZ5SxjIAID2zLAsFvQeokYpM61XopqF4VFcqqx3KcDwcTsPpdGoZytQU2SLm OcKmUAmrpUSTRcR5tCYf2+XmfH715u71rW7PmkPz8ryzrxj8pKTUlH1IocmWiXnrCsAlC5A5tRiG wVNWvJo1lyRLKdIkM2vbsoA1BZDbTAQzK976a9qLOYpb8X65MsL62r4WoWZmXr2YZ+Y4TVNc+guc EdbH+6fZOM/nS1ymy/VN+/61bi4946M5JJfFEvl/Yi8FgJ8DKQAAAPDBbFMAM9Pd1Ter9V3on5/H uQ9Tn6OvKTW3mDNqWpgdZg2WzWRm7lbc3cPksr7zPTPux7/3GfbRr/HcLN1qKlvJFqlavJY6DMPp eDweL9NokdGaWtisjNZCc9gcmXNm0+Xmbh6n8eZ8d303Xd/qblJL9eWA98ff9z/PW35IW+/8MdlO 8u/14f9m6lmAyGzZUmqh4n5wC1nvCrBUKDJSqcx+2/0jm4XSaunV/X0QgA1FtchszlA0D5fSTR7R 60CqmZtF5DxHm6Y+hjBbO3idzpdo6S3j5u7uzfV4c6e7UXNIRRlqUcxN3rIVWSp3myE/3usP4OdE CgAAAHx4ttLnuSCwh5qPbFFppiIVodamSJtLfXFUNJlZkZu5crl4blrCvl6Rvh5ERywfuEdm9hH0 JrmFu4rXWksZfJqySR5FHrIMWWTMY8w5X+Z5ntvY7t7c3Pzhjc4XhZt8O+v+xbx29z9CH6/QX5pM RbRp9shoZlZVzNwVaZZhGRHR4397HF+bWbiy+NKYUVzF0y3dWoRFZGsmt2ZpoVBKbWw+RDErU6j1 TJmiyVubXt/MUzt6jTd343evdb4oZaFDrVNMGZGK/BTGLgL4UEgBAACAn9UWYpmZu0csJ9R9xV0f pX6/Ye0XFFu+T7z9p+vHuP1iSVJIlymnaVJTLbXWcMWc7u6lmHtamllappbpgDKThaeaUrLWWmb2 T/lQrZaXL1/WWjNzvDtPl8s8z1988aKkMr21lnObptbGdj6fp8v8+vvXak1jaAq1yJRnqapNS5G7 rSvn3vLzfMQDH0P370nTrhVl/7pkKts0t2XVwlBqtVJkKTN5mqSICDN3XwYHLl+XVnqFxpIC8FKW LgBZRPjciqyYSqgWKzLL9DlKKdWHqelyvlwul5jm16/eqIUu081lsstkU8smi1Tm2C5aIv/lOfdc 0INXYJtx8Mv+bQLwXqQAAADAB5P94HT9eL9TbbvxFx78/zH3WYBNSuOkiNZCpchd7qohdxXfCirU h8G5lN7a1OfCpSsitmb1ljFNk0UWWdRUWE45nad5nqdpms6XuLR5muZxms7TOI46j4pchv+lTFZk Zuapz6JzY8sMzM0yo2XWsPWay1S9ZB/OoPswOzJ7v0ZvelkmCsqKbJwma27DukIgTSGTDWnZpinO 8zxfLpfz+TyeL22c4u6sFpqa5pZTKMLyfQf+qdxel8/71wjAPVIAAADgg+kpgB4xRcT28VYd8KGf 4AfnejLULRWaUm1Ob7O73GxdMue1SrI+ar6sZ9FmimZuUmaTvCy76EspJm8ZMYd7XKaYp+lyuZ3b +XyeL+N0vsyXOeYW0xzjrHmrkDflsr5O7yjQeEvL+afwYj5eDfD2+8gyc25zC82zuy+z/d3KMPSt CH0RgHqpi6kvC3RZum2T/5VZolcQSC1coTZLrUkxtTZOPfifLuM0jrqMak19DUGkWvYxhKUPfHhy cR9lZPItHwH4TJECAAAAH9KjKoDeHfChn9THLV0WfWWgWpOUpubWzGyoPRY1M63l6GaWFunm7mmS pbtbLaXfZZZam6a7m7GN4+V8e2dml7tzzHNcZkVT9PWEfdWcJC0bByVJodBnFlf23MdS1R8KC82S mdyWIYJrk0vvzpCbRW+/6AMezVLWQlMbqivNprA5p5xaS2Va5Hh7btN0uVxinBShFopQhLwqZCmT ya1veDCzFi2kvtTA3xP/A8BH3ZUFAAB+0Xp02sPUfReAu+9nAXSfZ0WAWXl8U4//PR+v3+uZlD6+ zpbtgEtcqrAiFTcVM8slOC2lFEmZLSIym6RpmnKeJWluS8G/JJnnOvXPewtAH0yQto6dS9nWrbBM cHjvz/VpvZZv+Vm2vNWjz7kv93aTu9dSSjGzUuv6ddbzL15LFh+z9amNysy55dQ0N7VoreU8a54V KTOZK1KZ7m75oDvG1t2RuWZm7FO7vAB+ZqQAAADAh7GV/S8n1bsxgT0dsN8R8Hn2BbwzBbDU9Pf7 2DL5b58oWc6b168qksUasLvM1HsEIpca8myKWHIKph78b7vlTYpQ9sUF/ZGXON96yBt6nKz5ZacA cr3yy/vTHl78PnCxvy7uMuuJAK0pgP7ZdBujSdu6h1j6/DNVynLsn9uvx+OZkctOh+07igQAgB+E RgAAAPDBLJvq1okAPRHQ9WCpn1RvWwM+9PP9S3nXsvb9LZa7/oi8j/5cfQHAMkwh7x9r1yG+hIgh 2+bCeWaauXKWrYP8XXJXC4VJy0L5vstuLS9fv61ZP3vOPhUgf+ip0tMy9Y/BPgP19Manr8uypSG1 i8HXC99LMCKXkfwtJLWcelHG2pfRL1iul3Hb+yiLlJS2dlxYj/zXvRBLwmUX//fsT8vd03rydPPx M//F/iIB+AFIAQAAgA9mH3ft5wJmpq/67RGxdQp8pnpEnq7tFH476I+8X2uXb4nHl8A/JamPWsim JbxdontTpqUsMprWzy2F/7YUFfRbtpr/7AfYlj+irvSX8RK6uXbrKrbslLtbr4nonQK5G8Sfed+d sTRx5NK1sZRimKWKuaQ5YtkyEPe/IfuFi/e3BuE8gB+HRgAAAPAhbeMA97dERCml1lprlRQRrbW+ 034Luj70E/9QXIr9RXuURnnr1/xpl2upP++P0LvNf9LH/3S96zo8cp+LeRiob8UaW5+LHu59yMxH Jf37KoD7sQs0AgD48agCAAAAH1Kv+X90y/6f29RASdM0fejn+8G97xz9Jw/Fd0P+PvTP/TF513V+ 9E7eJVAe38d2lftvD9rzbf96mHmwXYWB3vNQALBDCgAAAHxgT7MA+02B2oaoAZ+4/ft8XwKw/+AH lhgAwJ+GFAAAAPjwHmUBttGAfcTd/vbPreYcvxg/JP7X59dVAeBnRgoAAAB8FB5lAbZFgNuYQL3t gPTzjJd+SP//u+7/U31fPPUDGwT0p15Jrn/HTArgz1H+/IcAAAD4qWzr0/eR/75G+l0tA5+tv9wV 4Nr+VN5/JQlcfyzemcCfgyoAAADwEXlrR8DTXoC+IJDYCZ+EH14dAAB/aaQAAADAx2WfBXiUAthm ATAU4K24JgCA9yP1CAAAPkbbLsBH8X+Pcre/3zVQnWAY+FS8NaP3aDKIdl1C+yzh/n8QAPwQ7NcB AAAfr/cE9u/5mHgA+LS8dcbHVgG0/+BDP1Pgk0cjAAAA+BjtC/4f/f9+InzgF+ZRsu89AT9ZAODP RBUAAAD4eD2N9t8zWY3YAPgUvTX+f9d9npb/kBMEfhSqAAAAwEeqn/8/Cg8eeTQ4cFsWAOAXYwv1 SfMBfz5SAAAA4OP11iFh+9lg/T6llG1YwDYLgK0BwKfiB7b673/3KQEA/jSkAAAAwEftPaPCt3hg WxwQEUT+wKfF3fVw4H+//f1LAR49CL/4wA9ECgAAAHx03rrY72kZ8L4LoEcRkrZGgB8QErhE1wDw gb114P++D4j6f+AnxK8TAAD4ZJRStAYMEdGj/VLK4VC1dgFERGZG3G8HfFsiwNe/H6UAyAgAf3GP xv6/K8LfUoH9l3q7ndN+4M9BFQAAAPhk9Jh/SwHs6wK2doDMbK21lpk5TdP2WT2IHHz3AWE/8HPb ZwG2X+Sn5T9bIg/AT4UUAAAA+JRsB/v7huEe/28pAEmZc2uxv8P+y1cE/8DP7f1n/t1+BSBZAOCn RQoAAAB8MvZBQo/2SymllG0cYK8Z3mwDAp6IXSEAgJ/Su8ZwPGr4f3+H/6NkH0MBgJ8KKQAAAPDp 6THGdv6/rQPof/dPlVLMyjoaIJ6cJVICAPxFvOvQ/mnw/0OyAI8+IAsA/JlIAQAAgE/GPozfBob3 CF9rONEzAv38P0Jm1lrTLoowM8qKgZ+Trfa3PP14nzvYzwXYlxXQFAD8mUgBAACAT8ajCGHrE24t SjX3oZTSJwW21iJCatJ9scDuyykBAP5SHkXvm3cV82+/y3pbFkCE/cBPihQAAAD4xGzhxBppNMkk K6XUWs1snud5npetAJmSuXuvFHh/RzGRBvDn2/96bgm4H/IlT+P/d40VAPAnIwUAAAA+GT2Q2Ff+ 9wih1upuqTbNrZ//Z1gpJe+pVwFE3I8Z6w+yeTSrrCP8AN7lXb8s669nv4/czb3/tnrPze3LBEop eneT/z5nxy8j8JMoH/oJAAAA/Il627+Z3F12Pz982xL4qP1YknQ/h+xRN/L+vJGzR+CHe2v0vgb/ 97+GvUlnN8VjSxP4W3/d6P8H/hJIAQAAgE/Go0hjGzFmZlJu0YWZuZu7mVyPR5FlrwBwt1LcbDtm 1D7qf1vuAMAD7/k1MVMp/mhh574fZ/td679/Tx/5Q/9wwC8WjQAAAOCT8a7DwL4V4AduGpO0nxoQ EZk9DnlLiuH93xf4nL3rF6QUW7dy2qNRf/tfse2L9hs9HtX886sH/ORIAQAAgE/VFldk5lpRbA9u D8u3GQ5lGIqpaAk/Ws8CcPQI/HCPZvhvMXyt5ekWwO0+u9UASxbgUQPOo8zC000BAP4cpAAAAMCn 5G2HhPfxw5PPah/5bw+yVAGsHZFttStOJt4A/oj9r8nW87/ZWgDeMXdze5D3PSy/icBPjlkAAADg k/G01L9PAXD3PnhMa8zg7u6eGVIq7dEXDodaa/VisnQvtdZetJz5+FuYFTPfsgwAHtmi/d0av1gG crpv6wCfzvZ3960QQE8mC5AIAP5CqAIAAACfsMzsscMWpW+RRillWT/2sLp4jUmy38c9TaW1Jqmv DNyYWR9URgACPLWr9g/JMltm/1iy2NcFvO1L7ssBtimeWnsBiPmBvxxSAAAA4JOxDwweDw8Li1Tf BCipzdnmubUspUQ0SaWUiJimSRbFDrWYMqM1dzfLtDweakZERJtzbnPmffVy/9otudB3m+nxODTf PdP4oz/LL4v/2Y/w465Yv/DvjRO3p/RDHvnHPv9P+/V9687LXYv+/W/W8tOusza3ryrlvugmM8zT zcw9w3rzTSkui2m+mFmt1aUWrfgQEZkmeWa0dv8LtR8Z2L8FWQDgL4QUAAAA+IT188Meorj7o7F/ PW7fwvUtjF9OHV0pme4rCIZhiAhTmFlrbQ3so61fuP+mnFX+5N61yuHHX+c/PyXx+XprBf6jtv/e d7M0+VtfpxGSmWeGSun1/5kZkvffu91IjvvTfsnNLGJ+z3MA8NMiBQAAAD5JW21/ZkakPdwFEAv1 8GN/0mimUq1WL6XMszItItT6ToFw13AoJSxa7TMCe3fA0+/76CjVbB+0/GVXC3zqAdKjUH+roVjP 9t95QP3oy9+9wWH/iT76KvTpX7cf6z3bMfe/L/v5F+85hN/P+XNXz7jpSS3Gfipnn9bZCwVMZc0F PF4i8Mjn9jIBPzNSAAAA4FO1zwLoYblyRGz7xrYVgVpGl8ndSym9vH+bVr6balYktdamcSv433/b +zBpG3Um4pa3ekcI+tZCdL33GtpPsbDx3VUGH+byfCiPav63G/WOl6b/om3j/dbm/22H3+PHf1hu c//4Wwpg/x2ffq8PfXmAXzhSAAAA4BO2WzC+DfCT1uB8nmMbRtb/y91LsYg5Yl5jnizF3Ku7R1tq ClprmS3VvPRmgbJ9u/UYs/+J3TP548/2J4lj/4THf1dY9e7724+8/zse/x3P811Hze86HH7roPj3 5gue3vb+1oCmT9mPfV9tybJHN24H+4/0fRk9a7YV09y/EGFrLuBBd8xWDhARGRZrvu3hd3gwVYH4 H/gZkAIAAAC/HFvN/5P5/285+ewHmz286Q3O57txnud5nsdxnKap37+UYu77cYCSWmsRyzyzn+Rp v/X2v3TK4EN5f6S3HUc/3QH5KM78pV6fn8FbX4L7kpiHr0Kt1ezBL9ajQRiZaU8yOPsXK9qSd9hm AfzApwTgJ0cKAAAAfPJ2pcX9n7nmAvb3yW0s2TAMpRT3JQsgqbU5QpfxrrU2Ta21WcreFuDuKd82 mfdwqLU2z3Ops3bh0NJ6EO88Rf+xQc4vPijal5RL2hI4kszSbEsE3O+WfxqmPtV3QLzj2+nzGRb4 /tTSW2sr9vfZtvrV6ut4zei/L/2z22uRmRmu5UWUFS39//bg8TNti//fVQAC4C+NFAAAAPjk9fCh R4y6Hw3w4JRy2xEQ0Ueau6SIiJhba5fLZZ7naWp9FsDhcNAuRhqnJdTZyqHd3Tzdh/VB7qVlm1N/ 4YmAP8qHakD4AV8VD1fEbyfP6V52hQBL0N5D0EcVGfix1n7+B78vj2r4953/7suCjG5LDWw5Ne0G c2id0JmRu4ROv//bnw/xP/BzIgUAAAB+ITLVWo86lrhl2zomZWuRqVIGs5AUEaWU1trd3e08zz16 P52ebeFNzxe0OTOzuEdrmc1kpjBZLVb8UGstpRcRtF3vgNmxTNM0z/MWKW35CLO3dKq3vlvtydz7 bQzb+gMuSilPw7btS/6EgOpJLB2Pbl8f835i3KPv8mgpox6Gl4/uWZawUGbFzMxzm9TwsJO8F2IU 5RL2u5fMnCMjUkpLDcOwXRNJ8zxnZhlKX+XwiMsyM9Ukua1r7ZXbM3/0PJ/e8uSC7N9+f/E49mnK Y2u2XwderKUo90kxLZv7TMNQtw2a20u2vN7L+Mz7ny6ztdYy3cxKOfS015YI6I0wj57VlprpO/76 678+4OM3A2E/8KGQAgAAAL8cj2KkHhZ2WwGz0iN0uVzWw/+otQ7D4O6n09U+wmltCXmG4SBpnpdT zf6wrbVayxZE1VrXI1OfptldtVYpMq21KUJSzHOupQrLTMH1aWu/Ka3bjlXXIWqPQ/11W8H9vsOn RfI/MNB6693eM/zvrQHwPv5/+lD7WQxuLguTy2JX7d/XN6ZZ6RsWzfq1Ddn7ns/+QLuUIuuBaEgZ 8c7FgfvnGW87nn5PkP8zV1Xsv+8+w7Lfc7mP/HdfuH/M5RF6GcV2zr89yKPczf45bG38u4kA9+/M R8/8XW+5HzLHEcDPgBQAAAD4Zdqfk+/jlsy4u7tz7+XKGobh6urqeLxy93Ec7+v5M82sDqZ0d681 M0trrbU2DMN6vhqSzNM8SzVPX0MsN1Mpy7OY535q7e494vU15o8eyslKzzhoLdLe4rH1yUiSmbYa hbWFXqUsx+/bGax28WHEfRzYkxXvKsZ+6yXU46jyfeFb34+wHUdLfRrc/T75XjbubqWYmfeAVA8m NWod0Lj/fn0WwPKKRGS/4ErJwnyJfb3IzDzdvc7zaOZmuWtWv3+Gy8m0Pf7pnvbGP0qjfGx9B++p +Ojvz0y525b86j0sklprW6v/00KSR4MYzazF1B8klabyNEcgaTdhIdcqEtsqC/a7M/ZXGMDPjxQA AAD4Bdri5/0/t3P1y+VyOh2Ox2OttZcAmJWIuFwu+3suTQEql8u4lfRP01RK6TXVrbVUK1Z0fzI/ Rygy1lje1wlqsWuv9v3CAjNLs9ZamzNyNhUvMhXznKeY29hmTzWlm6db9aJ5ilKtpJtn8cGLlMt9 ZNE/7o/mMllGkxf1U3dJMrm5F0XTev9QWir1tsNkPexf2BeZ3x/vWy6Pn26epiILU0m1/hNlmCxM 1Yu8L2Dw4m6SZUZPYfRKilKKefb7K3ufRX8di9Qv7L5LQmYls7m7Wa4L7KrMM+6LI3qc21qT7kcJ ZMp6gKrUg0zE2yP/PzkF8J56ih/yNt5sdR+Pnl4vmnj60pTiy9yKtc+if1xr1TpbcdvVtw/+9w38 7j632MoEliu2ZtaeFqc8+pH3h/8/qjIFwF8IKQAAAPBLsy+h3+KfbZKZu9VyOBxOp9NVP9uc52jt vnU/w3pU2BvOpXme520vWmvzNI2leK1VFuuDt4iH3dGW7uZuavJlOGD2w+pSbJcCMLcqt1J89taH Eph5rV5rKaX5lJPNW9eAWZqZF7nXUmoPoXtlgfswjpN7lWyeY9acKS8qpUTJ7Ui/Du5utQ6leGux tiTEGopLa1P307LwXo/Q71OKrfsUe499ZGo92++VDmV/S1OYevxZMrNUK15LNVOJnHvr/uFQ19cr Yle4rrEnIExys5xnrZ0C2aPczH7WnZKV4nUYpDAruxmQkWHzPGdqX+ix/Lytl0jEFq5ub6TtTWXW 31fL6/bWN96PzRG8//6Pouvtlm2SZf+4lBK9+f7hY+6L9vd1ItsszOVgf9dC8ihu3768z55Yr9qU 8j6dYf2e/ugJv2tiAsE/8DEgBQAAAH4hnhZy72/fxyeHw6FHNdM0bdPRtI6js3Xm/P3J5xoG11qn KZaNgKX0aLa1qc8O2Pqr++16EDlvCQgvW4dAD3GLSh3Whv8wi/4Ih8PBbGptXju9lzEFZqXWss0v 2GJ1d79cLpneg7Uer9ZahmHoQ/IyUyruPgxD/9ptysAT+4zJMu+w9ylsF6QXUPSifcsH6/q2+Qib Pq+ux//DoWzXYY1mrZQSEcMw2FKf75lNMneVYjl4tOUx53neHt9MW0XGVtNeal80UNcHV391MrPW U2ZG5DzP60/kkoaD9xKPcRwzt9WS9x/s/37rQMef3FuL81tr20l+fxf1y9ja/T0fXfb9i9onW/T7 9JdvnxrIddT/9q3vX9DyeFzi/vdC7zjhf/o7KLIAwEeAFAAAAPhlWlvH748390fZbc6MeYly+2m2 xTRNkjKbdlGNmUm2P+GfpinVUu3Kr7bQ1723svc/FtFv72Pt1VpkRq1DKb0Tfgm0Sinu9XA89hqE HpL1KL0vLNBu0HoP/Hr0vg/hthB339rdRxUOw1Br3Y5wzazH/72oYUtG7OPA7Tv2O/cvv1wu53Pb Akx3q7UMQ12KI1KRc2vaxi5s12p58IxUk6UX1VpPp9O2DlBShDIt00vZts3Nvfm/1xpsp+95v5FO 2wU5Ho/blLuIKNVam/oXakkBWIRy3aQwT1GKj+O0vQpfff0rSeM43t3dbSmG/Rq8XWbkPjXwF7V1 OmjtFtkf6a8TE7bU1fC0pb+/u/qD9EvRkwiStoKXfkv/SfVkAsL21ip6UFmw/X6td7v/5/pBz9H0 W+4XENALAHwMSAEAAIBfoH1Asg0/09L/3KZpkrKH0N08z+M42m46+vZQfSbAPM8R6jHjPGueI9ql loN5llLdHxx9PzpxffSs9uFcKaUUH6pnWoRq9TXGK/tITGsj9+FwOBwOEXMpVlzmsiyZmS2mNh/q MEfLFiqluLyUWorswegBd69e3DIzenifqUiZFLkcv7ssLYrXYSiHw7GvPNz1fi+BaCk9DjWT1PpB cZNyaQ7oVRVhLZrSt3Njdx2PQ2bLZVphbpduPeLOiKq1j6NnVfqlsNwmKZiU/VItxQieahZhpVhW WSlDKT0H1Ocs9O/eZGazdhG+pK+/+iIzz+dzcY3jKF9i42lcnuTWOBDRD9yXcXe99WD9e3mR33H7 j/aoIX/NELVMuavW3gIQrbW+K3Hf1b9VCvS8T8/UzPO8qwfRtvZiK2DJ3eDMfWIoRvV5E5JMRVJk i8hS3lcF8PRn2f+TLADwoZQ//yEAAAA+KblOo3eZReY0zy3C3Kd5XhbKZbaIaZ7HabqMl3mO1qKF pnme55YmmVpkizYcDsfjydwjlTKZR7aMbG2K6AF/yZSFLM3SDsPhOByLFZeKuVumso8YyGil+FBL Ka7MeZ7u7m7neXI3N5npeDwch6PUpDgcBs+MbIdS5zZdbm8jW3U7no45z6m8OgzH0/HqcIjMNkVG RmvFy9XVsZiK6dnVqVYVVzH3ZaSh3Ky4XIo2DbW+/OJFrfX161e3d+fnz5+fz5d5zuL1eDoeh+Fw qIdDLUXV3CWXajEv3ncBuJehHiOy1sHMb+/uIvX85dXzZ6fnL66Ow9Dmqc3TUIsp29SGUmspljoM 9TAMbqrFj4fhMNRa3C0V2TKi5e35fLmEF0vZV7/6qriXaqehKufDobhrqFXKq+Pp+bNnynSzYSgZ 7XQ8RsxXx5Myp7m11i7TeHU6/U9/+9svnp1ev/7O1J5dHVu0w6G6vNQh06oPx8NRqYx0MymKeymq pfQaCC2JEQ21tMhlasE6mU8pLyXTto0JWzi8bzRYbylmfaiB1vSU3K0UH4b6xRcvZREtZFGql+Kl eK1lniczmUuW5uoXa5pHd5NSlv09X4qX6l7MrfQujC1Xtc4UCN0voch9RkDZ9zIos2920JqIuT/h 130KIHd/+s+YxPzAR4IqAAAA8FnYzQJQnxXfDz8f9TNHxNYo3mN4SS3bwwhneZx5nm9v7ySdTqdS hoiImCUvRZmlr7jbzsy3Muy+IKDPuzOz4j6OZ3cfhtKL3i+Xy/l8vlwuh8Npm9y2PQFz87TqsuI5 TdfXr6epufvV8Xg4HG5ubm5uzqdTORyvjsfB3adp2irJ3b2al2Ju6RallHRvmb3L/CAPk1RSc/Fj HWrOrVnrT+z169emqrwfKWc9q7Gcypu598mC/Ti4n8+b+TS1y+XSmg4HG4bheHWKaYx1QMCyqS6X 0QB9NKCZerPA0i5hrggdlLPGyzkzewqmF18cDoc6uMWUmqvXUkqYl7ThUGThiuoysygmZXV3y1Ls cKzTNLUW4ziO59tyrEXZXLXY6eBWSoaZe2tp6WbFbJYmy/S8L9YwM8+IsChL7qgPLzCzmJeAf+2P kO5n6S/vnyW4Xt5U/TGrWfZBhuu3WBpGSinTfHn+/PnVVVxfX0/T2EdC9LEU+16PbV7A3r7qwb30 O68tJNomYmyFKg8j9q2w/75M5l1t/wA+cqQAAADAL9+uiH0ZXNfavtX//m7zPE/TNE2xxWnu2sbm 9bttXxGh83mUsnek96Jxs1xD+11PtTJ1Hzkv9d2efarf1VDmeZ7G+Xw+9wSEmZ9Opx4GR6iUMk1T a62UuZqfrg5SRuQ0Tefz2cxevPji6upKUmvNXVdXV33koZlSrScjth7yYSim2NbvlaYxIku6ey5T 9JWZp2fHUsqbm7tpmswsIg9DmedZ62REqUXE0APipZI8MpqZmbyUoZRS6zBNt5fLJXMZQXc4HGI8 y6IUcy+1lvWqmrsVDf1bXF1dSXG5XHrCIyIsM7R0p5urb5o3s+PxWAe1y9LucTwep6l58cH7ssDl ta3LtoGhP5MrL5fz1Jqmaby+fl3shburpZmGYZDX1qaSnm3I7E3s27p7bd0Hy4+cmSZJ8zxHRPVi Zq3FWkg/R66rDdalA16WSX6ZS85kaw1Z+ira1L/pkqWy0PrZ0+lYit/e3p7P52majsfj8Xjs6yr3 wfnWe7+NwNjmWRQv/a3e21u2X4pHvy+6b/h/8Kmn6bDtUx/6Fx3AH0cKAAAAfBb28UlEqC0f7Hv4 ++H/PN/H/6Wo+NB0H/Zs5dzrQ+lymWq9663XPVSel+16uaYblolrtQ7bbAJZrOe1Xmvtwfzt7a2k 0+n04sUXp9Pp7u7ucrn0/vOtbOF4PB4P9fr6zTTNfYr+1dXV8+fPJH377R9am168uHrx8lmP8Q6H oZTStwxIkoW7hkOxdC/9n8UsfXZXllLSTM2y1oi4urpy92+++/76+uZwfPbVV1+e7+5H6JVS+n69 HmKW0qvEFS3MzK3WOmSoT+mb5zCTe80wl3mtsnCrmWnmmdkHAfaMQE+7lGKtKXI+lEOxOl5mSZrG ab5kZq11Guce95ZShsE1T/36e1FN78UWtR7dfRzHiDgej5LXzMvUhlo95Es9Rl4ul3j5/HAcpphD WYrL7XCo0UprU4ZlyizNU21JBq0jG12Sebq7zDJi2ZuwLiDsCYu5Za//d6/u3jc19pd+CdnvswCl 1z5ktvtxEutbpTeMDEM9nU59f8HlcsnMZ8+e27q6r6ch+uP3ZIp2AwW293mP/1vbCvXVWvQfZ/t9 2RfIPJz2R7QPfMJIAQAAgM9Ob2aO1kpRP2jtIU0flibJTfuCanfbH65uj5PKXund2wGeP3++nuvK zM0slbKQ3+9Rb61F+DAMXlzSPE/zPF3eTP3wvw7lcDicTqdaXYp5Hue5r6nzUkyyUpba73mepTyd jrUOp9NJ0u3t7atXN89flGfPT6WU8/ncNwteLqPZlLYMKZRUa3VJ1uPVcLc6uNp6XOxZvPZz/nEc +568Pobw5vqcmX3ZgbunfEsBLCfklkUmefFSiqWV1to0TRGSq/+MmVZLMZlcETFNc2b62lN/GErx Q0RkxDxdFFm9DMNhHOZxnud5nqY5QkN1mVLZT8IPx2MpPgyll2zUUiPCzU7H4+k43NzkNE3DMExz tJaZs5lnxjzPfaPhFM3MTqfT2MbIXNrvh3JJK8XCFJHmKfWxhj2Yt1qLF0lyX6Lr4/F0macl4SMz FXdrbWgxLUf81WottZZtnv++pr5XT/Sq+8g51dytvwFLKYfD0Fqr9SBpHM9m+cUXL87n8+3tOVPb +sZtql8ppb+f16mKfUViRMQ4Tq1lrGUUy5s5c6sDWJ+btk89SgEA+HSRAgAAAJ+ddbVbZs7bpoC1 jH9r0l7KpyUtdd6rrYNgbs1dEZpnnc/nYRj6gjrz+/tvFfgRkessgMPhUKrN83S5TPM8j23epv0P w6B1Qd06zr30G/uh981NuKJXvF9dXZVSI+L29vb29vbLr44vX748HA4RUYpfXV0NwxDLjxytNdmc aqV4LdbX//VMxzDIfIkAS7Hq1b2O4/j9999n5pdfvqxDvb29naapZ0/6gnrz2lqWUixaqpfD9zUH Syv6cDh8//2r8/ncr3mPPN1dattAAWnqqY1+9J2ZpRSzPk8xesqjF0qcx7HPFOhPoF/e29ub8+X2 eCrF7HA4KObMSC0JndamvtewtVZrNcu7dpZklpfL3XS5uCtD4zhO81iPdRhKf6nb3KRing87QdoW /5ZqdfA+OL/6shKyuKpLkU3R8whm1X1MNbO+e/L+3dVD9PUdJcnc3eRmNrfxwSg+9YmApf8grfXC h2FbFXE+T/vFfluu59GWin77PMU0tf20P62B/b4X4NEMfxH8A78UpAAAAMBnx2zJAug+yH+87/3h wDN/8gg90u8BXWRqmvLm5ra16LFZZsbc+gFsX8mWmZdpCivDXCLCwvrcdSm++OKFlmnw9+UGPX4r pfTbe0g2TZdp0hcvnh0Ox8Ph0DvS7+7Gcbxkxm9+85tnz55dLpfLZT6dTn06wFbR3Vrm2vtQq2Wm y/tOwFqrNPfD8KEe3Ms8x+s3r29ubo7H4eXLl3fn8ebmJiLdrbWlb7xPQMzMWkoszeTh7lt7ubvf 3t6O41irzxGtadta19rsXt2tlGVuwjTN7t7jW3dFNPelYL6nQvrixv7y9VGCksZxGsdxnsceIWdL d1NoKLW16Xx7589sqEU5mGkYyvlipRT3crlcLpfJi89zXC6Xu7u758PznoLJzDfXt0uBg2f20v6Y I5Qpc0XOWkb0mSuGUoZhMM82tmbWf6Q5SillmpqZRagUq7X2fgcpah0Oh2Uz4loCsNSbSBrvxp4d cPf+w/Z3hbvmeXT30+lknnd358h4/vy52WW8zPM892YKKTNyjv6yyvpAiBa9/n8/FEDvDuwfTr58 +2rDfQXBh/6dBvBDkQIAAACfhX0Y06esb1mAnhGQ1Av+tZuLvv5tj27s+h61Usw951nn89zazfPn z3vz/3QZW9MweJ/MFxGXy6W16ilJpS5b4vqJrqSIpXW8VwQMw9AP4fus9x5R950FV1dXh8Ow7oRf 0hM90aB1433PDszz7O5mS5ojokfmvZM/FX1qnXo5QGYzq6UUyS6Xu5ubm4h4fjr1tQIR2+q4KaPv ALB+sHwajtmaWe+Zt3XXXWbm5XKJ0NXV0aZpWuvSD4fSZu1/dkkR8+HwLGJ2l9lS015r7aMEIrLN Oc9hkrv6gD1LzfMyIDB7k71KdZf58Xg8n2Oaphbz6XRa8ghe3H0oaaUfp+sw1NC4XcnD4XB1dYyI 83iZxlb6QL51oGCmUsrQNPW5DDkUH8rhdHW4Ohzd9f333x9VIqxEqZlppbVMtYg+QLFvfGh9jsDV 1dU2pT8z+0aA/oPv+/m3lQFmdn19/ezZsz54crxc+u2Xy+V4PM5TtCX/UGqt24KArcilx/9bscBb f0H2FQE/5Bdq66B5skEAwMerfOgnAAAA8POzbQT704/XW3z38X5m+5PDz7RMKWVSpi6XcZ5aW8bA W6SmuY2XcZrmTM1zjPOUFubmtVwdT1dXzw6nU65D4/v3iBa3t7d9X4C01AtM0zSOs5kOQ+0dB33G /rfffnt9ff23f/u3L1++vL6+lnQ4HHrpeynlzfXNmze3Ldo0NnO9fHF8+cWzoZbMqF7c5ean4/F8 e352ujqcTsXrN998+/3336f0t3/7N1//6tdv3lx/++13EXIvPVgdhvrs6nR1dRyGmoo2TeaqtWZq nKZS6uFwNPmbNzc9jzCOc++cP5/v/uavfzMUnQ7VzeZpitbcrJZyPAzj5Xw8HE7HY7Rm0lCrMk+H k1Svr69/9/tv3tyMZjK31jJDtRQpY25/+9u/GYqfz7e//tXXd7e3Qz0U2dXxWNzbPD87Ha+eX03T fHd3nuZ2PJ6muX333au7uymVpUiRdfDT6Xg8HiJaZv7huz+Yl0w7HU5e6/l8ub29nedMk7vMdTwO pfjzZ1fFfXD/za+/fP78WSl+d74xK3U41GHwUm9v765vbmLONsfpODy7unLX1MsW3NxtqEUyN5vG Wamr0+n25ubufO4NEb0JYnvXltJHJ5ZSSmvzOojBJTvfXfpowG1/ZM8W6X4FRt9zuZaebL8JD1Jj b4nk3xPbE/YDnyKqAAAAwGfnPQehj+7z1o7o7catbn+tHVg6vSMeP37/glLUWt9m58NwPB0PtZTe 4T9NU79nP7nt6YB+ZruVALh7xNS3zbXW+mnwmzdvJH311VfDMPRS8P6120z4njtIs60KoJRyOBxa eBsvPcIcx8sXX744Hq7uxunbb78dx/H58+dl6KXs09o7oIgweWvz+XzuT0CK29vZvPdEeOYkeSnF rUxturm5mecwlb4+MDIkjeN4Gg79aQzDsG6nb5IOh6HW0tcc9B983Xif4zi3lkpFypYChJDcvY3j +OrVq9989YWZvX79OlO3t7fHOgxDSUWvRCiH4YsvXsg88m6KuD3fjeOYppS3eW6pTF2dnj9//vL1 6+8j5q+//vrm5q61MDPlfhjk0i3SItRCEV4sWkzTVGupxa+Ox0yfW04te+6mL5goRZfL5XQ6ffHl F5fL5e7uJjOPx6OkabpYH2Qg7QP0dQeE91zP4XAwW5r8t/H+vfJ/Kybo76V9imo721/fS+8L2tnz B3wO/M9/CAAAgF+GfGh3S+t/+tz7/R12X3v/d68esN0fmdK26QPLNLthGOQ+zm28TEvhQEhpyr4B vozjPM+RaZnWWvY+7kxFRGtR69BavHr1yt2//vrrvilg2zNX6xCR5/NlnmOaWm+ez1RvMh+GYTlk LnJXa+3ly5e11ul8+cM332bmV1999fXXX5tZH7nflxH2ynxJreU8z7ua84xQprnVw+FU6yHTpqm9 eXPdWri7yXoHeqbu7u5KKdHUI/zj8VDrMh6/lCJpmsZhqMMwTNOUYdPU5rnd3NyM42jWr16fKah5 npU+Tfndd9/1iPrm5qa19uLFC6slTIerkw/19999+8033/S2CDNrc97enM/nqQ/S76/Y69fX33zz 7WE4/fVf//Xd3eVymYZhWE7gI2JqrS2jAbWs0LufaDjP493tzXi5K8qr0+nq6qqf3q9D+CXJXZfL PI7js2fPvvjii76yQUu3v0VEn+wwjuM0TQ/L9dehE1Ipg1lZskJhpmIq7nW8zH3Cf4T6y325TJfL NI7zNLX+p7Xsj/rDg3rif+AXiRQAAADA4lFs/+6MwP2h6/a1W7nA2myvXsbfJ9L37YJrmYCmsZ3P 4+Uy9ai+V2hrLTqIiL72ry+078f4d3d3va++1hpNfTzezc3NNM2Hw+F4PG69371GwMymaXrz5s3t 7dlM7l6KJI3juO6Km/uQgr4PLyK+++673//+95n24sXzFy9e9G6Cy+UyjmdJw6pnAfrOgnEc10Pm yNTxeHUYjtHy7u5ye3OepuzpDHfftirc3t4WH3pz/uVymaa5n3L3Z9ILK3qGYvtxLpfL3e1lmrRN GTAVqWRaa2Gmm5ub8/l8dfW8lkNff+ju8xyX83g8Hr/++uvD4XAeL9+/fjW2uWWcp3GclZKsDMNB 0t2dXr++rnX4t//t/9Vvf/t319fX09hqOUg+jf2FkPx+kOS2XvFwOFjqfHM7nS/TZfQM1/27JZoy +74Ai1BfsjgMQ5/aeHd3t5Xu94P9y+VyPp/XrMGykzIzW4tpmvoLl2k9TdDvME1Tn7n49G3c3wmx eldhy7t+Fz70ryOAvwgaAQAAwGfoj5yCbHvaJS0b7x/PSC/SMpfezPsYNWkJ/HwJuc3d+yr5HomZ tvFscXd7KaX0SXV9A4Dk/bQ/IlrLcRwln+cYL/Nlmf3mtXittZ+3396cb25ujsfj1dWznjLoUwCX sQJW52m8ub67ub6UMrgVq2oxT1MbL3NrTS0OpyHalK4Xz794/frNP/7DP1y/ufvt3/3diy++qLXc nsdp6vP25341hnqU3P0i6fb29rtvv//iyxen07MiO5/PSjPzeZ6ur29ubu7Od+Ojq9ov583NzTyO p+OhlKvL5W669GH+xUqd51kpS1Mom6oPV6fTNMftN68ulymib0kIyc2KWR+2H6XaOOYf/vD9r3/z 9cuXL6dpur05v/zieWvt5ubmcBx+85u/vj3ffPfdd/0lG8f5cpnWjISn8ur5VUzj9Zvbf//f/79P 0+hWv/zi6+PxeHNzvpynu7u7cZwzVcxNlmpDXV6siKzF6lDU2lB9mqdsOWtWNrPSliSOqisi+2z/ V69enU6n3/zmr29u7m5vz4fDqS9x7BH7NM3TFKWU4sWtZlik+o5DySJy7e+ITKt1iIi7u/Plcukl //2zT0dartff9u/et72r90Mu9pmCEIBfCsYBAgCAz9APOghdI6JH4dCyxV3vnhfQg//lFHeXbhhq 6efb6nvbQqV4KbWvguvZgXVzW/aQfhzHm+vzNOUw+Ol0qrW6laGWYTjc3FxfzuOXX37x7NmzPhxu PT+vpZQM3dzcvH59PU55PB7NvRZPzW56+fL5Fy+eRWStRUozH+rhH//xH7///tXp+Oyf/Gv/2vFw GKfp+ubmfD5fxqm1ZsXdq1nJVD+CjhYR8zDU58+fnQ5X89zmuY2X8dWb199///r25jKO0UcEmLmZ pzJ7GNzy2bE+f3Z6+fKlZON4ycxat6X3S0HE5TL27oPLZf7dP3xzfXPXQpIrXWYyz9ShHlqbavV5 zjbdvXj+4tnVlZmmyzTUw/F0qLW0ub25ub67u035cDxepukP3736w6s3rWWpNeQxxzReouXxMNzc 3P3+9//QJwJeLuM0xs3N3Zs3t+dpVJp5sVLc7XQ8WGYtPlS/Og3VNNTyV7/6lZnNfeiBeRmO46X9 4ftXc2tuy6KEYRgy4/nz57/+9a9ba9fX17Uukx37Of/d3V1EOxyOfb9DrxAx+TDUw+Hg7u5l6/XY Cj3mOXuPRq+k2N5vWx2BdqH+tuHiXW/4t53/UxEA/HKQAgAAAJ+hH5cC2IVPb7nDvnegx1y1lh7V S0r1DfZ9RF/tKwi3r8qQLKXse+DmeR7HeZrmHvud78Z5btOUkk6nY08BlOKmnOf57u5cir948XwY htaamWcuqwHHcXzz5vr16+tpmkotx8NzmQ+1SunWXrx4/sWLZ+7W5qmU6la///77b7/9ttbhb//m X/nq668vl8v1zc35cpnn+TJd3EsdDq2lWZF6XfqkVERLRaamcb67O9/d3b55c/39qzfjGJIiVEox K33sX59gYCal1M4u6yMA+mbEzKUborVWSmmtzXMbhmG8zL/7/Tffffv93CJTuWxqKCllZnFPpSkj MmZljm5yt5hjHMdyKFfPTufL+fvv/yDZl199+eb6+vvv33zzzXe3d+FmUo05JT2/uiqepbgUb67n u7vXg9fq5ftXb66vb27vztGnM7i8+OEwDEPNCFMOpudXx6EWN3391ZeHw+HufLmMYynDYThd356/ /e4PkVncD4dDZgzD0Gc1vvzixTAM19fX4zgO9VhKvVwuvZ1hGIbhcHSvks1za22WVLy6lTqUnh7q 162nDO7uJjP18389DPUfvT/38wXe9YZ/R/0/KQDgl4NGAAAAgLd4a8t0b+bf32cf/6/T+K3PsV8n uvcT/rINZlc2dzfz1trlMmbmPAxzG/ujTWOT1Fvlb2+nWjUMffC7SVlKrbWcL7c3N3dqcXp+iqZx nl0lFKYyR1jY9e35++++v767HKs/e/aslGJNtZistmnqmYdidnee6jAU99998835PP7qV7/6q7/6 9TiO53G8TEsZf0QchmM9HKfxnNZKGQ6HGnGcp6m19vrV3eU8mXkpxZXXt+fW5K7DcZim1vcnlmLD UEJ1nkd3Zej19Sx901p++fUXz05XUdp4ubtM49XxJPfj8ThOzWOqw/H1969+94+/vz2nuZspMq2Y QhlNZtM0ebFl0qH0zbfXkv3tX//VV198eT7fjpe5Rcwtn7/40t1/980fvvv29as3b97cRIRqsbk1 pdVhmOfxN7/6+s2bV/VwrHG+vcu//903h+E4R97djst2x7IM2B+GoRfG95RNa0219I8Ph9M8z+Nl Go6HMqhN8zg2SWUoh8Nhmsb+Jrm+vn79+nWftnD95vZ4OD979mxt6Y/jsWxvv14I0ItBMnM4lMvl Iul4PGbqcrmcz5fdm/N+aEU//O8DC55OuHjXNAD6/4HPAVUAAADgM5Q/5s+7H2VduvbwxFUZ2Wf7 m9yt2FIPb8sid+vN/yZTps8txnGeppjmeW4hs8gcp2mc5pQiVaodT0cvZW6TuQ+HEpl355t5bvVQ 69BPrIeW0UIt4/bu8ur1m5vbu5SOx6XV3F3mkdlq8WfPTqdnV8OhHq9Ol2n6H//Hv79M05dffPX1 11/XYbhcznfj+W48313uLtOllPr8+YuhDuM4tj77wJWpudfsp+YWc2uXcb5c5kh5kfkyBr8OVSYv VgYrxcwV0UzKWeMY8zS3lJsPp6uhDmOb3crh6qp4nVPTOH/3/etvv/3uzc00p+bI0JII6EFscYtc SgZSMlcLTS1kfvXsmBktWqicrp4Ph6vrm/Hb717//d9/e3M7K+VumZaWZu4lnz07tZiH48m8X/w2 zhrnNrdooZTSUoreAvDs2bGYT9PkpmI6nY6nQ53nWWbH07Pr65tpjtPVi2mOf/jH393eXOrgL1++ LEM5HA9zmy/jaG7updTh17/+zfevXl/GsdR6fXNzGcfj6bBc2GjrOgnLzHmeL5fLPLVpnKdxvpzH u7vzZby0Od3NvW5vyPVNeJ9+elsy60e9/8kLAL8opAAAAAD+LE9DrMzoDe2PjlX39+wT19ZpAkuB /ZIaSNtSCGaqtQzD0NfRuZu7R87jOLaQu9ZZ8u5Wxmm6uz2/ev369vbWTKfTYTgcUyru5ilpni/z NLnr+YtnL794mZHffvft77/59ng8fvWrXx1Ox5jj5nw3zZfbu9t5bmZW63A4HszKPE+tZe8kj2xt jta2LQbLFkRbuhyWH7YObq5Slp70dZtd1lKjxTi3u7vz3fkSEV7ci7fIUmoLe/36zbffff/69ZvL OKfUInsk+mg6w3p5szdZRGRrkZnzfBmni5fhcDhG+ps3t7/7/Xe//913Y+tjHperbcv5fC3usv6Y FpEtWl/Fl7mNe5C71VqHQxmGoV90ZUTOx6EeT6fi3ub25Zdf3tzezWFe6/XN7bffvRrHqQzleHWS tI3l75cjIl68eHlzc9NnLt7e3rYWw1DNrM+PWC7X9rYw60sB+o27Gf8y87e+zbbCfo73AWxoBAAA APiz9FqA/S39DDwz+hD4bSRbHwS4fdWjB9mvGNQav7kvRd39QFi9/nwKpZtam/O23fZ1ALXW8/l8 e3t7fX2J0Olkh8NhGEpERAtZ9J78KeJyuYzjWGv93e9+9/rNtZm9fPnyeDze3d31pxBNrWV/zD5c oLXomYal12Gddbj+pLmvg+hPvt+536//RLXWiJjaNM+RkkJxaeN43Xvaa/Va6+U8ZerVq1evXr2Z 51a8ljKYXfQO27db6yzyfD6/ejUeh2G8tLu7c4v/f3t3u9y2kSwAtGcAUortrbz/M26lsv6iRAIz fX8MCUGSnWtvsok3e06lFJoiCQJkXOme7p749On0rw+fHh7XEclv7RtjM8K7u7voGaVvJzJNU+Y1 9q61ZvaxycLYEzEzs8Td3d3lsa3L+fPnh3+8e/OPNz99+PBhWdvYlKGt/ePHj+fzeZ7r8XiM28r8 ePHe++n0cD5fzufLeNj49Od5amuu63o8Hl9/HyJiXUfO5WkI5TidL16T8VX52vcN+J8lBQAA8Hu9 zgLEbWfBzOy9jXtGSLaVZ29h89N67vOX2sL+UTJQax1JhLFZwCj/Xpa2rqfL5TIaDZZljYhpii3w nqZpbW0En/f3b9rhcD6fPn08vX//8Zdffiml/Pzzz2/evFnX9XQ61TpP83xel9HlPoLeEjWz1TrX uo41/2ma5nkeK9K3WPS6cD3GJYwB9aNmYbyxMSJhnue2tCVbRL2bj1FzuZw/fj4/Pp57xNs3x8Px WLJe1qXEdHd/X6Msa6t1Ln0da/IvJt5vq9yttVLK8Tjf3R0i1/P5fLksnz6dlrWfz8vS8nAoyzJW 1K/R9bie0zRFbZk1+7jmZWw9uH1YpcSWAhhTHiKizlPWErU8Xs6nh/O7d++W3j58+HA6X0o9XpbL +4+fHy/teH+ode591HSMV47e+1j5/+WXf91OJMb6/7q0beX/1jbylLMYH+l+kf/Fl/D11/Kv/i8D +OFIAQAA/AGeh+77/dWf3FZxy21VP0ZkOKbi7wP+jBw7/I1BgJmjnH+udYqI1q7r7pmRGb1n72NQ fETE4RDzPB8Oh4hrDcLxeIzSa62jJv90/vzrr79G6b3H27dvpmm6rK1EzIe7dV0/vX//cFmWpdU6 39+/eff2H7331h62IH9b29/e7XZjW3Ye0XUpT78ap1RrnQ5z9kNr2bP0nj2i9+g9ekT/dDnct+N0 7BHH4910OEbrS5ZSW7nuJfDsgo8UwIiQe+/TNN3d3d3dHdrSWkbJUp4SK9HaNYQeMfbIiUwlsvVS n97hdnZjll7cUjnjjMb9/VYgUOe71pbPD6fHy7v5ePfrh4/nyzrP5XR6OJ1O44k9M1qrtY70wu1D j1LKPJfMXJexRURtrffeRwnAfsbkrsP/Oo3y1Xi/l983wT/wNVIAAAB/jH0wvN25zwtsAwJeRGi3 cPrpzoyMiG2b9+0powN8/FNKv/UXzLXWsZt9xJjAfxjpgzFJbvSiX5bH3mOaSkR9fLy8f/9+1P9H xLIs2dfxDk+nU4syz/PxeLy/++n+/v58Xtb18/l83gLM12X/+0KG5xMSYx+lZ+Y0Tb3WdVmW0krJ HjWil6nUzKjlMN8djnettbX3viylTLt0Q+6v8HbQUQw/qgBKKS37NE11inJNmkTvsfbLusZIAWwz 80ePQ+89R5lG1u1XY8rgbUE+tl33tqMvayt1jlIi18fL+vHT6f7+fll71Glt/XS+tIwsUeo4xHWX h3jeuXA8Htd1zd7HB73VJqzruj3mxTz/7ZsWzyov8sWvpACAr5ECAAD4w3yxI2D71W886/bEjBiB fSmltDXrlLeX7dOUYzf4yFrLfK0qz2u4WOvU+yj4r2N5fFSS11rv7u5qra0vDw+f57lmZi+xtCzT oUeNiLW3ZVlba9F6Zql1OszHWqZ17efz8vj4+Pj4eLlcpvk4pvHvCgFenss0lXmeR0w7OurHI7cR ibXWjMgSEVGnOuYHZmSPuL87Hu/vD4dDP5/b2ntmKbeChy8tdI/THDditxPe8XCImFqU62tM8zxH 75eeY5LB9X2OOQtxq5XYTmFLYGyNBmMW4HjM1rsxH6b1smaZWub7j6fpcHec51Lqw8P50+eH3vvh UKdpKlON3kerwtOEv15KieXSWutbf8c43Ij/h/04wLhOJazxJdb/gW8kBQAA8Ed6UQvwLSHZi0eW krWWiDifz/M8j0l1I7jNzOXSbmvY14ixrSOyXCPieDzM87GUWJZlVJXf3d29ffv2cDi0vjw8PKxr 7y17i3XtYx/7ZWlb8Lwube05lcwsl8u6rp+uh7itsUfECOmn66D/ks8H8o2pfltoPe6cpinzuk19 reVwrLfx+L33NSJuYfkUt4kJ01xKTFuT/xcTK2Ou/ovug9b7eV2O01xqiXxKDWwfzT7C389luG3K 8GRbkN8qEUZyJiJ6iVLK2rNE7RGnh/O7yxIxlZqnh/P7j5/PS8yH0qNMUUtMGU9N/pnZW9u/md57 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAXFgzPQAAAEFJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Ef1f8nO8qLr/3v6AAABQGVYSWZNTQAqAAAACAAI ARoABQAAAAEAAABuARsABQAAAAEAAAB2ASgAAwAAAAEAAgAAATEAAgAAABAAAAB+ATIAAgAAABQA AACOATsAAgAAAAkAAACigpgAAgAAADoAAACsh2kABAAAAAEAAADmAAABBgAAAEgAAAABAAAASAAA AAFwYWludC5uZXQgNC4wLjUAMjAxMDowMzowOSAyMjo0ODoyNwBNaW5oIFRhbgAAQ3JlYXRlZCBm b3IgcHVibGljIHVzZSBieSBNaW5oIFRhbiwgYWthIGRpZ2l0YWxjaXRpemVuLmNhAAACoAIABAAA AAEAAAUAoAMABAAAAAEAAAPAAAAAAAAAAAMBGgAFAAAAAQAAATABGwAFAAAAAQAAATgBKAADAAAA AQACAAAAAAAAAAAASAAAAAEAAABIAAAAARp7h3YAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDQt MjZUMjE6MjE6MzgrMDg6MDCC5zvyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTAyLTA5VDIxOjQ5 OjQ3KzA4OjAwM1+M5wAAABR0RVh0ZXhpZjpBcnRpc3QATWluaCBUYW6taipmAAAASHRFWHRleGlm OkNvcHlyaWdodABDcmVhdGVkIGZvciBwdWJsaWMgdXNlIGJ5IE1pbmggVGFuLCBha2EgZGlnaXRh bGNpdGl6ZW4uY2HRBlLTAAAAIXRFWHRleGlmOkRhdGVUaW1lADIwMTA6MDM6MDkgMjI6NDg6MjfG ktHCAAAAGHRFWHRleGlmOkV4aWZJbWFnZUxlbmd0aAA5NjBCJII/AAAAGHRFWHRleGlmOkV4aWZJ bWFnZVdpZHRoADEyODC7vzJoAAAAE3RFWHRleGlmOkV4aWZPZmZzZXQAMjMwtCelEQAAAB10RVh0 ZXhpZjpTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjUMXES9AAAAH3RFWHRleGlmOnRodW1ibmFpbDpS ZXNvbHV0aW9uVW5pdAAyJUBe0wAAAB90RVh0ZXhpZjp0aHVtYm5haWw6WFJlc29sdXRpb24ANzIv MdqHGCwAAAAfdEVYdGV4aWY6dGh1bWJuYWlsOllSZXNvbHV0aW9uADcyLzF074m9AAAAKXRFWHRp Y2M6Y29weXJpZ2h0AENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOdVZqnwAAAAUdEVYdGljYzpk ZXNjcmlwdGlvbgBpTWFjHfmzywAAABV0RVh0aWNjOm1hbnVmYWN0dXJlcgBpTWFjjZvqowAAAA50 RVh0aWNjOm1vZGVsAGlNYWP8CYmPAAAAAElFTkSuQmCC --=-=-= Content-Type: text/plain -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> --=-=-=--
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Mar 2023 09:48:02 +0000 Resent-Message-ID: <handler.62048.B62048.167835527528165 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.167835527528165 (code B ref 62048); Thu, 09 Mar 2023 09:48:02 +0000 Received: (at 62048) by debbugs.gnu.org; 9 Mar 2023 09:47:55 +0000 Received: from localhost ([127.0.0.1]:50915 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1paCsN-0007KA-19 for submit <at> debbugs.gnu.org; Thu, 09 Mar 2023 04:47:55 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45726) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1paCsK-0007JM-Ks for 62048 <at> debbugs.gnu.org; Thu, 09 Mar 2023 04:47:53 -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 1paCsF-0001oJ-4T; Thu, 09 Mar 2023 04:47:47 -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=Fxl8Bm1lvuSo+LnKq5maHZWhDTL2zwOPf6yfs4a1ZNc=; b=Gn1xuoDZl2wC N3puxx5CGQaf5ZLTruCDVDwdnl4V0w+XQWLsiTmzFPu5DMl6DrSGfLUdu9hWAAqduyFaYzcJJjfz6 /ERXUs+J5dZglhMPyeKhPMQWYUZY2zwXWj4vddC/ueeKTem5kHIVj0/FAZsnfJAAb0X/zDF76kgpE l8pM/Qttm3O1c5QaUVETUTzRGIn2sqpv5mVzCnSjtWQ27WTf7h6333arleJZ8/ijXvS+6lnIpl/oN 9UQdyj172v0oqSPw9aEB9pbNk7oyUcM7QkWB3wGd52Xu4uCgDHiBTWPZBzQS4ohRFboxk1xqGvxaG GTlkddG7A92gd92pzRYLMA==; 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 1paCsE-0001IH-Il; Thu, 09 Mar 2023 04:47:46 -0500 Date: Thu, 09 Mar 2023 11:47:46 +0200 Message-Id: <83edpy2r3x.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87sfeecmom.fsf@localhost> (message from Ihor Radchenko on Thu, 09 Mar 2023 09:13:13 +0000) References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> <83v8ja2z4d.fsf@HIDDEN> <87sfeecmom.fsf@localhost> X-Spam-Score: -2.3 (--) 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 (---) > From: Ihor Radchenko <yantar92@HIDDEN> > Cc: 62048 <at> debbugs.gnu.org > Date: Thu, 09 Mar 2023 09:13:13 +0000 > > > That shouldn't happen: if an image is taller than the window, then > > C-n/C-p use window-vscroll to scroll the image only partially, at > > least as long as line-move-visual is non-nil (which it is by default). > > Interesting. I did not notice this because this feature only manifests > itself on really tall images. The images that are about screen height > still feel jumpy. AFAIU the code, this is intentional: the goal of using vscroll in C-n/C-p is to make sure the user can see all the parts of the tall image. Smooth scrolling is not the goal; if you want that, try pixel-scroll-precision-mode. > 1. Scrolling a very tall image with C-n/C-p https://0x0.st/HibG.mkv > - Emacs behaves nicely, except at the beginning/end of the image > - At the beginning the image suddenly jumps half a screen > May this behaviour be somehow customized? > - At the end, the image disappears very quickly. Maybe something do > to with end of buffer. No, it happens once the last part is seen in its entirety; see above regarding the goal. > 2. Scrolling a very tall image with mouse https://0x0.st/Hibk.mkv > - Unexpectedly, most of the tall image is skipped upon mouse scroll. > Bug? I cannot reproduce this on my system, using drawing.svg you posted and another large image I have here. Mouse scrolls behave for me like C-n/C-p does. > 3. Scrolling a near-screen tall image with C-n/C-p https://0x0.st/Hibn.mkv > - Note how the image goes across the screen in just a few "jumps" > (C-n strokes). This is the commonly observed behaviour in the images > I often deal with. Probably something to do with what initial > half-screen jump in (1). If it jumps after all the portions of the image have been seen, and the last portion is completely visible, that's the intended behavior. > I think that jumping half screen at the beginning/end of the image > is too drastic, especially for images near as tall as screen > height. It would help if this behaviour is fixed or made > customizable. That's because you expect something C-n/C-p weren't programmed to do, see above. If someone wants to work on making the scrolling more smooth, I won't object, but the current code doesn't try to provide smooth scrolling, only a chance to see the whole image part by part. Please don't forget: . The code in C-n/C-p that scrolls partially is not only for tall images, it is also for tall text (try using a very large font for some face or part of the buffer text). The relevant parts of Emacs treat tall screen lines the same no matter what caused the large height, whether an image or some tall text. . The code in C-n/C-p needs to strike a fine balance between smooth scrolling and user expectation that text that is not too large be scrolled one line at a time, i.e. that you won't need several C-n/C-p key strokes to move the display by a single screen line. As image height goes smaller and smaller, at some point it is reasonable to expect that a single C-n/C-p will scroll across the entire line which contains the image, not just some part of that line. The question is where to draw the line (pun intended); the code has some heuristic regarding that.
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Mar 2023 10:54:01 +0000 Resent-Message-ID: <handler.62048.B62048.16783592332688 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.16783592332688 (code B ref 62048); Thu, 09 Mar 2023 10:54:01 +0000 Received: (at 62048) by debbugs.gnu.org; 9 Mar 2023 10:53:53 +0000 Received: from localhost ([127.0.0.1]:51048 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1paDuC-0000hH-Ih for submit <at> debbugs.gnu.org; Thu, 09 Mar 2023 05:53:53 -0500 Received: from mout01.posteo.de ([185.67.36.65]:36879) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1paDu9-0000gz-Ji for 62048 <at> debbugs.gnu.org; Thu, 09 Mar 2023 05:53:50 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 5E1CE240066 for <62048 <at> debbugs.gnu.org>; Thu, 9 Mar 2023 11:53:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1678359223; bh=ZKTR9yOqcSV/TWdLA9nqSGRgVozIxRkVvXlANuaqXi0=; h=From:To:Cc:Subject:Date:From; b=IKmdaHhcsHSxzoWy1HVDq8HJbV0ylwfj/7RYJwr+WfCWCxEDsbaa71AH17ayucY1W FHQ8AOORgO0g9HuvuyPWeBiRlJSpSbmDl6lSbrZ3PngVPhvzl4X2YBucNEzg5GYX9L JOhNVCnHoKDGyb9c1itlCMkF1Vsj6T2xRr0jFFaiSHoRlkonGWEIqNVLDgqVBMK9QG idd1KJaGnzch13SZtV/iGr+96+ER48Xmu9ia7xMRlBv3COvLHhWh9vkH//mrrcjk42 jL6Rsrexvujv5y6KqZxb5ZnMX2kSSD8dAXQqTcNeTYn8hoM1LHrsGOoQ2xbEoGtcUy enTC/noNwiKIg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PXQyt4tPRz9rxD; Thu, 9 Mar 2023 11:53:41 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> In-Reply-To: <83edpy2r3x.fsf@HIDDEN> References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> <83v8ja2z4d.fsf@HIDDEN> <87sfeecmom.fsf@localhost> <83edpy2r3x.fsf@HIDDEN> Date: Thu, 09 Mar 2023 10:55:09 +0000 Message-ID: <87o7p2chyq.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) 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 (---) Eli Zaretskii <eliz@HIDDEN> writes: >> Interesting. I did not notice this because this feature only manifests >> itself on really tall images. The images that are about screen height >> still feel jumpy. > > AFAIU the code, this is intentional: the goal of using vscroll in > C-n/C-p is to make sure the user can see all the parts of the tall > image. Smooth scrolling is not the goal; if you want that, try > pixel-scroll-precision-mode. I do use pixel-scroll-precision-mode myself. However, it only works with a mouse - not the most common interaction model with Emacs. Further, the comment on top of `line-move' implies that it already performs a mixed role. ;; This is like line-move-1 except that it also performs ;; vertical scrolling of tall images if appropriate. ;; That is not really a clean thing to do, since it mixes ;; scrolling with cursor motion. But so far we don't have ;; a cleaner solution to the problem of making C-n do something ;; useful given a tall image. Documentation Move forward ARG lines. If NOERROR, don't signal an error if we can't move ARG lines. TO-END is unused. TRY-VSCROLL controls whether to vscroll tall lines: if either auto-window-vscroll or TRY-VSCROLL is nil, this function will not vscroll. So, smooth scrolling is partially a goal, de facto. >> 2. Scrolling a very tall image with mouse https://0x0.st/Hibk.mkv >> - Unexpectedly, most of the tall image is skipped upon mouse scroll. >> Bug? > > I cannot reproduce this on my system, using drawing.svg you posted and > another large image I have here. Mouse scrolls behave for me like > C-n/C-p does. Exact steps: 1. emacs -Q 2. M-: (with-silent-modifications (insert-sliced-image (create-image "~/Downloads/drawing.svg"))) 3. scroll up with mouse Observed: top of the image is displayed Expected: bottom of the image is partially revealed I can sometimes observe similar issue when scrolling across an image in other scenarios. I have a feeling that scrolling is always done properly when the point is on image line right before mouse scrolling. When point is on other lines, I sometimes see unexpected jumps of even a hang (C-g works). In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.17.6) of 2023-02-13 built on localhost Repository revision: df5c1c9370ca3c6a6e119278ef6bb1e3bca4d578 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Gentoo Linux Configured using: 'configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --datarootdir=/usr/share --disable-silent-rules --docdir=/usr/share/doc/emacs-30.0.9999 --htmldir=/usr/share/doc/emacs-30.0.9999/html --libdir=/usr/lib64 --program-suffix=-emacs-30-vcs --includedir=/usr/include/emacs-30-vcs --infodir=/usr/share/info/emacs-30-vcs --localstatedir=/var --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp --without-compress-install --without-hesiod --without-pop --with-file-notification=inotify --with-pdumper --enable-acl --with-dbus --with-modules --without-gameuser --with-libgmp --without-gpm --with-native-compilation=aot --with-json --without-kerberos --without-kerberos5 --without-lcms2 --with-xml2 --without-mailutils --without-selinux --without-sqlite3 --with-gnutls --without-libsystemd --with-threads --without-tree-sitter --with-wide-int --with-sound=oss --with-zlib --with-x --without-pgtk --without-ns --without-gconf --without-gsettings --without-toolkit-scroll-bars --with-xpm --with-xft --with-cairo --with-harfbuzz --without-libotf --without-m17n-flt --with-x-toolkit=no --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --without-webp --with-imagemagick --with-dumping=pdumper 'CFLAGS=-march=native -O3 -pipe' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ IMAGEMAGICK JPEG JSON LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix >> 3. Scrolling a near-screen tall image with C-n/C-p https://0x0.st/Hibn.mkv >> - Note how the image goes across the screen in just a few "jumps" >> (C-n strokes). This is the commonly observed behaviour in the images >> I often deal with. Probably something to do with what initial >> half-screen jump in (1). > > If it jumps after all the portions of the image have been seen, and > the last portion is completely visible, that's the intended behavior. Sure. Can it be made customizable? >> I think that jumping half screen at the beginning/end of the image >> is too drastic, especially for images near as tall as screen >> height. It would help if this behaviour is fixed or made >> customizable. > > That's because you expect something C-n/C-p weren't programmed to do, > see above. If someone wants to work on making the scrolling more > smooth, I won't object, but the current code doesn't try to provide > smooth scrolling, only a chance to see the whole image part by part. Is all the relevant code in `line-move'? I had difficulties with debugging `line-move' because debugger performs redisplay and I see image scrolled half-way even before entering `line-move' in the debugger. > Please don't forget: > > . The code in C-n/C-p that scrolls partially is not only for tall > images, it is also for tall text (try using a very large font for > some face or part of the buffer text). The relevant parts of > Emacs treat tall screen lines the same no matter what caused the > large height, whether an image or some tall text. Sure. But if we are talking about this much tall text, human eye will treat it as an image anyway. I see no problem with preferring more smooth scrolling here. > . The code in C-n/C-p needs to strike a fine balance between smooth > scrolling and user expectation that text that is not too large be > scrolled one line at a time, i.e. that you won't need several > C-n/C-p key strokes to move the display by a single screen line. > As image height goes smaller and smaller, at some point it is > reasonable to expect that a single C-n/C-p will scroll across the > entire line which contains the image, not just some part of that > line. The question is where to draw the line (pun intended); the > code has some heuristic regarding that. Are you referring to the follow excerpt from `line-move': ;; If we moved into a tall line, set vscroll to make ;; scrolling through tall images more smooth. (let ((lh (line-pixel-height)) (edges (window-inside-pixel-edges)) (dlh (default-line-height)) winh) (setq winh (- (nth 3 edges) (nth 1 edges) 1)) (if (and (< arg 0) (< (point) (window-start)) (> lh winh)) (set-window-vscroll nil (- lh dlh) t))) This is only for moving up, and the threshold appears to be window height. Do I understand correctly? -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 09 Mar 2023 12:18:01 +0000 Resent-Message-ID: <handler.62048.B62048.167836422912985 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.167836422912985 (code B ref 62048); Thu, 09 Mar 2023 12:18:01 +0000 Received: (at 62048) by debbugs.gnu.org; 9 Mar 2023 12:17:09 +0000 Received: from localhost ([127.0.0.1]:51087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1paFCm-0003NM-LY for submit <at> debbugs.gnu.org; Thu, 09 Mar 2023 07:17:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35028) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1paFCk-0003Ml-0X for 62048 <at> debbugs.gnu.org; Thu, 09 Mar 2023 07:17:07 -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 1paFCe-0004Y7-6A; Thu, 09 Mar 2023 07:17:00 -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=TH9OGq7xNehIzmznnQbHwAuJbUVNqgFVZUtnfMPCmWQ=; b=WsmPZyYiyT0T GSRvEEFzFvtE4KO4UktW+A+XufSuaPZ8IX0XQkWgN1tpvBZrQKWtcUDsF7LXLbnC6hDc05zWkpg9X 3vbc3fE2FFbEhLWNDWZHAA0HMaII5z1uVGHhwBaWKpZDXBRLaPNRZZYoydhUZw1P5vTZfQggPM1J5 ch3+B6u0mbT8JZiNPHNGss0gzhZ9vaT5Xa6caBriwkB0OJM1w++F6dFyTsnOa5OYB8SknhzQJ2pHE mZw5WgOEKf/+ciKvvLiP4X+oTvDdT31xjErxvwwqFG00VfshZcXKVEkFHT1N0TxNLXPBNm/tOBo6X Z2/D9Ykr8l6pUtQh9lQ4uQ==; 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 1paFCV-00030A-OZ; Thu, 09 Mar 2023 07:16:59 -0500 Date: Thu, 09 Mar 2023 14:16:46 +0200 Message-Id: <83zg8m15n5.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87o7p2chyq.fsf@localhost> (message from Ihor Radchenko on Thu, 09 Mar 2023 10:55:09 +0000) References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> <83v8ja2z4d.fsf@HIDDEN> <87sfeecmom.fsf@localhost> <83edpy2r3x.fsf@HIDDEN> <87o7p2chyq.fsf@localhost> X-Spam-Score: -2.3 (--) 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 (---) > From: Ihor Radchenko <yantar92@HIDDEN> > Cc: 62048 <at> debbugs.gnu.org > Date: Thu, 09 Mar 2023 10:55:09 +0000 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> Interesting. I did not notice this because this feature only manifests > >> itself on really tall images. The images that are about screen height > >> still feel jumpy. > > > > AFAIU the code, this is intentional: the goal of using vscroll in > > C-n/C-p is to make sure the user can see all the parts of the tall > > image. Smooth scrolling is not the goal; if you want that, try > > pixel-scroll-precision-mode. > > I do use pixel-scroll-precision-mode myself. However, it only works with > a mouse - not the most common interaction model with Emacs. > > Further, the comment on top of `line-move' implies that it already > performs a mixed role. > > ;; This is like line-move-1 except that it also performs > ;; vertical scrolling of tall images if appropriate. > ;; That is not really a clean thing to do, since it mixes > ;; scrolling with cursor motion. But so far we don't have > ;; a cleaner solution to the problem of making C-n do something > ;; useful given a tall image. > > Documentation > Move forward ARG lines. > > If NOERROR, don't signal an error if we can't move ARG lines. > TO-END is unused. > TRY-VSCROLL controls whether to vscroll tall lines: if either > auto-window-vscroll or TRY-VSCROLL is nil, this function will > not vscroll. > > So, smooth scrolling is partially a goal, de facto. No, it isn't: the doc string never says anything about smooth scrolling (and if it did, that would be a lie). Also note the "if appropriate" part. > >> 2. Scrolling a very tall image with mouse https://0x0.st/Hibk.mkv > >> - Unexpectedly, most of the tall image is skipped upon mouse scroll. > >> Bug? > > > > I cannot reproduce this on my system, using drawing.svg you posted and > > another large image I have here. Mouse scrolls behave for me like > > C-n/C-p does. > > Exact steps: > 1. emacs -Q > 2. M-: (with-silent-modifications (insert-sliced-image (create-image "~/Downloads/drawing.svg"))) > 3. scroll up with mouse > Observed: top of the image is displayed > Expected: bottom of the image is partially revealed I don't understand the expectation. Scrolling by vscroll only happens when before the scroll some part of the image is visible, which is not what happens here. If you want to change that, feel free to hack on the code in simple.el, but there was no intent to cover this particular use case, and the code is already quite complicated (to say the least). > I can sometimes observe similar issue when scrolling across an image in > other scenarios. I have a feeling that scrolling is always done properly > when the point is on image line right before mouse scrolling. When point > is on other lines, I sometimes see unexpected jumps of even a hang (C-g > works). You should always keep in mind that Emacs has no idea about what's beyond the window, for display purposes. There's no way of saying whether a given 'display property whose value is an image spec will be taller than the window, except by actually displaying that image (or at least simulating the display internally). So you expect something that it is far from easy to do. Scrolling commands were never meant to allow smooth scrolling through tall screen lines. > >> 3. Scrolling a near-screen tall image with C-n/C-p https://0x0.st/Hibn.mkv > >> - Note how the image goes across the screen in just a few "jumps" > >> (C-n strokes). This is the commonly observed behaviour in the images > >> I often deal with. Probably something to do with what initial > >> half-screen jump in (1). > > > > If it jumps after all the portions of the image have been seen, and > > the last portion is completely visible, that's the intended behavior. > > Sure. Can it be made customizable? What do you want to customize, and in what terms? > >> I think that jumping half screen at the beginning/end of the image > >> is too drastic, especially for images near as tall as screen > >> height. It would help if this behaviour is fixed or made > >> customizable. > > > > That's because you expect something C-n/C-p weren't programmed to do, > > see above. If someone wants to work on making the scrolling more > > smooth, I won't object, but the current code doesn't try to provide > > smooth scrolling, only a chance to see the whole image part by part. > > Is all the relevant code in `line-move'? That in line-move-partial, AFAIR. > I had difficulties with debugging `line-move' because debugger > performs redisplay and I see image scrolled half-way even before > entering `line-move' in the debugger. Welcome to the club. printf (a.k.a. "message") debugging is your friend. > > Please don't forget: > > > > . The code in C-n/C-p that scrolls partially is not only for tall > > images, it is also for tall text (try using a very large font for > > some face or part of the buffer text). The relevant parts of > > Emacs treat tall screen lines the same no matter what caused the > > large height, whether an image or some tall text. > > Sure. But if we are talking about this much tall text, human eye will > treat it as an image anyway. I see no problem with preferring more > smooth scrolling here. We are mis-communicating: I actually meant the situation where the text is taller than the default, but not too tall. I also disagree with your assessment of what the human eye will do: I think that is only true if what you see in a single window-full is illegible (because the text is too tall or the window too small in height). In all other cases, the human eye has no problem reading the text if, for example, the window shows 3/4 of the text. Images are different in this respect. > > . The code in C-n/C-p needs to strike a fine balance between smooth > > scrolling and user expectation that text that is not too large be > > scrolled one line at a time, i.e. that you won't need several > > C-n/C-p key strokes to move the display by a single screen line. > > As image height goes smaller and smaller, at some point it is > > reasonable to expect that a single C-n/C-p will scroll across the > > entire line which contains the image, not just some part of that > > line. The question is where to draw the line (pun intended); the > > code has some heuristic regarding that. > > Are you referring to the follow excerpt from `line-move': > > ;; If we moved into a tall line, set vscroll to make > ;; scrolling through tall images more smooth. > (let ((lh (line-pixel-height)) > (edges (window-inside-pixel-edges)) > (dlh (default-line-height)) > winh) > (setq winh (- (nth 3 edges) (nth 1 edges) 1)) > (if (and (< arg 0) > (< (point) (window-start)) > (> lh winh)) > (set-window-vscroll > nil > (- lh dlh) t))) There's a similar code in line-move-partial as well.
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Ihor Radchenko <yantar92@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 11 Mar 2023 11:09:02 +0000 Resent-Message-ID: <handler.62048.B62048.16785329327699 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.16785329327699 (code B ref 62048); Sat, 11 Mar 2023 11:09:02 +0000 Received: (at 62048) by debbugs.gnu.org; 11 Mar 2023 11:08:52 +0000 Received: from localhost ([127.0.0.1]:56627 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pax5o-000207-2x for submit <at> debbugs.gnu.org; Sat, 11 Mar 2023 06:08:52 -0500 Received: from mout01.posteo.de ([185.67.36.65]:56125) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <yantar92@HIDDEN>) id 1pax5l-0001zu-Sw for 62048 <at> debbugs.gnu.org; Sat, 11 Mar 2023 06:08:50 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 04F442402EA for <62048 <at> debbugs.gnu.org>; Sat, 11 Mar 2023 12:08:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1678532924; bh=0wQwFGrbrGSAklzwxmUxPnMuea/4dePmxLdeJSC1RP8=; h=From:To:Cc:Subject:Date:From; b=SVNISmQLC8KpWH4T5XHTfHNyHCDqVJC9d3mWzQ0hfqgluVe7pzmLiYvSoGZ1hGfH7 lBuUfPS/DsNlfn86CwFbT26g3jyPT+kx+Vj7sAhT3/djlpDuCaQnuB8Mtv2YilJEry n7xOuK05CHoOZ4Zecev5SZKAbjXWE2nXNLuAr8H7UOwODFZomGFTMtXIjULp8IG7DO KO3Tas8q1YQGNgAL62g0jRXQudcFRpcduOhFTwGWOYeMZiWTMGHs1DDtqXGt4OA+kX c+MVlcbUOaTk7sbvP2IkjKoe5vRbKii/31DaFMb156ulddeTIqMoFyY7X2cuRpV3LR Az2MtDQcFqISA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PYgCD5J9Wz6tqt; Sat, 11 Mar 2023 12:08:40 +0100 (CET) From: Ihor Radchenko <yantar92@HIDDEN> In-Reply-To: <83zg8m15n5.fsf@HIDDEN> References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> <83v8ja2z4d.fsf@HIDDEN> <87sfeecmom.fsf@localhost> <83edpy2r3x.fsf@HIDDEN> <87o7p2chyq.fsf@localhost> <83zg8m15n5.fsf@HIDDEN> Date: Sat, 11 Mar 2023 11:10:10 +0000 Message-ID: <87r0tvwnl9.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) 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 (---) Eli Zaretskii <eliz@HIDDEN> writes: >> Observed: top of the image is displayed >> Expected: bottom of the image is partially revealed > > I don't understand the expectation. Scrolling by vscroll only happens > when before the scroll some part of the image is visible, which is not > what happens here. > > If you want to change that, feel free to hack on the code in > simple.el, but there was no intent to cover this particular use case, > and the code is already quite complicated (to say the least). > ... > You should always keep in mind that Emacs has no idea about what's > beyond the window, for display purposes. There's no way of saying > whether a given 'display property whose value is an image spec will be > taller than the window, except by actually displaying that image (or > at least simulating the display internally). So you expect something > that it is far from easy to do. > > Scrolling commands were never meant to allow smooth scrolling through > tall screen lines. What if the code instead tries to vscroll standard line height first and only then decide if we want to scroll further, displaying tall line? > What do you want to customize, and in what terms? I was referring to >> (if (and (< arg 0) >> (< (point) (window-start)) >> (> lh winh)) >> (set-window-vscroll >> nil >> (- lh dlh) t))) May we allow users to customize ~(> lh winh)~ condition? By providing a custom setting that will determine the threshold for partial scroll: `line-move-height-threshold'. The default value will be 'window making lines taller than window height to trigger partial scroll. Alternative values could be a subset of pixel specs, like (NUM) or (X . UNIT). Also, on the initial report. Is it possible to increase default buffer-wise line-spacing via text property? (AFAIU, decreasing is impossible). -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
X-Loop: help-debbugs@HIDDEN Subject: bug#62048: 30.0.50; Non-nil `line-spacing' takes precendence over 'line-height t text property Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 11 Mar 2023 12:30:02 +0000 Resent-Message-ID: <handler.62048.B62048.167853775626030 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 62048 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko <yantar92@HIDDEN> Cc: 62048 <at> debbugs.gnu.org Received: via spool by 62048-submit <at> debbugs.gnu.org id=B62048.167853775626030 (code B ref 62048); Sat, 11 Mar 2023 12:30:02 +0000 Received: (at 62048) by debbugs.gnu.org; 11 Mar 2023 12:29:16 +0000 Received: from localhost ([127.0.0.1]:56728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1payLb-0006ll-Nb for submit <at> debbugs.gnu.org; Sat, 11 Mar 2023 07:29:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57460) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1payLZ-0006lY-Dt for 62048 <at> debbugs.gnu.org; Sat, 11 Mar 2023 07:29:14 -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 1payLT-0003Mb-Cs; Sat, 11 Mar 2023 07:29:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=VwCSZTkvQHQ1ArGXyMkP2Nk1ow7VujPopuhEwDTY8YE=; b=ZgLglGmltIxG9VeAlNJ+ pfvERgBc8WiclJTMM0W50sp2uBWEk9SYAhdORfuNA9sU6FzgdxdX6GoOHZMqMutwQUWHQsWINlGdE 2ApB0MXjnYXfFejy59PG97n6OYuH6/y4zuhmQ72hc/vjNpiinf+x4F5mbv2/V2nVz/dsHLo6Ivev7 GwO1ad5+tpOsIrpY5gjZy+QQuBD1zhfDSYM4ZgCyJ5EcfDfug8wCvBov+YEFhyD3fDf10Ig+r9bjm hDv+w9cK6r6nqOXoM85Kb9XAkA+wIvBEsWcTKS4t/4uFS+h7rREWxbuA30B4UbRTLyTM/pELABByQ rjmNv1pGCGCXEA==; 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 1payLR-0006H0-3o; Sat, 11 Mar 2023 07:29:06 -0500 Date: Sat, 11 Mar 2023 14:28:51 +0200 Message-Id: <83pm9fwjy4.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87r0tvwnl9.fsf@localhost> (message from Ihor Radchenko on Sat, 11 Mar 2023 11:10:10 +0000) References: <87ilfbe8r0.fsf@localhost> <83a60n40an.fsf@HIDDEN> <87y1o7cd6a.fsf@localhost> <834jqv3tv3.fsf@HIDDEN> <87v8jbc70u.fsf@localhost> <83v8ja2z4d.fsf@HIDDEN> <87sfeecmom.fsf@localhost> <83edpy2r3x.fsf@HIDDEN> <87o7p2chyq.fsf@localhost> <83zg8m15n5.fsf@HIDDEN> <87r0tvwnl9.fsf@localhost> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) 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 (---) > From: Ihor Radchenko <yantar92@HIDDEN> > Cc: 62048 <at> debbugs.gnu.org > Date: Sat, 11 Mar 2023 11:10:10 +0000 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> Observed: top of the image is displayed > >> Expected: bottom of the image is partially revealed > > > > I don't understand the expectation. Scrolling by vscroll only happens > > when before the scroll some part of the image is visible, which is not > > what happens here. > > > > If you want to change that, feel free to hack on the code in > > simple.el, but there was no intent to cover this particular use case, > > and the code is already quite complicated (to say the least). > > ... > > You should always keep in mind that Emacs has no idea about what's > > beyond the window, for display purposes. There's no way of saying > > whether a given 'display property whose value is an image spec will be > > taller than the window, except by actually displaying that image (or > > at least simulating the display internally). So you expect something > > that it is far from easy to do. > > > > Scrolling commands were never meant to allow smooth scrolling through > > tall screen lines. > > What if the code instead tries to vscroll standard line height first and > only then decide if we want to scroll further, displaying tall line? You mean, use vscroll even for lines whose height is the same as the default font? That'd be a waste, no? And how do you propose to "decide if we want to scroll further"? > > What do you want to customize, and in what terms? > > I was referring to > > >> (if (and (< arg 0) > >> (< (point) (window-start)) > >> (> lh winh)) > >> (set-window-vscroll > >> nil > >> (- lh dlh) t))) > > May we allow users to customize ~(> lh winh)~ condition? I don't mind, but make sure some other place in this set of twisty little passages don't assume we test against the window's height. > Also, on the initial report. Is it possible to increase default > buffer-wise line-spacing via text property? (AFAIU, decreasing is > impossible). The mechanism for overriding doesn't depend on the value, it depends on the hierarchy of settings, as the ELisp manual describes. When the manual says "However, no matter what you specify, the actual line height can never be less than the default", it means the default height described in the previous paragraph: The height of the line contents is the maximum height of any character or image on that display line, including the final newline if there is one. (A display line that is continued doesn’t include a final newline.) That is the default line height, if you do nothing to specify a greater height. (In the most common case, this equals the height of the corresponding frame’s default font, see *note Frame Font::.)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.