GNU logs - #73563, boring messages


Message sent to ben@HIDDEN, bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73563: [Ben Simms] Performance bottleneck in ns_draw_fringe_bitmap
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: ben@HIDDEN, bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 30 Sep 2024 08:03:02 +0000
Resent-Message-ID: <handler.73563.B.17276833795514 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 73563
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 73563 <at> debbugs.gnu.org
Cc: Ben Simms <ben@HIDDEN>
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
X-Debbugs-Original-Xcc: Ben Simms <ben@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.17276833795514
          (code B ref -1); Mon, 30 Sep 2024 08:03:02 +0000
Received: (at submit) by debbugs.gnu.org; 30 Sep 2024 08:02:59 +0000
Received: from localhost ([127.0.0.1]:44622 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1svBMw-0001Qs-MH
	for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 04:02:59 -0400
Received: from lists.gnu.org ([209.51.188.17]:50282)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1svBMu-0001Qi-Bt
 for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 04:02:57 -0400
Received: from [2001:470:142:3::10] (helo=eggs.gnu.org)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <stefankangas@HIDDEN>)
 id 1svAqT-00015S-DX
 for bug-gnu-emacs@HIDDEN; Mon, 30 Sep 2024 03:29:25 -0400
Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <stefankangas@HIDDEN>)
 id 1svApn-0007ve-HO
 for bug-gnu-emacs@HIDDEN; Mon, 30 Sep 2024 03:29:19 -0400
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37ce14ab7eeso1335559f8f.2
 for <bug-gnu-emacs@HIDDEN>; Mon, 30 Sep 2024 00:27:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727681265; x=1728286065; darn=gnu.org;
 h=to:subject:message-id:date:mime-version:references:from:from:to:cc
 :subject:date:message-id:reply-to;
 bh=nca+oUsU+ZdAgNPc7kYpDTpQ1SKouoAfbK4g/qjl0Ec=;
 b=Z84zTd+Cju5fGWCLcHCPiTKUFospdrvzAhUgyk6UmLXkRTVLeIJcpOtgLQD7SPDr2u
 8XkkNwgcOYLs8u+kvrwYbcHmRGOhil41gkFbnOHrb6JvN04I52g99tVRx7YrgI8EZ9ce
 iZ7dBrE8SSeE2ZcFxCJQZf1Ow5E5amAkc96WWhJpZesaTdQo8+8OqgOcriiG+agKL4+b
 zF6QF4we1MDAEAHz1JO5khbTImZ4iLNufUKu7wyxH34MvlnIoOPp31hoSpKBSSaMuWqc
 fJ95jaiSHiSh4BWjEuJ8A8MWjaQoyyeoZncY9h9qErJHxqvH8ut3tKbONHflhtVEnFC/
 1KuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727681265; x=1728286065;
 h=to:subject:message-id:date:mime-version:references:from
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=nca+oUsU+ZdAgNPc7kYpDTpQ1SKouoAfbK4g/qjl0Ec=;
 b=BGjlPYZXL9IOalWH+eI3PwUXZz9WdjZ/hhl1J1r9NogTFITS5ErO8Ox5Vc9S8SoF96
 6MHeFSJ4+I/wMtgfKdOsXyHfS+/+Gr6/fxAB7g2eFeJkEFZTeVa/OBnsVsp85C+vlExx
 AcUn9whGseSS+N1XE2ceHjTZXhen1umtuGNdDAPlT5sf7pFQeTaVFIJf/OFav+JNcrY4
 d4XcLFNeTSaEKAiGWW9IPE0SE8ccskWhY3sm7Im97U61EoANdYo8cZjJO8WKIYktFfSR
 yjaa0yGv2wWaLy095Sn0kpcko21JmtkavGe7/XsQPfIVqCkR6VRK7DSOmlin16FdHLez
 vYhw==
X-Gm-Message-State: AOJu0YzwW0jiHSDmQZQZ+VAI9Miy8MtXVYaSIQoadSwBeWsG/oQ6/OTJ
 wEXmX/L9BO1BvINCz7wdPyveEl/SvO5VCR0gBbVK1qpnTywwnvIilijju45VXPCeO5r2AKCr7T6
 Gtf+a7SvLvPENTFF57rq188SLJykDdw==
X-Google-Smtp-Source: AGHT+IEgCABam4U7Nkv5XlRhtMOIgzcBqaOm8+hdRVB1FoXngnil0ijfzOxdvxCGdMzLpmcLY5ybtfNTabRa/RrBu8c=
X-Received: by 2002:a05:6402:909:b0:5c5:b6ee:e95b with SMTP id
 4fb4d7f45d1cf-5c8824d3c0cmr20532107a12.8.1727680863699; Mon, 30 Sep 2024
 00:21:03 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Mon, 30 Sep 2024 07:21:03 +0000
From: Stefan Kangas <stefankangas@HIDDEN>
References: <CALNBX0aNy78GFVTfR_4O6hdeOcBiFLiKUJSi+kVbciXqLOd+jw@HIDDEN>
MIME-Version: 1.0
Date: Mon, 30 Sep 2024 07:21:03 +0000
Message-ID: <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000002a887a0623510c8e"
Received-SPF: pass client-ip=2a00:1450:4864:20::42d;
 envelope-from=stefankangas@HIDDEN; helo=mail-wr1-x42d.google.com
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1,
 DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001,
 T_SPF_HELO_TEMPERROR=0.01,
 T_SPF_TEMPERROR=0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
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: -0.0 (/)

--0000000000002a887a0623510c8e
Content-Type: text/plain; charset="UTF-8"

I'm forwarding this to the bug tracker so that we don't lose track of
it.

Original message:
https://lists.gnu.org/r/emacs-devel/2024-06/msg00900.html

-------------------- Start of forwarded message --------------------
From: Ben Simms <ben@HIDDEN>
Date: Wed, 26 Jun 2024 13:56:43 +0200
Subject: Performance bottleneck in ns_draw_fringe_bitmap
To: emacs-devel@HIDDEN

--0000000000002a887a0623510c8e
Content-Type: text/plain; charset="US-ASCII"
Content-Disposition: attachment
Content-Transfer-Encoding: base64
X-Attachment-Id: 583748d02080dd75_0.2

LS0tLS0tLS0tLS0tLS0tLS0tLS0gRW5kIG9mIGZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tCg==
--0000000000002a887a0623510c8e
Content-Type: text/html; charset="utf-8"
Content-Disposition: attachment
Content-Transfer-Encoding: base64
X-Attachment-Id: 583748d02080dd75_0.1.1

PGRpdiBkaXI9Imx0ciI+SGkgYWxsLCBJIHJlY2VudGx5IHN0YXJ0ZWQgdXNpbmcgRW1hY3MgKG5z
KSBIRUFEIG9uIGFuIEFSTSBtYWNvcyBzb25vbWEgc3lzdGVtLjxkaXY+PGJyPjwvZGl2PjxkaXY+
SSYjMzk7dmUgbm90aWNlZCB0aGF0IG5zX2RyYXdfZnJpbmdlX2JpdG1hcCBpcyBhIGZhaXJseSBs
YXJnZSBwZXJmb3JtYW5jZSBzaW5rIHdoZW4gdXNpbmcgcGl4ZWwgc2Nyb2xsaW5nICh0byB0aGUg
cG9pbnQgb2YgOTklIG9mIGNwdSB0aW1lIGJlaW5nIGluc2lkZSB0aGlzIGZ1bmN0aW9uLCB3aXRo
IEVtYWNzIGRyYXdpbmcgYXQgYXBwcm94IDVIeikuIFRoZSBzbG93bmVzcyBoZXJlIGlzbiYjMzk7
dCBhcyBvYnZpb3VzIHdoZW4gbm90IHBpeGVsIHNjcm9sbGluZywgcHJlc3VtYWJseSBiZWNhdXNl
IEVtYWNzIG5ldmVyIHRyaWVzIHRvIHJlZHJhdyBhdCA2MCtIeiBvdGhlcndpc2UuPC9kaXY+PGRp
dj48YnI+PC9kaXY+PGRpdj5JIGhhdmUgcGVyZm9ybWVkIHNvbWUgcHJvZmlsaW5nIGFuZCBkaXNj
b3ZlcmVkIHRoYXQgaW4gbXkgb2JzZXJ2ZWQgd29yc2UgY2FzZSBzaXR1YXRpb24sIG9mIHRoZSA5
OSUgb2YgY3B1IHRpbWUgc3BlbnQgaW4gbnNfZHJhd19mcmluZ2VfYml0bWFwLCBhcHByb3ggNTAl
IGlzIHNwZW50IGluIFtOU0JlemllclBhdGggY29weV0sIGFuZCBhcHByb3ggMzAlIGluIFtOU0Jl
emllclBhdGggZmlsbF0uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JIGhhdmUgdXNlZCB0aGUg
Zm9sbG93aW5nIGJlbmNobWFyayB3aXRoIGVtYWNzIC1RIHRvIGF0dGVtcHQgdG8gcmVwcm9kdWNl
IG15IGVuY291bnRlcmVkIHBlcmZvcm1hbmNlIGlzc3VlLCBob3dldmVyIEkgY2Fubm90IHJlcHJv
ZHVjZSBleGFjdGx5IHRoZSBleHRyZW1lIGNhc2UgSSBleHBlcmllbmNlIGluIG15IGNvbmZpZywg
YnV0IEkgaGF2ZSB1c2VkIHRoaXMgYmVuY2htYXJrIHRvIHZhbGlkYXRlIGEgcGF0Y2ggdGhhdCBz
b2x2ZXMgdGhlIHNsb3dkb3duIEkmIzM5O20gZXhwZXJpZW5jaW5nOjwvZGl2PjxkaXY+PGJyPjwv
ZGl2PjxkaXY+KGRlZnVuIHNjcm9sbC11cC1iZW5jaG1hcmsgKCk8YnI+wqAgKGludGVyYWN0aXZl
KTxicj7CoCAobGV0ICgob2xkZ2MgZ2NzLWRvbmUpPGJyPsKgIMKgIMKgIMKgIChvbGR0aW1lIChm
bG9hdC10aW1lKSkpPGJyPsKgIMKgIMKgIChkb3RpbWVzIChfIDEwKSAocGl4ZWwtLXdoaXN0bGVz
dG9wLXBpeGVsLXVwICgqIDUgKHBpeGVsLWxpbmUtaGVpZ2h0KSkpIMKgKHBpeGVsLXNjcm9sbC1w
aXhlbC1kb3duICgqIDUgKHBpeGVsLWxpbmUtaGVpZ2h0KSkpKTxicj7CoCDCoCDCoCAocHJpbmMg
KGZvcm1hdCAmcXVvdDtHQ3M6ICVkIEVsYXBzZWQgdGltZTogJWYgc2Vjb25kc1xuJnF1b3Q7PGJy
PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICgtIGdjcy1kb25lIG9sZGdjKSAo
LSAoZmxvYXQtdGltZSkgb2xkdGltZSkpICMmIzM5O2V4dGVybmFsLWRlYnVnZ2luZy1vdXRwdXQp
KSk8YnI+PGJyPihkZWZ1biBhZGQtZnJpbmdlcyAoKTxicj7CoCAoaW50ZXJhY3RpdmUpPGJyPsKg
IChkb3RpbWVzIChfIDIwKTxicj7CoCDCoCAobmV3bGluZS1hbmQtaW5kZW50KTxicj7CoCDCoCAo
aW5zZXJ0ICZxdW90O0EmcXVvdDspPGJyPsKgIMKgIChnb3RvLWNoYXIgKGxpbmUtYmVnaW5uaW5n
LXBvc2l0aW9uKSk8YnI+wqAgwqAgKGxldCAoKHMgJnF1b3Q7eCZxdW90Oyk8YnI+wqAgwqAgwqAg
wqAgwqAgKGZyaW5nZS1vdmVybGF5IChtYWtlLW92ZXJsYXkgKHBvaW50KSAoMSsgKHBvaW50KSkp
KSk8YnI+wqAgwqAgwqAgKHB1dC10ZXh0LXByb3BlcnR5IDAgMSAmIzM5O2Rpc3BsYXkgKGxpc3Qg
JiMzOTtsZWZ0LWZyaW5nZSAmIzM5O2xlZnQtdHJpYW5nbGUpIHMpPGJyPsKgIMKgIMKgIChvdmVy
bGF5LXB1dCBmcmluZ2Utb3ZlcmxheSAmIzM5O2JlZm9yZS1zdHJpbmcgcykpPGJyPsKgIMKgIChn
b3RvLWNoYXIgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKTxicj48YnI+KHNjcm9sbC1iYXItbW9kZSAt
MSk8YnI+KG1lbnUtYmFyLW1vZGUgLTEpPGJyPihwaXhlbC1zY3JvbGwtbW9kZSk8YnI+KHBpeGVs
LXNjcm9sbC1wcmVjaXNpb24tbW9kZSk8YnI+KHNldHE8YnI+wqAgwqAgwqAgcGl4ZWwtc2Nyb2xs
LXByZWNpc2lvbi11c2UtbW9tZW50dW0gdCk8YnI+PGJyPihkb3RpbWVzIChfIDIwKTxicj7CoCAo
YWRkLWZyaW5nZXMpKTxicj4oZG90aW1lcyAoXyA1KTxicj7CoCAoZW5kLW9mLWJ1ZmZlcik8YnI+
wqAgKGNvbmRpdGlvbi1jYXNlIG5pbCAod2hpbGUgdCAoc2Nyb2xsLWRvd24pKTxicj7CoCDCoCAo
ZXJyb3IgbmlsKSk8YnI+wqAgKHNjcm9sbC11cC1iZW5jaG1hcmspKTxicj48ZGl2Pjxicj48L2Rp
dj48ZGl2Pjxicj48L2Rpdj48ZGl2Pk9uIEVtYWNzIChlNGUxZDBjZDApIHRoaXMgcmVwb3J0cyB0
aGUgZm9sbG93aW5nOjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+R0NzOiAxNCBFbGFwc2VkIHRp
bWU6IDUuNDQ5MDMyIHNlY29uZHM8YnI+R0NzOiAxNCBFbGFwc2VkIHRpbWU6IDUuMjA5MDA2IHNl
Y29uZHM8YnI+R0NzOiAxMyBFbGFwc2VkIHRpbWU6IDUuMTg3Nzc5IHNlY29uZHM8YnI+R0NzOiAx
MyBFbGFwc2VkIHRpbWU6IDUuMTc4NDcyIHNlY29uZHM8YnI+R0NzOiAxMyBFbGFwc2VkIHRpbWU6
IDUuMTg0NzQxIHNlY29uZHM8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUgcHJvZmls
ZXIgb3V0cHV0IGZvciB0aGlzIGlzIHRoZSBmb2xsb3dpbmc6PC9kaXY+PGRpdj48YnI+PC9kaXY+
PGRpdj5XZWlnaHQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU2VsZiBXZWlnaHQgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3ltYm9sIE5hbWU8YnI+MTEu
MzAgR2MgwqAxMDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBGcmVkaXNwbGF5PGJyPjExLjMw
IEdjIMKgIDk5LjklIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmVkaXNwbGF5X3ByZXNlcnZlX2VjaG9fYXJl
YTxicj4xMS4xMiBHYyDCoCA5OC4zJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmVkaXNwbGF5
X2ludGVybmFsPGJyPjYuOTcgR2MgwqAgNjEuNiUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpbnRlcm5h
bF9jb25kaXRpb25fY2FzZV8xPGJyPjYuOTcgR2MgwqAgNjEuNiUgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoHJlZGlzcGxheV93aW5kb3dfMTxicj42Ljk3IEdjIMKgIDYxLjYlIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgcmVkaXNwbGF5X3dpbmRvdzxicj41LjYwIEdjIMKgIDQ5LjUlIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqB0cnlfd2luZG93PGJyPjEuMjUgR2MgwqAgMTEuMCUgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoGRpc3BsYXlfbW9kZV9saW5lczxicj4xMTEuNjggTWMgwqAgwqAw
LjklIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB1cGRhdGVfZnJhbWVfdG9vbF9iYXI8YnI+Ni4w
MCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGd1aV9jb25zaWRlcl9mcmFt
ZV90aXRsZTxicj4yLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxLjAw
IE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgdXBkYXRlX3dpbmRvd19mcmluZ2VzPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqByZWNvbnNpZGVyX2NsaXBfY2hhbmdlczxicj4xLjAwIE1jIMKg
IMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY3Vyc29yX3Jvd19mdWxseV92aXNpYmxl
X3A8YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoF9f
X2Noa3N0a19kYXJ3aW48YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoHJlZGlzcGxheV90YWJfYmFyPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB0cnlfd2luZG93X2lkPGJyPjMuNjQgR2MgwqAgMzIuMiUg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCB1cGRhdGVfZnJhbWU8YnI+My40NyBHYyDCoCAzMC42JSDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX3dpbmRvd190cmVlPGJyPjMuNDcgR2MgwqAgMzAuNiUg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB1cGRhdGVfd2luZG93PGJyPjIuMTUgR2MgwqAg
MTkuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGd1aV91cGRhdGVfd2luZG93X2VuZDxicj4y
LjExIEdjIMKgIDE4LjYlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZHJhd193aW5kb3dfZnJp
bmdlczxicj4yLjA5IEdjIMKgIDE4LjQlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqBkcmF3X3Jvd19mcmluZ2VfYml0bWFwczxicj4yMC4wMCBNYyDCoCDCoDAuMSUgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoHNldF9idWZmZXJfaW50ZXJuYWxfMTxicj40MC4wMCBNYyDCoCDC
oDAuMyUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBkaXNwbGF5X2FuZF9zZXRfY3Vyc29yPGJy
PjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZ3VpX2Ry
YXdfdmVydGljYWxfYm9yZGVyPGJyPjU4Ni4xOCBLYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCB1bmJsb2NrX2lucHV0PGJyPjEuMjggR2MgwqAgMTEuMyUgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgMy4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfbGluZTxicj4yNS4wMCBNYyDCoCDCoDAu
MiUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMy4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHNjcm9sbGluZ193aW5kb3c8YnI+OS4z
OSBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMy4wMCBNYyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0ZV93aW5k
b3dfZnJpbmdlczxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAx
LjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgcmVkcmF3X292ZXJsYXBwZWRfcm93czxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmVkcmF3X292ZXJsYXBwaW5nX3Jvd3M8YnI+MTUyLjUz
IE1jIMKgIMKgMS4zJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX2JlZ2luPGJyPjE4Ljcy
IE1jIMKgIMKgMC4xJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX2VuZDxicj4zOTcuMDUg
TWMgwqAgwqAzLjUlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcHJlcGFyZV9tZW51X2JhcnM8YnI+OTEu
NDEgTWMgwqAgwqAwLjglIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZWNob19hcmVhX2Rpc3BsYXk8YnI+
NS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBuc19mcmFtZV91cF90b19kYXRl
PGJyPjQuMDEgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc3RhcnRfcG9sbGluZzxi
cj40LjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHVuYmluZF90bzxi
cj4zLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAyLjAwIE1jIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJ1bl93aW5kb3df
Y2hhbmdlX2Z1bmN0aW9uczxicj4yLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IGhzY3JvbGxfd2luZG93czxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIFhDT05TPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRmdl
dGhhc2g8YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjbGVhcl9kZXNp
cmVkX21hdHJpY2VzPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgbWFya193aW5kb3dfZGlzcGxheV9hY2N1cmF0ZV8xPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgbnNfc2V0X2RvY19lZGl0ZWQ8YnI+MS4wMCBNYyDCoCDCoDAuMCUg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjbGVhcl9nYXJiYWdlZF9mcmFtZXM8YnI+MTgxLjI5
IE1jIMKgIMKgMS42JSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZmx1c2hfZnJhbWU8YnI+MS4wMCBNYyDC
oCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVuYmluZF90bzxicj48YnI+PGJyPjExLjkwIEdj
IMKgMTAwLjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
RnJlZGlzcGxheTxicj4xMS45MCBHYyDCoCA5OS45JSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJlZGlzcGxheV9wcmVzZXJ2ZV9lY2hvX2FyZWE8YnI+MTEu
NjYgR2MgwqAgOTcuOSUgwqAgwqAgwqAgwqAgwqAgMi4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoHJlZGlzcGxheV9pbnRlcm5hbDxicj43LjQ4IEdjIMKgIDYyLjglIMKgIMKg
IMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaW50ZXJuYWxfY29u
ZGl0aW9uX2Nhc2VfMTxicj43LjQ4IEdjIMKgIDYyLjglIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZWRpc3BsYXlfd2luZG93XzE8YnI+Ny40OCBH
YyDCoCA2Mi44JSDCoCDCoCDCoCDCoCDCoCAzLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIHJlZGlzcGxheV93aW5kb3c8YnI+Ni4zNSBHYyDCoCA1My4zJSDCoCDCoCDC
oCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdHJ5X3dpbmRv
dzxicj42LjIzIEdjIMKgIDUyLjMlIMKgIMKgIMKgIMKgIMKgIDM3LjAzIE1jIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGRpc3BsYXlfbGluZTxicj43My43MCBNYyDCoCDC
oDAuNiUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCBzdGFydF9kaXNwbGF5PGJyPjQ0LjAxIE1jIMKgIMKgMC4zJSDCoCDCoCDCoCDCoCDCoCAt
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHBhcnRpYWxfbGluZV9oZWln
aHQ8YnI+MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBhcHBlbmRfc3BhY2VfZm9yX25ld2xpbmU8YnI+
MS4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBndWlfcHJvZHVjZV9nbHlwaHM8YnI+OTc3LjQ4IE1jIMKg
IMKgOC4yJSDCoCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgZGlzcGxheV9tb2RlX2xpbmVzPGJyPjEyNS44MCBNYyDCoCDCoDEuMCUgwqAg
wqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0
ZV9mcmFtZV90b29sX2Jhcjxicj4xMC4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgLSDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGd1aV9jb25zaWRlcl9mcmFtZV90
aXRsZTxicj43LjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAzLjAwIE1jIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX3dpbmRvd19mcmluZ2VzPGJyPjEu
MDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqBjdXJzb3Jfcm93X2Z1bGx5X3Zpc2libGVfcDxicj4xLjAwIE1jIMKgIMKg
MC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgdW5iaW5kX3RvPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBXSU5ET1dQPGJyPjEuMDAgTWMgwqAgwqAw
LjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqB3aW5kb3dfd2FudHNfbW9kZV9saW5lPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKg
IMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB3aW5kb3df
c2Nyb2xsX21hcmdpbjxicj4zLjI0IEdjIMKgIDI3LjIlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdXBkYXRlX2ZyYW1lPGJyPjMuMDYgR2MgwqAgMjUu
NyUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVw
ZGF0ZV93aW5kb3dfdHJlZTxicj4zLjA2IEdjIMKgIDI1LjclIMKgIMKgIMKgIMKgIMKgIDEuMDAg
TWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdXBkYXRlX3dpbmRvdzxicj4x
LjU4IEdjIMKgIDEzLjIlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqBndWlfdXBkYXRlX3dpbmRvd19lbmQ8YnI+MS41NCBHYyDCoCAx
Mi45JSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIGRyYXdfd2luZG93X2ZyaW5nZXM8YnI+MS41MCBHYyDCoCAxMi42JSDCoCDCoCDCoCDCoCDC
oCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZHJhd19yb3dfZnJp
bmdlX2JpdG1hcHM8YnI+MS41MCBHYyDCoCAxMi42JSDCoCDCoCDCoCDCoCDCoCAyLjAwIE1jIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGRyYXdfZnJpbmdlX2JpdG1h
cDxicj42MDguMzUgS2MgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIDYwOC4zNSBLYyDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBGUkFNRV9SSUdIVF9GUklOR0VfV0lE
VEg8YnI+MzQuMDEgTWMgwqAgwqAwLjIlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzZXRfYnVmZmVyX2ludGVybmFsXzE8YnI+MzguMDAg
TWMgwqAgwqAwLjMlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgZGlzcGxheV9hbmRfc2V0X2N1cnNvcjxicj4xLjQ0IEdjIMKgIDEy
LjAlIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqB1cGRhdGVfd2luZG93X2xpbmU8YnI+MzEuMDAgTWMgwqAgwqAwLjIlIMKgIMKgIMKgIMKgIMKg
IDIuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzY3JvbGxpbmdf
d2luZG93PGJyPjEyLjAwIE1jIMKgIMKgMC4xJSDCoCDCoCDCoCDCoCDCoCA2LjAwIE1jIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdXBkYXRlX3dpbmRvd19mcmluZ2VzPGJy
PjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB3aW5kb3dfd2FudHNfbW9kZV9saW5lPGJyPjEuMDAgTWMg
wqAgwqAwLjAlIMKgIMKgIMKgIMKgIMKgIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqB3aW5kb3dfdGV4dF9ib3R0b21feTxicj4xLjAwIE1jIMKgIMKgMC4wJSDC
oCDCoCDCoCDCoCDCoCAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgcmVkcmF3X292ZXJsYXBwZWRfcm93czxicj4yMTQuNDkgS2MgwqAgwqAwLjAlIMKgIMKgIMKg
IMKgIMKgIDIxNC40OSBLYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNs
aXBfdG9fYm91bmRzPGJyPjE1OS43NCBNYyDCoCDCoDEuMyUgwqAgwqAgwqAgwqAgwqAgLSDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHVwZGF0ZV9iZWdpbjxicj4yMC4wMCBNYyDC
oCDCoDAuMSUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoHVwZGF0ZV9lbmQ8YnI+MjAuMDAgTWMgwqAgwqAwLjElIMKgIMKgIMKgIMKgIMKgIC0gwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbnNfdXBkYXRlX2VuZDxicj44MTUuMTUg
TWMgwqAgwqA2LjglIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgcHJlcGFyZV9tZW51X2JhcnM8YnI+MTA2LjE3IE1jIMKgIMKgMC44JSDCoCDCoCDCoCDC
oCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGVjaG9fYXJlYV9kaXNwbGF5
PGJyPjEwLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIG5zX2ZyYW1lX3VwX3RvX2RhdGU8YnI+My4wMCBNYyDCoCDCoDAuMCUg
wqAgwqAgwqAgwqAgwqAgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBy
dW5fd2luZG93X2NoYW5nZV9mdW5jdGlvbnM8YnI+My4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAg
wqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBuc19zZXRfZG9jX2VkaXRl
ZDxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIHNwZWNiaW5kPGJyPjEuMDAgTWMgwqAgwqAwLjAlIMKgIMKgIMKgIMKg
IMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc3RhcnRfcG9sbGluZzxicj4x
LjAwIE1jIMKgIMKgMC4wJSDCoCDCoCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIHVwZGF0ZV9vdmVybGF5X2Fycm93czxicj4xLjAwIE1jIMKgIMKgMC4wJSDCoCDC
oCDCoCDCoCDCoCAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGhzY3JvbGxfd2lu
ZG93czxicj4yMzcuNzIgTWMgwqAgwqAxLjklIMKgIMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqBmbHVzaF9mcmFtZTxicj4xODguOTcgS2MgwqAgwqAwLjAlIMKg
IMKgIMKgIMKgIMKgIC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB1bmJpbmRfdG88
YnI+Mi4wMCBNYyDCoCDCoDAuMCUgwqAgwqAgwqAgwqAgwqAgLSDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCBzd2FsbG93X2V2ZW50czxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFu
ZCB3aXRoIGEgcGF0Y2ggSSBoYXZlIGRldmVsb3BlZCB0aGF0IHVzZXMgbWFza2VkIGJpdG1hcHMg
aW5zdGVhZCBvZiBiZXppZXJzIGZvciBkcmF3aW5nIGZyaW5nZXM6PC9kaXY+PGRpdj48YnI+PC9k
aXY+PGRpdj5HQ3M6IDE0IEVsYXBzZWQgdGltZTogNS4wOTExNjIgc2Vjb25kczxicj5HQ3M6IDE0
IEVsYXBzZWQgdGltZTogNC44MjU5NjYgc2Vjb25kczxicj5HQ3M6IDEzIEVsYXBzZWQgdGltZTog
NC43OTMzNjQgc2Vjb25kczxicj5HQ3M6IDEzIEVsYXBzZWQgdGltZTogNC43ODU5NjAgc2Vjb25k
czxicj5HQ3M6IDEzIEVsYXBzZWQgdGltZTogNC43ODI0NzAgc2Vjb25kczxicj48L2Rpdj48ZGl2
Pjxicj48L2Rpdj48ZGl2PldpdGggdGhlIGZvbGxvd2luZyBwcm9maWxlciBvdXRwdXQ6PC9kaXY+
PGRpdj48YnI+PC9kaXY+PGRpdj44LjU1IEdjIMKgMTAwLjAlIC0gRnJlZGlzcGxheTxicj44LjQ1
IEdjIMKgIDk4LjklIC0gcmVkaXNwbGF5X3ByZXNlcnZlX2VjaG9fYXJlYTxicj44LjI4IEdjIMKg
IDk2LjklIDEuMDAgTWMgwqByZWRpc3BsYXlfaW50ZXJuYWw8YnI+NS4zNSBHYyDCoCA2Mi41JSAt
IMKgIGludGVybmFsX2NvbmRpdGlvbl9jYXNlXzE8YnI+NS4zNSBHYyDCoCA2Mi41JSAtIMKgIMKg
cmVkaXNwbGF5X3dpbmRvd18xPGJyPjUuMzUgR2MgwqAgNjIuNSUgMS4wMCBNYyDCoCDCoCByZWRp
c3BsYXlfd2luZG93PGJyPjQuNjEgR2MgwqAgNTMuOCUgMS4xMSBNYyDCoCDCoCDCoHRyeV93aW5k
b3c8YnI+NjM5LjM3IE1jIMKgIMKgNy40JSAtIMKgIMKgIMKgZGlzcGxheV9tb2RlX2xpbmVzPGJy
Pjg2Ljg1IE1jIMKgIMKgMS4wJSAtIMKgIMKgIMKgdXBkYXRlX2ZyYW1lX3Rvb2xfYmFyPGJyPjgu
MDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqBndWlfY29uc2lkZXJfZnJhbWVfdGl0bGU8
YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMi4wMCBNYyDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfZnJpbmdl
czxicj4yLjAwIE1jIMKgIMKgMC4wJSAyLjAwIE1jIMKgIMKgIMKgdHJ5X3dpbmRvd19pZDxicj4x
LjAwIE1jIMKgIMKgMC4wJSAtIMKgIMKgIMKgd2luZG93X3dhbnRzX21vZGVfbGluZTxicj4xLjAw
IE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgcHVzaF9oYW5kbGVyPGJyPjIuMzcgR2MgwqAgMjcu
NyUgLSDCoCB1cGRhdGVfZnJhbWU8YnI+Mi4yMiBHYyDCoCAyNS45JSAtIMKgIMKgdXBkYXRlX3dp
bmRvd190cmVlPGJyPjIuMjIgR2MgwqAgMjUuOSUgMy4wMCBNYyDCoCDCoCB1cGRhdGVfd2luZG93
PGJyPjEuMTIgR2MgwqAgMTMuMCUgLSDCoCDCoCDCoGd1aV91cGRhdGVfd2luZG93X2VuZDxicj4x
LjEwIEdjIMKgIDEyLjglIDEuMDAgTWMgwqAgwqAgwqAgZHJhd193aW5kb3dfZnJpbmdlczxicj4x
LjA4IEdjIMKgIDEyLjYlIC0gwqAgwqAgwqAgwqBkcmF3X3Jvd19mcmluZ2VfYml0bWFwczxicj4x
LjA4IEdjIMKgIDEyLjYlIDEuMDAgTWMgwqAgwqAgwqAgwqAgZHJhd19mcmluZ2VfYml0bWFwPGJy
PjEuMDggR2MgwqAgMTIuNSUgMTIuNDggTWMgwqAgwqAgwqAgwqAgwqBkcmF3X2ZyaW5nZV9iaXRt
YXBfMTxicj45MDUuMTIgTWMgwqAgMTAuNSUgMS4wMyBNYyDCoCDCoCDCoCDCoCDCoCBuc19kcmF3
X2ZyaW5nZV9iaXRtYXA8YnI+NjY3LjkyIE1jIMKgIMKgNy44JSAtIMKgIMKgIMKgIMKgIMKgIMKg
Q0dDb250ZXh0RHJhd0ltYWdlV2l0aE9wdGlvbnM8YnI+ODEuOTEgTWMgwqAgwqAwLjklIDEuMDAg
TWMgwqAgwqAgwqAgwqAgwqAgwqBOU1JlY3RGaWxsPGJyPjQ1LjY1IE1jIMKgIMKgMC41JSAtIMKg
IMKgIMKgIMKgIMKgIMKgTlNDb2xvclNldFdpdGhGaWxsQW5kU3Ryb2tlPGJyPjI5LjA3IE1jIMKg
IMKgMC4zJSAyLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgbnNfcm93X3JlY3Q8YnI+MjIuNTMgTWMg
wqAgwqAwLjIlIC0gwqAgwqAgwqAgwqAgwqAgwqBuc19mb2N1czxicj4xMS4wMCBNYyDCoCDCoDAu
MSUgMi4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoCtbTlNDb2xvcihFbWFjc0NvbG9yKSBjb2xvcldp
dGhVbnNpZ25lZExvbmc6XTxicj44LjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKg
IMKgIMKgbnNfdW5mb2N1czxicj44LjAwIE1jIMKgIMKgMC4wJSAtIMKgIMKgIMKgIMKgIMKgIMKg
LVtfTlNUYWdnZWRQb2ludGVyQ29sb3IgQ0dDb2xvcl08YnI+OC4wMCBNYyDCoCDCoDAuMCUgMi4w
MCBNYyDCoCDCoCDCoCDCoCDCoCDCoC1bX19OU0RpY3Rpb25hcnlNIG9iamVjdEZvcktleTpdPGJy
PjQuMDAgTWMgwqAgwqAwLjAlIDQuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBOU1VuaW9uUmVjdDxi
cj4zLjAwIE1jIMKgIMKgMC4wJSAzLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgb2JqY19tc2dTZW5k
PGJyPjIuMDAgTWMgwqAgwqAwLjAlIDIuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBndWlfZGVmaW5l
X2ZyaW5nZV9iaXRtYXA8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMi4wMCBNYyDCoCDCoCDCoCDCoCDC
oCDCoENHQ29udGV4dFNldENvbXBvc2l0ZU9wZXJhdGlvbjxicj4xLjAwIE1jIMKgIMKgMC4wJSAt
IMKgIMKgIMKgIMKgIMKgIMKgb2JqY19hdXRvcmVsZWFzZTxicj4xLjAwIE1jIMKgIMKgMC4wJSAx
LjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgQ0dDb250ZXh0Q2xpcFRvUmVjdDxicj4xLjAwIE1jIMKg
IMKgMC4wJSAtIMKgIMKgIMKgIMKgIMKgIMKgQ0dHU3RhdGVTZXRGaWxsQ29sb3I8YnI+MS4wMCBN
YyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCDCoF9vYmpjX3Jvb3RBdXRvcmVsZWFz
ZTxicj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgTlNJbnRlcnNl
Y3Rpb25SZWN0PGJyPjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBD
R0NvbnRleHRTYXZlR1N0YXRlPGJyPjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAg
wqAgwqAgwqBOU01ha2VSZWN0PGJyPjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAg
wqAgwqAgwqAtW05TT2JqZWN0IGF1dG9yZWxlYXNlXTxicj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAw
IE1jIMKgIMKgIMKgIMKgIMKgIMKgQ0dEYXRhUHJvdmlkZXJJc1pvbWJpZTxicj4xLjAwIE1jIMKg
IMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIMKgRFlMRC1TVFVCJCROU1JlY3RGaWxsPGJy
PjEuMDAgTWMgwqAgwqAwLjAlIDEuMDAgTWMgwqAgwqAgwqAgwqAgwqAgwqBvYmpjX21zZ1NlbmQk
Y29sb3JXaXRoVW5zaWduZWRMb25nOjxicj4xMjkuMzggTWMgwqAgwqAxLjUlIDExLjM0IE1jIMKg
IMKgIMKgIMKgIMKgIGxvb2t1cF9uYW1lZF9mYWNlPGJyPjguMDAgTWMgwqAgwqAwLjAlIC0gwqAg
wqAgwqAgwqAgwqAgd2luZG93X2JveF9yaWdodDxicj40LjMxIE1jIMKgIMKgMC4wJSAxLjAwIE1j
IMKgIMKgIMKgIMKgIMKgIHdpbmRvd193YW50c190YWJfbGluZTxicj41LjAwIE1jIMKgIMKgMC4w
JSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIHdpbmRvd193YW50c19oZWFkZXJfbGluZTxicj4zLjA5
IE1jIMKgIMKgMC4wJSAzLjAwIE1jIMKgIMKgIMKgIMKgIMKgIGJ1aWx0aW5fbGlzcF9zeW1ib2w8
YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCB3aW5kb3dfYm94X2xl
ZnQ8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoCBGUkFNRV9JTlRF
Uk5BTF9CT1JERVJfV0lEVEg8YnI+MS41NSBNYyDCoCDCoDAuMCUgMS41NSBNYyDCoCDCoCDCoCDC
oCDCoCBGQUNFX0ZST01fSURfT1JfTlVMTDxicj4xLjAwIE1jIMKgIMKgMC4wJSAtIMKgIMKgIMKg
IMKgIMKgIFdJTkRPV1A8YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDC
oCBFUTxicj4yNjAuODMgS2MgwqAgwqAwLjAlIDI2MC44MyBLYyDCoCDCoCDCoCDCoCDCoCBFUTxi
cj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKgIMKgIGdldF9mcmluZ2VfYml0
bWFwX2RhdGE8YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCDCoCDCoCDCoCDCoG5zX2Ry
YXdfZnJpbmdlX2JpdG1hcDxicj4xLjAwIE1jIMKgIMKgMC4wJSAxLjAwIE1jIMKgIMKgIMKgIMKg
IEZSQU1FX1JJR0hUX0ZSSU5HRV9XSURUSDxicj4yMC4wMCBNYyDCoCDCoDAuMiUgMS4wMCBNYyDC
oCDCoCDCoCDCoHNldF9idWZmZXJfaW50ZXJuYWxfMTxicj4xOS4wMCBNYyDCoCDCoDAuMiUgMS4w
MCBNYyDCoCDCoCDCoCBkaXNwbGF5X2FuZF9zZXRfY3Vyc29yPGJyPjEuMDcgR2MgwqAgMTIuNCUg
Mi4wMCBNYyDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfbGluZTxicj4yMS4yNSBNYyDCoCDCoDAuMiUg
Ni4wMCBNYyDCoCDCoCDCoHNjcm9sbGluZ193aW5kb3c8YnI+Ny4wMCBNYyDCoCDCoDAuMCUgMi4w
MCBNYyDCoCDCoCDCoHVwZGF0ZV93aW5kb3dfZnJpbmdlczxicj42NDYuMzggS2MgwqAgwqAwLjAl
IC0gwqAgwqAgwqB3aW5kb3dfdGV4dF9ib3R0b21feTxicj4xMzkuODcgTWMgwqAgwqAxLjYlIC0g
wqAgwqB1cGRhdGVfYmVnaW48YnI+MTYuMDEgTWMgwqAgwqAwLjElIC0gwqAgwqB1cGRhdGVfZW5k
PGJyPjQ4NC41OSBNYyDCoCDCoDUuNiUgLSDCoCBwcmVwYXJlX21lbnVfYmFyczxicj42My4xMiBN
YyDCoCDCoDAuNyUgMzY1LjI0IEtjIMKgIGVjaG9fYXJlYV9kaXNwbGF5PGJyPjMuMTMgTWMgwqAg
wqAwLjAlIC0gwqAgaHNjcm9sbF93aW5kb3dzPGJyPjIuNTEgTWMgwqAgwqAwLjAlIC0gwqAgbnNf
c2V0X2RvY19lZGl0ZWQ8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMi4wMCBNYyDCoCBvdmVybGF5X2Fy
cm93c19jaGFuZ2VkX3A8YnI+Mi4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCBydW5fd2luZG93
X2NoYW5nZV9mdW5jdGlvbnM8YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCByZXNldF9v
dXRlcm1vc3RfcmVzdHJpY3Rpb25zPGJyPjY1MS43OSBLYyDCoCDCoDAuMCUgNjUxLjc5IEtjIMKg
IF9fX2Noa3N0a19kYXJ3aW48YnI+MS4wMCBNYyDCoCDCoDAuMCUgMS4wMCBNYyDCoCBtYXJrX3dp
bmRvd19kaXNwbGF5X2FjY3VyYXRlXzE8YnI+MS4wMCBNYyDCoCDCoDAuMCUgLSDCoCB1bmJpbmRf
dG88YnI+MS4wMCBNYyDCoCDCoDAuMCUgLSDCoCBzdGFydF9wb2xsaW5nPGJyPjE2OS4zNSBNYyDC
oCDCoDEuOSUgLSDCoGZsdXNoX2ZyYW1lPGJyPjEuMDAgTWMgwqAgwqAwLjAlIC0gwqB1bmJpbmRf
dG88YnI+NTEuMDEgTWMgwqAgwqAwLjUlIC0gZGV0ZWN0X2lucHV0X3BlbmRpbmdfcnVuX3RpbWVy
czxicj40MS4xMyBNYyDCoCDCoDAuNCUgLSBzd2FsbG93X2V2ZW50czxicj48L2Rpdj48ZGl2Pjxi
cj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkmIzM5O3ZlIHB1dCB0b2dldGhlciBhIHBhdGNo
IHRoYXQgZHJhd3MgdXNpbmcgYSBtYXNrZWQgQ0dJbWFnZSBpbnN0ZWFkIG9mIGFuIE5TQmV6aWVy
LiBIb3dldmVyIEkmIzM5O20gbm90IHN1cmUgaWYgaXQmIzM5O3MgYW55IGdvb2QgYXMgSSYjMzk7
bSBjb21wbGV0ZWx5IHVuZmFtaWxpYXIgd2l0aCB0aGUgRW1hY3MgY29kZWJhc2UgYW5kIG1hY29z
L05TIGdyYXBoaWNzIEFQSXMuIEFsc28gSSBiZWxpZXZlIE5TIGVtYWNzIHdhbnRzIHRvIGJlIGNv
bXBhdGlibGUgd2l0aCBHTlVTdGVwIGFuZCBJIGhhdmUgbm8gaWRlYSBpZiB0aGlzIHJlbWFpbnMg
Y29tcGF0aWJsZTo8YnI+PGJyPjxwcmUgc3R5bGU9ImNvbG9yOnJnYigwLDAsMCkiPkZyb20gZDU0
YzA5MTAwMmFmZjhmNzRmODE2NWRkMjFkNjUwNzVmMDI4ZTcyOCBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKRnJvbTogQmVuIFNpbW1zICZsdDtiZW5AYmVuc2ltbXMubW9lJmd0OwpEYXRlOiBNb24s
IDI0IEp1biAyMDI0IDIzOjM1OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRHJhdyBmcmluZ2Ug
dXNpbmcgYml0bWFwcywgbm90IGh1Z2UgYmV6aWVycwoKLS0tCiBzcmMvbnN0ZXJtLm0gfCA1NSAr
KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp
bGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvc3JjL25zdGVybS5tIGIvc3JjL25zdGVybS5tCmluZGV4IDc5NDYzMGRlMWMuLjljNzgxZTNi
ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9uc3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAgLTI5MDMs
MjIgKzI5MDMsMjQgQEAgSGlkZSB0aGUgd2luZG93IChYMTEgc2VtYW50aWNzKQogc3RhdGljIHZv
aWQKIG5zX2RlZmluZV9mcmluZ2VfYml0bWFwIChpbnQgd2hpY2gsIHVuc2lnbmVkIHNob3J0ICpi
aXRzLCBpbnQgaCwgaW50IHcpCiB7Ci0gIE5TQmV6aWVyUGF0aCAqcCA9IFtOU0JlemllclBhdGgg
YmV6aWVyUGF0aF07Ci0KICAgaWYgKCFmcmluZ2VfYm1wKQogICAgIGZyaW5nZV9ibXAgPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6MjVdOwogCi0gIFtwIG1v
dmVUb1BvaW50Ok5TTWFrZVBvaW50ICgwLCAwKV07CiAKLSAgZm9yIChpbnQgeSA9IDAgOyB5ICZs
dDsgaCA7IHkrKykKLSAgICBmb3IgKGludCB4ID0gMCA7IHggJmx0OyB3IDsgeCsrKQotICAgICAg
ewotICAgICAgICBib29sIGJpdCA9IGJpdHNbeV0gJmFtcDsgKDEgJmx0OyZsdDsgKHcgLSB4IC0g
MSkpOwotICAgICAgICBpZiAoYml0KQotICAgICAgICAgIFtwIGFwcGVuZEJlemllclBhdGhXaXRo
UmVjdDpOU01ha2VSZWN0ICh4LCB5LCAxLCAxKV07Ci0gICAgICB9CisgIGZvciAoaW50IGkgPSAw
OyBpICZsdDsgaDsgaSsrKQorICAgIGJpdHNbaV0gPSB+Yml0c1tpXTsKKworICBDR0RhdGFQcm92
aWRlclJlZiBwcm92aWRlciA9IENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEgKE5VTEwsIGJp
dHMsCisJCQkJCSAgIHNpemVvZiAodW5zaWduZWQgc2hvcnQpICogaCwgTlVMTCk7CisgIGlmIChw
cm92aWRlcikgeworICAgIGlkIHAgPSAoaWQpQ0dJbWFnZU1hc2tDcmVhdGUgKHcsIGgsIDEsIDEs
CisgICAgICAgICAgICAgICAgIHNpemVvZiAodW5zaWduZWQgc2hvcnQpLAorICAgICAgICAgICAg
ICAgICBwcm92aWRlciwgTlVMTCwgMCk7CisgICAgQ0dEYXRhUHJvdmlkZXJSZWxlYXNlIChwcm92
aWRlcik7CisKKyAgICBbZnJpbmdlX2JtcCBzZXRPYmplY3Q6cCBmb3JLZXk6W05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6d2hpY2hdXTsKKyAgfQogCi0gIFtmcmluZ2VfYm1wIHNldE9iamVjdDpwIGZv
cktleTpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDp3aGljaF1dOwogfQogCiAKQEAgLTI5ODEsMzcg
KzI5ODMsMzAgQEAgSGlkZSB0aGUgd2luZG93IChYMTEgc2VtYW50aWNzKQogICAgICAgTlNSZWN0
RmlsbCAoY2xlYXJSZWN0KTsKICAgICB9CiAKLSAgTlNCZXppZXJQYXRoICpibXAgPSBbZnJpbmdl
X2JtcCBvYmplY3RGb3JLZXk6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cC0mZ3Q7d2hpY2hdXTsK
KyAgQ0dJbWFnZVJlZiBibXAgPSAoQ0dJbWFnZVJlZilbZnJpbmdlX2JtcCBvYmplY3RGb3JLZXk6
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cC0mZ3Q7d2hpY2hdXTsKIAogICBpZiAoYm1wID09IG5p
bAogICAgICAgJmFtcDsmYW1wOyBwLSZndDt3aGljaCAmbHQ7IG1heF91c2VkX2ZyaW5nZV9iaXRt
YXApCiAgICAgewogICAgICAgZ3VpX2RlZmluZV9mcmluZ2VfYml0bWFwIChmLCBwLSZndDt3aGlj
aCk7Ci0gICAgICBibXAgPSBbZnJpbmdlX2JtcCBvYmplY3RGb3JLZXk6IFtOU051bWJlciBudW1i
ZXJXaXRoSW50OiBwLSZndDt3aGljaF1dOworICAgICAgYm1wID0gKENHSW1hZ2VSZWYpW2ZyaW5n
ZV9ibXAgb2JqZWN0Rm9yS2V5OiBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDogcC0mZ3Q7d2hpY2hd
XTsKICAgICB9CiAKICAgaWYgKGJtcCkKICAgICB7Ci0gICAgICBOU0FmZmluZVRyYW5zZm9ybSAq
dHJhbnNmb3JtID0gW05TQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybV07Ci0gICAgICBOU0NvbG9y
ICpibV9jb2xvcjsKKyAgICAgIENHUmVjdCBib3VuZHMgPSBDR1JlY3RNYWtlIChwLSZndDt4LCBw
LSZndDt5IC0gcC0mZ3Q7ZGgsCisJCQkgICBDR0ltYWdlR2V0V2lkdGggKGJtcCksIENHSW1hZ2VH
ZXRIZWlnaHQgKGJtcCkpOwogCi0gICAgICAvKiBCZWNhdXNlIHRoZSBpbWFnZSBpcyBkZWZpbmVk
IGF0ICgwLCAwKSB3ZSBuZWVkIHRvIHRha2UgYSBjb3B5Ci0gICAgICAgICBhbmQgdGhlbiB0cmFu
c2Zvcm0gdGhhdCBjb3B5IHRvIHRoZSBuZXcgb3JpZ2luLiAgKi8KLSAgICAgIGJtcCA9IFtibXAg
Y29weV07Ci0gICAgICBbdHJhbnNmb3JtIHRyYW5zbGF0ZVhCeTpwLSZndDt4IHlCeTpwLSZndDt5
IC0gcC0mZ3Q7ZGhdOwotICAgICAgW2JtcCB0cmFuc2Zvcm1Vc2luZ0FmZmluZVRyYW5zZm9ybTp0
cmFuc2Zvcm1dOworICAgICAgTlNHcmFwaGljc0NvbnRleHQgKmN0eCA9IFtOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF07CisgICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IFtjdHgg
Q0dDb250ZXh0XTsKIAotICAgICAgaWYgKCFwLSZndDtjdXJzb3JfcCkKLSAgICAgICAgYm1fY29s
b3IgPSBbTlNDb2xvciBjb2xvcldpdGhVbnNpZ25lZExvbmc6ZmFjZS0mZ3Q7Zm9yZWdyb3VuZF07
Ci0gICAgICBlbHNlIGlmIChwLSZndDtvdmVybGF5X3ApCi0gICAgICAgIGJtX2NvbG9yID0gW05T
Q29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25nOmZhY2UtJmd0O2JhY2tncm91bmRdOwotICAgICAg
ZWxzZQotICAgICAgICBibV9jb2xvciA9IGYtJmd0O291dHB1dF9kYXRhLm5zLSZndDtjdXJzb3Jf
Y29sb3I7CisgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0gKGNvbnRleHQsCisJCQkgICAgIENH
UmVjdEdldE1pblggKGJvdW5kcyksIENHUmVjdEdldE1heFkgKGJvdW5kcykpOworICAgICAgQ0dD
b250ZXh0U2NhbGVDVE0gKGNvbnRleHQsIDEsIC0xKTsKIAotICAgICAgW2JtX2NvbG9yIHNldF07
Ci0gICAgICBbYm1wIGZpbGxdOwotCi0gICAgICBbYm1wIHJlbGVhc2VdOworICAgICAgQ0dDb250
ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yIChjb250ZXh0LCBbW05TQ29sb3IgY29sb3JXaXRoVW5z
aWduZWRMb25nOmZhY2UtJmd0O2ZvcmVncm91bmRdIENHQ29sb3JdKTsKKyAgICAgIGJvdW5kcy5v
cmlnaW4gPSBDR1BvaW50WmVybzsKKyAgICAgIENHQ29udGV4dERyYXdJbWFnZSAoY29udGV4dCwg
Ym91bmRzLCBibXApOwogICAgIH0KICAgbnNfdW5mb2N1cyAoZik7CiB9Ci0tIAoyLjQ1LjE8L3By
ZT48L2Rpdj48L2Rpdj48YnIgY2xlYXI9ImFsbCI+PGRpdj48YnI+PC9kaXY+PHNwYW4gY2xhc3M9
ImdtYWlsX3NpZ25hdHVyZV9wcmVmaXgiPi0tIDwvc3Bhbj48YnI+PGRpdiBkaXI9Imx0ciIgY2xh
c3M9ImdtYWlsX3NpZ25hdHVyZSIgZGF0YS1zbWFydG1haWw9ImdtYWlsX3NpZ25hdHVyZSI+PGRp
diBkaXI9Imx0ciI+PGRpdj48ZGl2IGRpcj0ibHRyIj48ZGl2PjxkaXYgZGlyPSJsdHIiPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTphcmlhbCxoZWx2ZXRpY2Esc2Fucy1zZXJpZiI+PGRpdj48ZGl2
IGRpcj0ibHRyIj5CZW4gU2ltbXM8L2Rpdj48L2Rpdj48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+
PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Cg==
--0000000000002a887a0623510c8e--




Message sent:


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: Stefan Kangas <stefankangas@HIDDEN>
Subject: bug#73563: Acknowledgement ([Ben Simms] Performance bottleneck in
 ns_draw_fringe_bitmap)
Message-ID: <handler.73563.B.17276833795514.ack <at> debbugs.gnu.org>
References: <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN>
X-Gnu-PR-Message: ack 73563
X-Gnu-PR-Package: emacs
Reply-To: 73563 <at> debbugs.gnu.org
Date: Mon, 30 Sep 2024 08:03:03 +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.

As you requested using X-Debbugs-CC, your message was also forwarded to
  Ben Simms <ben@HIDDEN>
(after having been given a bug report number, if it did not have one).

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 73563 <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
73563: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D73563
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73563: [Ben Simms] Performance bottleneck in ns_draw_fringe_bitmap
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: Mon, 30 Sep 2024 12:28:02 +0000
Resent-Message-ID: <handler.73563.B73563.172769923729746 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73563
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Kangas <stefankangas@HIDDEN>
Cc: ben@HIDDEN, 73563 <at> debbugs.gnu.org
Received: via spool by 73563-submit <at> debbugs.gnu.org id=B73563.172769923729746
          (code B ref 73563); Mon, 30 Sep 2024 12:28:02 +0000
Received: (at 73563) by debbugs.gnu.org; 30 Sep 2024 12:27:17 +0000
Received: from localhost ([127.0.0.1]:44931 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1svFUi-0007jh-JB
	for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 08:27:16 -0400
Received: from eggs.gnu.org ([209.51.188.92]:41966)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1svFUg-0007jB-JQ
 for 73563 <at> debbugs.gnu.org; Mon, 30 Sep 2024 08:27:15 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1svFU3-0002rx-K5; Mon, 30 Sep 2024 08:26:35 -0400
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=sgpgEVTf7WdE1Nl18d8mqVd6+UV3/Hl+BxkoNBW23GM=; b=lCnMA+IuibSp
 S12j3lTimeBAZKSIy4XBj99Cp37SCkMxfiZzkXoxDZawJ/yhHW9RLplEzuPU79rCER0SNHCm3XEsC
 qxVYJ8qkB/mzedk404dhI7zQHJkadK942uRsyJkaRCVl92RNGs1hHBdmESeT5Fe74FxHNs27L6EuY
 4WbENr0pLyLYlUu+q0HERvyhk/tZ55O+6IRavr514I7cO+lREEGzBVoi4Ej6GUasZZaz3jEspjtZ4
 AQ+hzFltD2ab1o5bbDIAUS1Y1S842XZfALIoFj2HEUFhU+sobwjlhyOoeZaH2vUpuVIeUoQqEGibe
 kNbME89h/vTu5BYx876zbQ==;
Date: Mon, 30 Sep 2024 15:26:31 +0300
Message-Id: <86plol2uq0.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN>
 (message from Stefan Kangas on Mon, 30 Sep 2024 07:21:03 +0000)
References: <CALNBX0aNy78GFVTfR_4O6hdeOcBiFLiKUJSi+kVbciXqLOd+jw@HIDDEN>
 <CADwFkmn9fhiU7XfXu5Ku+ouuxH=J+cx73n-APP7Gkq4FdywD0g@HIDDEN>
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> Cc: Ben Simms <ben@HIDDEN>
> From: Stefan Kangas <stefankangas@HIDDEN>
> Date: Mon, 30 Sep 2024 07:21:03 +0000
> 
> Hi all, I recently started using Emacs (ns) HEAD on an ARM macos sonoma
> system.
> 
> I've noticed that ns_draw_fringe_bitmap is a fairly large performance sink
> when using pixel scrolling (to the point of 99% of cpu time being inside this
> function, with Emacs drawing at approx 5Hz). The slowness here isn't as
> obvious when not pixel scrolling, presumably because Emacs never tries to
> redraw at 60+Hz otherwise.
> 
> I have performed some profiling and discovered that in my observed worse case
> situation, of the 99% of cpu time spent in ns_draw_fringe_bitmap, approx 50%
> is spent in [NSBezierPath copy], and approx 30% in [NSBezierPath fill].

According to the posted profile, ns_draw_fringe_bitmap takes much less
than 99% of CPU time, somewhere around 10%.  What am I missing?





Last modified: Sun, 12 Jan 2025 05:45:02 UTC

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